为什么3D引擎主要使用三角形来绘制曲面?

时间:2011-05-23 17:12:49

标签: 3d

为什么三角形总是用于在3D中绘制曲面?为什么不是方形或其他形状?

3 个答案:

答案 0 :(得分:74)

三角形永远不会是非平面的;任何超过3个点的东西都可以是非平面的,因此除非转换为三角形,否则不可渲染。

例如:正方形是位于同一平面上的两个三角形,如果构成正方形的所有点都是共面的。需要进行大量计算以确保所有点都是共面的,因此所有大于3个点的多边形都是通过将它们抽取为三角形来预先计算的,并进行测试以确保所有点共面一次,而不是在每个渲染的帧上。

这是一个很好的参考about polygon meshes

平面网格

http://softimage.wiki.softimage.com/xsidocs/ca0c8514.jpg

非平面网格

http://softimage.wiki.softimage.com/xsidocs/ca0c854b.jpg

还有一个可能使其更清晰的例子

http://download.autodesk.com/us/maya/2010help/images/MED/Stargate/English/Poly/comp_poly_customwarpeg.png

非平面网格是退化的,无法以任何合理的方式对正确进行排序或渲染。三角形没有这个问题。

<强>效率

三角形也非常有效,可以进行排序,并且在使用Triangle Strips时可以非常快速地渲染,在第一个之后每个额外的三角形只需要存储1个点。

http://upload.wikimedia.org/wikipedia/en/0/03/Triangle_Strip.png

Triangle Fans这是Triangle Strip的一个特例。

http://www.codesampler.com/d3dbook/chapter_05/chapter_05_files/image008.jpg

答案 1 :(得分:13)

由于3点是定义平面表面所需的最小值,因此可以使用许多三角形模拟任何形状,并且存在快速将三角形绘制到屏幕上的有效算法。

答案 2 :(得分:11)

基本上任何复杂(表面)结构都可以表示为一串三角形。三角形是最原子和最原始的几何。因此它几乎用作任何东西的基础。 然而,大多数3D引擎为您提供更复杂的基元,如球体,圆锥体,圆柱体,甜甜圈等等。 查看您的图书馆文档。