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中各种向量,坐标都被插值,一个像素对应的物体表面可以看成一个微平面,各种被插值以后的向量,坐标就可以看成是这个微平面的向量,坐标,再利用相关的概率,遮挡等公式计算像素值。

Cook-Torrence Illumination Model 的一些数学说明的更多相关文章

  1. Unity3D for VR 学习(9): Unity Shader 光照模型 (illumination model)

    关于光照模型 所谓模型,一般是由学术算法发起, 经过大量实际数据验证而成的可靠公式 现在还记得2009年做TD-SCDMA移动通信算法的时候,曾经看过自由空间传播模型(Free space propa ...

  2. 数学类杂志SCI2013-2014影响因子

    ISSN Abbreviated Journal Title Full Title Category Subcategory Country total Cites IF        2013-20 ...

  3. Fundamentals of Computer Graphics 中文版(第二版) (Peter Shirley 著)

    1 引言 2 数学知识 3 光栅算法 4 信号处理 5 线性代数 6 矩阵变换 7 观察 8 隐藏面消除 9 表面明暗处理 10 光线追踪 11 纹理映射 12 完整的图形流水线 13 图形学的数据结 ...

  4. 翻译:非常详细易懂的法线贴图(Normal Mapping)

    翻译:非常详细易懂的法线贴图(Normal Mapping) 本文翻译自: Shaders » Lesson 6: Normal Mapping 作者: Matt DesLauriers 译者: Fr ...

  5. (转)光照模型及cg实现

    经典光照模型(illumination model) 物体表面光照颜色由入射光.物体材质,以及材质和光的交互规律共同决定. 由于环境光给予物体各个点的光照强度相同,且没有方向之分,所以在只有环境光的情 ...

  6. 【GLSL教程】(六)逐顶点的光照 【转】

    引言 在OpenGL中有三种类型的光:方向光(directional).点光(point).聚光(spotlight).本教程将从方向光讲起,首先我们将使用GLSL来模仿OpenGL中的光. 我们将向 ...

  7. GLSL逐顶点光照[转]

    转载:http://blog.csdn.net/hgl868/article/details/7872350 引言 在OpenGL中有三种类型的光:方向光(directional).点光(point) ...

  8. OpenCascade Ray Tracing Rendering

    OpenCascade Ray Tracing Rendering eryar@163.com 摘要Abstract:OpenCascade6.7.0中引入了光线跟踪算法的实现.使用光线跟踪算法可实现 ...

  9. 39. Volume Rendering Techniques

    Milan Ikits University of Utah Joe Kniss University of Utah Aaron Lefohn University of California, D ...

随机推荐

  1. Luogu2435 染色【状压qwq】【轮廓线DP】

    LINK 题目大意 有一个 n 行 m 列的格点图,你需要给每个点上染上 k 种颜色中的一种,要求没有两个相邻点颜色相同.给定第一行与最后一行的染色,试求总染色方案数. 思路 暴力预处理状态暴力转移可 ...

  2. java面试题9

    1.选择题 public class Test01 { public static void changeStr(String str) { str = "welcome"; } ...

  3. 第2本MATLAB书

    前面看的<DSP using MATLAB>后面还有两章,其内容太难了,看不下去,暂时放放: 因为工作中需要MATLAB和电磁场的相关知识,从网上找了本 初步翻了翻,里面有代码有图片,英文 ...

  4. [BZOJ4802]欧拉函数

    bzoj description 给出\(n\),求\(\varphi(n)\).\(n\le10^{18}\) sol \(Pollard\ Rho\),存个代码. code #include< ...

  5. Javascript 全局函数是 window 的函数

    比如以下函数,看起来不属于任何对象,但它是一个全局对象. 它属于 HTML页面的函数. function myFunction(a, b){ return a * b; } window.myFunc ...

  6. PostgreSQL性能极限

    目前已有很多PostgreSQL的系统在实际生产环境下管理着超过4TB的数据.一些PostgreSQL系统的极限值如下表所列: 极限值: 最大单个数据库大小 不限 最大数据单表大小 32 TB 单条记 ...

  7. httpd编译安装

    Apache安装问题:configure: error: APR not found . Please read the documentation: Linux上安装Apache时,编译出现错误: ...

  8. 汇编_指令_INC

    加1指令 INC指令功能:目标操作数+1 INC指令只有1个操作数,它将指定的操作数的内容加1,再将结果送回到该操作数.INC指令将影响SF,AF,ZF,PF,OF标志位,但是不影响CF标志位. IN ...

  9. 思科、华为、H3C命令对照表

    思科 华为 H3C 描述 no undo undo 取消/关闭 当前设置 show display display 查看.显示 exit quit quit 退回上级 hostname sysname ...

  10. HDU6128-Inverse of sum

    参考这篇博客:https://blog.csdn.net/dormousenone/article/details/77340852 #include<bits/stdc++.h> usi ...