2011-01-30 43 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