为什么3D引擎主要使用三angular形绘制表面?
为什么三angular形总是用于在3D中绘制曲面? 为什么不是方形或其他形状?
三angular形不能是非平面的; 超过3个点的任何东西都可以是非平面的,因此不可渲染,除非转换为三angular形。
例如:如果组成方形的所有点都是共面的,则正方形是位于同一平面上的两个三angular形。 需要进行大量的计算才能确保所有的点都是共面的,因此所有大于3个点的多边形都是通过将它们抽成三angular形进行预先计算并进行testing以确保所有点都是共面的在渲染的每一帧上。
这里是关于多边形网格的很好的参考。
平面网格
http://softimage.wiki.softimage.com/xsidocs/ca0c8514.jpg
非平面网格
http://softimage.wiki.softimage.com/xsidocs/ca0c854b.jpg
还有一个例子可以使之更清楚
非平面网格是退化的,不能以任何理智的方式正确分类或渲染。 三angular形没有这个问题。
效率
三angular形的内存效率也非常高,可以进行sorting,并且在使用三angular形条时,渲染速度非常快,只需要在第一个三angular形之后为每个额外的三angular形存储一个点。
http://upload.wikimedia.org/wikipedia/en/0/03/Triangle_Strip.png
和Triangle Strip的特例三angular球迷 。
http://www.codesampler.com/d3dbook/chapter_05/chapter_05_files/image008.jpg
由于3点是定义平面曲面所需的最小值,因此可以使用许多三angular形来模拟任何形状,并且存在快速绘制三angular形到屏幕上的有效algorithm。
基本上任何复杂的(表面)结构都可以表示为一束三angular形。 三angular形是最primefaces和最原始的几何形状。 因此,它被用作几乎任何东西的基础。 尽pipe如此,大多数3D引擎为您提供了更复杂的基元,如球体,圆锥体,圆柱体,圆环,什么都不是。 检查你的库文档。