Я изучаю OpenGL уже несколько дней, следуя некоторым руководствам и кодируя некоторые собственные эксперименты. Но есть одна вещь, которую я действительно не понимаю, что мешает мне продолжать. Я гуглил уже несколько часов и пока не нашел ответа на свой вопрос.
Где я должен указать каждое отдельное значение цвета и координаты текстуры для каждой отдельной вершины? Должны ли эти свойства всегда быть перечислены в том же массиве (структуре), что и позиции вершин? Примерно так:
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 слишком большим количеством данных.