5.8 volumetric post-processing--game programming gems5 笔记

这个gem主要讲heat shimmer---火焰燃烧的时候发出的热气会把部分场景弄得扭曲的效果。

这个效果是我得最爱,非常酷。

做扭曲 是比较直白的,就是把原始场景作为贴图,然后干扰坐标,就可以看到贴图扭曲的效果。

问题在于heat shimmer有一个深度问题,就是热气后面的部分会扭曲,但是前面的不会。

那么就需要把depth buffer也要做一个贴图,然后进行比较,如果是扭曲区域的深度是大于阀值的,那么就做,否则就保留原样。

这个如果作一些变换,把扭曲改成blur那么就成了depth blur的效果了。

-----------------------------------------------

扭曲效果的加入会把场景渲染的pipeline很大程度上打乱,需要重新组织。

大致是这样:

1,通过particle来承载shimmer, 并记下shimmer的最小depth

2,通过一个accumulator来把场景中alpha blending的model,进行存储,根据shimmer的depth进行分类。

3,渲染所有的不透明物体

4,渲染深度大于shimmer depth的alpha物体

5,渲染shimmer效果

6,渲染深度小于shimmer depth的物体。


原文链接: http://blog.csdn.net/ccanan/article/details/1646815

你可能感兴趣的:(5.8 volumetric post-processing--game programming gems5 笔记)