现代OpenGL咋绘制四边形网格结构

就是要四边形网格转三角形网格,很简单。

■网友
早期OpenGL是支持四边形图元的
GL_QUADS GL_QUAD_STRIP
不过现在四边形图元早已经deprecated

其实本人猜测之所以早期OpenGL会有四边形图元
是因为当时的3D硬件都还很少
但是2D硬件却已经很成熟了
所以当时很多硬件支持2D Sprite的变形
所以当时想做3D游戏
都会使用四边形图元
因为这可以利用当时的2D硬件来加速渲染

所以可想而知当时的模型数据基本都是使用了四边形图元的
早期OpenGL为了支持这些已有的模型数据
所以加入了四边形图元

四边形图元有非常明显的缺点
因为空间中任意取四个顶点 并不一定在同一个平面上
如果不在同一平面上就分割成两个三角形的话 有2种分割办法
显然不同的分割方法会产生不同的网格

所以很显然不应该继续使用四边形网格
【现代OpenGL咋绘制四边形网格结构】 使用三角网格才是正确的做法

■网友
http://github.prideout.net/quad-meshes这篇博文里有个小技巧。用LINES_ADJACENCY传index buffer,再在geometry shader中生成三角面。博客作者曾就职于NVIDIA和皮克斯。


    推荐阅读