我想完成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