68.1.2.1.1 漫反射光

前面,我们有这么一张图:

为了突出光子和表面里面的原子相互作用,还是用画得更为夸张的图好了。(注意:只关注蓝色光线。)

关于“漫反射光”(上图中的蓝色反射光),我们先要回答两个问题:

1,物体漫反射的光为什么是特定颜色的?(所以,物体呈现不同的颜色)

2,漫反射光的方向为什么是随机的?

姑且认为上面这个球是蓝色的(其实淡紫色)。为什么白光照在蓝色球上,反射的却是蓝色的光呢?

这个就要考虑光的波的特性了,光子以一定的频率振动。我们知道波是可以共振的。在一定程度上讲,自然界中所有物质都有一个使得它达到最大振幅的频率,这个频率被称为“共振频率”。

物体表面里面的原子是以各种频率在不停振动。当振动的光子进入表面里面撞击到原子时,光子就有可能将其所带的一部分或者所有能量传递给原子。

当光子的能量刚好能够使得原子达到它的一个更高的稳定的能量级状态,那么这个光子将会被原子吸收(这个光子就没了),原子将会在更高的能量级状态上呆一段时间。一段时间后,原子就会回到它之前的能量级状态,同时释放一个能量和之前被吸收的光子相同的新的光子,然后这个新的光子从物体的表面出去了。

当光子的能量并不是那么刚好时,光子的能量会被原子吸收,然后很快以热能的方式释放。

接下来,回答之前的问题:

1,为什么白光照在蓝色球上,反射的却是蓝色的光呢?

因为:蓝光的光子的能量刚好能够使蓝色球表面里面的原子达到一个更高的稳定的能量级状态,所以,一段时间后,原子释放的新的光子是蓝光的光子。不那么刚好的光子都被原子吸收,然后以热能的方式释放了。所以,最后从表面里面出来的只有蓝光的光子。所以,漫反射光线是蓝色的。

2,漫反射光的方向为什么是随机的?

因为:新的光子出表面的方向即是原子释放光子的方向,然而原子振动是随机的,释放光子的方向是随机的,所以,漫反射光的方向是随机的。

68.1.2.1.2 定量模拟漫反射光

我们已经知道,漫反射光的光子射出的方向是随机的。所以,根据概率分布,每个方向上的光子数量是相等的。所以,漫反射光在各个方向的强度是相等的。所以,在入射光强度一定的情况下,影响反射光强度的只有入射光方向向量和表面法向量的夹角了。

所以,漫反射光的强度是入射光强度、入射夹角、物体对光线的漫反射系数的函数。可以用如下式子表示:

实际计算中,以ray tracing中光线撞击物体为例:光线(对应反射光)撞击到物体,则以得到撞击点的空间坐标P、物体在撞击点出的法向量N和物体的物理属性(可以求得方程中的F);由于是漫反射,反射光方向是所有方向,所以,所有反射光线对应的入射光线的方向L都是光源位置和撞击点P的连线;入射光强度Ilj则是光源的物理属性了,找光照模型要就行了,对于反射模型而言,是已知的。所以,反射光的强度就这么求得了(注意到,入射光和F的表示中带有波长参数,所以,求得的反射光也是对应相应波长的,即反射光是有特定颜色的。)

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]. https://en.wikipedia.org/wiki/Phong_reflection_model

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

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

问题六十八:着色模型(shading model)(1)——反射模型(reflection model)(2.1)——漫反射(diffuse reflection)相关推荐

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

    和diffuse reflection对应的是specular reflection.一直以来,本人都将"specular reflection"理解为"镜面反射&quo ...

  2. 问题六十八:光照模型(Light model)——关于“环境光”模型的补充

    之前在"问题六十八:着色模型(shading model)(2)--光照模型(Light model)"中已经对Ambient Model(环境光光照模型)进行了介绍,但是感觉推导 ...

  3. JavaScript学习(六十八)—表单校验案例

    JavaScript学习(六十八)-表单校验案例 学习内容 (一).如何获取页面的元素-利用id获取 格式:var 变量名称 =document.getElementById('要获取的元素的id的值 ...

  4. [转载]六十八个经典故事

    转自:http://www.cnblogs.com/flying_bat/archive/2004/11/04/60492.aspx 一.  用人之道去过庙的人都知道,一进庙门,首先是弥陀佛,笑脸迎客 ...

  5. 信息系统项目管理师必背核心考点(六十八)数字证书、数字签名

    科科过为您带来软考信息系统项目管理师核心重点考点(六十八)数字证书.数字签名和CA认证中心,内含思维导图+真题 [信息系统项目管理师核心考点]数字证书 1.具有不可抵赖性的特征(一段电子文档) 2.包 ...

  6. [转] 身为管理者 会讲的六十八个故事

    一.用人之道 去过庙的人都知道,一进庙门,首先是弥陀佛,笑脸迎客,而在他的北面,则是黑口黑脸的韦陀.但相传在很久以前,他们并不在同一个庙里,而是分别掌管不同的庙. 弥乐佛热情快乐,所以来的人非常多,但 ...

  7. 六十八个超级经典的管理故事

    一. 用人之道 去过庙的人都知道,一进庙门,首先是弥陀佛,笑脸迎客,而在他的北面,则是黑口黑脸的韦陀.但相传在很久以前,他们并不在同一个庙里,而是分别掌管不同的庙.弥乐佛热情快乐,所以来的人非常多,但 ...

  8. 六十八个超级经典管理小故事(转)

    一. 用人之道 去过庙的人都知道,一进庙门,首先是弥陀佛,笑脸迎客,而在他的北面,则是黑口黑脸的韦陀.但相传在很久以前,他们并不在同一个庙里,而是分别掌管不同的庙. 弥乐佛热情快乐,所以来的人非常多, ...

  9. 【Microsoft Azure 的1024种玩法】六十八.基于Azure云平台使用Azure Virtual machines快速搭建Docker容器

    [简介] Docker 是一个开放源代码软件,主要应用于开发应用.交付应用.运行应用,Docker 可以将应用程序及其依赖项打包到可以在任何 Linux.Windows 或 macOS 计算机上运行的 ...

  10. 六十八个超级经典小故事(做人、处事、经商之道)

    一.用人之道 去过庙的人都知道,一进庙门,首先是弥陀佛,笑脸迎客,而在他的北面,则是黑口黑脸的韦陀.但相传在很久以前,他们并不在同一个庙里,而是分别掌管不同的庙.弥乐佛热情快乐,所以来的人非常多,但他 ...

最新文章

  1. C# 仿金山毒霸启动和关闭淡入淡出效果
  2. SQL 中 not in 查询不到数据问题
  3. mysql字段使用timestamp类型和默认值CURRENT_TIMESTAMP表示默认为时间,类似mssql的getdate()功能;字段自增...
  4. bootstrap清除拟态框内添加新HTML再打开时会有缓存现象
  5. 漫步线性代数二十七——矩阵对角化
  6. 基于xilinx FPGA实现LZW压缩算法
  7. 数据结构中的头结点和头指针
  8. android音频杂音问题_三星手机与iOS13 双蓝牙音频输出功能体验报告 「Soomal」
  9. 查询记录rs.previous()使用
  10. nlp基础—9.条件随机场模型(CRF算法)
  11. python 小技巧之获取固定下面包含的某种类型文件的个数
  12. 程序员的《学习之道》
  13. linux的boot可用fat格式吗,u-boot中的FAT命令
  14. Windows server 2003设置IP安全策略批处理脚本
  15. 1分钟链圈 | 硅谷和成都互设科技金融中心;帅初:区块链更容易落地游戏和版权行业;区块链底层技术布局基本完成
  16. K8S污点容忍度调度
  17. 解除本地代码与远程仓库的关联关系
  18. FTP客户端设计与实现
  19. BC26 计算三角形的周长和面积(海伦公式)
  20. 腾讯AI开放平台使用尝试:账号开通/应用创建/能力开通

热门文章

  1. 马克·扎克伯格分享Facebook水冷数据中心照片
  2. springmvc + excel代
  3. 3.5框架不能创建就加这一段代码
  4. java获取时间日期代码
  5. linux内核编译(升级)
  6. Android 数字格式化
  7. 读“产品经理那些事儿”有感
  8. python import无法导入该脚本的父目录下的另一个子目录的模块
  9. 54 字符流中第一个不重复的字符
  10. 传感器 - 距离传感器