OpenGL-Koordinaten, um Bildschirmkoordinaten zu entsprechen? - Android, OpenGL-es, Koordinaten

Android OpenGL-es Frage anzeigen. In openGL liegt die Standardposition von Kamera und Ansicht bei 0,0. Wie stellst du die Ansicht und die Kamera so ein, dass sie im Grunde genommen genauso funktioniert wie der Computer Bildschirmkoordinaten mit 0,0 oben. Ich habe gl.glOrthof (-screenWidth / 2, ScreenWidth / 2, -ScreenHeight / 2, ScreenHeight / 2) aufgerufen. Aber ich denke, das ist falsch. Ich muss auch die Kamera einstellen, um das gesamte Feld zu sehen. Ich bin nicht sicher, wie gl.glfustumf verwendet wird, um diese Aufgabe zu erledigen.

Antworten:

11 für die Antwort № 1

Um Ihre Eckpunktkoordinaten als Bildschirmkoordinaten zu verwenden, verwenden Sie einfach glOrtho(0, width, height, 0, -1, 1) auf der Projektionsmatrix und behalte deine ModellansichtMatrixidentität (was der Standard ist). Beachten Sie, dass ich unten und oben gewendet habe, da GL (0,0) unten links ist und Sie es oben haben wollen (aber denken Sie daran, dass dies auch jedes Objekt und damit die Reihenfolge des Dreiecks umdreht). Sie haben auch vergessen, die nahen und fernen Ebenen zu setzen (alles mit az aus diesem Intervall wird nicht angezeigt). Aber wenn Sie jetzt alle Ihre Objekte mit z = 0 zeichnen (was der Standard ist, wenn nur 2d Vertices gezeichnet werden), Alles sollte gut sein.

glFrustum ist nur eine Alternative zu glOrtho. Woher glOrtho bildet eine orthographische (parallele) Ansicht, glFrustum erstellt eine perspektivische Ansicht. Also brauchst du nicht glFrustum.


Am beliebtesten