0

我目前有两个纹理应用于单个对象。最终会增加几个,但我无法让当前的两个正常工作。

目前,我正在将我的 fragcolor 设置为添加在一起的两个图像。从字面上看,我所做的一切类似于:

gl_FragColor = texture1 + texture2;

我确信有一个更好的方法来做这些事情,但它也产生了图像重叠的问题(显然),这不是我想要对我当前的项目做的事情。

我不确定这是否只是我的 fragColor 的问题,其中有一些 GLSL 的内置功能可以做这样的事情,或者我是否需要先以其他方式组合图像。

编辑 :: 我的意思是添加颜色的示例:http: //i.imgur.com/0vH4F.png

4

1 回答 1

2

我认为您想在着色器中混合两种纹理,而不是通过常规混合来进行。我相信这样的事情应该可行 - 如果你做出假设,你可能会简化它。

gl_FragColor = backgroundcolor;
gl_FragColor = (gl_FragColor*(1-texture1.a))+(texture1*texture1.a);
gl_FragColor = (gl_FragColor*(1-texture2.a))+(texture2*texture2.a);

编辑:

这里的最终答案最终是常规混合,而不是在片段着色器中混合。

于 2011-08-29T11:59:58.420 回答