我正在将多边形场景渲染到多个渲染目标,以便我可以执行后处理效果。但是,我在片段着色器中设置的值似乎没有准确地反映在像素着色器中。
现在管道看起来像这样:
我正在使用WebGL Inspector(http://benvanik.github.com/WebGL-Inspector/)查看中间缓冲区(使用gl.createFrameBuffer()
创建)。
绘制多边形时,我有一个非常简单的片段着色器,如下所示:
gl_FragColor = vec4(1, 0, 0, 0.5);
这是在我的抽奖电话之前:
gl.disable(gl.BLEND);
我希望这能在缓冲区中创建一个精确(255,0,0,128)的像素,但事实上,它会创建一个值为(255,0,0,64)的像素 - 是预期的一半阿尔法。
这个程序相当庞大而且很好,所以如果答案不是很明显的话,我会用具体细节更新帖子。
谢谢!
答案 0 :(得分:1)
您是否将premultiplyAlpha设置为true?摆弄它是第一个想到的东西:奇怪的alpha值。