高级图形编程(基于opengl)5

1.4 三角形条带

OpenGL应用程序一个简单的提速的方法是三角形或者多边形转换成三角形条带方式存储。当这个模型是直接从NURBS数据或者其他常规几何体中产生,然后直接连接起来组合成长条带。判断第一个三角形可能啊顺时针或者逆时针饶序,然后确定所有后面三角形的饶序是相同的(如图1.10)。扇面三角形也应该有一个正确的饶序,但是所有其他三角面也是相同方向(图1.11)。

  

常规网格,三角形条带应该并排排列如图1.12。目标是是它总条数的数量最少,因此尽量避免使用‘弧形’三角面(也叫做singleton strips)做为条带的一部分。

1.4.1 Greedy Tri-stripping

把模型转换为三角条带一个非常简单的方式叫做gready tri-stripping。一个比较早期的gready算法,叫IRIS GL,允许交换顶点改变邻近边的饶序。在OpenGL,然而,唯一的方式相当于交换重复顶点并创建一个退化的三角形,这比原来的顶点交换的开销要大。

关于OpenGL,一个更好的算法是选择一个多边形,转换为三角形,然后转化多边形后后面的边与后面的三角形共享这个边。得到一个第一个多边形的第一个边开始形成条形路径。这个路径添加到这个模型的最后一个边(如图1.13)。

 

这个三角形条带不能产生一个折边,因此边上的顶点必然会有冗余。一个硬边两侧边的两个三角形对应不同的法线。更为先进的三角拆分算法是尽量保持多边形的所有三角形在一起,详细的说明请参考refer to Evans et al. (1996).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值