我目前有两个纹理应用于单个对象。最终会增加一些,但我无法让当前的两个正常工作。
目前,我正在将我的fragcolor设置为两个加在一起的图像。我所做的一切与以下内容类似:
gl_FragColor = texture1 + texture2;
我确信有更好的方法可以开始做这些事情,但它也会产生这样的问题,即图像重叠的地方(显然)加在一起,这不是我想要对我当前的项目做的事情。
我不确定这只是一个问题,只有我的fragColor,其中有一些内置的GLSL功能来做这样的事情,或者如果我需要做一些事情,比如事先用其他方式组合图像。
编辑:: 添加颜色的示例我的意思是:http://i.imgur.com/0vH4F.png
答案 0 :(得分:2)
我认为你想要在着色器中混合两个纹理,而不是通过常规混合来实现它。我相信这样的事情应该有用 - 如果你做出假设,你可以简化这个。
gl_FragColor = backgroundcolor;
gl_FragColor = (gl_FragColor*(1-texture1.a))+(texture1*texture1.a);
gl_FragColor = (gl_FragColor*(1-texture2.a))+(texture2*texture2.a);
编辑:
这里的最终答案最终是定期混合,而不是在片段着色器中混合。