引言
这两节介绍基于物理的渲染(PBR)相关知识。这种渲染方式使用了更符合物理学规律的方式来模拟光线,所以呈现的效果总体比Phong 或 Blinn-Phong看起来更真实。(实现起来也更复杂。。。)
理解PBR,很重要的一点就是理解反射率方程
看完这两节,大致就能理解方程中各个部分的含义。
内容目录
辐射度量学
- 几个基本物理量
- BRDF,反射方程
- 渲染方程与全局光照
- 渲染方程求解
(1) 蒙特卡洛积分
(2) 路径追踪
一.辐射度量学中的几个基本物理量
1. 辐射通量(Radiant flux) Φ
类似在高中物理中学过的概念
2. 立体角(Solid Angle) ω
角度的概念在三维空间中的延伸,指的是投射到单位球体上的截面的面积。
3. 辐射强度 I (Radiant Intensity)
一个光源向单位立体角投射的辐射通量。
4. Irradiance
单位面积上的辐射通量。(与辐射强度的定义不同,这里除去的是单位立体角。虽然两者都是辐射通量除以面积)
这个量的引入是为了考虑,物体表面法线与光线方向夹角的问题。夹角越大,平面上接收到的辐射强度会相对地减少。
5. 辐射率 (Radiance) L
单位立体角、单位面积中 收到或传递出的辐射通量。
二.BRDF
用于处理某个小区域接收到的能量,如何被分配到各个方向上去。
三.渲染方程
反射方程 + 自发光项
在计算过程中,自发光项已知, 物体表面的BRDF(与物体表面材质相关),入射角度已知。唯有入射光线的强度时未知量,该项与其他物体辐射出的光线有关。
入射光项可以进一步被展开
可简写为求解方程(中间忽略了一大堆推导和解释的部分)
通过进一步推导
可得
全局光照 : 直接光照与间接光照的集合。
光栅化比较容易做到的部分是0次项和1次项,即计算自发光的部分和直接光照的部分。
四.求解渲染方程
1. 蒙特卡洛积分
目的 : 计算定积分(尤其应用在不太规则的函数上)
计算被围区域的面积。
参考文档
[1]. LearnOpenGL CN : https://learnopengl-cn.github.io/07%20PBR/01%20Theory/