Подтвердить что ты не робот

OpenGL ES 2.0 и glPushMatrix, glPopMatrix

Поддерживает ли OpenGL ES 2.0 поддержку glPushMatrix и glPopMatrix? В настоящее время я использую их следующим образом:

glPushMatrix();
glTranslatef(xLoc, yLoc, 0);
[myTexturePointer drawAtPoint:CGPointZero];
glPopMatrix();

Я спрашиваю, потому что я прочитал несколько вещей об 2,0 "удалении матричного стека из спецификации". Поскольку я относительно новичок в OpenGL, я не уверен, где найти окончательный ответ.

4b9b3361

Ответ 1

Нет, OpenGL ES 2.0 использует программируемый конвейер вместо конвейера фиксированной функции, найденного в более ранних версиях. Вы не можете использовать команды немедленного режима (glVertex, glNormal и т.д.) Или стек матрицы. Вместо этого вы должны реализовать собственную структуру данных стека матриц (что предпочтительнее, так как стек с фиксированной функциональной матрицей имеет глубину, зависящую от реализации) и отправить текущую матрицу в шейдерные программы.

Для хорошего ознакомления с современным OpenGL ознакомьтесь с этими учебниками от Durian Software. Они основаны на OpenGL 2.0, но концепции будут отображаться непосредственно в спецификации ES 2.0.