PBR Step by Step(二)辐射度
转载请注明出处:http://www.cnblogs.com/jerrycg/p/4929119.html
基于物理的渲染要尽量遵循能量守恒原则,主要的测量单位为辐射度。
辐射能Radiant energy
辐射能\({Q}\)是电磁波能量的基本单位,单位为焦耳,用符号\({J}\)表示。
单个光子的辐射能\({Q}=\frac{h\,c}{\lambda }\),其中\({h}\)为普朗克常数\({h}={6.62620}\times {10}^{-34}\)焦耳/秒;\({c}\)为光速\({c}={2.998}\times {10}^{8}\)米/秒;\(\lambda\)为波长,单位为米。
辐射通量Radiant flux
辐射通量\(\Phi\)定义为每秒通过物体表面的辐射能,单位为焦耳/秒(\({J}/{s}\))或瓦特\({W}\)。
光源每秒所发射的辐射能(辐射功率)为\(\Phi=\frac{dQ}{dt}\)
辐射照度Irradiance
辐射照度是单位面积上的辐射通量,\({E}=\frac{d\Phi}{dA}\),其中\({dA}\)表示极小面积,单位为瓦/平方米(\({W}\cdot {m}^{-2}\))。
辐射亮度Radiance
辐射亮度\({L}\)定义为沿辐射方向上的单位投影面积、单位立体角上的辐射通量,单位为(\({W}\cdot {m}^{-2}\cdot{sr}^{-1}\))。
\({L}=\frac{{d}\Phi}{{d{A}^{\perp}}\,{d\omega }}\)
其中入射角度如下图所示:

\({dA}^{\perp}=\cos \theta \, {dA}\),则\({L}=\frac{{d}\Phi}{{dA}\, \cos \theta \, {d\omega }}\)
辐射度积分
有了以上定义,可知辐射照度为物体表面上的辐射亮度。极小单位表面(投影立体角)上的单位入射辐射度为:
\({dE_i(p, \, \omega_i)}={L_i(p, \, \omega_i) \, \cos \theta_i \, d \omega_i}\)
其中,\({L_i(p, \, \omega_i)}\)是\({\Omega_i}\)方向上点\({p}\)的入射辐射亮度。
对上式积分,可得有限立体角\({\Omega_i}\)上的入射辐射度为:
\({E_i(p, \, \omega_i)}=\int_{\Omega_i} {L_i(p, \, \omega_i) \, \cos \theta_i \, d \omega_i}\)
PBR Step by Step(二)辐射度的更多相关文章
- e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (二) 图片验证码的识别
上一篇文章讲了“e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step 一 京东 商品搜索 ...
- PBR Step by Step(三)BRDFs
BRDF BRDF(Bidirectional Reflectance Distribution Function)双向反射分布函数,用来描述给定入射方向上的入射辐射度以及反射方向上的出辐射度分布,B ...
- Metrics.NET step by step使用Metrics监控应用程序的性能
使用Metrics监控应用程序的性能 在编写应用程序的时候,通常会记录日志以便事后分析,在很多情况下是产生了问题之后,再去查看日志,是一种事后的静态分析.在很多时候,我们可能需要了解整个系统在当前,或 ...
- 【转载】MDX Step by Step 读书笔记(四) - Working with Sets (使用集合)
1. Set - 元组的集合,在 Set 中的元组用逗号分开,Set 以花括号括起来,例如: { ([Product].[Category].[Accessories]), ([Product].[ ...
- 稀疏表示step by step(转)
原文地址:稀疏表示step by step(转)作者:野火春风 稀疏表示step by step(1) 声明:本人属于绝对的新手,刚刚接触“稀疏表示”这个领域.之所以写下以下的若干个连载,是鼓 ...
- Step by step Dynamics CRM 2011升级到Dynamics CRM 2013
原创地址:http://www.cnblogs.com/jfzhu/p/4018153.html 转载请注明出处 (一)检查Customizations 从2011升级到2013有一些legacy f ...
- SQL Server 维护计划实现数据库备份(Step by Step)(转)
SQL Server 维护计划实现数据库备份(Step by Step) 一.前言 SQL Server 备份和还原全攻略,里面包括了通过SSMS操作还原各种备份文件的图形指导,SQL Server ...
- 转载自~浮云比翼:Step by Step:Linux C多线程编程入门(基本API及多线程的同步与互斥)
Step by Step:Linux C多线程编程入门(基本API及多线程的同步与互斥) 介绍:什么是线程,线程的优点是什么 线程在Unix系统下,通常被称为轻量级的进程,线程虽然不是进程,但却可 ...
- WPF Step By Step 自定义模板
WPF Step By Step 自定义模板 回顾 上一篇,我们简单介绍了几个基本的控件,本节我们将讲解每个控件的样式的自定义和数据模板的自定义,我们会结合项目中的具体的要求和场景来分析,给出我们实现 ...
随机推荐
- poi复杂excel的实现
一:前言 最近帮一个朋友做excel的导出功能,对于我来说还是挺头疼,我看了下表格样式,对于我来说还是挺头疼的,想当年耗子刚刚出社会的时候做的第一份工作,第一份任务就是把把word转换为html,在这 ...
- 多例模式,保证实例的唯一性,仅适用于form窗体
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...
- File System Implementation 文件系统设计实现
先来扯淡吧,上一篇文章说到要补习的第二篇文章介绍文件系统的,现在就来写吧.其实这些技术都已经是很久以前的了,但是不管怎么样,是基础,慢慢来学习吧.有种直接上Spark源码的冲动.. 1. 这篇博客具体 ...
- escapeRegExp捕捉通配符的代码解析
费了好几个小时,把一小段正则代码搞通了,回顾并记下,加深记忆. 该段代码来自yii.js,它也是引自stackoverflow,地址是:http://stackoverflow.com/questio ...
- Python ctypes中cast/py_object用法
class ctypes.py_object Represents the C PyObject * datatype. Calling this without an argument create ...
- Java线上应用故障之CPU占用高排查与定位
最近线上频繁报警CPU空闲不足,故紧急排查后分享给大家 1.使用top命令,获取占用CPU最高的进程号 2.查看线程号对应的进程信息 命令:ps -ef|grep 22630 3.查看进程对应的线程信 ...
- 「caffe编译bug」 undefined reference to `boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::__cxx11
CXX/LD -o .build_release/tools/test_net.binCXX/LD -o .build_release/tools/convert_annoset.binCXX/LD ...
- C++ 和Java继承机制的比较
摘要: C++支持类的多继承,而Java采用类的单继承.C++中的继承成分只有类(模板属于带参数的类,结构和联合是特殊的类),Java中除了类还有接口的继承,而且允许接口的多继承,可以间接地实现类多继 ...
- 更换git用户名或密码
Windows10下更换Git用户名或密码:https://jingyan.baidu.com/article/642c9d3435a6e9644a46f732.html git清除用户名密码 git ...
- 一键去除网页BOM属性【解决乱码,头部空白,问题】
几个常出现的问题: 1.网站打开空白 2.页面头部出现多余的空白 3.网站出现乱码,如“锘�” 解决方法可以是: 1.选用专业的编辑器,例如notepad++,sublime,editplus这样不会 ...