三角形具有两个面。我们使用了以下约定区分正反面。如果三角形顶点是有序的v0,v1,v2,然后我们像这样计算三角形法线n:
从法线矢量发射侧是前侧,而另一侧是背侧。图5.30显示了这一点。
我们说一个三角形是前向如果观察者看到一个三角形的前侧,我们说一个三角形背向如果观看者看到一个三角形的背面。从我们的图5.30的角度看,左边的三角形是前向而右三角形背向。此外,从我们的角度来看,左三角形顺时针排序而右三角形逆时针排序。
现在,在3D世界中的大多数对象是封闭的立体物体。假设我们同意以法线方向始终向外指向造三角形。然后,摄像头看不到三角形的背侧,因为一个实体对象的背向三角形被前向三角形遮盖;图5.31(二维)5.32(三维)说明了这种情况。因为前向三角形遮盖背向三角形,绘制它们没有意义。背面剔除是指从管线废弃背向三角形的过程。这可以潜在地减少需要由被处理的一半三角形的量。
默认情况下,Direct3D以三角形顺时针环绕顺序(相对于观看者)为前向,三角形逆时针环绕顺序(相对于观看者)为背向。然而,这一惯例可以用逆转Direct3D的渲染状态设置。
本文固定链接: http://www.oxox.work/web/directx11/backface-culling/ | 虚幻大学