为什么三角形总是用于在3D中绘制曲面?为什么不是方形或其他形状?
答案 0 :(得分:74)
三角形永远不会是非平面的;任何超过3个点的东西都可以是非平面的,因此除非转换为三角形,否则不可渲染。
例如:正方形是位于同一平面上的两个三角形,如果构成正方形的所有点都是共面的。需要进行大量计算以确保所有点都是共面的,因此所有大于3个点的多边形都是通过将它们抽取为三角形来预先计算的,并进行测试以确保所有点共面一次,而不是在每个渲染的帧上。
这是一个很好的参考about polygon meshes。
平面网格
http://softimage.wiki.softimage.com/xsidocs/ca0c8514.jpg
非平面网格
http://softimage.wiki.softimage.com/xsidocs/ca0c854b.jpg
还有一个可能使其更清晰的例子
非平面网格是退化的,无法以任何合理的方式对正确进行排序或渲染。三角形没有这个问题。
<强>效率强>
三角形也非常有效,可以进行排序,并且在使用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引擎为您提供更复杂的基元,如球体,圆锥体,圆柱体,甜甜圈等等。 查看您的图书馆文档。