在许多情形中,与景物的内部距离相比,光源与景物之间的距离大得多,例如太阳光照射一个城市的情形。在这种情形中,可以假定从光源发出的照明作用在整个景物上是恒定的,可以完全不考虑由于距离所引起的变化。

下面再看镜面反射的情形。镜面反射是指来自具体光源的光线到达可见表面上的某一点后,主要沿着由入射角等于反射角所决定的方向传播,从而使得观察者从不同角度观察时,这一点呈现的亮度并不相同。在任何有光泽的表面上都可以观察到镜面反射的效果。例如,用很亮的光照射一个红色苹果,会发现最亮点不是红色的,而是有些呈现白色,这是入射光线的颜色。这个最亮点就是有镜面反射引起的。如果观察者移动位置,会看到最亮点也随之移动,这是因为光泽表面在不同方向对光线的镜面反射是不同的。在理想的光泽表面上,例如非常好的镜面上,反射光线只是在由入射角等于反射角所确定的方向上才有。这意味着此时在图所示的镜面反射示意图中,只有当观察者相对表面的方向V与反射光线的方向R之间的夹角α为零时,才能看到镜面反射引起的反射光线。对于不是非常理想的光泽表面,例如一个苹果,反射光线引起的亮度随着α的增大而迅速下降。

由Phong Bui-Tuong提出的光照明模型,用来近似表示反射光线引起的亮度随着α的增大而下降的速率。n的取值一般在1~2000之间,决定于反射表面的有关性质。对于理想的反射表面,n就是无穷大。这里选用是以观察经验为基础的。

对实际物质来说,被镜面反射的入射光的数量是与入射角θ有关的。如果将镜面反射光的百分数记为W(θ),那么就可以将计算表面亮度的式修改而得到

这里可以假定反射光线的方向向量R和指向观察点的向量V都已经正规化,即已经是长度为1的单位向量,于是可以简单地利用向量内积计算余弦值:cosα=R.V。对W(θ),通常根据经验选取一个常数Ks来代替,这样上式可写成下面更容易计算的形式:

实验表明,应用上式已经可以得到很好的具有明暗表现的画面,这个公式是形成具有明暗表现画面的良好基础。

对于彩色表面,上述各公式也可以应用,只需分别应用于对各颜色分量的计算。例如,选择通常的红、绿、蓝颜色系统时,上述公式中有关亮度及反射系数等,就要看做是三元向量。通过分别对各颜色分量进行计算,就可以完成对彩色表面的亮度计算。

在对真实感图像的不断研究探索中,人们还不断提出一些更完美的光照明模型,或者对已有的光照明模型做出改进。这方面的研究工作是很多的。

镜面反射与Phong模型相关推荐

  1. OpenGL原理与实践——核心模式(五):颜色、基础光照、Phong模型、材质与光

    目录 颜色相关理论 什么是颜色 如何计算颜色? 简单实现 Phong光照模型--局部光照模型 环境光 ​编辑 漫反射 镜面反射 材质与光 材质与纹理的关系 材质在shader的体现 材质属性与光属性 ...

  2. 计算机图形学(十二):真实感图形(光照模型、材质模型)

    目录 光照模型 第一节 漫反射及具体光源的照明 1. 环境光 2. 漫反射 3. 镜面反射与Phong模型 4. 光的衰减 第二节 多边形网的明暗处理 1. 常数明暗法 2. Gouraud方法 3 ...

  3. flat着色、gourand着色、phong着色

    逐多边形着色:flat 逐顶点着色  : gourand 逐像素着色   :phong  flat着色和Gourand着色 若渲染速度并不重要,我们可以逐像素地计算光照和雾化.(对于光照,这项技术称作 ...

  4. (转)光照模型及cg实现

    经典光照模型(illumination model) 物体表面光照颜色由入射光.物体材质,以及材质和光的交互规律共同决定. 由于环境光给予物体各个点的光照强度相同,且没有方向之分,所以在只有环境光的情 ...

  5. 计算机图形学期末复习

    写在前面: 在计算机图形学课程的期末考试之前,根据老师给的考试范围,我对一些理论性的知识进行了总结,(西南交通大学软件工程专业学习内容).将这个内容分享出来,一作为记录,二希望可以帮助其它同学期末复习 ...

  6. 【图形学】光照模型-从最简单开始到BRDF实现

    不积跬步无以至千里,想要了解复杂的光照模型,就要从最简单的入手,看看他们是如何一步步"进化"成完善的样子.每天300字,看看能否在一个月能完结这个主题吧~ 首先从基本光照模型开始: ...

  7. 3D图形数学(3D Graphics Math)

    3D图形数学(3D Graphics Math) 1  图形管道概述 我们将讨论渲染一幅带有基本光照的单个图像的大体过程,这里不考虑动画和全局光照,如阴影和辐射度. 此外,注意这里只从概念上讲解通过图 ...

  8. 计算机图形学 1 —— 颜色模型图像基本知识,Phong光照模型

    色彩视觉 什么是色彩? 色彩是对不同波长的光的能量的感知: 不同波长的电磁波(electromagnetic waves) 对应不同的色彩: 对于人眼能感知的光(可见光),其波长范围为 380nm到7 ...

  9. 朗伯辐射强度模型MATLAB,局部光照模型杂记【Lambert/Phong/Blin-Phong/BRDF/BSSRDF/Cook-Torrance】...

    Lambert Lambert不包括任何镜面属性,对粗糙物体来说,这项属性是非常有用的,它不会反射出周围的环境.简单来说是一种"磨砂效果". Lambert材质可以是透明的,可以在 ...

最新文章

  1. android与mysql数据库同步_android开发 如何通过web服务器访问MYSQL数据库并且使其数据同步到android SQLite数据库?...
  2. 基于ArcGIS JS API 的点击查询功能
  3. ITK:创建拉普拉斯内核
  4. matlab第十章实验,matlab 图像函数以及运用(第十章)
  5. 618“后高考经济”数据:3C数码依旧是毕业季的首选礼品
  6. js小数运算出现多为小数问题_js小数计算小数点后显示多位小数的实现方法
  7. 佛系青蛙外挂横行,20 元可买 21 亿无限三叶草
  8. python闭包的延迟绑定_Python延迟绑定问题原理及解决方案
  9. java 释放对象_java基础:对象的销毁
  10. 关于PMP考试的流程,很实用
  11. 爬虫框架 Scrapy 详解
  12. CS231n课程笔记翻译2:图像分类笔记
  13. 微博营销技巧都有哪些?应该从哪些方面入手?
  14. php 保留2位整数 补白,php图片处理类 缩放有补白效果
  15. win10下速腾聚创RS-Lidar-32配置教程
  16. 实现Vue移动端的PDF预览
  17. 面试资料-JAVA基础知识
  18. 【测试开花】三、项目管理-后端-实现列表接口(含分页、模糊查询)
  19. 面向服务的体系架构(SOA)—入门篇
  20. 用C++实现五子棋人机对战小游戏

热门文章

  1. html页面日期显示带0,XHTML1.0与HTML兼容指引16条 小结
  2. 403,404,503等 HTTP状态码(HTTP Status Code)
  3. 【电子通识】为什么IC需要自己的去耦电容?
  4. 货郎问题的实例 c语言编程,货郎担问题的C语言解法
  5. 【知识兔】自学Excel之1:了解Excel 中的基本功能
  6. react-native系列(13)动画篇:Animated动画库和LayoutAnimation布局动画详解
  7. 【数据库】关系数据库标准sql语言
  8. strip指令——减小文件的大小(给文件脱衣服)
  9. HUAWEI篇 NGFW与AR网关建立GRE over IPSec隧道
  10. nvme 驱动详解[转]