问题六十八:着色模型(shading model)(1)——反射模型(reflection model)(2.2)——高光反射(specular reflection)

 和diffuse reflection对应的是specular reflection。一直以来,本人都将“specular reflection”理解为“镜面反射”。但是,现在来写总结时,发现牵涉到一个叫做“perfect specular reflection”的东东,这下有点乱了。两个都是“镜面反射”么?还是一个“理想镜面反射”,一个“镜面反射”?为了避免混淆,特此声明:

“perfect specular reflection”:等价于“mirror-likereflection”,译为“镜面反射”;

“specular reflection”:现在译为“高光反射”。

 

“镜面反射”发生在非常非常非常平的像镜子一样的物体表面。但是,现实中的物体表面都不是如此理想,表面都是粗糙的。比如这样一个球:


如果撤掉这个球的漫反射光,剩余的光呈现的是这样一张图:


这一团亮光是什么鬼?这个就是“高光反射”,对应的光被称为“高光”。

 

尽管现实的表面是粗糙的,但是粗糙的表面可以认为是由无数细微的mirror-like的微表面。所以,我们要先看看镜面反射(mirror-like reflection or perfect specular reflection)。


68.1.2.2.1 镜面反射(perfect specular reflection)

 

以前在“问题二十一:怎么模拟ray tracing图形中不同材料的颜色(diffuse and metal)”(http://blog.csdn.net/libing_zeng/article/details/54428494)中有求反射光线的方向向量F。重复贴图如下:


计算过程中用到的是入射光线和法线的方向向量的单位向量,这样求出的反射光线的方向向量也是单位向量。

 

对于“镜面反射”,就了解这么多吧。(入射角=反射角,知道怎么求得反射光线的方向向量)。

 

68.1.2.2.2 高光反射(specular reflection)


先前挖了这么一个坑:下图的高光反射光线为什么是三条,而不是一条?

当时的简单回答是:因为表面的上表面不是理想光学镜面(不是特别特别特别平)。


表面是粗糙的,夸张一点的示意图应该是这样的:


表面再粗糙点。表面越粗糙,高光则越是发散:


相比与“漫反射光”,这种反射光线(高光)强度要大很多,但是方向不像漫反射光线那么分散,而是聚集在某个方向周围。这样就可以解释之前那一团亮光了。(重复贴图如下)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值