一个简单的GI--Reflective Shadow Maps

Reflective Shadow Maps是一种简单的GI,虽然名字带有Shadow Maps,但是和Shadow Maps没有什么关系,
是在screen space的一种方法,不像光线追踪和辐射度方法一样又消耗,又费时,适合于动态的场景,我们主要需要的变量基本都来自G-buffer,如下图
 
从左到右依次为depth, world space coordinates, normal, flux.
由于本算法简单,效果还不错,one-bounce的间接照明就足够了。
算法很简单:
 
Φp为需要反射的flux

X为当前像素点,xp为采样点n为当前点的法向量,np为采样点的法向量。


当采样点正好位于当前点发现方向时反射到的光最多。
然后把各个采样点加和
 
最后博主在unity中的实现结果是这样的,30个采样点,不知道为什么反射的光是像噪音一样的点,还请高人指点。。。

unity5

 

unity4.6

真正的实现结果
 

 

2015-9-25更新

 

改正了一些错误

 

 

 

 

 

flux贴图:

                  -------by  wolf96   http://blog.csdn.net/wolf96

posted @ 2015-09-17 21:33  战狼96  阅读(608)  评论(0编辑  收藏  举报