我想完成GLSL着色器,它可以纹理和着色我的顶点对象。事实上,它为我工作在2 3情况:用于纹理,颜色和纹理/颜色的片段着色器GLSL
1)如果我只分配一个纹理(但没有具体的颜色 - 这样的颜色为“白色”),我只是得到一个纹理对象 - 工程
2)如果我有一个质地和分配一个颜色,我得到那个颜色调制的纹理对象 - 工程
3)如果我只分配了颜色,但没有质感,我得到一个黑色的物体 - 没有按不工作
我的着色器看起来像这样:
varying lowp vec4 colorVarying;
varying mediump vec2 texcoordVarying;
uniform sampler2D texture;
void main(){
gl_FragColor = texture2D(texture, texcoordVarying) * colorVarying;
}
我想,如果没有分配纹理,texture2D(...,...)将返回零 - 这似乎是问题所在。如果没有纹理分配(在这种情况下,我只想简单地使用gl_FragColor = colorVarying;),我可以检查GLSL中的一种方法:
“如果”在GLSL Shader中不是真正的选项, - 任何想法来完成这个?或者是否真的有必要为这两种情况制作两种不同的着色器?
我想你的意思'textureFlag'和'textureMask'有相同的变量名 –
你完全正确。无论如何我还是在编辑中使用'mix'的替代方法。我很确定我有这些争论的正确方法。 – Tommy