光照模型

1. Lambert模型

  理想漫反射模型,各个方向一样。

2.Phong(1975)[1]

  经验模型,R和V的夹角决定镜面高光的强度

3.Blinn-Phong(1977)[2]

  引入了半角向量的概念,对Phong模型进行了改进,镜面高光由n和h的夹角决定

4. Cook-Torrance 模型(1982)[3]

  用模型模拟了金属和塑料材质,考虑到了入射角变化时发生的颜色偏移。

  基本反射模型:

  其中环境光和漫反射分量不依赖于观察者的位置。

  假设表面是由微面元组成的,镜面分量写为  加入了:几何项G、Fresnel项、粗糙度项D.

  粗糙度项D:代表了可以有效反射光的那一部分微面元所占的比例。

  有多种分布函数:

  高斯分布模型:

  Beckmann分布函数:

  几何项G:几何衰减项,表现了微小面元之间的互相遮挡(shadowing and masking)所造成的影响。

  Fresnel项F:描述了在每一个微面元上光是如何反射。与入射角和波长相关。

  通过垂直入射时的公式,可以解出折射率n,然后再将得到的n代入原来的公式即可得到其他各个角度下的F。

  这个过程可以对不同的波长重复多次,以获得反射的方向和光谱分布。

  几点理论:当入射角接近90°的时候,F接近于1,反射光的颜色接近于光源的颜色。颜色偏移在入射角接近90°变得很重要。可以用查找表简化计算。

  镜面反射的颜色通常是材料的颜色而不是光源的颜色。

  塑料使用白色的镜面高光,漫反射成分大而镜面反射成分小。这种物体的漫反射颜色和镜面反射颜色通常不同。

  金属的反射一般发生在表面,漫反射分量很小,有时甚至可以忽略。粗糙度的值m也很小。

5.Kajiya各向异性反射模型(1985) [4]

  根据电磁波理论推导出来的模型,反映了各向异性表面的反射和折射。

6.Oren-Nayar 模型(1994)[5]

  提出对于体反射来说,lambertian的模型不能正确体现其效果。

  本模型主要对粗糙表面的物体建模,比如石膏、沙土、陶瓷还有布。

  用了一系列的lambert微面元,考虑了微小面元之间的相互遮挡(shadowing and masking)和互相反射照明。

7.Minnaert 漫反射模型(Marcel Minnaert 1941)

  丝绒 反射公式

8.Ward 反射模型

  各向同性。

  各项异性。

9.Schlick反射模型

  简化了Phong模型的指数运算。

10. Xiao D. He模型(1991)[6]

  一个非常复杂的综合物理模型。

  但仍然是一个反射模型。

  基于物理光学,描述了表面的镜面反射、有方向的漫反射、均匀漫反射。

  反射光依赖于波长、入射角、两个表面粗糙度系数、表面折射率。

  可以应用到金属、非金属、塑料(光滑、粗糙)。

1.             Phong, B.T., Illumination for computer generated pictures 1975.

2.             Blinn, J.F., Models of light reflection for computer synthesized pictures 1977.

3.             Cook, R.L. and K.E. Torrance, A Reflectance Model for Computer Graphics 1982.

4.             Kajiya, J.T., Anisotropic reflection models 1985: p. 15 - 21

5.             Oren, P. and P.K. Nayar, Generalization of Lambert’s Reflectance Model. 1994: p. 239 - 246

6.             He, X.D., et al., A comprehensive physical model for light reflection 1991: p. 175 - 186

图形学理论 光照模型相关推荐

  1. 计算机图形学原理与实践 pdf,计算机图形学理论与实践.pdf

    高校计算机教学系列教材 计算机图形学理论与实践 主 编 李春雨 副主编 邱道尹 谭同德 王玉琨 内容简介 在多年教学科研和开发的基础上K从计算机图形学的理论高度和计算机绘图的实用角度来 研究K编写这本 ...

  2. 简单 局部 整体光照模型计算机图形学,计算机图形学北大光照模型.ppt

    计算机图形学北大光照模型 * 当来自光源和周围环境的入射光照射在景物表面上时,将有部分光被反射或透射: 在视线方向的反射或透射光,被观察者眼睛中的视觉细胞接收 人眼中的杆状及锥状细胞接收光线,产生视觉 ...

  3. 图形学理论知识 BRDF 双向反射分布函数

    图形学理论知识 BRDF 双向反射分布函数 Bidirectional Reflectance Distribution Function BRDF理论 BRDF表示的是双向反射分布函数(Bidire ...

  4. 计算机图形学阴影的的分类,计算机图形学8_光照模型与阴影处理_.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbsp图形图像 计算机图形学8_光照模型与阴影处理_.pdf5页 本文 ...

  5. 真实图形学(光照模型)

    一 .颜色模型     真实感图形学,简单地说,就是希望用计算机生成像照相机拍的照片一样逼真的图形图像 .要实现这个目标,需要三部曲: 第一步:建立三维场景(建模): 第二步:消隐解决物体深度的显示及 ...

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

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

  7. 入门图形学:光照模型(四)

    紧接上一篇:https://blog.csdn.net/yinhun2012/article/details/80924102 上一篇我们用cg中比较常见的vertex fragment函数去实现了通 ...

  8. 入门图形学:光照模型(二)

    转载自: https://blog.csdn.net/yinhun2012/article/details/80912620 前面我们谈到了光照作用最终表面颜色公式,如下: 查看全文 http://w ...

  9. 【计算机图形学理论】三维观察-投影变换

    01 三维观察流水线 02 三维观察变换-模视变换 1.如何进行三维场景观察? 物体在世界坐标系内的物理位置并没有发生改变. 改变观察点的位置. 2.观察变换-建立观察(相机)坐标系 在世界坐标系中确 ...

最新文章

  1. JavaScript的toString()和valueOf()函数
  2. 让产品自己召唤人——马化腾
  3. Spring Cloud 2020 年路线图:二季度Spring Boot 2.3、四季度Spring Cloud Ilford
  4. php 实现心芯图案,利用php输出不同的心形图案
  5. 手动造轮子——为Ocelot集成Nacos注册中心
  6. dynamic 365 js 失去焦点_基于Auto.js的QQ好友动态秒赞系统
  7. 代码也能“杀”虫:此虫,真虫非Bug也
  8. Linux --- awk
  9. 使用git上传项目到github
  10. html 获取下一个兄弟节点,js jquery获取当前元素的兄弟级 上一个 下一个元素
  11. 温度控制直流电动机的c语言,温度控制直流电动机转速系统设计报告
  12. HDFS存储大量小文件的问题及解决方案
  13. UltraISO制作启动盘时报错:磁盘/映像容量太小
  14. java导出word加水印(已实现)
  15. android exoplayer最好用的视频播放器,倍速播放
  16. 在计算机网络术语中wan的中文意思是什么,在计算机网络术语中,WAN的中文含义是...
  17. Android屏幕渲染
  18. n 以内与 n 互素的元素集合必然形成一个循环群
  19. PowerManager深入分析
  20. 友价商城2019.2月最新版

热门文章

  1. 二维动态规划降维误差一般为多少_动态规划--5道题入门
  2. python绘图颜色深浅代表数值_画图理解Python的深浅拷贝
  3. python怎么识别log函数_python中对数函数怎么表示
  4. pcm5102a解码芯片音质评测_一台可换芯片的解码机评测--对比PCM1794和CS4398芯片(下)...
  5. flash.net.filereference php,as3与php 上传单个图片demo
  6. java体系的四大基类_Java中的io流学习(了解四大基类和基本步骤)
  7. python网站用什么数据库_使用python读取mysql数据库并进行数据的操作
  8. linux redis-trib.rb,linux 关于redis-trib.rb构建redis集群
  9. android 开启子线程执行for循环_C++11之多线程 - Part2 Joining和Detaching的使用
  10. 小马虎想用计算机计算396乘19,2020版苏教版数学四年级下册第四单元《用计算器计算》单元测试卷C卷...