Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Aug 08, 2020 04:02

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Verhältnis 1:1 beibehalten
BeitragVerfasst: So Jul 19, 2020 20:37 
Offline
DGL Member
Benutzeravatar

Registriert: Do Nov 04, 2010 20:04
Beiträge: 169
Wohnort: Köln
Programmiersprache: Delphi
Wie kann ich verhindern das sich eine Texture beim Resize des Fensters in seinen Ausmaßen verändert.
Diese soll immer im Verhältnis gleich bleiben.

Beispiel:
Die Texture ist 512x512 dann soll sie sich in der höhe und weite anpassen aber ohne das Verhältnis 1:1 zu verändern.

der Quader wird so erstellt.

Code:
  1. ;
  2. procedure RenderCover;
  3. begin
  4.   glPushMatrix;
  5.  
  6.   glTranslatef(0, 0, -3);
  7.  
  8.   // Slide off screen after number of seconds
  9.   if ElapsedTime > 29300 then
  10.     glTranslatef((ElapsedTime - 29300) / 100, 0, 0);
  11.  
  12.   // background must slide faster, because its further away, so add negative slide here.
  13.   if ElapsedTime > 29500 then
  14.     glTranslatef((29500 - ElapsedTime) / 170, 0, 0);
  15.  
  16.   glDisable(GL_DEPTH_TEST);
  17.   // Bind our Backtexture:
  18.   glBindTexture(GL_TEXTURE_2D, CoverTexture);
  19.  
  20.   glBegin(GL_QUADS);
  21.     glTexCoord2f(0, 1); glVertex2f(-1, 1);
  22.     glTexCoord2f(1, 1); glVertex2f(1, 1);
  23.     glTexCoord2f(1, 0); glVertex2f(1, -1);
  24.     glTexCoord2f(0, 0); glVertex2f(-1, -1);
  25.   glEnd;
  26.   // Back to normal:
  27.   glEnable(GL_DEPTH_TEST);
  28.  
  29.   glPopMatrix;
  30.  
  31. end;
  32.  


Die soll sich also zum Viewport 4:3 oder andere Ausmaße anpassen so das dass Verhältnis immer gleich bleibt 1:1

Danke..

gruss


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Verhältnis 1:1 beibehalten
BeitragVerfasst: So Jul 19, 2020 21:47 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2016
Programmiersprache: C++
Bist du sicher, dass du an der richtigen Stelle bist? Eine Textur liegt auf Dreiecken. Diese Dreiecke verändern ihre Ausmaße weil sich der Viewport verändert.
Für mich klingt es so, dass du den Viewport im Abhängigkeit der Fenstergröße anpasst solltest. Dann bleibt die OpenGL Ausmaße identisch.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Verhältnis 1:1 beibehalten
BeitragVerfasst: Mo Jul 20, 2020 08:14 
Offline
DGL Member
Benutzeravatar

Registriert: Do Nov 04, 2010 20:04
Beiträge: 169
Wohnort: Köln
Programmiersprache: Delphi
i0n0s hat geschrieben:
Bist du sicher, dass du an der richtigen Stelle bist? Eine Textur liegt auf Dreiecken. Diese Dreiecke verändern ihre Ausmaße weil sich der Viewport verändert.
Für mich klingt es so, dass du den Viewport im Abhängigkeit der Fenstergröße anpassen solltest.


Bei mir auf einem Quader der aus 4 gleichseitigen Dreiecken besteht.
Aber das war nicht die Frage.

Habe doch den Code offen gelegt wie bzw. aus was meine Texture erstellt wird.
Diese soll sich beim verändern (Resize des Viewport) nicht im Verhältnis ändern.
Mehr möchte ich nicht. Schau dir einfach das Bild an.

Und ja der Viewport wird natürlich entsprechend der Fenstergröße angepasst. Die Texture die dort gerendert wird darf sich aber nicht verändern.
Das ist mein Problem.
Es sieht halt bescheiden aus wenn ein Cover gestretcht wird.
Code:
  1.          
  2. glViewport(0, 0, VisInfo^.w, VisInfo^.h);
  3. glMatrixMode(GL_PROJECTION);
  4. glLoadIdentity();
  5. gluOrtho2D(0.0, VisInfo^.w, VisInfo^.h, 0.0);
  6. glMatrixMode(GL_MODELVIEW);
  7. glLoadIdentity();
  8.  


Zitat:
Dann bleibt die OpenGL Ausmaße identisch.

Eben nicht denn dann müsste ich hier nicht fragen. ;)

EDIT:
Ich habe es selbst behoben.

Das Problem war das ich den ViewPort (Aspectratio) an gluPerspective übergeben habe.
Ist grundsätzlich richtig aber nur für meine PositionBar.
Das Aspectratio für das Cover muss jedoch mit der aktuellen Fenster weite und Höhe berechnet werden nur dann bleibt die Auflösung 1:1 erhalten.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 14 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.026s | 15 Queries | GZIP : On ]