Какой эквивалент glColor4f в OpenGLESv2?

#c #opengl-es-2.0

#c #opengl-es-2.0

Вопрос:

В настоящее время мне нужно перенести приложение с GL на GLESv2, и мне интересно, для чего соответствующий вызов glColor4f в OpenGL ES 2.0.

Я читал о glVertexAttrib4f , но я не могу понять, как его использовать.

Ответ №1:

glColor4f является частью старого конвейера фиксированных функций, и теперь он устарел. Обычно было два варианта использования glColor4f….

  1. Чтобы задать цвет до рендеринга модели, чтобы вся модель имела одинаковый цвет.
  2. Чтобы установить другой цвет для каждой вершины.

В OpenGL на основе GLSL теперь вам нужно сделать это с:

  1. Создайте единый vec4 в своем шейдере, используйте glGetUniformLocation, чтобы получить местоположение вашего атрибута «color», затем используйте glUniform4f для установки значения.
  2. Создайте в своем шейдере переменный vec4, используйте glGetAttribLocation для запроса местоположения вашего атрибута «vert_colour», а затем, чтобы указать данные о цвете, используйте glVertexAttribXX, если вы действительно хотите имитировать старый подход glBegin / glEnd, или, предпочтительно, используйте glVertexAttribPointer, чтобы указать шейдеру, чтобы прочитать данные из VBO.