В OpenGL ES 2.0 , вы, очевидно, не можете сделать
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
больше, чтобы установить матрицу модели, но я думаю, что эти матрицы все еще как-то встроены, поскольку спецификация GLSL говорит вам, как получить к ним доступ в вершинном шейдере.
//
// Matrix state. p. 31, 32, 37, 39, 40.
//
uniform mat4 gl_ModelViewMatrix;
uniform mat4 gl_ProjectionMatrix;
uniform mat4 gl_ModelViewProjectionMatrix;
так как мне передать эти значения моему шейдеру? мне использовать glUniformMatrix4fv
как-нибудь?
Исходный код из OpenGL ES 2.0 Руководство по программированию был полезен для шейдерной части, но все примеры, по-видимому, просто оставляют матричные преобразования в покое и просто проверяют, что их вершины находятся между -1.0 и 1.0 .
ОБНОВЛЕНИЕ: очевидно, Язык шейдеров OpenGL ES не не поддерживает предопределенные записи, такие как gl_ModelViewMatrix
, поэтому единственный ответ - определить собственную модель / представление / матрицы проекций, как в приведенном ниже коде, с использованием glGetUniformLocation
и glUniformMatrix4fv
. Я был смущен, потому что OpenGL Shader Builder поддерживает их, но это просто OpenGL, а не OpenGL ES.