【问题标题】:OpenGL ES, Changing texture format from RGBA8888 to RGBA4444 will improve fill rate?OpenGL ES,将纹理格式从 RGBA8888 更改为 RGBA4444 会提高填充率吗?
【发布时间】:2011-03-01 14:57:24
【问题描述】:

我正在使用 Alpha 测试渲染大量大图像,并且达到了填充率。

如果我将纹理格式从 RGBA8888 更改为 RGBA4444,填充率会提高吗?

编辑:硬件是 Iphone 3GS 和 OpenGL 1.1 版

【问题讨论】:

    标签: performance opengl-es


    【解决方案1】:

    做了一些测试,我发现了以下内容:

    • 将 png 加载为 RGBA8888 我得到 42fps
    • 将 png 加载为 RGBA4444 我得到 44fps
    • 加载 pvrtc2 我得到 53 fps(我不得不将纹理大小加倍,因为它不是平方的)

    似乎从 rgba8888 更改为 rgba4444 并没有提高帧率。但是使用 pvrtc2 可能会。

    【讨论】:

    【解决方案2】:

    您没有具体说明您要询问的特定硬件,但 Apple 有 this 介绍 iOS 设备中的 PowerVR GPU:

    如果您的应用程序无法使用 压缩纹理,考虑使用 较低精度的像素格式。一种 RGB565、RGBA5551 或 RGBA4444 格式占用一半内存 RGBA8888 格式的纹理。采用 RGBA8888 仅当您的应用程序 需要这种质量水平。

    虽然这会提高内存使用率,但我不确定它是否会对填充率产生显着影响。您可能会看到一次在缓存中保存更多纹理的改进,但我会听 Tommy 的观点,即每像素操作更可能成为瓶颈。

    此外,在纹理大小方面,与降低纹理像素格式的精度相比,使用纹理压缩(如 PowerVR GPU 的 PVRTC)可以在更小的尺寸下获得更好的图像质量。

    【讨论】:

    • 硬件为 Iphone 3GS 和 OpenGL 1.1 版;关于质量,这取决于图像。对于类似照片的图像,pvrtc 可能更好。对于类似卡通的图像,RGBA4444 会好很多。
    猜你喜欢
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 2020-05-04
    相关资源
    最近更新 更多