zoukankan      html  css  js  c++  java
  • Cook-Torrence Illumination Model 的一些数学说明

    Cook-Torrence 光照模型如下:

      

    这个Io就是计算后最终的光强,主要是用来计算镜面反射光,漫反射和环境光的计算和Phong模型一致。

    F:Fresnel反射系数。主要用来说明反射光强度占入射光强的比例。《3D计算机图形学(opengl版)》中由介绍。Fresnel系数和Snell系数的关系为:

        Fresnel确定反射或者折射的光的能量大小,就是亮度。Snell则是确定反射和折射的方向。

    D:微平面分布函数。它的一般表达式为D = f(θ),其中D是一个数值,它代表了一个平面中的能够将入射光线反射到和视线方向一致的(形成镜面反射)微平面所占的比例,Θ为半角(二分)向量和平面(不是微平面)法向量的夹角,当夹角为0时,表示该平面能够将入射光线反射到人眼中,形成镜面反射,f 时一个概率函数。可以通俗的描述为:当θ越小时,说明在平面中能够将光线反射到视线方向的微平面占的概率(比率)越大。f的就是各种概率函数,由很多种选择,如高斯概率函数,Beckmann函数等,其本质上都是概率函数。

    G:几何衰减系数。表示微平面在反射光线过程中被遮挡和被屏蔽光线的比率,具体参考《3D计算机图形学(opengl版)》。

    注意:以上shader代码要求写在fragment shader中,因为在fragment shader中各种向量,坐标都被插值,一个像素对应的物体表面可以看成一个微平面,各种被插值以后的向量,坐标就可以看成是这个微平面的向量,坐标,再利用相关的概率,遮挡等公式计算像素值。

  • 相关阅读:
    [mac]macOS Big Sur大苏尔动态壁纸下载
    JAVA各种OOM代码样例及解决方法
    详解Flask上下文
    Python代码规范检测
    深入掌握K8S Pod
    Java中包装类Test类测试出错的解决方法(JUnit5)
    细说selenium的等待条件
    利用tox打造自动自动化测试框架
    JAVA实现BP神经网络算法
    Oracle游标简介与使用
  • 原文地址:https://www.cnblogs.com/BlackWalnut/p/4253626.html
Copyright © 2011-2022 走看看