У меня есть формат чередующегося массива, и я хочу отрендерить его в открытом GL. Это массив треугольников. Вершины - это 2D плавающие точки, а цвета - RGBA. То есть один треугольник выложен вот так:
{vertex.x, vertex.y, color.red, color.blue, color.green, color.alpha, ...}
Где все числа являются поплавками одинарной точности. У меня проблемы с выяснением, каким должен быть параметр формата. Кажется, что ему нужны V2F и C4F, но такой символической константы не существует. Могу ли я или их вместе, как (GL_V2F | GL_C4F)
?
ОБНОВЛЕНИЕ: я использую python и pyopengl. tibur ответ очень ясен, и если бы я программировал на C, я был бы готов. Код Python очень похож, но мне нужно сместить указатель в массив цветов на 8 байт. Я не знаю, как сделать это в Python или даже это можно сделать:
strideInBytes = 24
interleavedBytes = array.tostring()
glVertexPointer(2, GL_FLOAT, 24, interleavedBytes)
glColorPointer(4, GL_FLOAT, 24, interleavedBytes) #The first color actually starts on the 9th byte
Мне нужно избегать копирования всего чередующегося массива. В противном случае я мог бы просто сделать копию и отрубить первые 8 байтов.