MAKE · WRITE · SHARE

Base-技术美术学习资源与提升路线

技术美术(Technical Artist,TA)这个岗位横跨美术与程序:既要能判断一张图的明暗结构和色彩关系对不对,也要能读懂渲染管线里某个 Pass 到底在做什么。两个方向各自都有成熟的学习体系,麻烦的是它们交叉的部分没人替你整理——教程多得看不完,但很少有人告诉你「先学什么、后学什么、哪些东西必须亲手写一遍」。

下面是按这个顺序整理的一批入口:先建立知识地图,再从零写一遍渲染器打底,然后按 Shader、材质、程序化生成几个方向专项深入,最后是长期保持输入的社区与书目。大部分是 GitHub 仓库,也包含几个绕不开的站点和视频频道。

文中的 Star 数量是整理时(2026 年 7 月)的量级,只用来判断项目体量,不代表质量或者是否仍然活跃。决定一个开源项目值不值得读的,是它的代码组织方式和文档愿不愿意解释「为什么这么做」,这一点 Star 数看不出来。

一、先建立知识地图

TA 最容易走偏的方式是一头扎进某个技术点,把 SSAO 的实现背下来,却不知道它在整条管线里的位置。所以第一步不是学技术,而是先知道一共有哪些技术。

GameDevMind

gonglei007/GameDevMind 是目前中文圈最完整的游戏开发技术图谱,按「基础能力 → 渲染/物理/网络 → 研发流程 → 生产效率 → 管理 → 运营」组织,并分了三类读者路径:新人入门(A 线)、一到五年的研发实战(B 线)、上线运营阶段(C 线)。配套还有 C++ 实现示例和实战案例复盘(内存泄漏、开放世界卡顿、服务器死锁之类)。

对 TA 来说,重点看「技术能力」和「生产能力」两块:前者决定你能不能把效果做出来,后者决定你做出来的东西美术和程序愿不愿意用。

Game-Programmer-Study-Notes

QianMo/Game-Programmer-Study-Notes 是毛星云(浅墨)整理的读书笔记合集,覆盖图形学、实时渲染、GPU 编程、设计模式与软件工程。它的价值在于「比博客系统,比书好读」——很多概念在那里第一次被讲清楚,再回头翻原书会顺很多。

其他路线图

miloyip/game-programmer 是更早的一张经典路线图,颗粒度比 GameDevMind 粗,适合用来快速看清「哪些书对应哪个阶段」。

二、从零写一遍渲染器

看懂 API 调用和看懂 GPU 在干什么,是两件事。中间那段只能靠亲手写一个光栅化器补上。

tiny 系列:从零实现光栅化与光线追踪

ssloy/tinyrenderer 用几百行 C++ 实现完整的光栅化管线:三角形填充、Z-Buffer、透视校正插值、纹理映射、切线空间法线贴图、阴影贴图一路写下来。它最大的好处是不依赖任何图形 API,所有「黑魔法」都得自己实现,写完再看真实引擎的管线会突然变得透明。

ssloy/tinyraytracer 是同一作者的光线追踪入门,ssloy/tinykaboom 则聚焦特效,三个项目构成一条从「怎么画三角形」到「怎么求交」再到「怎么做出效果」的链。

偏好 C 语言的可以看 cadenji/foolrenderer,同样是从零实现的软件渲染器,代码量更适合一口气读完。

herebedragons:同一场景,多种后端

kosua20/herebedragons 用同一个 3D 场景分别实现在 WebGL、OpenGL、Metal、Vulkan、Direct3D 乃至 PlayStation 2、NDS 上。它是理解「哪些是图形学本质、哪些只是某个 API 的习惯」最省时间的材料——同一个需求在不同 API 里的写法差异,比读规范印象深得多。

现代渲染架构

Angelo1211/HybridRenderingEngine 实现 Clustered Forward/Deferred 混合渲染,含 PBR、IBL 与 Compute Shader,规模刚好在「能读完」和「真实」之间。

Nadrin/PBR 把同一套 PBR + IBL 分别写在 Direct3D 11、Direct3D 12、Vulkan 与 OpenGL 四个后端上,适合对照着看资源绑定和同步模型的区别。

前沿方向

weihaox/awesome-neural-rendering 汇总神经渲染资源(NeRF、3D Gaussian Splatting 等)。这块每年论文量很大,跟着索引扫比盲目刷 arXiv 有效。

zheng95z/fun-with-computer-graphics 则是图形学课程、书籍、教程、视频的大合集,用来补充上面没覆盖到的方向。

三、Shader 与 GLSL

Shader 是 TA 最核心的手艺,但「能写」和「写得对」之间隔着很多经验。

3d-game-shaders-for-beginners

lettier/3d-game-shaders-for-beginners 是目前最实用的一份 Shader 教程,从纹理、光照、阴影、法线贴图讲到 SSAO、SSR、运动模糊、景深,每一节都有可直接修改的工程和在线互动演示。它的组织方式是「先跑起来再讲原理」,和大多数只贴代码的教程不一样。

索引与进阶

vanrez-nez/awesome-glsl 把 GLSL 相关的教程、网站、在线编辑器、文章、书籍和工具汇总在一起,是查漏补缺的第一站,The Book of Shaders、Shader School、Shadertoy 这些入口都能从这里找到。

gdquest-demos/godot-shaders 提供大量免费的 2D/3D Godot Shader,带可玩 Demo。引擎语法不同,但光照模型的写法是通用的,拿来当参考实现读没问题。

真正想深入到「着色语言本身怎么设计」,可以看 AcademySoftwareFoundation/OpenShadingLanguage(OSL)。它是影视级 GI 渲染器使用的着色语言,读它的规范会理解为什么实时引擎的 Shader 模型长得完全不一样。

四、PBR 与材质理论

PBR 的坑在于:很多人能背出 BRDF 公式,却说不清一张贴图为什么该放在 Metallic 通道而不是 Specular 通道。

理论与教材

QianMo/PBR-White-Paper 是中文 PBR 白皮书,从渲染方程讲到工程落地,是入门最省力的路径。

kanition/pbrtbook 是《Physically Based Rendering: From Theory To Implementation》的中文翻译。这本书是离线渲染的理论标准,不必通读,但涉及采样、微表面模型、蒙特卡洛积分时它是唯一能给出严格答案的地方。

工程标准

AcademySoftwareFoundation/MaterialX 是跨 DCC 工具的开放材质交换标准。TA 做流程标准化几乎绕不开它——引擎、Houdini、Maya、Substance 之间的材质怎么传递,答案基本都指向这里。

AcademySoftwareFoundation/OpenPBR 是统一的表面着色模型规范与参考实现,目标是让不同渲染器的材质参数含义一致。它和 MaterialX 解决的是两个不同的问题:一个是「材质怎么描述」,一个是「着色模型怎么算」。

数据与工具

AntonPalmqvist/physically-based-api 收录真实世界的材质物理参数(金属、布料、塑料的反射率、IOR 等)。调材质时凭感觉猜参数是常见坏习惯,直接查实测数据往往更快也更准。

RodZill4/material-maker 是基于 Godot 的程序化纹理创作工具,功能定位对标 Substance Designer,优点是开源且可脚本化。

五、程序化生成

程序化生成是 TA 从「调效果」走向「做系统」的分界线。

WaveFunctionCollapse 与 MarkovJunior

mxgmn/WaveFunctionCollapse 用一张样例图生成无限的 Bitmap 或 Tilemap,是关卡与场景自动生成最常被引用的一篇实现。它的核心是约束传播与最小熵优先,理解之后很多「自动摆件」的需求都能自己实现。

mxgmn/MarkovJunior 是同一作者的进阶项目:把生成规则写成基于模式匹配和约束传播的概率语言,附带一百多个示例。它更适合用来理解「生成规则本身如何被表达成一种语言」。

噪声与网格生成

Auburn/FastNoiseLite 是跨语言的噪声库(C、C++、C#、Java、HLSL、GLSL、JS、Rust、Go 都有实现),Simplex、Perlin、Voronoi、蜂窝噪声齐备,地形和材质的程序化生成基本都从它起步。同一份噪声算法能拿到 HLSL 版本这点很实用——CPU 端生成地形、GPU 端同步还原细节时不用重写。

Syomus/ProceduralToolkit 是 Unity 的程序化生成工具库,gdquest-demos/godot-4-procedural-generation 是 Godot 4 的算法与示例,TriAxis-Games/RealtimeMeshComponent 提供 UE5 运行时生成 Mesh 的组件。三个引擎各有一个,按目标平台挑即可。

六、创意编程与生成艺术

这部分不直接提升渲染能力,但决定你做出来的效果有没有审美判断。

terkelg/awesome-creative-coding 是创意编程资源大全,覆盖生成艺术、数据可视化、交互设计。

processing/p5.js 是浏览器端的创意编程平台,适合快速验证一个视觉想法——不用配环境,写完直接看。

nature-of-code/noc-book-2 是《The Nature of Code》的配套代码,用程序模拟物理、粒子、分形、群体行为。做特效时那些「看起来自然」的运动,数学基础基本来自这类系统。

GraphiteEditor/Graphite 是开源节点式 2D 创作工具,可以理解成 2D 方向的节点化材质/图形编辑器。

latentcat/latentbox 是中文的 AI、创意与艺术资源合集(站点:latentbox.com),适合跟进生成式工具这条线。

七、引擎架构与工具链

想在引擎层面说得上话,得知道引擎是怎么搭起来的。

Piccolo:读得完的完整引擎

BoomingTech/Piccolo 是 GAMES104 课程配套的迷你游戏引擎,C++/Vulkan/ImGui 实现。完整引擎动辄几百万行,读不动;Piccolo 的规模刚好能从头到尾读完一遍,理解「引擎分层、渲染后端抽象、资源管理、编辑器」怎么落地。

自研工具链的底座

  • bkaradzic/bgfx:跨平台、图形 API 无关的渲染库,屏蔽 Vulkan/Direct3D 12/Metal/OpenGL 差异。写工具时不用为每个后端写一遍。
  • ocornut/imgui:C++ 即时模式 GUI,几乎所有自研工具、调试面板、引擎编辑器的第一选择。

UE5 与 Blender 专项

仓库 用途
Allar/ue5-style-guide UE5 项目的命名与结构规范,团队协作的事实标准
tomlooman/ActionRoguelike UE C++ 教程项目,含多人联网部分
PanicPetal/ALS-Community 社区版高级运动系统,动画方向值得读
xavier150/Blender-For-UnrealEngine-Addons Blender 与 UE 之间的资产导出
VoxelPlugin/VoxelPluginFreeLegacy UE 体素插件
agmmnn/awesome-blender Blender 插件、工具、教程与资源的总入口

八、合集、社区与视频

前面几节都是具体技术,这一节解决「怎么持续知道新东西」。

Awesome 合集

仓库 内容
ellisonleao/magictools 游戏开发资源终极列表,从精灵工具、纹理工具到引擎、音效、书籍
stevinz/awesome-game-engine-dev 引擎开发向的工具、库、资产、Shader、文章
Roobyx/awesome-game-design 游戏设计资料、案例与工具
Gforcex/OpenGraphic 图形引擎与游戏引擎项目汇总
Zilize/GDC-Index GDC 演讲的中英文摘要索引

GDC-Index 值得单独说一句:GDC 每年几百场演讲,直接刷视频效率极低,先看摘要筛出和自己方向相关的十几场,再挑其中两三场精看,是投入产出比最高的用法。

学习站点

站点 内容
The Book of Shaders 交互式 Fragment Shader 教程,从坐标到噪声
Learn OpenGL 现代 OpenGL 的系统教程,图形 API 实践入门
Shadertoy 在线 Shader 创作与分享
GDC Vault GDC 演讲录像与幻灯片
80.lv 游戏美术与技术访谈,偏制作流程
Real-Time Rendering RTR 书官网,参考文献与书目链接齐全

视频频道

频道 亮点
The Cherno C++、引擎开发、OpenGL 系列
Acerola 图形学后处理与 Shader 向的特效
Ben Cloward Shader 与材质节点,UE 的材质函数讲得很细
Inigo Quilez Shadertoy 创始人的数学与图形学讲座
Freya Holmér 几何与 Shader 数学的可视化讲解
GDC 官方演讲频道

九、书目

书名 方向 阶段 备注
Real-Time Rendering 4th 实时渲染 进阶 不必通读,当字典查
Physically Based Rendering (PBRT) 离线渲染理论 进阶 免费在线版,采样与积分章节价值最高
The Book of Shaders Shader 入门 入门 有免费在线版
Game Programming Patterns 游戏编程模式 初中级 免费在线版
Learn OpenGL 图形 API 实践 入门 免费在线版
Fundamentals of Computer Graphics 图形学基础 入门 教材向,系统性最好
GPU Gems 1/2/3 GPU 编程实战 进阶 NVIDIA 官网免费提供全文
Real-Time Collision Detection 碰撞检测 参考 工具书
Mathematics for 3D Game Programming 游戏数学 入门 补数学基础
The Nature of Code 自然系统模拟 初中级 免费在线版

十、分阶段的提升路线

具体到「这个月该干什么」,可以按下面的顺序走。星级不是难度,而是建议的投入顺序。

初级(0–2 年)

  1. Shader 基础:3d-game-shaders-for-beginners 做一遍,配合 The Book of Shaders 补数学直觉。
  2. 渲染管线:tinyrenderer 亲手写完,然后对照 Learn OpenGL 看真实 API 怎么组织。
  3. PBR 理论:PBR-White-Paper 通读,physically-based-api 查参数。
  4. 工具链:Blender 基础操作 + awesome-blender 里的插件。
  5. 知识地图:GameDevMind 的 A 线。

中级(2–5 年)

  1. 实时渲染深入:Real-Time-Rendering-3rd-CN-Summary-Ebook 打底,再啃 RTR4 对应章节。
  2. 引擎理解:读 Piccolo 源码,然后针对目标引擎深入某个子系统。
  3. 程序化生成:WaveFunctionCollapse → FastNoiseLite → Houdini。
  4. 材质系统:MaterialX 与 OpenPBR 的规范,理解跨工具材质交换。
  5. 知识地图:GameDevMind 的 B 线 + Game-Programmer-Study-Notes。

高级(5 年以上)

  1. 渲染前沿:NeRF、3D Gaussian Splatting、Nanite 一类虚拟几何方案。
  2. 跨 DCC 管线:USD、MaterialX、OSL 的组合使用。
  3. 自研工具:用 bgfx + ImGui 搭一套自己的工具链。
  4. 对外输出:GDC 演讲、技术博客、开源贡献——输出是检验理解程度最直接的方式。
  5. 知识地图:GameDevMind 的 C 线。

日常可持续的习惯

频率 活动
每天 Shadertoy 看一个 Shader,拆解它的实现思路
每周 读一篇 GDC 演讲摘要(GDC-Index)
每周 逛一次 80.lv 或 Real-Time Rendering 博客
每月 精读一个开源渲染器的一个子系统
每季度 复现一篇 Siggraph 论文的 Demo
每年 参加一次 Game Jam 或 Ludum Dare

总结

TA 的学习材料不缺,缺的是顺序和判断力。上面这套入口的核心逻辑只有三条:

第一,先有地图再进细节。GameDevMind 和 Game-Programmer-Study-Notes 解决的是「知道有什么」,避免在一个局部技术点上过度投入。

第二,必须亲手写过一遍渲染器。tinyrenderer 和 herebedragons 这类项目的作用不是学知识,而是把「API 调用」翻译成「GPU 上真实发生的事」。这一步跳过去,后面所有优化和效果都会变成背结论。

第三,输入要持续且低摩擦。日常习惯表里的每一条都很轻,但它们决定你能不能在一年后还跟得上行业变化——尤其是 GI、虚拟几何、神经渲染这几条迭代最快的线。

素材与资产类资源(测试模型、PBR 贴图库、HDRI、DCC 插件)另起一篇整理,见 Base-技术美术素材与工具库。