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

  光与表面交互的模型包含两类:和物体表面(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. Python - Django - ORM 操作表

    ORM 的对应关系: 类        --->    数据库表对象     --->    数据库行属性     --->    字段 操作数据库表     --->     ...

  2. border做三角符号

    用border做三角符号以及其他图形 ;; border-width:20px 10px; border-style:solid; border-color:#ff3300 #ff3300 #ffff ...

  3. 线程安全计算 AtomicLong

    一般如果我们自己写一个计数器方法,需要考虑线程安全问题,尤其高并发访问的时候. AtomicLong 已处理并发问题,直接使用.java.util.concurrent.atomic包提供多种线程安全 ...

  4. linux查看磁盘占用常用的两个命令

    1.查看总容量.已使用.未使用容量:df -hl -h:以kb以上单位显示 -l:仅显示本地文件系统 2.查看当前路径下,每个文件/夹占用空间大小:du -sh *

  5. Spring boot profile 多环境配置

    1.多Profile文件 我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml 默认使用application.properties的配置 ...

  6. 前端开发-4-HTML-table&form&表单控制 标签

    1.table标签 <!DOCTYPE html> <html lang="cn"> <head> <meta charset=" ...

  7. Others-Goldengate 数据同步

    GoldenGate 是一家创建于1995年的美国公司,开发总部设在旧金山,在北美,欧洲和亚洲(包括新加坡.印度.澳大利亚)设有支持中心. 公司名称 GoldenGate 总部地点 旧金山 成立时间 ...

  8. ABAP-Generate dynpro动态屏幕

    1.获取屏幕参数值 FUN: RS_SCRP_GET_SCREEN_INFOS call function 'RS_SCRP_GET_SCREEN_INFOS' exporting dynnr = ' ...

  9. redis-trib.rb报错:/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- redis (LoadError)

    报错如下: /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- redis ...

  10. 关于Integer的比较,今天又犯了一个低级错误,记录下

    今天查看以前所写的代码,看到有一部分被人改了,代码如下: if (orgId != organizationUpdateReq.getOrgId()) { //orgId的类型为Integer,org ...