离线渲染中,通常可以用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项:

菲涅尔反射方程matlab,菲涅尔反射Fresnel Reflection(转)相关推荐

  1. ​菲涅尔反射(Fresnel Reflection)​理论概要

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

  2. Fresnel Reflection - 菲涅尔反射

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

  3. 丢番图(Diophantine)方程MATLAB求解

    丢番图(Diophantine)方程MATLAB求解   丢番图 (Diophantine) 方程在多项式中的一般形式为 A(z−1)X(z−1)+B(z−1)Y(z−1)=C(z−1)A(z^{-1 ...

  4. duffing matlab,duffing方程matlab

    1.Van der Pol 方程的两种解法:1) 采用ode45命令 2)Runge-Kutta方法 2.Duffing 方程的求解(Runge-Kutta方法,计算步长 h=0.005,计算时间t0 ...

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

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

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

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

  7. 二维有限元方程matlab,有限元法求解二维Poisson方程的MATLAB实现

    有限元法求解二维 Poisson 方程的 MATLAB 实现 陈 莲a ,郭元辉b ,邹叶童a ( 西华师范大学 a. 数学与信息学院; b. 教育信息技术中心,四川南充 6437009) 摘 要: ...

  8. matlab riccati 方程,matlab解riccati方程

    Riccati 方程求解 ? ? 前三个问题将介绍解析解与数值解,后一 个属于非... 矩阵的化零空间或基础解系计算,支持符号运算 求解连续 Lyapunov 方程.Sylvester 方程的数值解 ...

  9. 空间平面方程matlab求解,向量代数和空间解析几何MATLAB求解.ppt

    向量代数和空间解析几何MATLAB求解 第11章 向量代数与空间解析几何MATLAB求解;Outline;11.1 向量及其线性运算;11.2 数量积.向量积与混合积;11.3 曲面及其方程;3.柱面 ...

最新文章

  1. 《学习之道》第十三章自己也要总结
  2. 公益合种油松专车3天领证
  3. 2021年春季学期-信号与系统-第三次作业参考答案-第二道题
  4. PHP 分页类 高洛峰 细说PHP
  5. Office SharePoint Server 2007 规划和体系结构2
  6. mysql 定时器停止_mysql事件【定时器】
  7. wedo2.0编程模块介绍_能量黑科技模块系列十:RFID魔块
  8. unity3d 使用GL 方式画线
  9. AndroidStudio_开发工具的设置_代码编辑器使用_新特性---Android原生开发工作笔记73
  10. Linux系统死亡之ping,linux下防止syn***,端口扫描和死亡之ping
  11. python中索引越界的常见原因
  12. CMOS Image Sensor的DVP接口硬件设计
  13. 帝国CMS文章内容超级伪静态 去除栏目id 以自定义英文名称和ID组成
  14. 算法题 高斯消元解线性方程组(Python)
  15. JAVA实现汉字转拼英
  16. 无缝滚动加加暂停效果
  17. 【因果推断的统计方法】观察性研究和可忽略性
  18. 数据统计分析(SPSS)【2】
  19. 基于ESp8266的智能插座
  20. 《4-Points Congruent Sets for Robust Pairwise Surface Registration》论文研读

热门文章

  1. 能用java写圣诞树吗_如何使用java实现简单的圣诞树效果
  2. 帝国CMS仿《手艺活》DIY手工制作网源码/92kaifa仿手艺活自适应手机版模板
  3. 计算圆弧上任意一点绕圆心旋转α角度后的新点坐标
  4. 如何在Data Lake Analytics中使用临时表
  5. iview UI上传on-progress无效解决方案
  6. 多线程并发编程的基本问题
  7. Java_Spring_IoC
  8. DX-BT07S蓝牙调试问题记录
  9. 题目17:某旅游景点规定,身高在1.2米以下的儿童免票,身高1.2~1.5米(包含1.2米和1.5米)的儿童购买半价票,身高超过1.5米的游客购买全价票。
  10. 判决素数个数(信息学奥赛一本通-T1409) 两种函数算法