2016-12-07 2 views
-1

Kürzlich muss ich orthographische Projektion mit Glm-Bibliothek verwenden. Aber bei orthographischer Projektion wird meine Szene nicht in der Mitte meines Ansichtsfensters gerendert.Orthographische Projektion korrekt einrichten?

Meine Szene ist einfach ein Würfel, es wurde gut mit Glm :: Perspektive. Ich verstehe nicht zu viel mathematisches Zeug, ich benutze nur die Funktion glm :: ortho.

Also wie muss ich vorgehen, um die orthographische Projektion richtig einzurichten? Hier

ist der Code, den ich habe:

mat4 projection=ortho(0.0f, 800.0f, 600.0f, 0.0f,-1000.0f, 1000.0f); 
mat4 view=lookAt(vec3(0,0,1),vec3(0,0,0),vec3(0,1,0)); 
mat4 model=mat4(); 

Dann habe ich diese drei Matrizen Shader gesendet, die als perspektivische Projektion did.It gleiche ist, sollte ein Quad in der Mitte meines Bildschirms sein, aber in meinem Programm Es ist in der oberen linken Ecke des Bildschirms gelogen, stellt sich heraus wie das Viertel.

+0

Welche Koordinaten hat Ihr Würfel? – BDL

Antwort

1

Ihr Cube wird in der oberen linken Ecke des Bildschirms angezeigt, da dies der Ursprung (0,0,0) des von Ihrer orthographischen Projektion angegebenen Koordinatenraums ist.

Mit Ihrer vorherigen Perspektive Projektion hatten Sie wahrscheinlich einen Ursprung in der Mitte des Bildschirms. Sie können darauf zurückkommen, indem Sie die Werte in Ihrer orthographischen Projektion ändern:

ortho(-(800.0f/2.0f), 800.0f/2.0f, 
     600.0f/2.0f, -(600.0f/2.0f), 
     -1000.0f, 1000.0f); 
+0

Ich habe es, Sie haben völlig Recht. Die Funktion glm :: ortho sollte Parameter wie folgt verwenden: - (Bildschirmbreite/2) als links und Bildschirmbreite/2 als rechts, halbe Bildschirmhöhe als unten und - (Bildschirmhöhe/2) als oben. – Zain