跳转至

序言

这是一本写给 Godot 用户 的 shader 入门书。

如果你会用 Godot 搭场景、写 GDScript,但每次看到 shader 代码就觉得"这是另一个世界的东西"——这本书是为你写的。它不假设你有任何图形学背景,也不要求你学过 GLSL 或 HLSL。你唯一需要的前提是:打开过 Godot 编辑器,知道节点和场景是什么。

什么是 shader,为什么它很重要

shader 就是在 GPU 上运行的小程序。本质就是"给每一个像素(或每一个顶点)写一段逻辑,让它们在 GPU 上并行执行"。

你玩过的每一款游戏里,所有让你觉得"画面好"的东西几乎都离不开 shader:

  • 角色身上的金属反光、皮肤透光、布料质感——是 shader 算出来的
  • 水面波光粼粼,从岸边看下去还有折射——是 shader 算出来的
  • 场景里的雾气、天空盒、粒子拖尾——是 shader 算出来的
  • 受击时画面闪红、进入回忆时画面变旧、赛博朋克风格的故障撕裂——还是 shader 算出来的

在 Godot 里,你当然可以只用引擎内置的 StandardMaterial3D 和 CanvasItem 默认材质做出一个完整的游戏。但一旦你想让画面"有风格"你就需要自己写 shader。

shader 是视觉风格的终极控制权。节点和脚本控制"发生什么",shader 控制"看起来怎么样"。学会它,你能做出的游戏画面就从"Godot 做的"变成"你做的"。

这本书教什么

全书分五个部分,29 章一直从入门讲到高级:

  • 第 1 部分(前置基础) 包括第1章到第4章,讲清 GPU 怎么工作、需要的数学、坐标空间,最后让你写下人生第一个 5 行代码的 shader。
  • 第 2 部分(Shader核心工具)包括第5章到第11章, 建立 shader 编程的词汇量,包括塑形函数、噪声、SDF、纹理、屏幕空间等,这些是你后面做任何效果都会反复用到的弹药。
  • 第 3 部分(2D 实战)包括第12章到第17章, 第 4 部分(3D 实战) 包括第18章到第22章,会把你前面学到的工具变成游戏里真正能用的东西:旗帜飘动、溶解隐身、CRT 老电视、水体渲染、自定义光照……
  • 第 5 部分(进阶专题) 则覆盖后处理管线、粒子/sky/fog 等特殊 shader 类型、compute shader、ray marching 和性能优化。

这本书怎么教

三个原则贯穿全书:

1. 为什么优先于怎么做。 每引入一个新概念,先回答它解决了什么问题,再给代码。

2. 五步渐进构建。 每个 shader 不是一次性贴出完整代码然后让你硬啃。一章里你会看到效果从"最简陋但能跑"到"加上细节"到"成品"的完整演变过程。每一步你都能亲手运行并看到变化。

3. 在 Godot 里跑起来才算数。 所有代码基于 Godot 4.X,所有效果都是你在编辑器里打开章节项目就能看到的东西。

这本书不是什么

它不是Godot Shader语言参考手册,不是作品集,也不是图形学理论教材。这本书的目标是让你理解"为什么这个效果这样做就能出来"——这本书从头到尾都在回答这个问题。


如果你准备好了,翻到第 1 章开始。