教程内容规范

本文件约定本教程各章的写法。章节目录见 README。

技术基线

文件布局

shader-tutorial/
├─ 01-*.md ... 23-*.md            # 教程正文
├─ WRITING-GUIDE.md              # 本文件
├─ README.md                     # 阅读目录与运行方式
├─ appendix-a-troubleshooting.md # 常见错误与排查顺序
├─ exercises/                    # 练习题,不混入正文
│  ├─ README.md
│  └─ 01-*.md ... 23-*.md         # 对应章节的练习与参考解答
└─ examples/                     # 浏览器可运行示例
   └─ stage-00/ ... stage-12/

正文文件名以两位章节号开头。一个主题可以有多个示例页面;每个示例需明确对应的章节、预期画面和启动方法。练习文件沿用对应正文的章节号,参考解答放在同一文件末尾。

正文、练习与答案的边界

示例代码标准

  1. 示例尽量从最小运行示例扩展。保留可辨认的 scene、camera、renderer、geometry、material;静态或控件驱动的效果按需渲染,需要时间变化时使用动画循环。
  2. 展示顶点位移时,明确给出几何体的分段数;展示片元图案时,说明分段数通常不影响图案细节。
  3. 使用 1.0 这类明确的浮点字面量,避免把整型值无意传入浮点运算。
  4. 涉及比例修正时同时说明画布比例、几何体比例和图片比例各是什么,不混用。
  5. 涉及法线时写明它属于局部、世界、观察还是切线空间;顶点位移后的法线必须按新表面计算或明确说明只使用近似结果。
  6. 涉及 noise 时说明函数的输入范围、输出范围、连续性和设备精度限制;示例中避免无解释的大常数 hash。
  7. 每个完整示例均应可以从仓库根目录的静态服务器访问,不依赖未声明的 CDN 或构建步骤。