【问题标题】:Whether using mipmap technique for mapping texture can save energy?使用mipmap技术映射纹理是否可以节省能源?
【发布时间】:2014-09-09 03:46:42
【问题描述】:

在映射纹理时使用 mipmap 可以提高渲染速度并减少伪影。最近,我写了一个测试平台来表征 3D 图形的功耗,我发现当我使用 mipmap 技术时,应用程序会消耗更多的功耗!合理吗? 而且,性能与映射到对象的图像大小有关系吗?

【问题讨论】:

    标签: opengl opengl-es-2.0 texture-mapping mipmaps


    【解决方案1】:

    您会发现使用 mipmapping 会增加功耗,这听起来很令人惊讶。但是有可能的解释为什么它会在某些情况下发生。

    • 一方面是对 mipmapped 纹理进行采样需要读取更多的纹素。对于三线性过滤,您需要 8 个纹素,而在非 mipmapped 纹理上进行双线性采样只需要 4 个纹素。所以 mipmapping 需要两倍的纹理读取。

    • 纹理采样单元必须为三线性插值做更多的工作。不确定在这种情况下一个典型的采样单元是否真的会消耗更多的功率,但似乎有可能。

    • 在不利的情况下,mipmapping 实际上可能需要更多的内存带宽。假设您对使用整个纹理的多边形进行采样,并且纹理只是略微缩小,因此 LOD 为例如 0.5。在这种情况下,您需要读取所有级别 0 和所有级别 1。这比读取非 mipmapping 情况下仅读取级别 0 多 25%。

    • 显然,生成 mipmap 也会消耗电力。但只要你这样做一次,然后多次使用纹理,就没有多大关系了。

    除了质量考虑之外,一般的想法当然是 mipmapping 会更有效,因此使用更少的能量。在更高的 LOD 值(即更强的缩小)下,我当然希望它会发挥作用,因为内存带宽要求会更低。或者换句话说,缓存命中率会更高。

    总之,我的理论是,如果您主要在低 LOD 值下采样,mipmapping 可能会使用更多功率,而在高 LOD 值下它会更省电。

    【讨论】:

    • 如果您不使用三线性(或各向异性)过滤会怎样?
    • 那么我可能的大部分解释都不适用。但是没有至少三线性过滤的 mipmapping 似乎不是很有用。你不会得到坏文物吗?
    • 随着卡片切换 LOD 级别,您可以获得轻微的弹出效果。但这是在三线性过滤变得足够便宜之前使用的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 2023-01-21
    • 2016-08-30
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多