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中各种向量,坐标都被插值,一个像素对应的物体表面可以看成一个微平面,各种被插值以后的向量,坐标就可以看成是这个微平面的向量,坐标,再利用相关的概率,遮挡等公式计算像素值。
Cook-Torrence Illumination Model 的一些数学说明的更多相关文章
- Unity3D for VR 学习(9): Unity Shader 光照模型 (illumination model)
关于光照模型 所谓模型,一般是由学术算法发起, 经过大量实际数据验证而成的可靠公式 现在还记得2009年做TD-SCDMA移动通信算法的时候,曾经看过自由空间传播模型(Free space propa ...
- 数学类杂志SCI2013-2014影响因子
ISSN Abbreviated Journal Title Full Title Category Subcategory Country total Cites IF 2013-20 ...
- Fundamentals of Computer Graphics 中文版(第二版) (Peter Shirley 著)
1 引言 2 数学知识 3 光栅算法 4 信号处理 5 线性代数 6 矩阵变换 7 观察 8 隐藏面消除 9 表面明暗处理 10 光线追踪 11 纹理映射 12 完整的图形流水线 13 图形学的数据结 ...
- 翻译:非常详细易懂的法线贴图(Normal Mapping)
翻译:非常详细易懂的法线贴图(Normal Mapping) 本文翻译自: Shaders » Lesson 6: Normal Mapping 作者: Matt DesLauriers 译者: Fr ...
- (转)光照模型及cg实现
经典光照模型(illumination model) 物体表面光照颜色由入射光.物体材质,以及材质和光的交互规律共同决定. 由于环境光给予物体各个点的光照强度相同,且没有方向之分,所以在只有环境光的情 ...
- 【GLSL教程】(六)逐顶点的光照 【转】
引言 在OpenGL中有三种类型的光:方向光(directional).点光(point).聚光(spotlight).本教程将从方向光讲起,首先我们将使用GLSL来模仿OpenGL中的光. 我们将向 ...
- GLSL逐顶点光照[转]
转载:http://blog.csdn.net/hgl868/article/details/7872350 引言 在OpenGL中有三种类型的光:方向光(directional).点光(point) ...
- OpenCascade Ray Tracing Rendering
OpenCascade Ray Tracing Rendering eryar@163.com 摘要Abstract:OpenCascade6.7.0中引入了光线跟踪算法的实现.使用光线跟踪算法可实现 ...
- 39. Volume Rendering Techniques
Milan Ikits University of Utah Joe Kniss University of Utah Aaron Lefohn University of California, D ...
随机推荐
- self-taught learning setting && semi-supervised learning
参考文献: 摘于上文献: The more general and powerful setting is the self-taught learning setting, which does n ...
- 企业web管理软件开发平台
可以自定义拖动记忆位置的part桌面 权限(功能菜单查看范围)设置界面 权限(人员数据查看范围)设置界面 菜单排序和名称设置界面 业务模块 自定义字段界面 业务功能 列表界面 业务功能 查询界面 ...
- Packer 基本试用
安装 使用mac 系统 https://www.packer.io/downloads.html 配置环境变量 可选 sudo nano ~/.bash_profile export PATH=$PA ...
- nexus bower 集成使用
创建nexus bower proxy host 比较简单,如下图: 安装bower && bower-nexus resolver npm install -g bower-nexu ...
- JSP--JDBC技术
JDBC技术1.JDBC简介 大型网站是离不开数据库的,使用JDBC技术链接数据库 JDBC:java Data Base Connectivity,使用JDBC连接数据库后数据库的增/删/改/查及批 ...
- Linux 增加系统调用 (转)
Linux 增加系统调用大致步骤: 1.下载好内核文件,在内核源文件中添加好自己的调用函数. 2.编译内核 3.验证. 一.在内核源文件中增加自己的函数 首先将内核文件移至/usr/src/下并解压. ...
- linux shell 模拟post请求
Linux 下curl模拟Http 的get or post请求. 一.get请求 curl "http://www.baidu.com" 如果这里的URL指向的是一个文件或 ...
- 用原生 JS 实现双向绑定及应用实例
写在前面: 所谓的双向绑定,无非是从界面的操作能实时反映到数据,数据的变更也能实时展现到界面.angular封装了双向绑定的方法,使双向绑定变得十分简单.但是在有些场景下(比如下面那个场景),不能使用 ...
- 解决navicat连接不上mysql服务器
设置mysql密码 如果mysql用户密码为空,需要设置后第三方mysql操作工具才可以连接 进入数据库:mysql -uroot -p use mysql; update user set pass ...
- 负载均衡-haproxy安装配置
HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持 ...