В настоящее время мы переходим на WebP для текстур в видеоигре. Мы столкнулись с проблемой, когда области изображения, для которых альфа-канал установлен на ноль, в конечном итоге теряют все детали. Вы можете увидеть этот эффект в следующем примере:
Исходное изображение (слева — цветовые каналы, справа — альфа-канал)
После сохранения в формате WebP
Как видите, области с нулевой альфой потеряли свою детализацию.
Эта оптимизация имеет смысл, когда альфа-канал используется в качестве прозрачности. Однако в нашей игре мы используем альфа-канал для чего-то другого и должны поддерживать целостность цветового канала независимо от альфа-канала. Как отключить этот эффект в кодировщике, чтобы цветовой канал нормально кодировался?
Я должен упомянуть, что я использую libwebp в C++, вызывая функцию WebPEncodeRGBA.
Спасибо!