2016-10-04 4 views
1

Привет Я портирования приложения OpenGL в OpenGL ES 3.0 и интересно, если существует какой-либо эквивалентную функцию glVertexAttribI2iglVertexAttribI2i эквивалент в OpenGL ES 3

void glVertexAttribI2i(GLuint index​, GLint v0​, GLint v1​); 

Ближайший я мог бы найти Глес является glVertexAttrib family, который док говорит:

Эти команды могут использоваться для указания одного, двух, трех или всех четырех компонентов общего атрибута вершины, заданного индексом. ... Аналогично, 2 в названии команды указывает, что для первых двух компонентов установлены значения, третий компонент будет установлен в 0, а четвертый компонент будет установлен в 1 ...

Кто-нибудь может каким-либо образом использовать некоторые из этих функций для замены glVertexAttribI2i?

+0

Я также рассматриваю что-то вроде glVertexAttribIPointer (index, 2, GL_INT, 0, arrayWithV0AndV1) – gabocalero

ответ

0

Вы всегда можете использовать glVertexAttribI4i и передавать нули для последних двух компонентов.

Но это не так, как вы можете использовать glBegin/End -строчный рендеринг немедленного режима в ES 2.0+. Так что независимо от того, что вы думаете, что вы делаете с этими функциями, вероятно, не будет особенно быстро. Вы не должны относиться к ним как к умному способу обеспечения формы шейдерам. Действительно, лучше притвориться, что их вообще нет.

+0

Если я использую glVertexAttribI4i, он будет писать нули в смежной позиции памяти, превышая пространство памяти атрибутов, не так ли? – gabocalero

+0

@grabox: [Нет (см. Четвертый абзац)] (https://www.opengl.org/wiki/Vertex_Specification#Vertex_format). –