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 自定义模板 回顾 上一篇,我们简单介绍了几个基本的控件,本节我们将讲解每个控件的样式的自定义和数据模板的自定义,我们会结合项目中的具体的要求和场景来分析,给出我们实现 ...
随机推荐
- linux下配置java环境及问题
一:下载jdk 下载稳定版本http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260.html ...
- 解决VSCode终端中文乱码问题
VSCode终端其实调用的是cmd.exe,所以当这里出现中文乱码的时候要解决的是cmd的编码设置问题. 可以通过chcp命令查看cmd的编码设置,GBK2312的代码页编号是936,然后改成utf- ...
- HDU 1930 CRT
也是很模板的一道题,给出一些数,分割,模数固定是4个互质的. /** @Date : 2017-09-16 23:54:51 * @FileName: HDU 1930 CRT.cpp * @Plat ...
- 重构改善既有代码设计--重构手法15:Remove Middle Man (移除中间人)
某个类做了过多的简单委托动作.让客户直接调用受托类. 动机:在Hide Delegate (隐藏委托关系)的“动机”中,谈到了“封装委托对象”的好处.但是这层封装也是要付出代价的,它的代价是:每当客户 ...
- Lua的各种资源1
Libraries And Bindings LuaDirectory > LuaAddons > LibrariesAndBindings This is a list of l ...
- JavaScript设置粘贴板
设置复制 document.body.oncopy = function(){ alert('不许复制'); return false; }; 设置粘贴 document.getElementById ...
- 【洛谷 P3191】 [HNOI2007]紧急疏散EVACUATE(二分答案,最大流)
题目链接 sb错误调了3hour+.. bfs预处理出每个\(.\)到每个\(D\)的最短距离. 二分时间\(t\),把每个\(D\)拆成\(t\)个点,这\(t\)个点两两连边,流量\(INF\)表 ...
- HDU 1166 敌兵布阵 (树状数组 单点修改+区间查询)
题目链接 Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和T ...
- openjudge-NOI 2.6-2000 最长公共子上升序列
题目链接:http://noi.openjudge.cn/ch0206/2000/ 题解: 裸题,不解释(题目有毒) #include<cstdio> #include<algori ...
- nginx配置--event模块
在nginx的配置中,event模块可以进行以下配置: 设置网络连接的序列化. 在Nginx服务器的多进程下,有可能出现惊群(Thundering herd problem)问题,指的是当某一个时刻只 ...