Ich habe ein OpenGL-Programm, das OpenGL 3.2 Core-Profil auf Mac OS X und OpenGL ES 2.0 auf iOS verwendet.Punkt Sprites mit gl_PointSize rendert mit einer anderen Größe in OpenGL ES 2.0 und OpenGL 3+
Ein Teil meiner Anwendung rendert Sprites durch Schreiben auf gl_PointSize
im Vertex-Shader. Leider scheint gl_PointSize
in OpenGL 3 etwa 50x größer zu sein als in OpenGL ES 2.0. Die Dokumentation für jedes API besagt, dass gl_PointSize
die Anzahl der Pixel definiert, so dass ich nicht sicher bin, warum dies der Fall sein würde. Gibt es vielleicht einen Standard-OpenGL-Parameter, der die Ausgabe von gl_PointSize
geändert hat? Gibt es noch etwas, das den enormen Größenunterschied verursachen könnte?
Jede Plattform verwendet genau den gleichen Shader (Desktop hat ARB_ES2-Kompatibilität). Ich habe auch überprüft, dass alle gleichförmigen Eingänge identisch sind und beide mit der gleichen Auflösung rendern. Außerhalb des Shaders ist der einzige Punkt, den ich mit Sprite in Verbindung bringe, glEnable(GL_VERTEX_PROGRAM_POINT_SIZE);
. Auf jeder Plattform unabhängig voneinander kann ich die Punktgröße gut anpassen.
jeweils 50% von X und Y? –
@ NicolBolas Das ist 50x, was eine grobe Schätzung ist, um anzuzeigen, dass das eine viel größer ist als das andere. Da es sich um ein Punkt-Sprite handelt, würde ich annehmen, dass es immer gleich x und y wiedergibt. –
Welche Werte verwenden Sie eigentlich? Eine Erklärung ist, dass Sie Größen verwenden, die über dem unterstützten Limit für iOS liegen. –