问题六十八:着色模型(shading model)(1)——反射模型(reflection model)(1)——概述

198 篇文章 12 订阅
195 篇文章 27 订阅

“反射模型”和“光照模型”

 

这两个概念好像经常被等价使用。作者为了更好理解其他相关概念,对“反射模型”和“光照模型”做如下区分:(将“光反射”分成三个部分:入射光、入射光和表面的相互作用、反射光)

 

“光照模型”:模拟的是“入射光”。研究的是入射光的组成。影响入射光的因素有:环境光的属性、光源的属性。

“反射模型”:模拟的是“入射光和表面的相互作用”。研究的是入射光是怎么和表面相互作用变成反射光的。影响反射光的因素有:入射光的属性、表面的物理属性。

 

咱先学习反射模型。

 

学习反射模型的思路是这样的:

第一步,概述。对反射光建立感官上的认识。最重要的是明白:反射光是由漫反射光和镜面反射光两部分组成。(注意是“两部分”不是“两类”,意思是任何反射光中都同时包含漫反射光和镜面反射光)。

第二步,反射原理。分析漫反射的原理,模拟漫反射光;分析镜面反射,模拟镜面反射光。

第三步,BRDF引入辐射学的概念,用BRDF来描述物体表面对光的反射特性。

第四步,C++实现。用C++分别实现表面对光的漫反射BRDF和镜面反射的BRDF,然后根据各自的BRDF和入射光得到各自的反射光。

 

概述。先看一张图:


该图说明如下几个问题:

1,反射光是由两部分组成:漫反射光、镜面反射光;

2,对于自身不发光的物体,之所以能过被看见,是因为其表面的漫反射;

3,漫反射在各个方向的反射率是一样,是均匀反射的;

4,镜面反射的反射率比漫反射的反射率要高得多(如上图中红色圈内示意),所以对应的反射光成为“高光”;


68.1.1.1 光

光由光子组成。光子具有波粒二相性。也就是说光子即具有波的特性,也具有粒子的特性。关于波的特性,我们会考虑它的波长、频率、能量。通过观察和测量,这三者有如下关系。



由如上关系,可以看出:

1,波长越大,频率越小;波长越小,频率越大。

2,一个光子的能量:频率越大,能量越多;频率越小,能量越少。

 

另外,其中波长在大概400nm到700nm之间的光是能被人眼看到的,所以,这个范围的光成为“可见光”。不同频率的可见光被人眼感知为不同的颜色:频率越高的光偏蓝,频率低的光偏红。

 

借图:



 

我们日常见到光一般都是由多种不同频率的光混合而成。比如说白光。当一束白光经过一个棱镜时,由于不同频率的光对应不同的折射率,所以会发生色散。


这个现象也证明了,白光是由多种不同频率(颜色)混合而成。

 

怎么描述这种混合光中不同频率的光的多少呢?这个“多少”指的是该频率的光的光子的个数。前面我们有计算一个光子的能量,所以,这个“多少”也是指该频率的光的总能量。

 

我们借用“频谱”的概念。频率图描述的就是混合光中各种频率(波长)的光的能量分布情况。频谱图大概长这个样子:



68.1.1.2 光和物体表面的相互作用

光和物体相互作用时,会发生散射。对于透明物体散射分为反射和折射;对于不透明物体散射只有反射。我们这里暂时只考虑不透明物体。


物体表面是有一定厚度的。镜面反射发生在表面的上面,相当于光子直接从表面弹回;漫反射发生在物体的表面里面,光子和表面里面的原子相互作用。

上图在画漫反射光线时,为了突出光子和表面里面的原子相互作用,画的有些夸张,实际情况差不多应该是这样子(出射点基本可以认为是一点):


估计很多童鞋会发现一个问题,为什么镜面反射光线会有三条????

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

 

又要重复贴图了。如之前环境中的球。

 

通过漫反射光看到的是这个样子:


 

通过镜面反射光看到的是这个样子:


 

通过漫反射光镜面反射光看到的是这个样子:


 

我们已经知道,反射光由漫反射光和镜面反射光两部分组成。

反射模型要做的事情就是:分别模拟这两部分光的强度和方向。


未完待续~~

 

Reference:

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

[2]. Andrew S. Glassner, An Introduction toRay Tracing, Xerox PARC, 1989.

[3]. Tomas Akenine-Moller, Eric Haines, NatyHoffman, Real-Time Rendering, A K Peters Ltd, 2008.

[4]. Peter Andrew Walker, A VisualizationSystem fro Bidirectional Reflectance Distribution Functions, University ofOregon, 1999.

[5]. https://en.wikipedia.org/wiki/Phong_reflection_model

[6]. http://www.raytracegroundup.com/

[7]. http://www.realtimerendering.com/

[8]. https://en.wikipedia.org/wiki/Light

[9]. http://baike.baidu.com/subview/41199/14530220.htm


  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
地面反射模型是用来模拟地面对入射光的反射过程的数学模型。通过该模型,我们可以预测地面表面在不同入射角度和入射光强度下的反射效果。 在matlab中,我们可以利用光学原理和几何关系来建立地面反射模型。首先,我们需要确定地面表面的材质属性,例如反射系数和折射系数等。 其次,我们需要确定光源的位置和光强度,以及观测者所处的位置。通过入射光的入射角度和光强度,我们可以计算出反射光的角度和光强度。 然后,利用光的反射定律和能量守恒原理,我们可以计算出地面对入射光的反射效果。具体的计算方法可以采用菲涅尔公式、洛伦兹-洛伦兹方程或其他适用的模型。 最后,我们可以将模型的结果用图形进行展示,以直观地观察地面反射的效果。利用matlab中的图形绘制函数,可以将反射光的角度和光强度用图像表示出来,从而更好地理解地面反射过程。 需要注意的是,地面反射模型需要考虑一些实际情况,例如地面的粗糙度、不均匀性和光源的光谱分布等。这些因素都可能会对地面反射效果产生影响,因此在建立模型时需要进行合理的假设和参数选择。 总之,地面反射模型是一种用于模拟地面对入射光的反射过程的数学模型。通过在matlab中建立模型,我们可以计算和显示地面反射的效果,从而更好地理解和利用光的反射特性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值