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!”,弄清需要哪些准备、第一段代码要完成什么。这一步的预期结果是:你知道自己要写一个能输出图像的最小程序,而不是先啃完数学。

第二步:理解光线追踪的基本框架

依次学习:

  1. Rendering an Image of a 3D Scene —— 一张图像是怎么被“算”出来的
  2. Computing the Pixel Coordinates of a 3D Point 与 The Pinhole Camera Model —— 像素与三维空间如何对应
  3. Overview of the Ray-Tracing Rendering Technique —— 光线追踪的整体流程
  4. 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 渲染的初学者;也适合已有一点编程基础、想系统补齐渲染管线概念的人。

不太适合:只想用现成软件调参数、不打算写代码的人;以及希望一上来就系统学完图形学数学再动手的人——这个站点的顺序恰好相反。