【发布时间】:2012-07-28 18:35:25
【问题描述】:
我正在使用 LibGDX 开发一个简单的绘画应用程序,但我无法通过我使用的设置正确“绘画”它。我尝试这样做的方法是使用精灵进行绘制,并在适当的时候使用 LibGDX 的 FBO 命令将这些单独的精灵添加到背景纹理中。
我遇到的问题与混合有关,因为当精灵被添加到我正在构建的这个纹理中时,精灵的任何透明像素都位于已绘制到先前像素之上的像素将变亮大幅上涨,这显然看起来不太好。以下是结果的样子,使用绿色>红色渐变的圆圈作为“画笔”。顶行现在是背景纹理的一部分,而底行仍然是纯精灵绘制的形式。
http://i238.photobucket.com/albums/ff307/Muriako/hmm.png
基本上,每个精灵的透明区域都会照亮它们下方的任何东西,我需要让它们完全透明。我弄乱了许多不同的混合模式组合,但找不到更好的组合。例如 GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA 就没有这个问题,但是每个精灵的透明像素似乎都降低了 alpha,甚至从下面的图层中获取了一些颜色,这看起来更烦人。
我很乐意根据要求发布任何代码 sn-ps,但自从我开始尝试解决这些问题以来,我的代码变得有些混乱,所以我宁愿只在必要时发布必要的部分。
【问题讨论】:
标签: opengl-es libgdx framebuffer blending fbo