1
想象一下,拥有一个4x4的正方形,里面有16个较小的正方形,并具有关于正方形应该是什么样子的相关数据(即不透明度,颜色等)。什么是将矩阵矩阵转换为三角形条的快速算法?
是否有一个现有的,高效的算法,用于将这组正方形转换为开放式gl兼容的三角形条?
想象一下,拥有一个4x4的正方形,里面有16个较小的正方形,并具有关于正方形应该是什么样子的相关数据(即不透明度,颜色等)。什么是将矩阵矩阵转换为三角形条的快速算法?
是否有一个现有的,高效的算法,用于将这组正方形转换为开放式gl兼容的三角形条?
我不确定我是否正确理解您尝试呈现的几何图形。如果它是一种将电网这里是我会怎么做:用用于给指数
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 *指针,使用带有GL_QUADS glDrawElements来呈现。顶点缓存将处理已经变换的顶点:第一个四边形之后的每个四边形只需要变换2个顶点。
我不认为你会得到什么,如果你三带或四带它,除了在元素数组缓冲区一些内存。
如果你想剥离它,创建相应的元素阵列缓冲区,并为每一行调用glDrawElements。这可以使用Nvidia唯一的扩展名在一个通话中完成GL_NV_primitive_restart
如果不是网格,您可以尝试NvTriStrip。
谢谢!这是我最终做的,似乎解决了我的问题。 – blueberryfields 2010-10-19 22:05:59
我想补充一点,如果你制作三条线,你不需要为每一行分别绘制调用。您可以制作退化的三角形,将这些行连接成一个可渲染的条。 – codelark 2010-10-19 22:45:36
现在我试图只用GL_TRIANGLES来完成它,但它并没有完全解决。我正在使用一种算法将每个方块变成两个三角形{0,4,1,4,5,1},但是由于原因,当我达到16x16或更高的方块时,它会发生故障。 – blueberryfields 2010-10-20 19:01:29