webgl的景深

时间:2016-03-03 11:55:01

标签: javascript webgl

我想在webgl中模拟“景深”效果, 将相机移到圆圈上:https://en.wikibooks.org/wiki/OpenGL_Programming/Depth_of_Field

在OpenGl中,我会使用累积缓冲区。但不幸的是,webgl并不知道这样的缓冲区。

是否可以使用混合来模拟这种效果?

2 个答案:

答案 0 :(得分:1)

您还可以将场景渲染到几个不同的帧缓冲区,然后将这些帧缓冲区绑定为纹理,并在最后一个后处理聚集传递中累积所有帧缓冲区的颜色。所以这或多或少是手工积累的方式。

答案 1 :(得分:0)

模拟景深的一种简单方法是

  • 将场景渲染为纹理
  • 使用渲染器场景将纹理模糊到另一个纹理
  • 使用深度信息混合2个纹理(在焦点场景纹理+模糊场景纹理中)。

an example here。点击小*来调整" dof"滑块。按d几次以查看不同的纹理。