我希望能够在一个片段中混合三种不同的纹理,以便它们均等插值。在GLSL中的一个片段中插入三个纹理(webgl)
我设法得到两个纹理(textureColor1,textureColor2)通过使用第三个纹理(textureColor3)跨越片段混合,这是一个黑色到白色的渐变。我想用三种纹理做类似的事情,但是如果能够插入三个纹理而不需要包含另一个纹理作为掩码,那将会很棒。任何帮助是极大的赞赏。
vec4 textureColor1 = texture2D(uSampler, vec2(vTextureCoord1.s, vTextureCoord1.t));
vec4 textureColor2 = texture2D(uSampler2, vec2(vTextureCoord2.s, vTextureCoord2.t));
vec4 textureColor3 = texture2D(uSampler3, vec2(vTextureCoord1.s, vTextureCoord1.t));
vec4 finalColor = mix(textureColor2, textureColor1, textureColor3.a);
这并不完全清楚你想要实现什么。当你说你想让三种纹理“平等混合”时,你的意思是什么? –
为什么不能将每个textureColorX除以3,然后添加这些值?或者手动任何你想要的“插值算法”。 –
感谢您的帮助!我希望能够同样地混合三种不同的纹理,着色器如何插入分配给每个顶点的三种不同颜色。目前我有一个手写算法,基于它们的alpha来混合纹理。我正在寻找它来插入他们如上所述。 –