Ray Tracing in One Weekend
简介
Ray Tracing in One Weekend 是由 Peter Shirley 编写的一系列光线追踪教程,共三本书。教程用几百行 C++ 代码,带你从零实现一个完整的光线追踪器,三天就能完成。
这个系列是图形学入门的最佳实践项目。你将亲手实现:光线生成、物体求交、反射折射、阴影、散射、相机系统、加速结构等核心图形学概念。完成后你会得到一张自己渲染的精美图片,成就感极强。
三本书的内容递进: - 第一本书:基础光线追踪,实现一个简单的渲染器 - 第二本书:加入纹理、体积渲染、实例化、BVH 加速结构 - 第三本书:实现一个完整的路径追踪器,支持全局光照
先修要求
- C++ 基础:熟悉基本语法即可,不需要高级特性
- 基本数学:向量运算(加减、点积、叉积),教程中有详细解释
- 无需图形学基础:这个教程本身就是图形学入门
难度
🌟🌟(入门)
教程从零开始,数学推导详细,代码简洁,是图形学入门的最佳起点。
学时
约 20-30 小时(三本书,每本约 7-10 小时)
- 第一本书:约 7-10 小时
- 第二本书:约 7-10 小时
- 第三本书:约 7-10 小时
课程资源
- 第一本书:Ray Tracing in One Weekend
- 第二本书:Ray Tracing: The Next Week
- 第三本书:Ray Tracing: The Rest of Your Life
- 源代码:GitHub
自学建议
-
一定要亲手敲代码。 不要复制粘贴。自己敲每一行代码,理解每一行的作用。遇到报错时,尝试自己调试。
-
不要赶进度。 虽然叫"One Weekend",但不必急于一天完成。每个章节都有丰富的知识点,慢慢消化比快速刷完更有价值。
-
修改参数,观察变化。 试着改变材质参数、光源位置、相机角度,观察渲染结果的变化。这是理解图形学原理最好的方式。
-
画图辅助理解。 光线的反射、折射、散射过程用画图来理解比纯文字高效得多。
-
完成后尝试扩展。 三本书完成后,可以尝试添加自己的特性:景深、运动模糊、环境光遮蔽等。这是从"跟着做"到"自己创造"的关键一步。