0
我在看蘋果如何使用頂點數組的例子:如何OpenGLES知道哪個屬性陣列指的是
typedef struct _vertexStruct
{
GLfloat position[2];
GLubyte color[4];
} vertexStruct;
enum {
ATTRIB_POSITION,
ATTRIB_COLOR,
NUM_ATTRIBUTES };
void DrawModel()
{
const vertexStruct vertices[] = {...};
const GLubyte indices[] = {...};
glVertexAttribPointer(ATTRIB_POSITION, 2, GL_FLOAT, GL_FALSE,
sizeof(vertexStruct), &vertices[0].position);
glEnableVertexAttribArray(ATTRIB_POSITION);
glVertexAttribPointer(ATTRIB_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE,
sizeof(vertexStruct), &vertices[0].color);
glEnableVertexAttribArray(ATTRIB_COLOR);
glDrawElements(GL_TRIANGLE_STRIP, sizeof(indices)/sizeof(GLubyte),
GL_UNSIGNED_BYTE, indices);
}
(source)
如何OpenGL的知道哪一個是顏色和哪一個是頂點? ATTRIB_POSITION
和ATTRIB_COLOR
是用戶定義的,所以opengl不應該知道它的含義。具體來說,我嘗試使用常量顏色和頂點/紋理數組。如果我將ATTRIB_COLOR
更改爲ATTRIB_TEXTURE
OpenGL不會注意到一件事,我該怎麼做?
因此,如果沒有着色器,我不能使用它? – Dani
@Dani是的,OpenGL ES 2.0需要使用着色器。 –
@MatiasValdenegro:它是否提供默認着色器? – Dani