Я пытаюсь реализовать простую цветовую оценку LUT в металлическом шейдере.Он работает с цветным LUT, но когда LUT имеет оттенки серого, возникают проблемы.Во-первых, загрузка изображения в градациях серого вызывает ошибку «Ошибка декодирования изображения», которая исправляется с помощью этого обходного пути ошибки .
Повторно характеризуя изображение как текстуру в комплекте ресурсов, оно успешно загружается, но на выходном изображении появляются полосы.Конечно же, захват кадра GPU показывает, что в текстуру введены полосы:
Эта полоса не появляется при выполнении быстрого просмотра впакет активов или исходный PNG.Проверка пиксельного формата текстуры показывает, что он был закодирован как ASTC_4x4_sRGB, который в документации Apple указывает на сжатый формат для контента с низким динамическим диапазоном.Кажется, что это сжатие может быть причиной ухудшения текстуры LUT.Обычно при работе с LUT я стараюсь избегать сжатия, но не могу найти способ отключить сжатие или принудительно использовать формат пикселей в MTKTextureLoader.
Я также пробовал различные параметры MTKTextureLoader, включая включение/ отключение sRGB, mipmaps и т. д.
Есть идеи, как исправить полосу?