5.10.2 背面剔除

三角形具有两个面。我们使用了以下约定区分正反面。如果三角形顶点是有序的v0,v1,v2,然后我们像这样计算三角形法线n:

normal n

从法线矢量发射侧是前侧,而另一侧是背侧。图5.30显示了这一点。

我们说一个三角形是前向如果观察者看到一个三角形的前侧,我们说一个三角形背向如果观看者看到一个三角形的背面。从我们的图5.30的角度看,左边的三角形是前向而右三角形背向。此外,从我们的角度来看,左三角形顺时针排序而右三角形逆时针排序。

front-back facing

现在,在3D世界中的大多数对象是封闭的立体物体。假设我们同意以法线方向始终向外指向造三角形。然后,摄像头看不到三角形的背侧,因为一个实体对象的背向三角形被前向三角形遮盖;图5.31(二维)5.32(三维)说明了这种情况。因为前向三角形遮盖背向三角形,绘制它们没有意义。背面剔除是指从管线废弃背向三角形的过程。这可以潜在地减少需要由被处理的一半三角形的量。

back culling 2D back culling 3D

默认情况下,Direct3D以三角形顺时针环绕顺序(相对于观看者)为前向,三角形逆时针环绕顺序(相对于观看者)为背向。然而,这一惯例可以用逆转Direct3D的渲染状态设置

 

本文固定链接: http://www.oxox.work/web/directx11/backface-culling/ | 虚幻大学

 

 

发表评论

电子邮件地址不会被公开。