Я изучаю OpenGL в течение нескольких дней, следуя некоторым учебным пособиям и кодируя собственные собственные эксперименты. Но есть одна вещь, которую я действительно не понимаю, что мешает мне продолжать. Я уже несколько часов собираюсь поработать в Интернете и не нашел ответа на свой вопрос.OpenGLES 2.0 отдельные буферы для вершин, цветов и координат текстуры
Где я должен указывать каждое отдельное значение цвета и координату текстуры для каждой отдельной вершины? Должны ли эти свойства всегда указывать в том же массиве (struct), что и позиции вершин? Вроде так:
const Vertex Vertices[] = {
// Front
{{1, -1, 0}, {1, 0, 0, 1}, {TEX_COORD_MAX, 0}},
{{1, 1, 0}, {0, 1, 0, 1}, {TEX_COORD_MAX, TEX_COORD_MAX}},
{{-1, 1, 0}, {0, 0, 1, 1}, {0, TEX_COORD_MAX}},
{{-1, -1, 0}, {0, 0, 0, 1}, {0, 0}},
...
Или есть способ установить значения цвета и координаты текстуры в отдельных массивах? Но тогда возникает вопрос: как я могу позвонить glDrawElements
с отдельными массивами?
В случае, если вам интересно, почему я хочу отделить эти значения: в настоящее время я создаю свой собственный .obj-парсер в obj-c, и мне было интересно: что делать, если вы загружаете модель без текстуры и хотите показать только цвет на объекте? Или: что, если вы хотите загрузить модель с только текстурой, сопоставленной с ней, но без отдельного цвета на вершину? И: Не помещает значения цвета и координаты текстуры, раздувая структуру Vertex со слишком большим количеством данных.
Кристально чистый! ;) – polyclick