想象一下,有一个4x4的正方形,里面有16个较小的正方形,并且有关于正方形应该是什么样的相关数据(即,不透明度,颜色等等)。
是否存在一种现有的,有效的算法,用于将这组方块转换为open-gl兼容的三角形条带?
答案 0 :(得分:1)
我不确定我是否正确理解您尝试渲染的几何体。如果它是一种网格,我就是这样做的:
使用所有顶点创建并填充顶点缓冲区对象:
8--9--a--b
| /| /| /|
|/ |/ |/ |
4--5--6--7
| /| /| /|
|/ |/ |/ |
0--1--2--3
使用用于渲染四边形网格的索引创建并填充元素数组缓冲区:
{ 0,1,5,4, 1,2,6,5, 2,3,7,6, 4,5,9,8, 5,6,a,9, 6,7,b,a }
使用gl *指针设置所有内容,使用glDrawElements和GL_QUADS进行渲染。顶点缓存将处理已经变换的顶点:第一个顶点之后的每个四边形只需要变换2个顶点。
如果 tri-strip 或 quad-strip 它,除了元素阵列缓冲区上的一些内存外,我认为你不会获得任何收益。
如果要剥离它,请创建相应的Element Array Buffer,并为每一行调用glDrawElements。这可以使用仅限Nvidia扩展GL_NV_primitive_restart
在一次通话中完成如果它不是网格,您可以尝试NvTriStrip。