PS:原标题《Real Time Rendering 4th》9.3 章读书笔记 没人看!
在着色模型中,我们通常以下两个表示从位置 x 出射或者入射的光的光亮度。
Lo(x,d)或者Li(x,d) L_o(\textbf{x}, \textbf{d}) 或者 L_i(\textbf{x}, \textbf{d}) Lo(x,d)或者Li(x,d)
- x:光的出射或者入射点
- d:光的方向
渲染的最终目的就是计算到达相机上的每一个点的光亮度,即来自方向 v 的射进处于位置 c 的相机的光亮度。
Li(c,−v) L_i(\textbf{c}, -\textbf{v}) Li(c,−v)
这个值在不考虑参与介质的情况下,约等于从最近的物体上出射的来自方向 v 的光线的亮度:
Li(c,−v)=Lo(p,−v) L_i(\textbf{c}, -\textbf{v}) = L_o(\textbf{p}, -\textbf{v}) Li(c,−v)=Lo(p,−v)
其中 p 是光线在某一个物体上出射的点。
来自 p 的光线有时候是物体自身的发光,也可能是光线照射到物体表面反射的光,也可能是来自其他物体反射的光之后二次反射的光,但我们这里只考虑直接反射的光,还有局部的此表面反射现象。
现在还需要解决一个问题,就是我们还需要衡量照射到物体表面的光经过反射之后,在特定方向上能够反射多少光。这可以用一个函数去描述反射光在空间当中的分布,这就是 BRDF,双向反射分布函数,记为
f(l,v) f(\textbf{l}, \textbf{v}) f(l,v)
- l 是光的输入方向
- v 本来是观察者方向
将 l 和 任意方向的 v 输入方程,BRDF将输出来自方向 l 的光在方向 v 的反射率。
l 和 v 都有两个自由度,可以用方位角衡量:

现在知道物体表面的BRDF之后,就可以写出光照强度的表达式,在某一个方位上的入射到物体的光与BRDF的乘积,根据入射角进行修正之后得到在方向 v 上反射强度,然后对入射光进行积分,就得到所有入射到物体 p 点的光在方向 v 的反射强度。
Lo(p,−v)=∫l∈Ωf(l,v)Li(p,l)(n⋅l)dl(9.4) L_o(\textbf{p}, -\textbf{v}) = \int_{l\in \Omega}f(\textbf{l}, \textbf{v})L_i(\textbf{p},\textbf{l})(\textbf{n}\cdot \textbf{l})d\textbf{l}\tag{9.4} Lo(p,−v)=∫l∈Ωf

本文是《Real Time Rendering 4th》9.3章读书笔记,介绍了渲染中光亮度的计算,引出双向反射分布函数(BRDF),阐述其作用、表达式及相关限制,如Helmholtz互异性和能量守恒定律,还提及定向半球反射函数,最后通过可视化展示不同光照模型的BRDF特点。

9107

被折叠的 条评论
为什么被折叠?



