Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)

 

87.1 建立模型

 

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第1张图片

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第2张图片

 

接下来就是采样啦!

 

之前,我们遇到过的采样一般都是对撞击点处的上半球面进行采样,比如:

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第3张图片

这是因为cos分布对应的夹角是光线和法向量的夹角。


但是,我们这里对应的夹角是光线和镜面反射光线r的夹角。所以,我们需要采样的半球面是这个这样子:

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第4张图片

 

具体采样过程可以参考“ 问题七十一:环境光遮蔽(AmbientOcclusion”:

http://blog.csdn.net/libing_zeng/article/details/57639455

(只需要在建立正交基时,将原来的n换成r)

 

但是,有个问题:

有一部分采样点会落在物体表面以下。

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第5张图片

 

针对这个问题的处理方式是:将这部分落在物体表面以下的采样点沿着表面翻转到表面以上:

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第6张图片

 

在程序中只需做如下处理:


 

87.2 C++代码实现

 

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第7张图片


Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第8张图片

 

87.3 测试图形

 

87.3.1 测试图形(1)

 

相关代码:

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第9张图片

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第10张图片

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第11张图片

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第12张图片

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第13张图片

 

输出图形:

 

单像素点采样次数为1时:

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第14张图片

 

单像素点采样次数为256时:

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第15张图片

 

87.3.2 测试图形(2)

 

相关代码:

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第16张图片

 

输出图形:

 

接下来测试是:改变“模糊指数”exp(其他所有参数如上方测试程序所示,并保持不变),对比输出图形的效果。

 Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第17张图片


exp=10:

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第18张图片

 

exp=100:

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第19张图片

 

exp=1000:

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第20张图片

 

exp=10000:

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第21张图片

 

exp=100000:

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第22张图片

 

exp=1000000:

Q87:间接光照(Indirect Illumination)的高光反射(Glossy Reflcetion)_第23张图片

 

对比之前的镜面反射模型的图形(之前图形是600*600,现在的图形是400*600):(当“模糊指数exp”足够大时,高光反射模型就非常接近镜面反射模型了。

 

87.4 其他说明

 

完整的代码,参考:http://download.csdn.net/detail/libing_zeng/9781791

 

Referrance

[1]. Kevin Suffern, Ray Tracing from theGround Up, A K Peters Ltd, 2007.

 

你可能感兴趣的:(间接光照,高光反射,光照模型,反射模型,光线追踪,C++,ray,trace,computer,graphics)