繁体   English   中英

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

[英]What is a quick algorithm for converting a matrix of squares into a triangle strip?

假设有一个4x4的正方形,其中有16个较小的正方形,并带有有关正方形外观的相关数据(即不透明度,颜色等)。

是否存在现有的高效算法,可以将这组正方形转换为与open-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 * Pointer设置所有内容,并使用带有GL_QUADS的glDrawElements进行渲染。 顶点缓存将处理已转换的顶点:第一个顶点之后的每个四边形仅需要转换2个顶点。

我认为,如果对元素数组缓冲区进行一些三段四段操作 ,您将不会获得任何收益。

如果要剥离它,请创建相应的元素数组缓冲区,并为每行调用glDrawElements。 可以使用仅Nvidia扩展GL_NV_primitive_restart在一个呼叫中完成此操作

如果不是网格,可以尝试使用NvTriStrip

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM