Lazy loaded image
1️⃣物理基础着色(PBS)的物理学与数学基础
Words 1196Read Time 3 min
2025-4-3
2025-4-4
type
status
date
slug
summary
tags
category
icon
password

PBR物理与数学基础

本文档基于SIGGRAPH 2014 物理基础渲染课程内容,结合实践经验整理而成。主要介绍PBR渲染中的物理和数学基础知识,以及实现考虑和最佳实践。

一、物理基础

1.1 电磁理论基础

光是电磁波的一种形式,其传播和相互作用遵循电磁理论的基本原理。在图形学中,我们主要关注可见光谱范围内的电磁波(波长约380-750nm)。
相关资源:

1.2 辐射度量学

辐射度量学是研究电磁辐射能量传输的科学。在PBR中,我们主要关注:
  • 辐射通量(Radiant Flux):单位时间内传输的能量
  • 辐射度(Radiance):每单位立体角、每单位投影面积的辐射通量
  • 辐照度(Irradiance):单位面积上接收到的辐射通量
相关资源:

1.3 材质-光线交互

当光线与材质表面发生交互时,会出现以下现象:
  • 反射(Reflection):光线在表面发生反射,包括镜面反射和漫反射
  • 折射(Refraction):光线进入材质内部时发生方向改变
  • 散射(Scattering):光线在材质内部发生多次反射和折射
  • 吸收(Absorption):光线能量被材质吸收转化为其他形式
相关资源:

二、数学模型

2.1 BRDF模型

BRDF(双向反射分布函数)是描述材质表面光线反射特性的数学模型。它定义了入射光线和出射光线之间的能量关系。
主要特点:
  • 能量守恒:反射的能量不能超过入射能量
  • 互易性:入射和出射方向可以互换
  • 非负性:反射的能量始终为非负值
常用的BRDF模型包括:
  • Cook-Torrance模型:基于微面理论,适用于大多数PBR渲染
  • Oren-Nayar模型:适用于粗糙表面的漫反射
相关资源:

2.2 微面理论

微面理论将材质表面视为由大量微小镜面(microfacets)组成。每个微面都是一个完美的镜面反射体。
主要参数:
  • 法线分布函数(NDF):描述微面法线的分布情况
  • 几何遗挡函数(G):描述微面之间的遗挡情况
  • Fresnel方程:描述光线在不同入射角度下的反射率
相关资源:

三、实现考虑

3.1 材质参数

PBR材质系统中的关键参数:
  • 基础色(Base Color):材质的基本反射颜色
  • 金属度(Metallic):控制材质的金属/非金属特性
  • 粗糙度(Roughness):控制微面的分布情况
参数范围和建议值:
  • 基础色:sRGB空间,金属材质通常使用F0值
  • 金属度:0-1,纯金属使用1,非金属使用0
  • 粗糙度:0-1,0为完全光滑,1为完全粗糙
相关资源:

3.2 照明计算

PBR照明计算的主要步骤:
  • 直接光照:计算来自光源的直接照明
  • 间接光照:使用IBL(基于图像的照明)或光线追踪
  • 能量守恒:确保最终渲染结果符合物理规律
优化策略:
  • 预计算和缓存光照结果
  • 使用重要性采样减少计算量
相关资源:

四、实践指南

4.1 Shader实现

实现PBR Shader的关键步骤:
  • 输入参数的正确处理(gamma校正、数值范围)
  • 实现各种BRDF函数(Cook-Torrance、Oren-Nayar)
  • 光照计算的正确性(直接光、间接光)
代码示例和资源:

4.2 性能优化

主要优化方向:
  • 着色器计算优化:减少分支、使用LUT、预计算
  • 纹理和采样优化:压缩、缓存、mipmap
  • 渲染策略:分层渲染、延迟渲染
相关资源:

4.3 调试与测试

常用调试方法:
  • 可视化调试:显示法线、粗糙度、金属度等
  • 性能分析:GPU Profiler、Frame Debugger
  • 单元测试:验证能量守恒、参数范围
相关资源:
上一篇
应用层面的PBR介绍
下一篇
应用层面的PBR介绍