Я написал простую демонстрацию Vulkan с изображениями BGRA, запрошенными из swapchain. Если я выведу на него пиксели RGBA, R-канал и G-канал в конечном результате поменяются местами.
Но когда я проверил демонстрацию в каталоге Vulkan SDK, я обнаружил, что он также использует представление изображения BGRA для вывода цвета (я проверил это в коде и RenderDoc), но окончательный результат верен!
Итак, когда произошло преобразование? Я что-то пропустил?
демо выход vulkan
Демо Vulkan имеет вывод в формате BGRA
Мой плохой результат
Редактировать:
Извините за отсутствие кода. Первый ответ подсказал мне, как найти настоящую проблему при загрузке изображения с диска с помощью FreeImage. Загружаемые изображения сохраняются в формате BGRA с настройками по умолчанию в Windows:
Спасибо за вашу помощь и совет, @opa и @solidpixel.
Вы либо неправильно настраиваете чтение текстуры, либо неправильно настраиваете запись в свопчейне. Если бы мне пришлось предположить, что вы загружаете данные в неправильный формат текстуры, но без полного примера это сложно сказать.
В нынешнем виде это будет работать намного лучше в качестве комментария, чем ответа, ответы должны быть полезны сами по себе, а этот просто нет.
Что ж, учитывая, что OP упомянул, что свопчейн был той же настройкой, что и пример, который работал, вероятно, что чтение текстуры является проблемой. Тем не менее, в следующий раз напишу в качестве комментария ...
Без кода мы не сможем вам помочь, ваш вопрос может в конечном итоге быть закрыт и помечен, если в ваш вопрос не будут внесены изменения.