Shader Graph 入门
开始支持 2.2.0
左侧是 Blackboard 参数,中间是连线节点,Scene 中则显示实时粒子结果。
下面制作一个带纹理、与方块交界处柔和消隐的粒子 Shader,并将它应用到发射器。
1. 创建 Graph 和材质
- 在 Resources 中新建 Shader Graph,命名为
soft_particle。 - 新建 Shader Graph Material。
- 将其 Graph 资源设为
soft_particle。 - 把材质赋给 Particle Emitter 的 Renderer。
Graph 与材质是两个资源:多个材质可以复用同一个 Graph,只覆盖不同纹理、颜色或数值参数。
2. 构建 Fragment 输出
添加并连接以下节点:
text
Particle Data.uv ──> Sample Texture.uv
Texture 参数 ──────> Sample Texture.texture
Sample Texture.rgb × Color 参数.rgb ─> Base Color
Sample Texture.a × Color 参数.a ─> Alpha将结果连接到 Fragment Output。保存一次,Photon 会编译 Graph 并刷新材质预览。
3. 添加柔和交界
添加 Depth Fade,将它乘到 Alpha 上。它比较粒子深度与场景深度,让较大的 Billboard 穿过方块时淡出,不再出现明显切线。
Depth Fade 是 Fragment Stage 的屏幕空间计算。Particle Data UV 路径不要误接到 Screen UV。
4. 暴露参数
将 Texture、Tint 和 Fade Distance 设为 Graph 参数。在 Graph 中设默认值,在每个材质中覆盖。参数名会被序列化;重命名后,要同步修改引用旧名字的材质。
5. 验证渲染路径
- Alpha 与 Additive Blend;
- 普通 Tile 与 GPU Instanced Tile;
- 与世界几何的交界;
- 如果支持 Iris,开启 Iris 后再测;
- 对大于 1 的颜色测试 HDR/Bloom。
TIP
画面全黑时,先把常量颜色直接接到 Base Color。确认可见后,再逐个接回 Texture、Particle Color 和 Lighting,能快速区分缺资源和 Graph 计算错误。
保存与打包
先保存 Graph,再保存材质,最后保存项目。FX Pack 会跟随资源引用收集依赖;Graph、材质和纹理都必须有可解析的资源路径。