Bildformat



  • Guten Abend,

    Ich programmiere seit einer weile mit OpenGL und Probleme mit der Darstellung bei unterschiedlichen Formaten.

    Wenn ich eine Anwendung Teste, lasse ich die meistens in 4:3 laufen (1280:1024). Im Fullscreen Modus ist es dann aber 16:9 (1920x1080). Leider sieht dann die Szene sehr in die Breite gezogen aus und das ist nicht wirklich hübsch.
    Das die Formate 16:9 und 4:3 natürlich unterschiedlch sind ist klar aber bei modernen Spielen sieht die Szene ja dann auch norma aus. Wie bekomm ich das hin?

    Ich hätte es auf gluPerspective zurückgeführt aber wirklich Erfolg habe ich damit nicht. Ideen?



  • void MySizeFunction(float width, float height)
    {
       if ( width == 0 ){ width = 1.0f; }
       float Aspekt = width / height;
       gluPerspective( 85, Aspekt, fNear, fFar);
       glViewport(0,0, width, width);
    }
    


  • Narf, muss natürlich glViewport(0,0, width, height); heissen -.-



  • So einen Code nutze ich schon.

    glViewport(0, 0, w, h);
    	glMatrixMode(GL_PROJECTION);
    	glLoadIdentity();
    	gluPerspective(fov, (float)w/h, Clip_Near, Clip_Far);
    


  • Hab den Fehler gefunden.
    Ich hatte in einer anderen Funktion bei einem FBO die Projectionsmatrix falsch wiederhergestellt. Hab dort nur mit Integerwerten gearbeitet und dort kommt dann z.B. bei 1280x1024 nicht 1,25 raus sondern eben immer 1 -> Fehler bei der Darstellung 🙄


Anmelden zum Antworten