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

Sti*_*ens 49 3d

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

小智 76

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

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

这是关于多边形网格的很好的参考.

平面网格

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

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

效率

三角形也非常有效,并且可以进行排序,并且在使用三角形条带时可以非常快速地渲染,在第一条条带之后每个附加三角形只需要存储1个点.

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

Triangle Fans是三角地带的一个特例.

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

  • 您能解释一下为什么非平面表面不可渲染吗?您能解释一下不可渲染是什么意思吗? (3认同)

Geo*_*off 13

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


Hyp*_*eus 11

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