我有一個webgl中的顏色和alpha的問題。webgl顏色和alpha
我的JavaScript的程序的一部分:
gl.clearColor(0.0, 0.0, 0.0, 1.0);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
我的片段着色器:
precision highp float;
void main(void)
{
float c = 0.5;
float a = 0.7;
if(gl_FragCoord.x < 310.0) // left color
gl_FragColor = vec4(c, c, c, 1.0);
else if(gl_FragCoord.x > 330.0) // right color
gl_FragColor = vec4(c, c , c , a);
else gl_FragColor = vec4(c/a, c/a, c/a, 1.0); // middle color
}
我渲染一個立方體。
但不幸的是,立方體呈現3種不同的顏色。其結果是:
圖像看到http://fs5.directupload.net/images/160301/hcrpgyc9.png
第一gl_FragColor指令有一個alpha = 1.0。顏色按預期呈現。
第二個gl_FragColor-命令的alpha值爲0.7。
第三個gl_FragColor-命令的最後一個參數是1.0。 r,g和b除以0.7的α值。但我想,這個命令會產生與第二個gl_FragColor-command相同的顏色。看來,我的計算是錯誤的。我能做什麼,以獲得相同的顏色?
測試與鉻和Firefox,在窗戶上。
您能否給我們一個工作代碼片段/ jsfiddle?右側沒有相同的顏色。 –
您可以使用http://www.mathematik.uni-marburg.de/~thormae/lectures/graphics1/code/WebGLShaderLightMat/ShaderLightMat.html 將我的片段着色器複製到fragment-textarea並單擊提交按鈕。在那裏你可以看到3種不同的顏色。但我想,中間和正確的顏色是相同的。 – m1au
files: html http://textuploader.com/5vr4o javascript http://textuploader.com/5vr4a – m1au