什么是将矩形矩阵转换为三角形条带的快速算法?

时间:2010-10-19 15:53:57

标签: algorithm opengl

想象一下,有一个4x4的正方形,里面有16个较小的正方形,并且有关于正方形应该是什么样的相关数据(即,不透明度,颜色等等)。

是否存在一种现有的,有效的算法,用于将这组方块转换为open-gl兼容的三角形条带?

1 个答案:

答案 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