Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Du übergibst ein fixes Seitenverhältniss an gluPerspective. Wenn es sich evtl mit den Pfeilen nach oben richtig verhält muss das nicht bedeuten, dass sie gleich aussehen wenn die gedreht sind. Denn bei einem falschen Verhältniss sind "die Pixel breiter" als höher. Um mal etwas Bildlich zu sprechen. Kannst du auch testen indem du mal so das Fenster von der Größe her anpasst.
Du solltest also immer das Seitenverhältniss an der größe deines ViewPorts orientieren. Also die gleichen Werte benutzen.
1280/800 gibt ein Seitenverhältnis von 1,6, während Dein Monitor ein Verhältnis von 4:3 (1,333333) hat (ausser es ist ein Widescreen). Demzufolge sind beide Bilder gestreckt. Ohne Rotation sind die Dreiecke 'zu breit', mit Rotation 'zu lang'.
Um das mit dem scale zu interpretieren, wäre ein skaliertes Bild noch net schlecht.
_________________ Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.
Hallo, ah deswegen passt es nicht zusammen. Ich sollte also schon immer schauen dass ich ein Verhältniss von 4:3 einhalte??
Na ja, ich habe hier im Linux die Auflösung 1280x800, und ich dachte es ist richtig wenn ich die selbe Auflösung mit SDL_GetVideoInfo() übergebe, und dann die selbe Auflösung initialisiere.
Wie macht ihr das dann immer beim initialisieren des Fensters?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Genau genommen ist dafür nur die Größe des Renderkontextes ausschlaggebend. Denn du kannst ja schließlich auch in einem Fenster rendern. Und dann darfst du nur das benutzen wie groß der RC ist. Ansonsten ist ein Quad mit der Größe 1, 1 nicht genau so hoch wie breit. Darum gehts es eigentlich. Also wirklich nur die Größe des RCs.
Wenn du Vollbild arbeitest kannst du natürlich auch die Infos von SDL benutzen. Allerdings würde ich dann trotzdem auf die Größe des RCs setzen. Im Falle einer Umstellung fällt dann jegliche Anpassung weg. Fehleranfälligkeit.
Ok danke, also ist die Möglichkeit die ich benutze eh nicht die beste, und ich sollte über den RC das machen.
Da frage ich mich, was ist der Render Contex? Habe zwar von den Delphi Tutorials schon davon gehört. Also wenn wieder irgendwo DC übergeben wird oder so, aber bei mir beim C++ habe ich das noch nicht so ganz verstanden. Ist der Render Contex einfach nur das screen?
lg und danke für die Infos, bin schon wieder ein Stückchen weiter.
Jeden Tag einen kleinen Schritt
Darian
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Jain.
DC = Device Context: Ist das Handle auf ein Objekt von Windows. Das kappselt die Zeichenfläche eines Fensters.
RC = Render Context: Ist die ID (Handle) einer OpenGL Zeichenfläche. Diese wird auf einen DC erstellt. Bzw intern sorgen die ganzen Mechanismen dafür, dass die Sachen des RCs auf der Fläche des DCs langen.
Und evtl war RC etwas hart/falsch ausgedrückt. Denn auf einen RC musst du ja noch einen ViewPort (glViewPort) setzen. Der gibt an wo OpenGL zeichnen soll. Das ist fast immer die Größe des Fensters. Und genau genommen solltest du die Größe des ViewPorts für das Seitenverhältnis benutzen. Da aber außer in wenigen Spezialfällen DC/RC/ClientBereich des Fenster und ViewPort immer die gleiche Größe haben, ist das gehüpft wie gesprungen. Achja. Die Größe des Fensters ist meistens immer bekannt deswegen bietet es sich an diese zu nehmen. Das meinte ich eigentlich als ich RC sagte. Aber achte da bitte darauf nur den Clientbereich zu benutzen. Sonst würden die Titelleiste, Rahmen mit einbezogen werden. Was ja wiederrum zu einem Falschen Ergebniss führen würde.
PS: Ich hoffe ich habe dich durch mein Geschwafel gerade nicht noch weiter verwirrt. Ich weiß nämlich gerade nicht ob ich so richtig zurechnungsfähig im Erklären bin.
Ich habe deswegen noch nichts davon gehört, weil ich SDL im Linux verwende. (zumindest sind mir diese Begriffe noch nicht unter gekommen)
Und mit SDL initialsiere ich einfach ein OpenGL Fenster mit diese größe und fertig. (ist aber vermutlich eh das selbe wie bei dir)
Und die größe des Fensters
Und das mit dem Viewport. Ich nehme an du meinst einfach mit glViewport setzen.
Braucht man das, weil das habe ich auch noch nie verwendet??
Bei mir kommt einfach ein gluPerspective oder ein glOrtho für eventuelle 2D Sachen hin. Mache ich da was falsch?
Mitglieder in diesem Forum: 0 Mitglieder und 5 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.