我将具有透明 alpha 的 DDS 图像 (DXT5) 加载到 OpenGL 中。因为 alpha 没有预乘并且不能根据 DXT5规范进行预乘,所以我在纹理的可见部分周围出现了薄薄的黑色光晕,因为我在 GPU 上进行了一些混合操作。我的问题是:什么是最好的解决方法为此。我的 OpenGL 渲染器在从 IO 加载的每一帧上更新场景纹理,所以如果我解压缩 DDS 然后 pre-muliply ,然后压缩回来我会得到巨大的开销。我认为的另一个选择是添加另一个渲染通道并做 pre - 在片段着色器中相乘并渲染到纹理,然后将其用于主通道。这增加了整个管道的开销,因为我已经有一个下降通道数。这里有哪些额外的选项?
问问题
583 次