Компромиссы между форматами RGBA и BGRA для металлических текстур - PullRequest
0 голосов
/ 19 ноября 2018

Я разрабатываю приложение для iOS с использованием Metal, и у меня есть выбор: использовать RGBA или BGRA для форматов текстур.Приложение будет:

  • Рендеринг в текстуры
  • Рисование текстур на экране
  • Создание UIImages из текстур
  • Инициализация текстур из UIImages

Есть ли какие-либо компромиссы в производительности для выбора RGBA вместо BGRA?Последние два пункта ведут меня к RGBA, но я также замечаю, что MTKTextureLoader по умолчанию - текстуры BGRA.Я не смог найти никаких замечаний по применению, касающихся различий между RGBA и BRGA в металле.

1 Ответ

0 голосов
/ 20 ноября 2018

BGRA является стандартным и наиболее оптимальным форматом для текстур и данных изображений на устройствах iOS. Несмотря на то, что поддерживается RGBA, использование формата RGBA может привести к реальным проблемам производительности при чтении текстур RGBA с помощью UIImage и CoreGraphics, поскольку эти слои могут переупорядочивать байты для каждого пикселя (это ухудшает производительность для каждого пикселя). Собственные данные BGRA можно скопировать на устройстве с помощью memcpy ().

...