【问题标题】:Does back-face culling really improve performance?背面剔除真的能提高性能吗?
【发布时间】:2012-08-18 06:23:28
【问题描述】:

我正在通过在屏幕上绘制的简单立方体来测试面剔除(理论上,在旋转过程中的任何时候都不会绘制 3 个面)。我纠正了我的顶点,使一切都面向正确的方向,然后做了glEnable(GL_CULL_FACE)。问题是我没有看到我得到的帧速率有任何变化(也就是说,cull_face 似乎根本没有提高性能)。

我的情况是否根本不适合剔除?如果是,那么剔除在哪些类型的情况下具有明显优势?

关于我的测试用例:我只是画了一堆散布在一个大立方体中的立方体。增加多维数据集的数量,直到我的帧速率显着下降,这样我就可以衡量性能改进。在更改顶点的处理方式时,我确实看到了改进。但我发现面部剔除没有任何变化。

【问题讨论】:

    标签: opengl


    【解决方案1】:

    光栅化多边形,尤其是简单的着色器/光照,在现代 GPU 上是如此之快,以至于对于小多边形,您可能无法注意到差异。

    如果您想更清楚地看到差异,请尝试使用更大的多边形或更复杂的着色器程序来增加花在着色上的时间百分比。

    【讨论】:

    • 这听起来很合理。我添加了一些全表面的背面多边形,从后向前绘制,仍然没有速度差异。
    • 好的,我将全尺寸多边形数量增加到足够高,我可以开始看到差异。我想知道面部剔除测试是否会增加渲染成本(因此小的收益很容易被扩展计算抵消)?
    • @edA-qamort-ora-y:自 Voodoo 1 天以来,图形硬件中就存在人脸剔除。很有可能你甚至都不会注意到它。
    猜你喜欢
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多