我们目前切换到WebP的纹理在一个视频游戏。我们遇到了一个问题,在图像中,阿尔法通道设置为零的区域最终会失去所有细节。在以下示例中可以看到此效果:
正如你所看到的,零阿尔法区域已经失去了它们的细节。
当alpha通道被用作透明时,这种优化是有意义的。但是,在我们的游戏中,我们使用alpha来做其他的事情,并且需要独立于alpha通道来维护颜色通道的完整性。如何在编码器中禁用此效果,使颜色通道正常编码?
我应该提到,我在C++中使用libwebp,调用函数WebPEncodeRGBA。
谢谢!
发布于 2018-07-09 23:46:45
https://developers.google.com/speed/webp/docs/cwebp
在本文档中,记录了-exact参数。
-exact在透明区域保留RGB值。默认值为off,以帮助压缩性。
发布于 2016-09-13 02:17:03
找到了解决办法。在通过libwebp代码进行跟踪之后,我在中发现了一个名为“精确”的WebPConfig中没有文档的选项。将此设置为1将防止库在编码时优化零阿尔法区域.
https://stackoverflow.com/questions/39465905
复制