我就应该总是呈现时使用这种方法?是否坏显卡减慢多少?

如果最终的结果不会有很多被淘汰的面孔,我应该甚至是使用这种方法呢?

有帮助吗?

解决方案

如果您所有的型号都正确定义(凸,一致顶点绕组),扑杀永远不会伤害性能,并且几乎总是有助于提高性能。

想象一下,你正在绘制一个立方体,与扑杀禁用。立方体的背面(远侧)面得到呈现背对你,你选择了应用得到任何背面材料属性。然后在立方体的前面得到呈现:因为刚刚呈现的是,背面是立方体的内部,它们是100%遮挡由正面

如果该立方体取向不同,该前表面可以被首先被光栅化,但背面会继续处理,然后将片段拒绝由z缓冲。

净结果:你光栅化2倍一样多的片段作为必要的。这得到是一个大的处理大量的多边形或复杂的像素着色器的。面对扑杀让您完全避免栅格化的面孔,你知道会不会出现。

如果你有一个人物模型〜100,000多个多边形,面剔除一半的工作量像素硬件所要做的每一帧。这是一个很大的节省,如果你有大的表面着色器。

如果你与小模型,无着色工作,扑杀真的没关系这些天。但它是很好的做法,使反正。

其他提示

启用面剔除(通常背面)对渲染性能显著影响。

现在要回答的问题是那么“为什么不剔除默认启用或者为什么并不总是使用?”有其中确定是否使能剔除是可行的或不几个因素。其一是所呈现的模型,它是如何看待。

有关模型中的每个多边形,如果只有一个面部正面或背面是可见的(当模型是从所有可能的角度观察),那么我们可以剔除的另一面。

有关例:“魔方”,不管你是从内部或它的外面看,在旋转时,你可以看到,每6个多边形,其化妆立方体只有一面

另一个实施例:如在我的海战争(3D)游戏“的船舶模型的帆”,船舶模型的风帆是与几个扁平多边形构建的表面。当周围的水船移动时,可以看到帆的两侧。在这种情况下剔除的面的任一不期望的。

因此剔除可以为所有场景中的随后立方体语义和禁用所有其他型号的型号被启用。

P.S。面剔除应该尽可能使用。

这取决于你所渲染的东西。一般而言剔除是理想的。唯一的原因,我可以想像,不使用它来呈现有肉眼可见的backfaces模型。其中,剔除可能不希望另一种情况可能不佳建模,其中顶点以错误的顺序定义的模型。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top