• 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),只不过要用折射角代替入射角。

      内部的有能量损失

  • 相关阅读:
    webOFBiz10.4
    堆栈知识
    eas bos二次开发总结[第三方jar、jcom、二次开发包放置]
    计算机编程英语词汇(三)
    计算机英语(四)
    KDTable 表达式应用工具类
    Verilog 流水线加法器
    datagridview 积累
    ajax 调用 webserver
    windows7 vs2008问题结合
  • 原文地址:https://www.cnblogs.com/BlackWalnut/p/4587182.html
Copyright © 2020-2023  润新知