第18章 基于物理的渲染

考虑pbr的话, 考虑光到底物体是怎么交互的.
光打到物体上, 一部分会被吸收, 一部分会被散射 最后到达我们的眼睛.
影响光的一个重要特性是材质的折射率.

观察物体表面可以发现, 为什么有些物体是粗糙的, 有些物体是光滑的.
在这里插入图片描述

光透过物体, 进入物体内部, 又弹射出来, 叫做次表面散射.

BRDF

brdf 有两种理解方式:

  1. 给定入射角, brdf可以给出所有出射方向上的反射和散射的光线的相对分布
  2. 给定观察方向(出射方向)后, brdf可以给出所有从入射方向到该出射方向的法线分布.

BRDF 可以用于描述两种不同的物理现象:表面反射和次表面散射。针对每种现象, BRDF 通常会包含 一个单独的部分来描述它们——用于描述表 面反射的部分被称为 高光反射项 (specular term), 以及 用于描述次表面散射的 漫反射项 (diffuseterm),
在这里插入图片描述

各项同性/各项异性

绕着表面法线旋转入射方向或者观察方向,并不会影响brdf的结果的材质, 称为各项同性

反射等式

L o ( v ) = ∫ ω f ( I , v ) × L i I ( n ⋅ l ) d ω i L_{o}(v) = \int_{\omega} f(I,v) \times L_i{I}(n \cdot l) d\omega_i Lo(v)=ωf(I,v)×LiI(nl)dωi
L是辐射率 用来量化光.辐射率是单位面积, 单位方向上光源的辐射量.
在渲染中, 我们通常会基于表面入射光线的入射辐射率 L i L_i Li来计算出射辐射率 L o L_o Lo
f ( I , v ) f(I,v) f(I,v)表示有多少部分能量被反射到了观察方向v上,
n ⋅ l n \cdot l nl表示入射方向在当前微表面的投影.

漫反射项

f l a m b e r t = c d i f f π f_{lambert} = \frac{c_{diff}}{\pi} flambert=πcdiff
c d i f f c_{diff} cdiff表示漫反射光线所占的比例, 通常也被称为漫反射的颜色.
所以我们见到的余弦项(即 n ⋅ l n \cdot l nl) 是反射等式的一部分, 而不是brdf的一部分.
f 除 以 π f除以\pi fπ是我们假设漫反射在所有方向上强度相同, 而brdf要求在半球内部积分为1
所以, 给定入射方向I的光源, 漫反射的辐射率为
L d i f f = c d i f f π × L i ( n ⋅ I ) L_{diff} = \frac{c_{diff}}{\pi} \times L_i(n \cdot I) Ldiff=πcdiff×Li(nI)

高光反射项

由于高光反射项需要考虑微表面模型, 一些微表面在光线入射的时候被挡住(b), 一些在光线反射的时候被挡住©, 因此只有微表面发现m = h(半程向量:光线与视线的向量和的一半) 的时候, 光线才能正确反射.
因此
f s p e c ( I , V ) = F ( I , H ) G ( I , v , h ) D ( h ) 4 ( n , I ) ( n , v ) f_{spec}(I,V) = \frac{F(I,H) G(I,v,h) D(h)}{4(n,I)(n,v)} fspec(I,V)=4(n,I)(n,v)F(I,H)G(I,v,h)D(h)
D(h) 是微表面法线分布函数
G(I,v,h) 是 阴影-遮挡函数, 用于计算那么满足m= h的微表面中有多少会由于遮挡而不会被人眼看到, 它给出了活跃的微表面所占的浓度
F(I,h) 菲涅尔反射函数, 它可以告诉我们有多少厚约的微表面能将入射光线反射到观察方向上
分母是校正项

猜你喜欢

转载自blog.csdn.net/esjiang/article/details/114234014