中EN
概念页

双向反射分布函数

BRDF

BRDF f(l,v)f(\mathbf{l},\mathbf{v}) 量化局部反射:只依赖入射方向 l\mathbf{l} 和出射(观察)方向 v\mathbf{v},涵盖表面反射与局部次表面散射。它通过反射方程把入射辐射亮度转换为出射辐射亮度,物理上需满足 Helmholtz 互易性与能量守恒,用方向反照率检验。方向光和精确光源可从小面光源的极限推导,使积分变为对光源的求和。本页对应 RTR4 9.3–9.4 节。

定义与参数化

  • 目标是计算 Li(c,−v)L_i(\mathbf{c},-\mathbf{v});按约定 Li()L_i() 的方向向量背离给定点,v\mathbf{v} 总指向相机。无参与介质时 Li(c,−v)=Lo(p,v)L_i(\mathbf{c},-\mathbf{v})=L_o(\mathbf{p},\mathbf{v}),p\mathbf{p} 为视线与最近表面的交点。
  • BRDF 最初针对均匀表面定义;随位置变化的称空间变化 BRDF (SVBRDF),但实践中通常直接叫 BRDF 并默认依赖位置。
  • 入射、出射方向各两个自由度(相对法线的仰角 θ\theta 和绕法线的方位角 ϕ\phi),一般 BRDF 有 4 个标量变量。各向同性 BRDF 在两方向绕法线同时旋转时不变,只需 3 个变量(相对方位角 ϕ\phi,无需参考切线):放在转盘上旋转外观不变。
  • 不考虑荧光、磷光,同一波长进出。实时渲染总是让 BRDF 返回光谱值,即 RGB。

反射方程

Lo(v)=∫l∈Ωf(l,v) Li(l) (n⋅l) dlL_o(\mathbf{v})=\int_{\mathbf{l}\in\Omega}f(\mathbf{l},\mathbf{v})\,L_i(\mathbf{l})\,(\mathbf{n}\cdot\mathbf{l})\,d\mathbf{l}

  • Ω\Omega 是以 n\mathbf{n} 为中心的单位半球;l\mathbf{l} 连续扫过所有入射方向,不是某个"光源方向"。
  • 球坐标下 dl=sin⁡θi dθi dϕid\mathbf{l}=\sin\theta_i\,d\theta_i\,d\phi_i: Lo(θo,ϕo)=∫ϕi=02π∫θi=0π/2f(θi,ϕi,θo,ϕo) L(θi,ϕi)cos⁡θisin⁡θi dθi dϕiL_o(\theta_o,\phi_o)=\int_{\phi_i=0}^{2\pi}\int_{\theta_i=0}^{\pi/2}f(\theta_i,\phi_i,\theta_o,\phi_o)\,L(\theta_i,\phi_i)\cos\theta_i\sin\theta_i\,d\theta_i\,d\phi_i
  • 用 μ=cos⁡θ\mu=\cos\theta 代换时 dl=dμi dϕid\mathbf{l}=d\mu_i\,d\phi_i,被积式变为 f L μif\,L\,\mu_i,μi\mu_i 从 0 积到 1。

背面方向的处理

  • BRDF 只在光和视线都在表面上方时有定义。光在下方可乘 0 或不计算。
  • 理论上 n⋅v<0\mathbf{n}\cdot\mathbf{v}<0 不会出现,但插值顶点法线和法线贴图会造成这种情况。钳制到 0 或取绝对值都可能产生瑕疵;Frostbite 用 ∣n⋅v∣|\mathbf{n}\cdot\mathbf{v}| 加 0.00001 避免除零;另一种做法是"软钳制",在夹角超过 90° 后逐渐趋于 0。

物理约束

  • Helmholtz 互易性:f(l,v)=f(v,l)f(\mathbf{l},\mathbf{v})=f(\mathbf{v},\mathbf{l})。渲染用的 BRDF 常违反它而无明显瑕疵,只有双向路径追踪等离线算法特别需要;但它是判断 BRDF 是否物理合理的有用工具。
  • 能量守恒:出射能量不超过入射(自发光表面另行处理)。路径追踪需要它保证收敛;实时渲染不必精确守恒,但近似守恒很重要,严重违反会过亮而显得不真实。
  • 方向-半球反射率(衡量某入射方向的能量损失): R(l)=∫v∈Ωf(l,v)(n⋅v) dvR(\mathbf{l})=\int_{\mathbf{v}\in\Omega}f(\mathbf{l},\mathbf{v})(\mathbf{n}\cdot\mathbf{v})\,d\mathbf{v} 半球-方向反射率 R(v)=∫l∈Ωf(l,v)(n⋅l) dlR(\mathbf{v})=\int_{\mathbf{l}\in\Omega}f(\mathbf{l},\mathbf{v})(\mathbf{n}\cdot\mathbf{l})\,d\mathbf{l}。BRDF 互易时两者相等,统称方向反照率 (directional albedo)。
  • 能量守恒要求所有 l\mathbf{l} 下 R(l)≤1R(\mathbf{l})\le1;RR 每个 RGB 分量在 [0,1][0,1],可看作颜色。BRDF 本身没有此限制:作为分布函数,在高光中心等方向可以任意大。

Lambert BRDF

  • 常数 BRDF,其方向-半球反射率也是常数:R(l)=πf(l,v)R(\mathbf{l})=\pi f(\mathbf{l},\mathbf{v})。这个常数称漫反射色 cdiff\mathbf{c}_{\text{diff}} 或反照率 ρ\rho,本章称次表面反照率 ρss\rho_{ss}: f(l,v)=ρssπf(\mathbf{l},\mathbf{v})=\frac{\rho_{ss}}{\pi}
  • 1/π1/\pi 来自余弦在半球上积分为 π\pi。Lambert 着色中的 (n⋅l)(\mathbf{n}\cdot\mathbf{l}) 属于反射方程,不属于 BRDF。它常用于表示局部次表面散射,但正被更准确的模型取代。
  • 可视化 BRDF 时固定入射方向:球形部分是漫反射分量,椭球形部分是镜面波瓣(宽度对应反射的模糊度);书中示例还有 Blinn-Phong、Cook-Torrance(高光并不在反射方向最强)、Ward 各向异性(波瓣倾斜)、Hapke/Lommel-Seeliger 月面 BRDF(强逆反射)。

从面光源推导精确光源 (RTR4 9.4)

  • 全局光照用渲染方程计算 LiL_i(反射方程是其特例,见第 11 章);本章与下一章做局部光照,LiL_i 已知,并限定为方向光与精确光源。它们是非物理的抽象,但从物理光源推导出来,才能清楚误差所在。
  • 取一个小而远的面光源,lc\mathbf{l}_c 指向其中心;把光色 clight\mathbf{c}_{\text{light}} 定义为正对光源的白色 Lambert 表面的反射辐射亮度(直观,光色直接对应视觉效果)。保持 clight\mathbf{c}_{\text{light}} 不变把面积缩到 0,得到方向光,积分化为一次 BRDF 求值: Lo(v)=πf(lc,v) clight(n⋅lc)+L_o(\mathbf{v})=\pi f(\mathbf{l}_c,\mathbf{v})\,\mathbf{c}_{\text{light}}(\mathbf{n}\cdot\mathbf{l}_c)^+
  • 精确光源同理,只是不要求远处,且 clight\mathbf{c}_{\text{light}} 按距离平方反比衰减。多光源时求和:Lo(v)=π∑i=1nf(lci,v) clighti(n⋅lci)+L_o(\mathbf{v})=\pi\sum_{i=1}^{n}f(\mathbf{l}_{c_i},\mathbf{v})\,\mathbf{c}_{\text{light}_i}(\mathbf{n}\cdot\mathbf{l}_{c_i})^+。
  • 这里的 π\pi 与 BRDF 中常见的 1/π1/\pi 抵消,把除法移出着色器、公式更易读;但移植学术论文中的 BRDF 时通常要先乘以 π\pi。

GEA 的视角:BxDF 家族、物理约束与 BRDF 图(卷 II 12.3.2、12.4.3.2、12.4.3.6)

  • 定义方式:GEA 把 BRDF 定义为反射亮度对来自某方向的入射辐照度的导数 fr(x,Ψ→Θ)=dLr(x→Θ)/dE(x←Ψ)f_r(\mathbf{x},\Psi\to\Theta)=dL_r(\mathbf{x}\to\Theta)/dE(\mathbf{x}\leftarrow\Psi),与本页的定义等价。名字的三部分:双向,因为 Helmholtz 互易;反射,因为描述反射或散射;分布,因为描述给定入射方向时出射光在半球上的分布。GEA 强调 BRDF 并不直接把辐照度换成亮度,一般必须对所有入射方向积分(卷 II 12.3.2)。

    原书问题(12.3.2):"双向"一词来自 BRDF 是入射、出射两个方向的函数(Nicodemus 等, Geometrical Considerations and Nomenclature for Reflectance, NBS Monograph 160, 1977),并不是因为 Helmholtz 互易;互易性是物理 BRDF 额外满足的性质(pbrt 第 3 版 5.6.1 节把它列为"物理 BRDF 的重要性质"之一),而且 BTDF 一般不满足这种简单互易,却同样叫"双向"。

  • BxDF 家族:只描述单点反射的叫 BRDF;描述穿过透光界面并折射的叫 BTDF(双向透射分布函数);描述从一点进入、另一点射出的次表面散射叫 BSSRDF;类型不重要时统称 BxDF。随表面位置变化的叫空间变化 BxDF(SVBxDF),不过多数人对两者都笼统地叫 BxDF(卷 II 12.3.2.1,见 漫反射与次表面 BRDF)。真实材质大多非均匀(frf_r 随 x\mathbf{x} 变),图形学里常假设均匀从而省掉 x\mathbf{x};BxDF 一般是各向异性的(绕法线旋转会变),但许多真实材质是各向同性的——放在转盘上转动外观不变。

    原书问题(12.3.2.1):GEA 说式 (12.14) 中的 frf_r 也可以是 BSSRDF。BSSRDF S(xo,ωo;xi,ωi)S(\mathbf{x}_o,\omega_o;\mathbf{x}_i,\omega_i) 联系的是不同的入射点与出射点,代入渲染方程时除了对入射方向积分还必须对表面积分(2D 积分变成 4D),不能直接放进只对单点半球积分的式 (12.14)(pbrt 第 3 版 5.6.2 节)。BTDF 也需要把积分域扩展到整个球面。

  • 各向异性与各向同性:一般的 BxDF 绕法线旋转会变化(各向异性);很多真实材质是各向同性的,放在转盘上旋转外观不变。
  • 物理可信的三条要求:非负 fr≥0f_r\ge0(原书措辞为 "strictly positive",但给出的式子是 ≥0\ge0,即非负;完全吸收的方向上 BRDF 可以为 0);满足 Helmholtz 互易 fr(x,ℓ→v)=fr(x,v→ℓ)f_r(\mathbf{x},\ell\to\mathbf{v})=f_r(\mathbf{x},\mathbf{v}\to\ell);能量守恒,即对所有 ℓ\ell,反射率 ρ=∫Ωfr(x,ℓ→v)(n⋅v) dωv≤1\rho=\int_\Omega f_r(\mathbf{x},\ell\to\mathbf{v})(\mathbf{n}\cdot\mathbf{v})\,d\omega_v\le1。与本页「物理约束」一节的两条一致,GEA 另把非负单独列出。
  • Lambert BRDF:由 ∫Ωcos⁡θ dω=π\int_\Omega\cos\theta\,d\omega=\pi 得 fdiff=Cdiff/πf_{\text{diff}}=C_{\text{diff}}/\pi,与本页「Lambert BRDF」一致;GEA 补充说,常见做法把 1/π1/\pi 并入漫反射色,此时这个"颜色"其实是 BRDF 而不是反射率(卷 II 12.4.3.2,见 着色方程与经典光照模型)。
  • BRDF 图的三种画法:三维曲面(某方向的半径等于该方向的 BRDF 值,漫反射是半球、镜面多一个拉长的波瓣);用过原点的平面切出的二维截面;或把球面按值着色(蓝表示接近零、绿黄为中间值、红为最大)。一张 BRDF 图只对应一个固定入射方向的"快照",入射方向变了形状也会变(卷 II 12.4.3.6)。

PBRT 的视角:BRDF、BTDF、BSDF 与 BSSRDF(PBRT 4e 4.3)

  • 方向约定:PBRT 里 ωi\omega_i 永远指"所关心的量(这里是辐亮度)从哪里来",而不是积分器从哪里到达表面。
  • 定义:微分辐照度 dE(p,ωi)=Li(p,ωi)cos⁡θi dωidE(p,\omega_i)=L_i(p,\omega_i)\cos\theta_i\,d\omega_i(式 4.10),由线性假设 dLo∝dEdL_o\propto dE,比例常数就是 BRDF:

fr(p,ωo,ωi)=dLo(p,ωo)Li(p,ωi)cos⁡θi dωi(式 4.11)f_r(p,\omega_o,\omega_i)=\frac{dL_o(p,\omega_o)}{L_i(p,\omega_i)\cos\theta_i\,d\omega_i}\quad(\text{式 4.11})

  • 两条物理约束:互易性 fr(p,ωi,ωo)=fr(p,ωo,ωi)f_r(p,\omega_i,\omega_o)=f_r(p,\omega_o,\omega_i);能量守恒 ∫H2fr(p,ωo,ω′)cos⁡θ′ dω′≤1\int_{H^2}f_r(p,\omega_o,\omega')\cos\theta'\,d\omega'\le1。BRDF 单点值可以大于 1,受约束的只是积分。
  • 两个反射率:半球-方向反射率 ρhd(ωo)=∫H2fr∣cos⁡θi∣ dωi\rho_{hd}(\omega_o)=\int_{H^2}f_r|\cos\theta_i|\,d\omega_i(式 4.12,由互易性,"均匀照明下往某方向的总反射"与"某方向来光在半球上的总反射"相等);半球-半球反射率 ρhh=1π∬fr∣cos⁡θocos⁡θi∣ dωo dωi\rho_{hh}=\frac1\pi\iint f_r|\cos\theta_o\cos\theta_i|\,d\omega_o\,d\omega_i(式 4.13)。ρhd\rho_{hd} 在 RTR4 中称方向反照率,见上文"物理约束"。
  • BTDF ftf_t:ωi,ωo\omega_i,\omega_o 在两侧半球;它不满足上面形式的互易性(PBRT 把原因留到第 9 章 9.5.2 节讨论)。BRDF 与 BTDF 合称 BSDF f(p,ωo,ωi)f(p,\omega_o,\omega_i)。
  • 绝对值余弦:pbrt 不把法线翻到 ωi\omega_i 同侧(保留 Shape 给出的自然朝向,便于"法线朝外"等约定),所以写 ∣cos⁡θi∣|\cos\theta_i|。
  • 散射方程:

Lo(p,ωo)=∫S2f(p,ωo,ωi)Li(p,ωi)∣cos⁡θi∣ dωi(式 4.14)L_o(p,\omega_o)=\int_{S^2}f(p,\omega_o,\omega_i)L_i(p,\omega_i)|\cos\theta_i|\,d\omega_i\quad(\text{式 4.14})

在整个球面 S2S^2 上积分叫散射方程,只在上半球积分就是反射方程(与本页"反射方程"一节相同)。第 13–15 章积分器的核心任务就是在表面点上估计这个积分。

  • BSSRDF S(po,ωo,pi,ωi)=dLo(po,ωo)/dΦ(pi,ωi)S(p_o,\omega_o,p_i,\omega_i)=dL_o(p_o,\omega_o)/d\Phi(p_i,\omega_i)(式 4.15):出射点可以不同于入射点,散射方程变成对面积和方向的四维积分(式 4.16);pi,pop_i,p_o 距离越大 SS 越小,这是次表面算法能高效实现的关键。次表面传输与参与介质遵循同一个传输方程(14.1 节),只是尺度更小。实时近似见 实时次表面散射。
  • 游戏开发提示:引擎里常见的"N·L 钳到 0"相当于只在上半球积分的反射方程;离线/路径追踪器需要处理透射时,要像 pbrt 一样用 ∣cos⁡∣|\cos| 并显式区分两侧半球。

PBRT 的视角(二):BxDF 接口与反射模型的实现约定(PBRT 4e 第 9 章 9.1–9.2)

  • 反射模型的五种来源:实测数据、唯象模型(参数直观,如"粗糙度")、微结构模拟、波动光学(解 Maxwell 方程,适用于薄膜、CD 等微米级结构)、几何光学(忽略衍射,从微几何推导闭式模型)。
  • 四类反射:漫反射、有光泽镜面 (glossy specular)、完美镜面、逆反射(天鹅绒、月球)。真实表面多是混合。pbrt 的 BxDFFlags 只区分 Reflection/Transmission × Diffuse/Glossy/Specular,逆反射归入 glossy。各向同性/各向异性:绕法线旋转表面时反射是否改变(拉丝金属、头发、许多布料是各向异性的)。
  • 着色坐标系:切线 ss、tt 与法线 nn 对齐到 x,y,zx,y,z 轴,所有 BxDF 都在这个局部系里计算,cos⁡θ=ωz\cos\theta=\omega_z,同半球测试只比较 zz 的符号。BSDF 类是包装:持有 Frame(由着色法线与 ∂p/∂u\partial p/\partial u 构造),负责渲染空间与局部空间互转;ωo\omega_o 恰在切平面上时直接返回 0,避免 NaN。
  • 方向约定:ωi\omega_i、ωo\omega_o 都归一化并朝外,不表示光的实际传播方向;法线总指向物体"外侧",pbrt 不把法线翻到 ωo\omega_o 一侧,因此 ωi\omega_i 与 nn 同侧即"光在进入"。Sample_f() 给定 ωo\omega_o 采样 ωi\omega_i,因为路径是逆着能量传播方向构建的。
  • 接口:f() 求值;Sample_f(wo, uc, u2) 用一维样本 uc 选分量(反射/透射)、二维样本 u 选方向,不要拿 uc 和 u[0] 组成方向,因为两者不保证联合分布良好;返回 BSDFSample(值、方向、对立体角的 PDF、标志,以及 pdfIsProportional:随机游走型 BxDF 如 14.3 节的 LayeredBxDF 只能给出与真值成同一比例的 ff 和 pdf)。PDF() 供 MIS 使用。接口假设各波长互不串扰;荧光需要 n×nn\times n 矩阵。
  • 反射率估计:rho() 用蒙特卡洛估计 ρhd≈1n∑fr∣cos⁡θj∣/p(ωj)\rho_{hd}\approx\frac1n\sum f_r|\cos\theta_j|/p(\omega_j) 与 ρhh\rho_{hh}(后者先均匀采样 ωo\omega_o,再用 Sample_f 采样 ωi\omega_i,共 5 维样本)。
  • Delta 分布约定(9.1.4):完美镜面的 frf_r 与 pdf 含成对的 Dirac delta,估计器 fr/pf_r/p 中 delta 相消;因此 Sample_f() 返回 pdf=1(隐含 delta),而 f() 与 PDF() 对任何方向都返回 0(其他策略随机命中该方向的概率为零)。
  • Lambert(9.2):fr=R/πf_r=R/\pi,R∈[0,1]R\in[0,1];用余弦加权半球采样,书中测试场景 MSE 比均匀半球采样低 2.34 倍且无额外开销。掠射角下真实表面的镜面反射使 Lambert 偏差变大;PTFE 粉末是极好的 Lambert 反射体,常用于校准实验设备。
  • 各具体模型见 菲涅耳反射(镜面、导体、电介质、薄电介质)、微表面理论(粗糙导体与粗糙电介质)、测量 BRDF 与数据驱动反射模型、毛发渲染。

原书问题(9.1–9.4)

  • 9.1.2 说 Sample_f() "通过 uc 和 u 取三个 [0,1)2[0,1)^2 中的均匀样本";uc 是一维样本,应为"[0,1)[0,1) 中的一个与 [0,1)2[0,1)^2 中的一个,共三个值"(措辞问题)。
  • 9.4 说 pdf 取 1 "依 9.1.2 节对 delta 分布 BSDF 的讨论",该讨论实际在 9.1.4 节。
  • 第 9 章延伸阅读与文献表:正文"Marscher's Ph.D. dissertation (1998)"应为 Marschner(文献表本身拼写正确);"Subr and Arvo 2007a … In Pacific Graphics '97"应为 Pacific Graphics 2007;"Weyrich et al. 2009 … (Proceedings of SIGGRAPH 2008) 28 (3)",TOG 28(3) 是 SIGGRAPH 2009 论文集;"Twomey et al. 1966 … Journal of the Atmospheric Sciences 32",1966 年该刊为第 23 卷(第 32 卷是 1975 年,存疑)。
  1. realtime_rendering_4ed.pdf 第 9 章 Physically Based Shading
  2. Game_Engine_Architecture_4th_Edtion_Volume_2_-_Jason_Gregory.pdf
  3. Jason Gregory《Game Engine Architecture》第 4 版(2026)卷 II 第 12 章 12.3.2、12.4.3.2、12.4.3.6 节
  4. PBRT 4e source excerpt: chapter 04 (Radiometry, Spectra, and Color)
  5. Pharr, Jakob, Humphreys《Physically Based Rendering: From Theory to Implementation》第 4 版(MIT Press, 2023)第 4 章 4.3 节,pbr-book.org/4ed/Radiometry,_Spectra,_and_Color
  6. PBRT 4e source excerpt: chapter 09 (Reflection Models)
  7. Pharr, Jakob, Humphreys《Physically Based Rendering: From Theory to Implementation》第 4 版(MIT Press, 2023)第 9 章 9.1–9.9 节,pbr-book.org/4ed/Reflection_Models

相关页面

图形学基于物理的着色Physically Based Shading基于物理的着色从光与物质交互的物理出发,用 BRDF 和反射方程计算表面沿视线方向射出的辐射亮度:镜面项来自微表面理论与菲涅耳反射,漫反射项来自局部次表面散射,布料、波动光学与分层材质再作扩展。本页是 RTR4 第 9 章的总览,并收录该章第 9.13 节的材质混合与材质过滤(镜面抗锯齿)。图形学辐射度量学与光度学Radiometry & Photometry辐射度量学精确度量电磁辐射,是基于物理渲染的第一步;光度学用人眼灵敏度对它加权。渲染中最重要的量是辐射亮度 L:眼睛和相机测的就是它,着色方程要算的也是沿视线的辐射亮度。图形学光与物质的交互Light-Matter Interaction光是电磁横波;它与物质交互的核心是散射(振荡的电场带动电荷振荡、再辐射出新波)和吸收。粒子的大小决定散射特性,均匀介质用复折射率描述,表面是折射率的突变界面,把光分为反射和折射;折射进物体的光经次表面散射后部分射出。散射距离与着色尺度的比较决定能否把次表面散射当作局部的漫反射项。本页对应 RTR4 9.1–9.2 节。图形学微表面理论Microfacet Theory微表面理论把小于像素的微几何建模为大量平坦微面元,用法线分布函数 (NDF) D(\mathbf{m}) 描述其朝向统计,用遮蔽函数 G1 和遮蔽-阴影函数 G2 描述可见性,并据此推导宏观 BRDF。镜面反射时每个微面元是完美菲涅耳镜,积分退化为在半向量处求值,得到 FG2D/(4|\mathbf{n}\cdot\mathbf{l}||\mathbf{n}\cdot\mathbf{v}|)。GGX 分布配合高度相关的 Smith G2 是当今影视和游戏最常用的组合;该框架忽略微面元间的多次反射,可用补偿项弥补。本页对应 RTR4 9.6–9.8 节。图形学漫反射与次表面 BRDFDiffuse & Subsurface BRDF Models漫反射项模拟不透明电介质中的局部次表面散射(金属没有)。其颜色是次表面反照率 \rho{ss};选用光滑表面还是粗糙表面模型,取决于表面不规则与次表面散射距离的相对大小,而不只是表面有多粗糙。光滑表面模型从 Lambert 出发,通过与镜面项的能量权衡改进;粗糙表面模型有 Disney 漫反射、Oren-Nayar、Gotanda、Hammon 等。本页对应 RTR4 9.9 节。图形学着色模型与光源Shading Models & Light Sources着色模型描述物体颜色如何随表面朝向、观察方向和光照变化。光源通过两个参数与着色模型交互:指向光源的方向 \mathbf{l} 和光的颜色 \mathbf{c}{\text{light}}。方向光、点光源、聚光灯的区别就在于这两个量如何随场景变化;距离衰减和方向衰减函数的选择同时影响画面与性能。图形学渲染方程Rendering Equation渲染方程 (Kajiya, 1986) 把"某点接收到的光就是其他点发出或反射的光"写成递归积分,概括了光从光源出发经任意次反弹到达眼睛的所有路径。反射方程是它的受限特例。离线用辐射度 (Radiosity) 或蒙特卡洛路径追踪求解;实时渲染则靠简化和预计算逼近它(RTR4 第 11 章)。图形学菲涅耳反射Fresnel Reflectance菲涅耳方程描述光在两种物质的平坦界面上反射的比例 F,它取决于入射角和两侧折射率:垂直入射时为材质特有的 F0(特征镜面色),掠射时趋于 1。实时渲染用以 F0 为参数的 Schlick 近似。电介质 F0 低且无色,金属 F0 高且常带色,半导体介于其间;金属度参数化利用了这一点。光从物体内部射向表面时还可能发生全内反射。本页对应 RTR4 9.5 节。图形学面光源Area Lights真实光源从来不是点。面光源要求对光源所张立体角 \omegal 积分 BRDF,实时渲染倾向于用闭式解或近似而不是多条光线取平均。主要做法有:Lambert 表面的矢量辐照度与包裹光照、光泽表面的粗糙度修正和"最具代表性的点",以及最准确的线性变换余弦 (LTC)。游戏开发 · UE5材质系统Material SystemUE 材质 (Material) 是用节点图描述「表面如何与光交互」的着色器生成器。它有三个正交维度:着色模型 (Shading Model) 决定光照模型(Default Lit、次表面、清漆、毛发等),混合模式 (Blend Mode) 决定与背景的合成公式(Opaque/Masked/Translucent…),参数 + 材质实例 (Material Instance) 让美术在不重编译着色器的前提下做变体。PBR 输入(Base Color/Roughness/Metallic/Specular)直接对应 RTR4 的金属度-粗糙度工作流;最大的工程坑是静态参数导致的着色器排列爆炸。游戏开发 · UE5Substrate 材质Substrate MaterialsSubstrate 用一种更有表现力、更模块化的框架,取代旧材质系统里固定的一组着色模型和混合模式(Default Lit、Clear Coat 等)。材质被看作一块块「物质板 (Slab)」,每块是用有明确单位的物理量参数化的原则化 BSDF,再通过混合、垂直分层等运算组合成图。代价是光照评估更贵,所以提供参数混合和两种 GBuffer 格式(Blendable / Adaptive)来在速度和画质之间取舍。新项目默认启用 Substrate;升级到 5.7 及以后的老项目默认不启用。图形学着色方程与经典光照模型Shading Equation & Classic Lighting ModelsGEA 把渲染方程在两条简化假设下化成的求和式称为着色方程:只有理想化的点光源和方向光,间接光只用一个环境光项粗略近似。配上 Lambert、Phong、Blinn-Phong 这类简单 BRDF,它给不出照片级真实感,但能产生可信的画面,是早期游戏的全部光照,也是理解 BRDF 用法的最好入门(GEA4 卷 II 12.4、12.5.1)。图形学蒙特卡洛积分与重要性采样Monte Carlo Integration & Importance Sampling渲染方程里的半球积分没有闭式解,只能数值积分。蒙特卡洛积分在定义域里随机取样、按概率密度加权求平均,期望值正好等于积分真值,误差随样本数 N 按 1/\sqrt{N} 下降,而且与积分维数无关,所以成了光线追踪类渲染的数学基础。降低误差的主要手段是让采样分布接近被积函数的形状,也就是重要性采样(GEA4 卷 II 12.6.2、12.6.4)。图形学实时次表面散射Real-Time Subsurface Scattering蜡、皮肤、牛奶等高散射固体中,光在离入射点不远处重新射出;当偏移大于一个像素时就不能再用 BRDF 表示。实时方法从便宜的包裹光照、法线模糊、预积分皮肤,到纹理空间/屏幕空间扩散,再到针对大尺度散射的深度图技术(RTR4 14.6 节)。图形学测量 BRDF 与数据驱动反射模型Measured BRDFs & Data-Driven Reflectance测量 BRDF 用实验室测得的真实材质数据代替解析模型,适合虹彩漆、织物、珠光膜等解析模型拟合不好的材质。难点是四维 BRDF 的维数灾难;PBRT 4e 的 MeasuredBxDF(Dupuy 与 Jakob 2018)把可见法线采样当作参数化,只需较稀疏的测量就能插值。本页对应 PBRT 4e 9.8 节及其延伸阅读。图形学毛发渲染Hair & Fur Rendering毛发由角质层、皮质、髓质三层构成,可看作用曲线离散化的体积。几何上用沿引导曲线挤出的四边形条带并配合 alpha/顺序无关透明;着色用 BSDF(R、TT、TRT 分量),再加体积自阴影与多次散射近似;动物短毛可用壳与鳍或几何着色器挤出(RTR4 14.7 节)。

被这些页面引用1 篇

输入关键词开始搜索

滚轮或双指缩放 · 拖动平移 · 双击放大 / 还原