金属纹理在RGBA和BGRA格式之间进行权衡

时间:2018-11-19 16:31:05

标签: ios opengl-es metal

我正在使用Metal开发iOS应用程序,并且可以选择将RGBA或BGRA用于纹理格式。该应用程序将是:

  • 渲染为纹理
  • 在屏幕上绘制纹理
  • 从纹理生成UIImages
  • 初始化UIImages中的纹理

在选择BGRA上的RGBA时是否存在性能折衷?后两点将我引向RGBA,但我也注意到MTKTextureLoader默认为BGRA纹理。我找不到任何解决金属中RGBA和BRGA之间差异的应用笔记。

1 个答案:

答案 0 :(得分:0)

BGRA是iOS设备上纹理和图像数据的默认和最佳格式。虽然支持RGBA,但是在使用UIImage和CoreGraphics读取RGBA纹理时,使用RGBA格式会导致实际的性能问题,因为这些层会静默地对每个像素重新排列字节(这会损害每个像素的性能)。可以通过设备上的memcpy()复制BGRA本地数据。