2011-01-30 72 views
0
float coords[] = { 
       -1.0f, 1.0f, 0.0f, // 0, Top Left 
       -1.0f, -1.0f, 0.0f, // 1, Bottom Left 
       1.0f, -1.0f, 0.0f, // 2, Bottom Right 
       1.0f, 1.0f, 0.0f, // 3, Top Right 
    }; 


    float texCoords[] = { 
      0.0f, 0.0f, 
      0.0f, 1.0f, 
      1.0f, 1.0f, 
      1.0f, 0.0f, 
     }; 

上绘制:的OpenGL-ES TRIANGLE_STRIP错误

gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, coords.length/dimension); 

平局正常,但

gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, coords.length/dimension); 

此只画半方,为什么呢?

回答

3

对于这个工作点的顺序应该是:TL,BL,TR,BR。

当您指定一个风扇时,这些点会绕过第一个点。每个三角形由第一个点,列表中的下一个点和上一个三角形的最后一个点组成。

带子不同。条状三角形使用上一个三角形中的最后两个点和列表中的新三角形。这有一个副作用:每个三角形都有相反的绕组(顺时针比顺时针,然后再顺时针等)。

enter image description here

+0

如果我想画一个球体的顶点,比我应该使用triangle_strip OT triangle_fan?因为在一个球形顶点上,我又看到了一个半球? – lacas 2011-01-30 18:21:44