GL_TRIANGLE_FAN Vs GL_TRIANGLE_STRIP

由于OPENGL ES 取消了QUAD 等的支持,所以所有多边形都得需要从三角面片来组合成。这样就需要通过GL_TRIANGLE_FAN和GL_TRIANGLE_STRIP来组织顶点,通过画多个三角面片来组成一个需要得形状。

GL_TRIANGLE_FAN 和 GL_TRIANGLE_STRIP 就决定了不同得顶点组织方式。

 

GL_TRIANGLE_STRIP - OpenGL的使用将最开始的两个顶点出发,然后遍历每个顶点,这些顶点将和他的前2个顶点一起组成一个三角形。 GL_TRIANGLE_FAN - 在跳过开始的2个顶点,然后遍历每个顶点,让OpenGL将这些顶点和它前一个,以及数组的第一个顶点一起组成一个三角形。 

 

以一个4面体为例:

 

GL_TRIANGLE_FAN  模式下:

new float[] { 

    1, 1,-1, // Bottom right 

   -1, 1,-1,// Bottom left
   -1, 1, 1,// Bottom right
    1, 1, 1// Top right
  },

 

 

GL_TRIANGLE_STRIP 模式下:

new float[] {     
   -1, 1,-1, // bottom left
   -1, 1, 1, // bottom right
   1, 1,-1,  // top left
    1, 1, 1  // top right
  },

你可能感兴趣的:(float)