材质与 BRDF
几何决定光在哪里发生作用,材质决定光如何离开表面。在表面光传输模型中,材质主要由 双向反射分布函数 Bidirectional Reflectance Distribution Function,简称 BRDF,表示:
fr(ωi,ωo)=Li(ωi)cosθidωidLo(ωo).
它接收入射和出射方向,返回从一个方向到另一个方向的反射比例。颜色可以来自不同波长或 RGB 通道上的 BRDF;粗糙、抛光、拉丝等外观则来自方向分布。
漫反射
理想漫反射 Lambertian Reflection 的出射辐亮度与观察方向无关。若表面反照率为 ρ,把 BRDF 设为常数 c,在均匀入射光下有
Lo=cLi∫Ω+cosθidωi.
半球上 dω=sinθdθdϕ,所以
∫Ω+cosθdω=∫02π∫0π/2cosθsinθdθdϕ=2π[21sin2θ]0π/2=π.
因此 Lo=cπLi。为了让均匀入射光的总反射比例正好为 ρ,Lambertian BRDF 应为
fr=πρ,0≤ρ≤1.
这里的 1/π 来自半球余弦积分,保证能量守恒。经验着色公式中的漫反射系数若直接当作 BRDF 使用,遗漏这项会让总反射能量随积分增加。
粗糙白墙、粉笔和未抛光纸张可以近似为漫反射,但真实材料通常还含有方向性高光、次表面散射或微小遮挡。
镜面反射
全文约定 ωi 与 ωo 都从表面点向外指。入射光实际沿 −ωi 传播,理想镜面反射 Perfect Specular Reflection 的方向为
ωo=2(n⋅ωi)n−ωi.
将 ωi 分成法向分量 (n⋅ωi)n 与切向分量,反射保持法向分量、翻转切向分量,展开后正好得到上式。若使用指向表面的传播方向 di=−ωi,公式会变成 dr=di−2(di⋅n)n;两种约定不能混用。
理想镜面的 BRDF 在反射方向上是 Dirac delta 分布,不能把它理解为普通有限函数。BRDF 只描述反射,BTDF Bidirectional Transmittance Distribution Function 描述透射,二者统一称为 BSDF Bidirectional Scattering Distribution Function。
Glossy 材质把能量分布在理想反射方向附近的一段反射瓣内。表面越光滑,反射瓣越窄、环境倒影越清晰;表面越粗糙,微小法线方向越分散,高光也越宽。

折射
光从折射率为 ηi 的介质进入 ηt 时,Snell’s Law 给出
ηisinθi=ηtsinθt.
令 η=ηi/ηt,并取法线朝向入射介质,使
cosθi=n⋅ωi>0.
由 sinθt=ηsinθi,
sin2θt=η2(1−cos2θi),
cos2θt=1−η2(1−cos2θi).
右侧非负时,折射方向为
ωt=−ηωi+(ηcosθi−cosθt)n.
它的切向分量按 η 缩放,法向分量由单位长度约束确定。法线入射时 ωi=n,上式给出 ωt=−n,可作为符号检查。
真空折射率为 1,普通玻璃约为 1.5。光从高折射率介质射向低折射率介质时,若
sinθi>ηiηt,
便有 cos2θt<0,不存在实数折射方向,所有能量都发生 全内反射 Total Internal Reflection。水下观察到的 Snell window 正是折射和全内反射共同形成的可视范围。
实现折射时还要判断光线位于表面的哪一侧,并据此交换介质折射率、翻转法线。数值误差可能让根号内出现很小的负数,应在确认物理条件后做稳健处理。

菲涅耳项
Fresnel 项 描述界面反射比例随入射角的变化。垂直入射时,电介质只反射一小部分能量;接近掠射角时,反射率趋近 1。导体的行为还依赖复折射率,反射通常带有材料颜色。
对非偏振光,电介质的精确 Fresnel 反射率是 s、p 两种偏振分量的平均:
Fs=(ηicosθi+ηtcosθtηicosθi−ηtcosθt)2,
Fp=(ηtcosθi+ηicosθtηtcosθi−ηicosθt)2,
F=21(Fs+Fp).
实时渲染常使用 Schlick 近似:
F(θ)=F0+(1−F0)(1−cosθ)5,
其中
F0=(ηi+ηtηi−ηt)2
是垂直入射反射率。对金属,F0 通常为有色向量,且不能再用电介质的单一实折射率解释。

折射界面应按 F 分配反射能量,并按 1−F 分配透射能量。全内反射时 F=1。
透明界面并非“只折射”。即使完全无色的玻璃也会反射,而且掠射角反射最强。
微表面
微表面模型 Microfacet Model 通常描述材质的 specular lobe:它把粗糙表面看作大量微小理想镜面。宏观法线为 n,入射与出射方向都位于表面上方。能把 ωi 正好反射到 ωo 的微表面法线必须平分两者,因此
h=∥ωi+ωo∥ωi+ωo.
当 ωi+ωo=0 时,半程向量未定义;普通反射情形要求
n⋅ωi>0,n⋅ωo>0.
法线分布函数 Normal Distribution Function D(m) 描述微表面法线的面积密度。按常见定义,它满足
∫Ω+D(m)(n⋅m)dωm=1.
也就是说,把所有朝向微表面的面积投影回宏观表面后,归一化总面积为 1。只有 m=h 附近的微表面会把给定入射方向反射到给定出射方向。
从半程向量方向到反射出射方向的变量替换满足
dωo=4∣ωo⋅h∣dωh.
将微表面投影面积换算到宏观入射、出射投影面积,并乘上单个微镜面的 Fresnel 比例和可见比例,得到常见微表面 BRDF:
fr(ωi,ωo)=4(n⋅ωi)(n⋅ωo)F(ωi,h)D(h)G(ωi,ωo).
三个因子的含义分别是:
- D:法线分布函数 Normal Distribution Function,决定多少微表面朝向 h;
- F:单个微表面的 Fresnel 反射比例;
- G:几何项 Geometry Term,表示入射方向未被 shadowing、出射方向未被 masking 的微表面比例,常用 Smith 模型计算。

分母中的两个余弦把微表面通量换回按宏观表面投影面积定义的 BRDF,系数 4 来自反射方向与半程方向之间的 Jacobian。实现时要限制点积为正,并保证 D、G 的粗糙度约定相容。若归一化或变量变换错误,材质会在掠射角产生异常能量。
微表面 BRDF 本身通常只负责高光反射瓣,并不是完整工程材质。实际材质还可能需要 Lambert 或 Oren–Nayar 漫反射、透射、清漆和次表面分量;这些 lobes 要按 Fresnel、金属度或其他能量权重分配,避免漫反射与镜面反射把同一份入射能量重复使用。
D 只统计朝向,F 决定界面反射多少,G 决定这些微表面能否同时被光源和相机看见;三者缺一不可。
粗糙度
法线分布越集中,表面越接近镜面;分布越宽,高光越模糊。Beckmann 分布适合统计高斯斜率,GGX 分布具有更长的尾部,能表达现实材质中较亮的宽高光。
粗糙度参数一般不与高光宽度线性对应。渲染系统常对艺术家输入做平方或其他重映射,使低粗糙度区域更易控制。法线贴图修改局部宏观法线,粗糙度贴图修改微表面分布,两者承担不同尺度的外观变化。
低粗糙度时,D(h) 集中在很窄范围内。若仍按均匀半球或 cosine-weighted 分布采样,大多数方向落在高光瓣外,少数命中样本权重极大,形成亮噪点。更合适的方法是按 NDF 或可见法线分布采样半程向量,再反射得到出射方向,并用变量变换后的 PDF 加权。材质同时含漫反射和高光时,可以按能量比例混合两种采样策略;估计量必须使用完整 mixture PDF,而不能只除以被选中分支的 PDF。
工程实现中常按 GGX 的 NDF 或 visible-normal 分布对 half-vector 做 importance sampling,再由 half-vector 反射出射方向;这里的 PDF 还要包含从 half-vector 到出射方向的 Jacobian。roughness 很小时,均匀半球采样几乎碰不到窄峰,重要性采样能把样本集中到真正有贡献的区域,同时仍需处理 grazing angle、遮蔽和可见法线截断。
各向异性
各向同性 Isotropic BRDF 绕宏观法线共同旋转入射、出射方向后保持不变,因此只依赖两个极角和方位角之差:
fr(θi,ϕi;θo,ϕo)=fr(θi,θo,ϕo−ϕi).
因此各向同性只表示把入射、出射方向绕法线共同旋转时结果不变;它仍依赖相对方位角 ϕo−ϕi,并不意味着方位角被固定,或材质对每个方位组合都给出相同响应。
拉丝金属、梳理过的纤维和某些织物具有明确切向方向,沿两个切向轴的粗糙度不同,属于 各向异性 Anisotropic 材质。
各向异性模型需要切线 t、副切线 b 与法线 n 构成局部坐标系,并分别控制两个切向方向的分布宽度。高光会沿更粗糙的方向拉长。切线场若在 UV 接缝或奇点处不连续,高光也会出现突变。

基本性质
物理合理的 BRDF 应满足以下条件:
- 非负性:fr≥0;
- 线性:不同入射光贡献可以相加;
- Helmholtz 互易性:fr(ωi,ωo)=fr(ωo,ωi);
- 能量守恒 Energy Conservation:任意入射方向的总反射比例不超过 1。
能量守恒可写成
∫Ω+fr(ωi,ωo)cosθodωo≤1.
这条式子可以直接理解:只从固定方向送入单位辐照度,沿方向 ωo 的出射辐亮度与 fr 成正比;再把所有出射方向乘余弦并积分,就得到总反射辐照度。被动表面不能反射出超过输入的能量,所以积分不超过 1。
能量守恒约束的是这个出射半球积分,而不是要求 BRDF 数值在每个方向都小于等于 1。BRDF 的单位是 sr−1,很窄的镜面峰值完全可能逐点大于 1,只要乘以余弦后在整个半球上的积分不超过 1;把逐点上限误当成能量守恒会错误压低窄高光。
透射材质还要把 BTDF 纳入同一能量预算,反射与透射的统一函数称为 BSDF。互易性成立于被动、可逆的常见光学系统;带有荧光、磁光效应或主动增益的材料需要更一般的模型。
测量方法
解析模型便于计算和编辑,却未必能重现复杂真实材料。Gonioreflectometer 固定材料样本,独立改变光源和传感器方向。根据定义
fr=dEidLo,
设备必须分别标定样本处的入射辐照度与传感器测得的出射辐亮度,二者相除才是 BRDF,而非直接使用照片像素值。
一般各向异性 BRDF 由四个角度参数化,数据量很大。各向同性假设消去绕法线的共同旋转,只需记录 (θi,θo,∣ϕo−ϕi∣) 三个参数;互易性还能交换入射、出射方向,进一步减少独立样本。图像式测量会利用已知几何上的大量法线,在一张照片中同时获得多个角度样本。
测量误差来自光源标定、传感器动态范围、样本定位和遮挡。尖锐镜面峰值尤其难采全。离散数据可按方向查表并插值,MERL 数据库的常见表格规模为 90×90×180;也可以把测量结果拟合到微表面等解析模型,换取更紧凑的参数和更稳定的采样。