TA工具箱首页 / TA 术语百科

BRDF:双向反射分布函数详解

2026-08-24

什么是 BRDF

BRDF(Bidirectional Reflectance Distribution Function,双向反射分布函数)是一个四维函数,描述光在物体表面如何反射。它定义了给定入射方向和观察方向时,反射光辐射率与入射光辐照度的比率。BRDF 是 PBR 的理论基础,用于计算材质的光照响应。

BRDF 的数学定义

BRDF 定义为:

`f_r(ω_i, ω_o) = dL_o(ω_o) / dE_i(ω_i)`

其中 ω_i 是入射光方向,ω_o 是反射光方向,L_o 是反射辐射率,E_i 是入射辐照度。BRDF 必须满足两个物理约束:

  • **互易性**:交换入射和出射方向,BRDF 值不变。
  • **能量守恒**:对所有出射方向积分,反射总能量不超过入射能量。

常见 BRDF 模型

Lambertian 漫反射

最简单的漫反射模型,假设表面完全粗糙,反射均匀分布。BRDF 为常数 `ρ/π`,其中 ρ 是反照率。它常用于漫反射项。

Phong 和 Blinn-Phong

经典经验模型,Phong 使用反射向量与视线点积的高光,Blinn-Phong 使用半角向量优化计算。它们不严格满足能量守恒,但计算高效。

Cook-Torrance 模型

现代 PBR 中广泛使用的微表面模型。它将 BRDF 分为漫反射项和镜面反射项,镜面项基于微表面理论:

`f_spec = (D * G * F) / (4 * (N·L) * (N·V))`

  • **D(法线分布函数)**:描述微表面法线分布,常用 GGX/Trowbridge-Reitz。
  • **G(几何衰减函数)**:描述微表面自遮挡,常用 Smith 模型。
  • **F(菲涅尔项)**:描述反射率随角度变化,常用 Schlick 近似。

其他模型

  • **Oren-Nayar**:考虑粗糙表面的漫反射,比 Lambertian 更准确。
  • **Disney Principled BRDF**:艺术家友好的参数化模型,被许多引擎采用。

在实时渲染中的应用

实时渲染中,着色器通常使用简化版 Cook-Torrance 模型。例如,Unity 的 Standard Shader 和 Unreal 的 Lit Shader 都基于 GGX 微表面模型和 Schlick 菲涅尔近似。BRDF 还用于预计算环境光照(如 IBL 的预滤波)。

常见问题

BRDF 与 PBR 有什么关系?

PBR 基于物理的渲染必须使用物理正确的 BRDF 模型,如 Cook-Torrance,以确保能量守恒和真实感。

为什么需要多个 BRDF 模型?

不同模型在性能、真实感和复杂性之间权衡。简单模型适合移动端,复杂模型适合高端渲染。

什么是微表面模型?

微表面模型假设表面由微小平面组成,通过统计分布描述粗糙度,是 Cook-Torrance 的基础。

BRDF 满足互易性吗?

物理正确的 BRDF 必须满足互易性,即交换入射和出射方向结果相同。

如何选择 BRDF 模型?

对于 PBR 渲染,推荐使用 GGX 微表面模型,它在真实感和性能之间取得了良好平衡。

常见问题

BRDF 与 PBR 有什么关系?

PBR 基于物理的渲染必须使用物理正确的 BRDF 模型,如 Cook-Torrance,以确保能量守恒和真实感。

为什么需要多个 BRDF 模型?

不同模型在性能、真实感和复杂性之间权衡,简单模型适合移动端,复杂模型适合高端渲染。

什么是微表面模型?

微表面模型假设表面由微小平面组成,通过统计分布描述粗糙度,是 Cook-Torrance 的基础。

BRDF 满足互易性吗?

物理正确的 BRDF 必须满足互易性,即交换入射和出射方向结果相同。

如何选择 BRDF 模型?

对于 PBR 渲染,推荐使用 GGX 微表面模型,它在真实感和性能之间取得了良好平衡。