精确光源(Punctual Light Sources)
《Physically-Based Shading Models in Film and Game Production》(SIGGRAPH 2010 Course Notes)
(地址:http://renderwonk.com/publications/s2010-shading-course/hoffman/s2010_physically_based_shading_hoffman_a_notes.pdf)
Punctual Light Sources一段若干注解:
由于物理渲染基于辐射理论,而辐射理论的图景是”面元间能量传输“,即只有面光源的概念,所以经典光源(directional light, point light, spot light)需要用“面元”的语言来重新定义。
于是就有了精确光源(Punctual Light Source)的概念:
精确光源就是如下图所示的一个球面面元(面光源),其光锥张角
无限小,且光锥内方向为l的光线的亮度为Ltiny(l)。

接下来问题就是,怎么定义此光源的颜色?
让此光源垂直照射一反射率为1的lambert(理想漫反射)表面,则反射亮度为

注:
1,因为lambert表面的BRDF为Albedo/PI,又Albedo=1,所以BRDF为1/PI。
2,dot(n,l)在式中消失是因为:当
->0时l->lc,又由于垂直入射lc=n,所以dot(n,l)->1。
就将
定义为光源的颜色clight,于是得

至此方向为lc,颜色为clight的精确光源定义完毕。
定义完,我们就开始用。
于是问题来了:方向为lc,颜色为clight的精确光源产生的效果到底啥样?
即:如果用此光源照射一个BRDF为f(l,v)的表面,反射亮度是多少?

计算如下:

这样就得到了精确光源的反射亮度公式:
然后就是如何在精确光源的基础上定义directional light、point light、spot light:

记住第一句就ok了,即只要精确光源的lc和clight取常数,就是directional light。
也就是说:
用方向为lc,亮度为clight的directional light照射一个BRDF为f(l,v)的表面,反射亮度是

精确光源(Punctual Light Sources)的更多相关文章
- [原]Unity3D深入浅出 - 光源组件(Light)
		
Unity中提供了四种光源: Directional light: 方向光,类似太阳的日照效果. Point light: 点光源,类似蜡烛. Spotlight: 聚光灯,类似手电筒. Area L ...
 - Unity 3D光源-Point Light点光源详解/灯泡、模拟灯光效果教程
		
Unity4大光源之点光源 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...
 - Unity 3D光源-Spot Light聚光灯用法详解、模拟手电筒、台灯等线性教程
		
Unity4大光源之聚光灯 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...
 - pbr若干概念
		
pbr基于辐射传输理论,最基本的一个观点是:一切皆光源--任何一个面元既是光能接收器,也是光能发射器. 光通(flux):单位时间内通过某一面积的光能,单位W(瓦特),用表示. 可见,光通其实就是功率 ...
 - Light Explorer
		
[Light Explorer] The Light Explorer allows you to select and edit light sources. Window> Lighting ...
 - Unity Lighting - Light Types 灯光类型(八)
		
Light Types 灯光类型 We have now covered some of the project settings which need to be considered befo ...
 - ogre3D学习基础9 -- 光源程序实例
		
这一章练习一下光源的使用,光源分为三种:点光源,聚光源,有向光.具体内容前面说过,这里就不解释了. 继续在上一章的程序的基础上实现. 1.创建摄像机(Camera) createCamera()函数是 ...
 - Camera学习--光源
		
进入CV 领域,视频图像的成像,最前端的camera,camera的sensor 以及影响成像质量的光源,噪声等因素是绕不开的问题. 那么今天就从成像的光源说起. 标准光源(Standard Ligh ...
 - three.js光源
		
在Threejs中,光源用Light表示,它是所有光源的基类.它的构造函数是: THREE.Light ( hex ) 它有一个参数hex,接受一个16进制的颜色值.例如要定义一种红色的光源,我们可以 ...
 
随机推荐
- listview下拉刷新 上拉(滑动分页)加载更多
			
最 近做的类似于微博的项目中,有个Android功能要使用到listview的向下拉刷新来刷新最新消息,向上拉刷新(滑动分页)来加载更多.新浪微博就是使用这种方式的典型.当用户从网络上读取微博的时候, ...
 - 解决ODI 12C Studio 运行缓慢问题
			
一.配置 ODI 12C Studio 1.1 修改ODI Studio process的-Xms和-Xmx ide.conf: modifying the initial Heap size (-X ...
 - 索引快速扫描(index fast full scan)
			
一.索引快速扫描(index fast full scan) 索引快速全扫描(INDEX FAST FULL SCAN)和索引全扫描(INDEX FULL SCAN)极为类似,它也适用于所有类型的B ...
 - Java DES 加解密("DES/CBC/PKCS5Padding")
			
/** * DES加密 * * @param data 加密数据 * @param key 密钥 * @return 返回加密后的数据 */ public static byte[] desEncry ...
 - java 判断字符串中是否包含中文并过滤掉中文
			
java判断字符串中是否包含中文并过滤掉中文 CreateTime--2017年9月6日08:48:59 Author:Marydon 1.判断字符串中是否包含中文方法封装 /** * 判断字符串 ...
 - jenkins权限配置不对导致jenkins无法登陆
			
提醒:每次更改权限时,要将config.xml备份一下. 在打开jenkins后,没有创建用户前,先不要勾选系统设置中启用安全选项,如果勾选了,就会出现无法进入jenkins的现象. 如果已经勾选可以 ...
 - Retrofit2完全教程
			
本文注目录: Retrofit入门 Retrofit注解详解 Gson与Converter RxJava与CallAdapter 自定义Converter 自定义CallAdapter 其它说明 前言 ...
 - xml中“ < > ”转义为“ < > ”问题处理
			
曾经也碰到过类似问题,解决方法是在发送或者解析报文前执行上面的方法将内容转义一下,现在我用dom4j组装如下的报文(报文体中内容传输时加密处理),大致介绍一下上面方法的使用,具体看代码. import ...
 - ios判断是否有中文
			
//判断是否有中文 -(BOOL)IsChinese:(NSString *)str { ; i< [str length];i++){ int a = [str characterAtInde ...
 - 用yum下载rpm包(不安装)到制定目录
			
用yum下载rpm包(不安装)到制定目录用yum下载rpm包 www.pcjsh.com 1.安装yum-downloadonly # yum install yum-downloadonly -y ...