离线渲染中,通常可以用kd,ks,kt(分别代表物体的漫反射系数,镜面反射系数,透射系数)来简单地描述一个物体的基本材质,例如,我们将一个物体设置为:kd=0,ks=0.1,kt=0.9,即代表一束光击中该物体表面后,其中的90%发生透射(折射),另外10%被表面反射回来。这代表了无论光线以何种角度击中物体表面,它的反射率和透射率都是一样的。但是实际生活中是否是这样的呢?

试想,你站在湖边,低头看脚下的水,你会发现水是透明的,反射不是特别强烈;如果你看远处的湖面,你会发现水并不是透明的,反射非常强烈。简单的讲,就是视线垂直于表面时,反射较弱,而当视线非垂直表面时,夹角越小,反射越明显。如果你看向一个圆球,那圆球中心的反射较弱,靠近边缘较强,这就是“菲涅尔效应”。不同材质的菲涅尔效应强弱不同,导体(如金属)的菲涅尔反射效应很弱,就拿铝来说,其反射率在所有角度下几乎都保持在86%以上,随角度变化很小,而绝缘体材质的菲涅尔效应就很明显,比如折射率为1.5的玻璃,在表面法向量方向的反射率仅为4%,但当视线与表面法向量夹角很大的时候,反射率可以接近100%,这一现象也使得金属与非金属看起来不同。

在图形学中,我们也可以加入菲涅尔反射效应,以使玻璃,瓷器,水面等物体的反射显得更真实。菲涅尔反射的方程可以由麦克斯韦电磁学方程推导出来(因为本质上讲菲涅尔反射就是用波动的理论来解释光的反射)。对于透明物体而言其结果为:

公式中的kr与kt分别代表了最终求得的反射率与折射率,η代表了该物体的相对折射率,θi和θt分别代表了入射角与折射角。可以看出对于透明物体而言,有多少光能被折射是跟物体的相对折射率以及入射角度都是相关的,值得注意的一点是,当发生全反射的时候这个公式并不适用。

除此之外,菲涅尔反射效应也是可以用于漫反射等其他非透明材质之上的,用来描述其在各个入射角方向上的反射率,不过这种情况略微复杂一些,通常难以直接求解,但是它却可以用有理多项式来逼近,比如在处理次表面散射(Subsurface scattering)的时候会加入Fresnel项:

不过,我在代码中加入了针对透明物体的菲涅尔反射,并对同一个场景做了测试,发现貌似区别并不明显(晕+_+)。

未加入菲涅尔反射:

加入菲涅尔反射:

原文:菲涅尔反射(Fresnel Reflection) - 星光下的守望者 - 博客园

​菲涅尔反射(Fresnel Reflection)​理论概要相关推荐

  1. 菲涅尔反射方程matlab,菲涅尔反射Fresnel Reflection(转)

    离线渲染中,通常可以用kd,ks,kt(分别代表物体的漫反射系数,镜面反射系数,透射系数)来简单地描述一个物体的基本材质,例如,我们将一个物体设置为:kd=0,ks=0.1,kt=0.9,即代表一束光 ...

  2. Fresnel Reflection - 菲涅尔反射

    [Fresnel Reflection - 菲涅尔反射] "菲涅尔"是一个人的名字,因为他发现了一个有关反射的光学现象,这个现象就用这个人的名字命名了.那么,是什么现象呢? 这就是 ...

  3. UnityShader-菲涅尔反射(Fresnel Reflection)

    菲涅耳公式(或菲涅耳方程),由奥古斯丁·让·菲涅耳导出.用来描述光在不同折射率的介质之间的行为.由公式推导出的光的反射称之为"菲涅尔反射".菲涅尔公式是光学中的重要公式,用它能解释 ...

  4. shader 反射 水面_UnityShader-菲涅尔反射(Fresnel Reflection)

    菲涅耳公式(或菲涅耳方程),由奥古斯丁·让·菲涅耳导出.用来描述光在不同折射率的介质之间的行为.由公式推导出的光的反射称之为"菲涅尔反射".菲涅尔公式是光学中的重要公式,用它能解释 ...

  5. 4p、4c、4R营销理论概要

    http://wenku.baidu.com/link?url=kNB0Hahe98LGcQS0GBd7rG31XfScMOxe1CfzrQzKdeX5DFsn-cqzuOhmhh3g73KVrrAC ...

  6. 【Scaleform官方文档】sf_4.3_3Di 理论概要

    1. 概述 Scaleform 3Di使开发人员可以可以将应用程序UI带到具有新的3DFlash渲染和动画功能的下一个维度. 从Scaleform3.2开始,增加一组ActionScript拓展,提供 ...

  7. UnityShader18.1:立方体贴图(下)

    接上文:https://blog.csdn.net/Jaihk662/article/details/113248074 四.菲涅尔反射 菲涅尔反射(Fresnel Reflection)就是同时考虑 ...

  8. 庄懂的技术美术入门课(美术向)——学习笔记02

    目录 碎碎念 一.作业·点评 1.思路 2.答案 3.作业点评 4.创作点评 二.作业·批改 01 作业1 高光偏移 菲涅尔反射(Fresnel Reflection) 02 作业2 03 作业3 总 ...

  9. 全网最全微信小程序项目源码

    查看全文 http://www.taodudu.cc/news/show-3737788.html 相关文章: 使用ColorUI构建小程序项目 [小程序从0到1]小程序项目的创建(项目目录结构) 微 ...

最新文章

  1. php连接Mysql
  2. 软件的可维护性与可复用性(一)(Java与模式笔记)
  3. 剑指Offer 包含min函数的栈
  4. python按字节读取_Python read函数按字节(字符)读取文件的实现
  5. flutter对比Android绘制流程,Flutter与android的对比---View
  6. 【Java】说明变量作用域的示例程序
  7. 重新命名的linux命令,Linux 重命名命令自制详细介绍
  8. 华为P40系列起售价曝光!有点意想不到
  9. MongoDB和Elasticsearch的各使用场景对比
  10. python学习--关注容易被忽略的知识点---(一)python基础
  11. Android学习笔记(十一)——从意图返回结果
  12. 怎么在WINDOWS中运行C语言程序,在Windows下运行C语言程序
  13. linux如何设置显示器亮度调节软件,为 Linux 启用色温和亮度调节工具
  14. 国开计算机专业英语答案,国开电大计算机专业英语阅读(河北)形考三参考答案...
  15. mysql空洞,mysql crud造成数据空洞的原因
  16. 元数据管理平台技术白皮书
  17. js过滤英文双引号变成中文双引号
  18. 【笔记】编译原理——第三章 词法分析
  19. java 数字 百分比_Java 数字转换成百分比
  20. 计算机网络实验1 网线、配线架与机柜

热门文章

  1. CCF---201912-3---化学方程式---C++---暴力法
  2. 创业赢利模式之三包装生产模式
  3. 数组——洛谷#P1046 陶陶摘苹果(Python实现)
  4. 20190308搜索测试
  5. java开发10k到12k面试问题整理
  6. Android 7.0解析包时出现问题 的解决方案(版本更新)
  7. navicat 过了试用如何继续解决
  8. cookie可存的最大限制_苹果完全屏蔽第三方 Cookie,七天清空本地存储
  9. 在动态规划的海洋中遨游(二)
  10. Python3 爬取携程网[2]: 爬取北京五星级酒店详细信息