2010-10-24 35 views
0

我有一组纹理,我需要在不同的顶点绘制纹理,以便每个纹理都可见。我无法定义一组静态顶点,因为我动态加载纹理,我不知道每次会加载多少纹理(我根据条件选择它们)。如何在openGLES中的glVertexPointer()中动态创建顶点

这就是我的代码现在的样子。

for(int i=0;i<num_img;i++) 
{  
    glLoadIdentity(); 
    glTranslatef(0.0, 0.0, -3.0); 
    glRotatef(rot, 1.0, 1.0, 1.0); 
    glBindTexture(GL_TEXTURE_2D, texture[i]); 
    glVertexPointer(3, GL_FLOAT, 0, vertices); 
    glNormalPointer(GL_FLOAT, 0, normals); 
    glTexCoordPointer(2, GL_FLOAT, 0, texCoords); 
    glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); 
} 

反正是有动态生成,可以为()glVertexPointer的最后一个参数传递的顶点?

回答

0

你知道你将使用的最大顶点数吗?也许你可以创建vertices阵列为最大尺寸,然后在glVertexPointer的第一个参数中,只传递实际使用的顶点数。

+0

是不是glVertexPointer()的第一个参数每个顶点的坐标数,而不是指针中顶点的数量?从文档“指定每个顶点的坐标数,必须是2,3或4.初始值为4.” – Samuel 2011-12-29 19:24:33