文章目录
技术栈和时间规划


阶段 0:环境与目标(0.5~1 天)
目标
- 选定方向:
- 特效/美术向(UV 动画、溶解、描边、能量流)
- 角色/材质向(PBR、法线、金属粗糙)
- 后处理向(模糊、Bloom、边缘检测、景深)
产出
- Unity 工程准备好:URP 或 HDRP。
- 会用:Frame Debugger、RenderDoc(可选)、Profiler。
阶段 1:渲染流水线 + DrawCall + GPU 常识(3~5 天)
目标
- 真的理解“为什么要区分不透明/透明”“为什么透明排序会出问题”“为什么 DrawCall 会多”。
产出
- 用 Frame Debugger 跟踪一次:
- 一个不透明物体的渲染
- 一个透明物体的渲染(观察 ZWrite、Blend、排序)
验收标准
- 不透明:通常写深度,越早裁剪越省
- 透明:通常不写深度,要排序,容易穿帮
- DrawCall 的来源:材质/Pass/状态切换/批处理限制
阶段 2:Unity Shader 基础(ShaderLab 结构)+ 第一个 Unlit(5~7 天)
目标
- 能写出一个 URP Unlit(顶点/片元),并且知道每个块是干嘛的。
产出
- 一个 Unlit 贴图 + Tint
- 一个 Alpha Cutout(
clip()) - 一个透明混合(
Blend SrcAlpha OneMinusSrcAlpha)
阶段 3:数学与坐标空间(7~10 天)
目标
- 知道:数据在哪个空间、该怎么变换。
产出
- World-space 颜色:用世界坐标给物体上色(看出空间变化)
- 法线可视化:把法线映射成颜色输出
- Billboard(广告牌):让面片朝向相机(Spherical/Cylindrical)
阶段 4:纹理与 UV(7~10 天)
目标
- UV 不再只是“贴图坐标”,而是:控制效果发生在哪里、怎么动、怎么叠。
产出
- UV 滚动(流光)
- UV 扰动(热浪/水波)
- Mask 控制:用 R/G/B/A 做不同控制通道
阶段 5:光照 + 透明(10~14 天)
目标
- 能做一个“看起来像材质”的东西,并能处理透明的坑。
产出(建议顺序)
- Lambert 漫反射(最小可用)
- Blinn-Phong 高光(理解视线/半角向量)
- 透明混合 + 透明测试(Cutout vs Blend)
- 一个外描边(基于 Alpha 邻域检测)并加滚动/扰动(能量描边)
阶段 6:屏幕空间与后处理(10~14 天)
现代 Unity 对应做法(URP)
- 不再依赖旧式 GrabPass(SRP 里很多时候不可用或不推荐)。
- 推荐:URP Renderer Feature + ScriptableRenderPass 或 Fullscreen 类 Pass。
产出(必做二选一即可)
- 边缘检测(Sobel)
- 高斯模糊(分离两次)
- 简易 Bloom(阈值 + 模糊 + 叠加)
阶段 7:优化与工程化(7~10 天)
目标
- Shader 不只是“能跑”,而是“跑得动”。
产出
- 同一个效果做两版:
- 视觉更好但更贵
- 视觉接近但更省(少采样/少分支/少 Pass)
- 给你的 Shader 加上:
- keyword(变体控制)
- GPU Instancing(实例差异)
- 合理的 Queue/RenderType
有余力:现在的新 Shader 技术
1) Shader Graph(URP/HDRP)
- 适合:快速做效果、和美术协作、迭代快
- 不是“拖节点”,而是:
- SubGraph(模块化)
- Custom Function(HLSL 注入)
- Keyword / Variant 控制
2) SRP(URP/HDRP)的现实
- 很多“旧时代技巧”在 SRP 里要换做法:
- GrabPass → Renderer Feature / Fullscreen Pass
- 内置光照宏 → SRP 的 ShaderLibrary / 自己写光照函数
3) Compute Shader / VFX Graph
- 适合:大规模粒子、网格变形、体积噪声、并行模拟
- 建议前置条件:已经写过几个稳定的 HLSL 片段,否则会被调试折磨。
推荐的“最小练习”(每个 30~90 分钟)
- UV Scroll 流光
- UV Distortion 热浪
- Dissolve 溶解 + 边缘发光
- Alpha Outline 外描边(Dir4/Dir8)
- Billboard 广告牌(Spherical/Cylindrical)
- Sobel 边缘检测(后处理)
- 高斯模糊(分离两次)
&spm=1001.2101.3001.5002&articleId=156809429&d=1&t=3&u=1e4de118ddde4ab8b3fe575151715f99)
2686

被折叠的 条评论
为什么被折叠?



