(计算光照的时候,从两点出发考虑,光的传播方向,以及光的在这个方向上的能量。)

  光与表面交互的模型包含两类:和物体表面(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——菲涅耳现象的更多相关文章

  1. advance shading——基础(辐射度测定)

    辐射度测定(radiometry) <real time rendering>在这章上来就说了一大堆光照方面的物理术语,不知该怎么翻译.后来在维基百科上看到这个表,清楚了很多(这里的w是瓦 ...

  2. advance shading--BRDF

    其实,双向反射(reflect)分布函数(BRDF)是一个四元函数,这个函数最终只是计算一个比值,这个值确定了射入物体表面的光中有多少被物体表面反射,并最终被眼睛所看到.反射的愈多,眼睛收到的光强越大 ...

  3. 【转】 ISP-镜头阴影校正(LSC)

    转自:https://blog.csdn.net/xiaoyouck/article/details/77206505 介绍镜头阴影校正(Lens Shading Correction)是为了解决由于 ...

  4. Camera噪声问题

    Camera噪声问题 Camera RGB 域的噪声 以上部分属于sensor processing,接下来的部分属于color.luminance processing. gamma gamma是在 ...

  5. 主流智能手机屏幕材质介绍 及 LCD闪屏现象分析

    TN            TN(Twisted Nematic) 即扭曲向列型面板,属于有源矩阵液晶显示器中的一种.由于TFT是主动式矩阵LCD可让液晶的排列方式具有记忆性,不会在电流消失后马上恢复 ...

  6. 基于Shading Model(对光照变化一定不变性)的运动目标检测算法

    光照模型(Shading Model)在很多论文中得到了广泛的应用,如robust and illumination invariant change detection based on linea ...

  7. 什么是镜头shading

    shading分为两种: Lens Shading:由于Lens的光学特性,Sensor影像区的边缘区域接收的光强比中心小,所造成的中心和四角亮度不一致的现象. color shading:由于LEN ...

  8. 【计算机视觉】基于Shading Model(对光照变化一定不变性)的运动目标检测算法

    光照模型(Shading Model)在很多论文中得到了广泛的应用,如robust and illumination invariant change detection based on linea ...

  9. xamarin MasterDetailPage点击Master时卡顿现象

    在很多项目中经常会使用到MasterDetailPage的布局方式,而且一般做为主页面来开发,在开发中,发现一个并不算Bug的问题,但是却发生了,以此记录下来,方便大家探讨. 现象是这样的,我开发了一 ...

随机推荐

  1. Data Provider 中没有.net framework Data provider for Mysql 的解决方法

    近来做的一个项目中,数据库用的是 MySql, 而在项目使用 Entity Data Model 来做数据服务层,可是在项目中添加 Data Entty Model 时,一般我们都会选择从数据库中直接 ...

  2. viewer 照片查看器

    viewer 照片查看器 效果: api: https://github.com/fengyuanchen/viewerjs#methods npm: npm install viewerjs 使用: ...

  3. 编写一个基于Soap DataModule的三层数据库应用

    服务器端:建立一个Web App Debugger executable类型,不需要接口,添加一个SoapData Module,放上AdoCon,AdoDataSet,DataSetProvider ...

  4. jstl遍历list的jsp

    jstl,核心标签库,使用,<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%& ...

  5. scala-- 内建控制结构

    内建控制结构 ​ scala 内建的控制结构很少,只有 if while for try match 和函数调用 几种. 因为scala 从语法层面支持函数字面量.几乎所有的scala控制结构都会产生 ...

  6. apply和call用法

    资料来源:http://blog.csdn.net/business122/article/details/8000676 Js apply方法详解 我在一开始看到javascript的函数apply ...

  7. redis lua 用来传输日志

    2.8 Lua Script Redis2.6内置的Lua Script支持,可以在Redis的Server端一次过运行大量逻辑,就像存储过程一样,避免了海量中间数据在网路上的传输. Lua自称是在S ...

  8. "诗词大闯关"调查过程心得体会

    为了充分满足客户需求来更好地完成我们的项目--"诗词大闯关",我们根据项目内容,制定了调查表.我们小组以网上问卷调查的形式制作了调查表,并收集了122份有效的问卷调查表. 通过这次 ...

  9. 重新认识trim,ltrim,rtrim,trailing和leading。

    trim经常用来去除一个字符串的空格,select trim(' dhajkjwa ') from dual; 在上面的语句中,trim的前面也可以加r或者l,表示去掉前面或者后面的空格,r和l代表左 ...

  10. MonkeyRunner原理初步--Android自动化测试学习历程

    章节:自动化基础篇——MonkeyRunner原理初步 主要讲解内容及笔记: 一.理论知识和脚本演示 最佳方式是上官网文档去查看monkeyrunner的介绍,官网上不去,就找了一个本地的androi ...