3

我正在将多边形场景渲染到多个渲染目标,以便我可以执行后处理效果。但是,我在片段着色器中设置的值似乎并没有准确地反映在像素着色器中。

现在管道看起来像这样:

  • 将基本多边形(使用下面的简单着色器)渲染到中间缓冲区
  • 将缓冲区作为屏幕大小的四边形渲染到屏幕上。

我正在使用 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) 的像素 - 一半正如预期的那样。

这个程序相当大而且很复杂,所以如果答案不是很明显,我会用具体的细节更新帖子。

谢谢!

4

1 回答 1

1

你有 premultiplyAlpha 设置为 true 吗?摆弄这个是我想到的第一件事:奇怪的 alpha 值。

于 2012-01-27T15:07:16.983 回答