我们目前正在为视频游戏中的纹理切换到WebP。我们遇到了一个问题,即图像中alpha通道设置为零的区域最终会丢失所有细节。您可以在以下示例中看到此效果:
Original Image (left is color channels, right is alpha channel)
正如您所看到的,零-α区域已经失去了细节。
当alpha通道用作透明度时,此优化很有意义。但是,在我们的游戏中,我们将alpha用于其他东西,并且需要独立于alpha通道保持颜色通道的完整性。如何在编码器中禁用此效果,以便颜色通道正常编码?
我应该提到我在C ++中使用libwebp,调用函数WebPEncodeRGBA。
谢谢!
答案 0 :(得分:0)
找到解决方案。在通过libwebp代码进行跟踪后,我在WebPConfig中发现了一个名为" exact"的未记录的选项。将此值设置为1将阻止库在编码时优化零-α区域。
答案 1 :(得分:0)
https://developers.google.com/speed/webp/docs/cwebp
在本文档中,-exact参数已记录。
-精确 将RGB值保留在透明区域中。默认为关闭,以提高可压缩性。