跳转至

Physically Based Rendering (PBRT)

简介

《Physically Based Rendering: From Theory to Implementation》(PBRT)是离线渲染和路径追踪领域的权威教材,由 Matt Pharr、Wenzel Jakob 和 Greg Humphreys 编写。这本书从物理原理出发,系统讲解了如何构建一个基于物理的渲染器。

PBRT 的核心理念是:渲染应该模拟真实光线的物理行为。书中详细推导了渲染方程、BRDF、蒙特卡洛积分、重要性采样等核心概念,并给出了完整的渲染器实现代码。

这本书是免费在线阅读的,并且代码完全开源。它是理解现代渲染技术(包括电影特效和游戏引擎中的 PBR 渲染)的最佳资源。

先修要求

  • C++ 编程能力:PBRT 使用 C++ 实现,需要熟悉现代 C++ 特性
  • 微积分和概率论:蒙特卡洛积分、概率密度函数等数学工具是核心内容
  • 线性代数:矩阵变换、坐标系转换
  • 基本的图形学概念:建议先学过光线追踪基础后再读 PBRT

难度

🌟🌟🌟🌟🌟(高)

PBRT 是图形学领域最深入的教材之一,数学推导密集,适合有一定基础后深入学习。

学时

约 100-150 小时(全书 16 章,每章约 6-10 小时)

  • 阅读和理解:约 60-80 小时
  • 代码阅读和实验:约 40-70 小时

课程资源

  • 在线版(免费):pbrt.org
  • 源代码:GitHub
  • 书籍(第三版):Elsevier 出版

自学建议

  1. 先学完 Ray Tracing in One Weekend。 PBRT 是进阶内容,建议先通过 Ray Tracing in One Weekend 建立光线追踪的直觉,再深入 PBRT 的数学推导。

  2. 重点理解蒙特卡洛积分。 这是路径追踪的核心数学工具。理解为什么蒙特卡洛方法能求解渲染方程,以及为什么重要性采样能加速收敛。

  3. 跟着代码走。 PBRT 的代码结构非常清晰。建议一边读书一边对照代码,理解每个类和方法对应的理论概念。

  4. 不要试图一次读完。 PBRT 内容非常丰富,建议分阶段阅读:先读第 1-5 章(基础),再读第 6-10 章(光照传输),最后读第 11-16 章(高级主题)。

  5. 动手修改渲染器。 尝试修改 PBRT 的代码,添加新的材质模型或光源类型。通过修改代码来验证你对理论的理解。