【实时渲染】BRDF - 双向反射分布函数

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

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 的反射率。

lv 都有两个自由度,可以用方位角衡量:

在这里插入图片描述

现在知道物体表面的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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值