2.10 创建多边形表面模型的一些提示

来源:互联网 发布:剑网三捏脸数据萝莉 编辑:程序博客网 时间:2024/06/05 17:16

终于看到本章的最后一节了。这一节讲了一些提示,这些提示在我们创建物体表面的时候,有用。
下面是创建多边形模拟物体表面的6条提示:

  1. 多边形的方向(环绕)保持一致。从外侧观察表面时,确保组成这个表面的所有多边形都具有相同的方向(都为顺时针或都为逆时针)。
    一致的方向对于多边形剔除和双面光照是极为重要的。

  2. 对表面进行细分时,要密切注意哪些非三角形的多边形,确保多边形所有顶点位于同一个平面上。具有3个顶点的三角形能够保证位于同一个平面上,而具有4个或更多顶点的多边形却无法保证。OpenGL可能无法正确地渲染非平面多边形。

  3. 在显示速度和图像质量之间总存在一种权衡关系。如果把一个表面细分为数量较少的多边形,它的渲染速度可能非常快,但是很可能具有锯齿状外观。如果把它细分为数以百万计的微小多边形,它的显示质量可能非常出色,但是可能需要相当长的渲染时间。理想的做法是向多边形细分函数提供一个参数,表示希望细分所达到的精度。如果物体距离较远,可以使用较为粗糙的细分。另外,在进行细分时,在表面相对较平的区域,可以使用较大的多边形。反之,在曲率很大的表面部分,应该使用很小的多边形。

  4. 为了实现高质量的图像,在轮廓边缘进行更精细的划分显然要比在表面内部进行精细划分的效果更好。但是这样做的话,当物体进行旋转时,由于边缘也在旋转,所以会有一点难度。

  5. 避免在模型中出现T交叉。如图所示。线段AB和BC不能保证与AC重合。有时候确实如此,但有时候情况却不是这样,具体取决于变换和方向。这可能导致表面出现间歇性的开裂现象。这里写图片描述
  6. 如果想创建一个闭合的表面,确保闭合环的起点和终点使用完全相同的坐标,不然可能因为数值的四舍五入而产生有缺口的环。

再往下,是一个例子,这个例子创建一个二十面体。学累了,PASS吧。
具体例子,在下面这个网址,有作者写好了源代码:
http://blog.csdn.net/zamzll/article/details/5965272

0 0
原创粉丝点击