Scratchapixel 零基础入门 3D 渲染:从哪里开始学
更新时间
零基础学习 3D 渲染,Scratchapixel 的推荐起点是 “The Foundations of 3D Rendering”(3D 渲染基础)中的 “3D Computer Graphics Primer: Ray-Tracing as an Example” 系列,从 “What Do I Need to Get Started?” 和 “Your Starting Point!” 两课进入。这个站点的课程按初学者友好的顺序编排,并且刻意先给可运行的结果、再补理论,适合边做边理解。数学部分(Mathematics for Computer Graphics)在网站说明中被定位为参考,而不是入门起点,零基础阶段不必从那里开始。
这个站点的内容结构
根据站点首页,内容大致分为以下几块:
| 板块 | 内容 | 零基础是否从这里开始 |
|---|---|---|
| The Foundations of 3D Rendering | 光线追踪示例、相机与投影、光栅化、着色、光照、纹理、加速结构、全局光照与路径追踪、体积渲染 | 是,主学习线 |
| Mathematics for Computer Graphics | 几何、矩阵求逆、插值、LookAt、蒙特卡洛方法、傅里叶变换 | 否,作为查阅参考 |
| Computer Graphics Gems | 黑体辐射等专题 | 否,按兴趣选读 |
| Geometry | 形状定义方法、贝塞尔曲线与曲面 | 否,后续按需 |
| Digital Imaging | 图像读写、文件格式、色彩空间与色彩管理、基础图像处理 | 否,遇到图像问题时再看 |
| Procedural Generation | 值噪声、Perlin 噪声、天空颜色模拟 | 否,兴趣扩展 |
| Tooling | 开发 3D 工具的相关技术 | 否,偏工程实践 |
入门路线:先跑出结果,再补理论
网站明确说明,这套课程与多数资源不同:先动手得到结果,再深入理论。因此入门阶段可以按下面的顺序推进。
第一步:确认起点与工具
先读 “What Do I Need to Get Started?” 和 “Your Starting Point!”,弄清需要哪些准备、第一段代码要完成什么。这一步的预期结果是:你知道自己要写一个能输出图像的最小程序,而不是先啃完数学。
第二步:理解光线追踪的基本框架
依次学习:
- Rendering an Image of a 3D Scene —— 一张图像是怎么被“算”出来的
- Computing the Pixel Coordinates of a 3D Point 与 The Pinhole Camera Model —— 像素与三维空间如何对应
- Overview of the Ray-Tracing Rendering Technique —— 光线追踪的整体流程
- Generating Camera Rays with Ray-Tracing 与 A Minimal Ray-Tracer —— 写出能出图的最小光线追踪器
这一段的验证方法很直接:你的程序能对场景生成一张图像,哪怕只是几个球体。能出图,就说明相机、射线、像素坐标这条链打通了。
第三步:从三角形到网格与变换
继续学习 Ray-Tracing: Rendering a Triangle、Introduction to Polygon Meshes、Ray-Tracing a Polygon Mesh、Transforming Objects using Matrices。预期结果是:你能渲染由三角形组成的模型,并用矩阵摆放、旋转、缩放它。矩阵在这里第一次真正用上,遇到不理解的推导再回数学板块查 “Matrix Inverse: Gauss-Jordan Method” 或 “Placing a Camera: the LookAt Function”。
第四步:着色、光照与纹理
按顺序进入 Introduction to Shading、Introduction to Shaders and BRDFs、Introduction to Lighting、Introduction to Texturing。到这里,画面从“有形状”变成“有明暗和材质”。
第五步:性能与真实感
Introduction to Acceleration Structures 解决场景变复杂后的速度问题;Global Illumination and Path Tracing 和 Volume Rendering 进入更接近真实感的渲染。这一阶段可以配合数学板块的 Mathematical Foundations of Monte Carlo Methods 与 Monte Carlo Methods in Practice 一起看,因为路径追踪依赖蒙特卡洛采样。
数学板块怎么用
网站对数学板块的定位说得很清楚:它不是起点,而是参考,当其他课程提到相关主题时再回来查。零基础阶段合理的用法是:
- 学到相机时,查 LookAt 与投影相关内容;
- 学到物体变换时,查矩阵与求逆;
- 学到路径追踪时,查蒙特卡洛与傅里叶变换。
不要一开始按数学板块目录顺序通读,那样容易在还没见过图像结果前就失去方向。
常见卡点与处理
- 卡在数学推导:回到当前课程对应的可运行目标,先让代码出结果,再回头补推导。这正是网站编排顺序的本意。
- 不知道学到哪算过关:以“能出图”为节点——能出第一张光线追踪图、能渲染三角网格、能加光照和纹理,每个节点都是一次可验证的进展。
- 想直接跳到路径追踪:路径追踪依赖前面的射线生成、求交、着色与采样,跳过去通常会在采样和噪声问题上卡住,建议按主线走完再进入。
- 想找成体系的纸质教材:站点首页提到 Scratchapixel Book Project 正在推进,目标是 2026 年底前分享首批成果,目前可先以在线课程为主。
适合与不适合
适合:愿意动手写代码、希望通过“先看到图像再理解原理”的方式入门 3D 渲染的初学者;也适合已有一点编程基础、想系统补齐渲染管线概念的人。
不太适合:只想用现成软件调参数、不打算写代码的人;以及希望一上来就系统学完图形学数学再动手的人——这个站点的顺序恰好相反。