#c #opengl-es-2.0
#c #opengl-es-2.0
Вопрос:
В настоящее время мне нужно перенести приложение с GL на GLESv2, и мне интересно, для чего соответствующий вызов glColor4f
в OpenGL ES 2.0.
Я читал о glVertexAttrib4f
, но я не могу понять, как его использовать.
Ответ №1:
glColor4f является частью старого конвейера фиксированных функций, и теперь он устарел. Обычно было два варианта использования glColor4f….
- Чтобы задать цвет до рендеринга модели, чтобы вся модель имела одинаковый цвет.
- Чтобы установить другой цвет для каждой вершины.
В OpenGL на основе GLSL теперь вам нужно сделать это с:
- Создайте единый vec4 в своем шейдере, используйте glGetUniformLocation, чтобы получить местоположение вашего атрибута «color», затем используйте glUniform4f для установки значения.
- Создайте в своем шейдере переменный vec4, используйте glGetAttribLocation для запроса местоположения вашего атрибута «vert_colour», а затем, чтобы указать данные о цвете, используйте glVertexAttribXX, если вы действительно хотите имитировать старый подход glBegin / glEnd, или, предпочтительно, используйте glVertexAttribPointer, чтобы указать шейдеру, чтобы прочитать данные из VBO.