我正在将多边形场景渲染到多个渲染目标,以便我可以执行后处理效果。但是,我在片段着色器中设置的值似乎并没有准确地反映在像素着色器中。
现在管道看起来像这样:
- 将基本多边形(使用下面的简单着色器)渲染到中间缓冲区
- 将缓冲区作为屏幕大小的四边形渲染到屏幕上。
我正在使用 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) 的像素 - 一半正如预期的那样。
这个程序相当大而且很复杂,所以如果答案不是很明显,我会用具体的细节更新帖子。
谢谢!