Scratchapixel 的“3D 渲染基础”课程涵盖哪些内容?
更新时间
Scratchapixel 的“3D 渲染基础”(The Foundations of 3D Rendering)是一条面向初学者的完整学习路径,按“先动手出结果、再补理论”的顺序组织,覆盖从相机模型、光线追踪、几何求交、矩阵变换,到着色、光照、纹理,再到全局光照、路径追踪、体积渲染和加速结构。它适合零基础或想系统补齐渲染原理的人;但数学部分(如矩阵求逆、蒙特卡洛方法)被单独放在“计算机图形学数学”栏目,定位是查阅型参考,而不是入门起点,因此不建议从那里开始学。
课程的组织方式
根据网站首页的说明,这套课程刻意区别于多数教材:先让学习者看到可运行的结果,再回头解释背后的理论。首页列出的顺序大致是:
- 以光线追踪为例的 3D 图形学入门
- 需要准备什么、起点在哪
- 渲染一张 3D 场景图像
- 计算 3D 点的像素坐标
- 针孔相机模型
- 光栅化
- 透视与正交投影矩阵
- 光线追踪技术概览
- 用光线追踪生成相机光线
- 一个最小光线追踪器
- 光线追踪:渲染三角形
- 多边形网格入门
- 用矩阵变换物体
- 着色入门
- 着色器与 BRDF 入门
- BRDF、线性与曝光的创意探索
- 光照入门
- 纹理入门
- 加速结构入门
- 全局光照与路径追踪
- 体积渲染
这条主线的好处是每一步都对应一个可验证的小目标,例如“算出某个 3D 点的像素坐标”“用最小光线追踪器渲染出图像”“让光线与三角形求交”。
核心知识点拆解
相机模型与投影
课程从针孔相机模型讲起,解释相机如何把 3D 场景映射到 2D 图像,并进一步讲到透视投影矩阵和正交投影矩阵。配套的“放置相机:LookAt 函数”放在数学栏目中,用于理解相机朝向的计算。学完这部分,应能回答“一个 3D 点为什么会落在图像的某个像素上”。
光线追踪主线
这是课程的主干:先讲光线追踪的整体思路,再讲如何为每个像素生成相机光线,然后实现一个最小光线追踪器,接着处理光线与三角形的求交,扩展到多边形网格,最后引入加速结构来降低求交成本。这条线把“渲染一张图”拆成了可逐步实现的环节。
变换、着色与光照
矩阵变换部分讲如何用矩阵移动、旋转、缩放物体;着色部分从着色器和 BRDF 入手,说明材质如何决定光线与表面的交互;光照和纹理则分别处理光源与表面细节。首页还单列了一篇“BRDF、线性与曝光”的创意探索,偏向理解线性空间与曝光的关系。
进阶主题
全局光照与路径追踪、体积渲染属于主线后段的进阶内容,适合在掌握基础光线追踪之后学习。加速结构则直接服务于性能:当场景中的三角形数量变多时,需要空间结构来减少不必要的求交测试。
数学栏目怎么用
“计算机图形学数学”栏目明确说明自己不是起点,而是当其他课程提到相关概念时用来查阅的参考。内容包括几何、矩阵求逆的高斯-乔丹法、插值、LookAt 函数、着色数学、蒙特卡洛方法的数学基础与实践、傅里叶变换入门。合理的使用方式是:在主线课程遇到某个数学工具时,再跳到对应页面补课,而不是先通读数学栏目。
其他相关栏目
首页还列出几个独立栏目,可作为主线的补充:
| 栏目 | 内容 |
|---|---|
| 计算机图形学精粹 | 黑体辐射等不属于大类的专题 |
| 几何方法 | 图形学中定义形状的方法,如贝塞尔曲线与曲面 |
| 数字成像 | 图像读写、文件格式、色彩空间、色彩管理与基础图像处理 |
| 程序化生成虚拟世界 | 值噪声、Perlin 噪声、天空颜色模拟等自然现象的程序化仿真 |
| 工具 | 开发 3D 工具时有用的各种技术 |
其中“数字成像”下的“光、颜色与色彩空间入门”“数字图像:从文件到屏幕”“简单图像处理”适合想理解图像管线的人;“程序化生成”适合对噪声和自然现象仿真感兴趣的人。
学习路径建议
如果目标是系统入门 3D 渲染,可以按首页顺序从“以光线追踪为例的 3D 图形学入门”开始,一路做到“加速结构入门”,中途遇到数学概念再查数学栏目。如果目标只是理解某一块,例如相机投影或 BRDF,可以直接跳到对应章节,但需要接受课程默认你已具备前面环节的基础。首页还提到 Scratchapixel 图书项目正在推进,计划在 2026 年底前分享首批成果,可作为后续关注点。