advance shading——菲涅耳现象
(计算光照的时候,从两点出发考虑,光的传播方向,以及光的在这个方向上的能量。)
光与表面交互的模型包含两类:和物体表面(surface)以及和物体的内部(body)。而subsurface指的是在物体内部(body)进行第二次反射和折射。
和物体表面的只有反射和折射,没有能量损失。fresnel是关于表面的反射。external reflect 指的是从光疏介质到光密介质,而internal refract指的是从光密介质到光疏介质(通常指的是光线进入物体后,再从物体的另一面射出)。
fresnel effect 菲妮儿效应指的是当反射角(视线和法线的夹角)变大时,其反射的能量越来越大,则看到一片白光,当反射角比较小,反射的能量比较小,这个时候能看到物体内部的情况。比如下图中的水面远的时白色,近的时透明的,可以看到水底。


在external reflect中fresnel effect:

通常,折射和入射光线的能量之间的关系为下图:

其中Lt是反射的能量,Li是入射的能量,Rf(0i)指的是反射能量比0i是反射角,它的范围是0到1。通常使用如下代替该公式

其中n1和n2是折射系数。为了近似模拟计算Rf(0i)(它的真实曲线可以参考real time rendering 233 page)可以使用如下两个公式:


其中第二公式中的n代表的是物体的折射系数,1是空气的折射系数,如果不是空气,改用其他的折射系数。
internal effect 中的 fresnel effect :
internal effect 是会发生全反射的,如下图:

但是这里的frenel的能量计算公式和external的一样,只不过Rf(0i)不一样,real time rendering page238 的图片显示了不同.
在计算Rf(0)可以用下面的公式,0c是全反射角

公式7.33依然可以使用,用来 逼近Rf(0i),只不过要用折射角代替入射角。
内部的有能量损失
advance shading——菲涅耳现象的更多相关文章
- advance shading——基础(辐射度测定)
辐射度测定(radiometry) <real time rendering>在这章上来就说了一大堆光照方面的物理术语,不知该怎么翻译.后来在维基百科上看到这个表,清楚了很多(这里的w是瓦 ...
- advance shading--BRDF
其实,双向反射(reflect)分布函数(BRDF)是一个四元函数,这个函数最终只是计算一个比值,这个值确定了射入物体表面的光中有多少被物体表面反射,并最终被眼睛所看到.反射的愈多,眼睛收到的光强越大 ...
- 【转】 ISP-镜头阴影校正(LSC)
转自:https://blog.csdn.net/xiaoyouck/article/details/77206505 介绍镜头阴影校正(Lens Shading Correction)是为了解决由于 ...
- Camera噪声问题
Camera噪声问题 Camera RGB 域的噪声 以上部分属于sensor processing,接下来的部分属于color.luminance processing. gamma gamma是在 ...
- 主流智能手机屏幕材质介绍 及 LCD闪屏现象分析
TN TN(Twisted Nematic) 即扭曲向列型面板,属于有源矩阵液晶显示器中的一种.由于TFT是主动式矩阵LCD可让液晶的排列方式具有记忆性,不会在电流消失后马上恢复 ...
- 基于Shading Model(对光照变化一定不变性)的运动目标检测算法
光照模型(Shading Model)在很多论文中得到了广泛的应用,如robust and illumination invariant change detection based on linea ...
- 什么是镜头shading
shading分为两种: Lens Shading:由于Lens的光学特性,Sensor影像区的边缘区域接收的光强比中心小,所造成的中心和四角亮度不一致的现象. color shading:由于LEN ...
- 【计算机视觉】基于Shading Model(对光照变化一定不变性)的运动目标检测算法
光照模型(Shading Model)在很多论文中得到了广泛的应用,如robust and illumination invariant change detection based on linea ...
- xamarin MasterDetailPage点击Master时卡顿现象
在很多项目中经常会使用到MasterDetailPage的布局方式,而且一般做为主页面来开发,在开发中,发现一个并不算Bug的问题,但是却发生了,以此记录下来,方便大家探讨. 现象是这样的,我开发了一 ...
随机推荐
- python函数进阶
知识内容: 1.函数即变量 2.嵌套函数 3.lambda表达式与匿名函数 4.递归函数 5.函数式编程简介 6.高阶函数与闭包 一.函数即变量 1.变量的本质 声明一个变量,在python里本质上讲 ...
- [Flutter] 支持描边效果的Text
新版的flutter已经自带这个功能了.TextSyle 中一个shadow . 目前flutter中没找到很好的办法给Text增加描边.自己扩展了一个TextEx,可以实现简单的描边效果,能满足大部 ...
- 粗解python的@classmethod和@staticmethod及普通实例方法
引言: 使用不同的函数定义方法,可以使得函数定义更加有效而且易于维护 本文为博主原创,根据本人自己的理解整理而成,若有不准确的地方,希望能留言告知以免误导他人: 首先进一段代码,来直观感受一下不同类型 ...
- ASP.Net在web.config中设置上传文件的大小方法
修改Webcong文件:<system.web><httpRuntime maxRequestLength="40960" //即40MB,1KB=1024u ...
- c++builder XE6 线程 tthread
thread TThread class TSleepFunc : public TCppInterfacedObject<TProc> { public: TSleepFunc(TFor ...
- eclipse 和 javaClass
eclipse 如果设置为 Build automaticaly 会自动对当前的类进行编译,放在项目下的bin文件夹下. 1. 如果此Class有错,则编译后的Class不能用,里面仅仅写会抛出异常代 ...
- Gradle 多项目构建
Gradle可以轻松处理各种大小规模的项目.小项目由一个单一的构建文件和一个源代码树构成. 大项目可以将其拆分成更小的,相互依赖的模块,以便更容易理解. 多项目构建的结构特征: 在项目的根目录或主目录 ...
- 前端-javascript-BOM-浏览器对象模型
BOM的介绍---浏览器对象模型. 操作浏览器部分功能的API.比如让浏览器自动滚动. -------------------------------------------------------- ...
- Java对字符串使用MD5进行加密(亲测有效)
转自:https://blog.csdn.net/jay314159/article/details/4918358 前言: MD5即Message-Digest Algorithm 5(信息-摘要算 ...
- 遍历python字典几种方法
遍历python字典几种方法 from: http://ghostfromheaven.iteye.com/blog/1549441 aDict = {'key1':'value1', 'key2': ...