我将带有透明alpha的DDS图像(DXT5)加载到OpenGL中。因为alpha不是预乘的,也不能基于DXT5 specs预乘,所以我在纹理的可见部分周围得到了稀薄的黑色光晕,因为我在GPU.My上做了一些混合操作。问题是: it.My OpenGL渲染器在从IO加载的每一帧上更新场景纹理的最佳解决方法是:如果我解压缩DDS,然后预乘,然后压缩回来我得到巨大的overhead.Another选项我认为应该是添加另一个渲染过程,并在片段着色器中进行预乘和渲染到纹理,然后将它用于主pass.This,增加了整个流水线的开销,因为我已经有了一个下降数量的passes.What,这里有额外的选项吗?
发布于 2012-11-09 23:37:02
该问题已解决。我有一个损坏的DDS texture.The手动预乘,我默认在片段着色器中与有效的DXT5完美工作。
发布于 2012-11-05 23:58:25
为什么不让你的着色器在原地进行alpha的预乘,然后再做你想做的事情呢?
不需要将其渲染为纹理。只要总是在你的着色器中预乘,对于所有你需要预乘的纹理。
https://stackoverflow.com/questions/13230851
复制相似问题