Verzerrtes Bild



  • Hallo,
    folgendes Problem: Mein Hintergrundfenster wird mit 800 x 600
    initialisiert, genauso wie der Backbuffer. Jetzt sind allerdings,
    wie anzunehmen, alle Objekte im Verhältnis 800 : 600 verzerrt,
    d.h. ein "Quader" erscheint hier als ein in die Breite gezogenes
    Rechteck.
    Ich hab versucht, mittels einer Funktion die größte Seite (in diesem
    Fall 800 Pixel) zurückgeben zu lassen und dann einen quadratischen
    Backbuffer mit 800 x 800 in dem Fenster zu erstellen, aber das
    funktioniert nicht, weil das Device an die Grenzen des Fensters
    gebunden ist und einfach der Backbuffer nun mit einer anderen
    Auflösung rechnet. Hat jemand ne Idee zur Lösung des Problems?



  • ähm könnte es sein, dass du ne projektionsmatrix brauchst?



  • 800:600 entspricht doch genau dem üblichen Monitor mit 4:3. Also ist nichts verzerrt. D.h. du machst etwas falsch.

    Bye, TGGC (Zu viele Primitve hier.)



  • Ich bezieh mich auf OGL:
    Wie Otze schon sagte, es reicht nicht wenn du den Viewport festlegst (das ist dann für die viewport transformation), sondern du solltest auch die Projetionsmatrix setzen, denn es wird vor der viewport transformation die projection transformation durchgeführt. Da kann man bei OpenGL-Funktionen entweder einzelne Punkte des Frustum angeben (glFrustum), oder wie "breit du gucken kannst 😉 " als Winkel und das Verhältnis von Breite und Höhe (gluPerspective).



  • Danke, ich habs geschafft. Ich hatte ne Projection Matrix, aber der
    "Aspect" war auf 1 eingestellt. Ich hab jetzt Breite durch Höhe
    dividiert, damit er sich den Aspect selber berechnet. Muss also in
    diesem Fall 1,3 sein.



  • Norman0406 schrieb:

    Muss also in
    diesem Fall 1,3 sein.

    1,3333333333333333333333333333333333333333333...... 🤡 👍


Anmelden zum Antworten