一套为 Unity URP 与 VFX 工作流打造的模块化 Shader Graph 框架,专为实时特效制作而设计。
- 🧩 模块化 Shader Graph 架构 — 31 个可复用的 Sub Graph 模块,覆盖特效材质生产常用方法
- 🎨 生产级完整 Shader — 12 个开箱即用的完整 Shader,包括刀光、爆点、序列图、拖尾等
- ⚡ 完整支持 VFX Graph — 无缝对接 Visual Effect Graph 工作流
- 🎯 减少重复搭建 — 专注于可复用工作流设计,大幅提高迭代效率
- 🔧 可扩展底层框架 — 为中高级实时特效制作提供坚实基础
位于 Assets/茄子的王之宝库/SubGraphShader/
| 分类 | 模块名称 | 说明 |
|---|---|---|
| UV 控制 | MF_QieziUVControl_01 | UV 综合控制 |
| MF_QieziUVScale | UV 缩放 | |
| MF_QieziUVClamp | UV 钳制 | |
| MF_QieziRotate | UV 旋转 | |
| MF_QieziRotateVector | 向量旋转 | |
| MF_QieziBumpOffset | 凹凸偏移 | |
| MF_QieziScreenAlignedPixelToPixelUVs | 屏幕空间像素对齐 UV | |
| 颜色处理 | MF_QieziRGBConrol | RGB 通道独立控制 |
| MF_QieziColorRamp | 颜色渐变映射 | |
| MF_QieziUse R as A | 使用 R 通道作为 Alpha | |
| MF_QieziContrast S-Curve_Simple | 对比度 S 曲线调节 | |
| 透明与混合 | MF_QieziAlphaControl | Alpha 控制 |
| MF_QieziSoftParticle | 软粒子(深度冲突解决) | |
| MF_QieziCameraDepthFade | 相机深度淡出 | |
| MF_QieziOpacityBasedDepthFade | 基于不透明度的深度淡出 | |
| 表面效果 | MF_QieziFresnel | 菲涅尔效果 |
| MF_QieziMatcap Color | Matcap 采样 | |
| MF_QieziNormalStrengthAndBlend | 法线强度与混合 | |
| MF_QieziTransformNormal | 法线变换 | |
| MF_QieziReflection(Sample HDR) | 反射采样(HDR) | |
| MF_QieziRefraction_Simple | 简单折射 | |
| MF_QieziDissolve_Simple | 简单溶解 | |
| MF_QieziVertexOffset | 顶点偏移(波浪/扭曲) | |
| MF_QieziVectorToRadialValue | 向量转径向值 | |
| 后处理效果 | MF_QieziSpectral_Simple | 光谱/色散效果 |
| MF_QieziFlash | 闪光/爆点效果 | |
| 粒子专用 | MF_QieziParticleColorAndAlpha | 粒子颜色与 Alpha |
| MF_QieziParticleBlur | 粒子模糊 | |
| MF_QieziParticleRadialBlur | 粒子径向模糊 | |
| MF_QieziParticleSpectralRadialBlur | 粒子光谱径向模糊 | |
| MF_QieziParticleShrink | 粒子收缩 |
位于 Assets/茄子的王之宝库/ShaderGraph/VFXShader/
| Shader 名称 | 用途说明 |
|---|---|
| VFXShader_QieziBladeLightBright_01 | 刀光(明亮版)— 武器拖尾、斩击光效 |
| VFXShader_QieziTrail_01 | 拖尾 — 轨迹残影、运动线条 |
| VFXShader_QieziTransparentFlipbook_01 | 透明序列图 — 爆炸、烟雾、火焰等粒子动画 |
| VFXShader_QieziOpaqueFlipbook_01 | 不透明序列图 — 固体物体帧动画 |
| VFXShader_QieziFlare_01 | 光斑/镜头光晕 — 强光散射效果 |
| VFXShader_QieziFlash_01 | 爆点/闪光 — 打击感、能量爆发 |
| VFXShader_QieziFresnel_01 | 菲涅尔边缘光 — 轮廓高光、护盾效果 |
| VFXShader_QieziRef_01 | 反射 — 金属、水面等反射表面 |
| VFXShader_QieziDecal_Simple_01 | 简单贴花 — 地面痕迹、血迹、弹孔 |
| VFXShader_QieziBlur_01 | 模糊 — 运动模糊、景深效果 |
| VFXShader_QieziSpectralRadialBlur_01 | 光谱径向模糊 — 彩色放射状模糊 |
| VFXShader_QieziWave_01 | 波浪扭曲 — 旗帜、水面、力场波动 |
位于 Assets/茄子的王之宝库/Tex/
| 目录 | 内容 |
|---|---|
Color/ |
颜色渐变查找表 (LUT) |
Decal/ |
贴花纹理(含法线) |
Flash/ |
爆点/闪光基础纹理 |
Flipbook/ |
序列图资源(含法线) |
Gradient/ |
多组渐变纹理 |
HDR/ |
HDR 环境反射贴图 |
Noise/ |
噪声纹理集(含法线) |
Pattern/ |
图案花纹纹理(含法线) |
Ramp/ |
色带/Ramp 纹理 |
Smoke/ |
烟雾/爆炸序列图 + Motion Vector |
Trail/ |
拖尾纹理 |
- Unity 版本: 2021 LTS
- 渲染管线: URP (Universal Render Pipeline)
- URP 版本: 12.x
- Shader Graph: 需要安装 Shader Graph 包
- Visual Effect Graph: 需要安装 VFX Graph 包
- 将本项目文件夹复制到你的 Unity 项目
Assets/目录下 - 或通过 Unity Package Manager 以本地包形式导入
- 创建或打开一个 Shader Graph
- 在 Blackboard 或 Graph 窗口中右键 → 搜索
MF_Qiezi - 选择需要的 Sub Graph 并连接到你的节点网络
- 在 Project 窗口中导航至
茄子的王之宝库/ShaderGraph/VFXShader/ - 选择需要的 Shader Graph 文件
- 创建 Material 并指定该 Shader
- 将 Material 赋予 Renderer 或 VFX Graph 的 Output
Assets/
├── 茄子的王之宝库/ # 主库目录
│ ├── ShaderGraph/
│ │ └── VFXShader/ # 12 个完整 Shader
│ ├── SubGraphShader/ # 31 个 Sub Graph 模块
│ ├── Tex/ # 配套纹理资源
│ │ ├── Color/
│ │ ├── Decal/
│ │ ├── Flash/
│ │ ├── Flipbook/
│ │ ├── Gradient/
│ │ ├── HDR/
│ │ ├── Noise/
│ │ ├── Pattern/
│ │ ├── Ramp/
│ │ ├── Smoke/
│ │ └── Trail/
│ └── Scene.unity # 测试场景
└── Samples/
└── Visual Effect Graph/ # Unity 官方 VFX 示例
└── 12.1.10/
├── OutputEvent Helpers/ # 输出事件处理器
└── VisualEffectGraph Additions/
├── Prefabs/ # 预设(篝火、闪电、烟雾、火花)
├── Shaders/ # VFX Shader 和 Sub Graph
├── Subgraphs/ # VFX Block 和 Operator
├── Textures/ # 示例纹理
└── VFX/ # VFX Graph 文件
graph TB
subgraph URP["🎮 Unity URP 渲染管线"]
SG["Shader Graph<br/>着色器视图编辑器"]
VFXG["VFX Graph<br/>视觉特效图编辑器"]
end
subgraph LIB["📦 茄子的王之宝库 (本库)"]
direction TB
subgraph SUB["🧩 Sub Graph 模块层<br/>(31 个可复用节点)"]
UV_Ctrl["UV 控制 (6)"]
Color["颜色处理 (4)"]
Blend["透明与混合 (4)"]
Surface["表面效果 (8)"]
PostFX["后处理效果 (2)"]
Particle["粒子专用 (5)"]
end
subgraph SHADER["🎨 完整 Shader 层<br/>(12 个生产级 Shader)"]
BladeLight["刀光 BladeLight"]
Trail["拖尾 Trail"]
Flipbook_T["透明序列图"]
Flipbook_O["不透明序列图"]
Flare["光斑 Flare"]
Flash["爆点 Flash"]
Fresnel["菲涅尔 Fresnel"]
Ref["反射 Reflection"]
Decal["贴花 Decal"]
Blur["模糊 Blur"]
SpecBlur["光谱径向模糊"]
Wave["波浪 Wave"]
end
subgraph TEX["🖼️ 纹理资源层"]
Tex_Color["Color / Ramp"]
Tex_FX["Flash / Smoke / Trail"]
Tex_Material["Decal / Flipbook / Pattern"]
Tex_Env["HDR / Noise / Gradient"]
end
end
subgraph OUTPUT["⚡ 输出目标"]
Material["Material 材质"]
VFX_Output["VFX Output<br/>粒子/网格输出"]
end
SG -->|"引用"| SUB
SG -->|"直接使用"| SHADER
VFXG -->|"引用"| SUB
VFXG -->|"使用"| SHADER
SUB -->|"依赖"| TEX
SHADER -->|"依赖"| TEX
SHADER -->|"组合"| SUB
SG --> Material
VFXG --> VFX_Output
style LIB fill:#1a1a2e,stroke:#e94560,color:#fff
style SUB fill:#16213e,stroke:#0f3460,color:#fff
style SHADER fill:#16213e,stroke:#0f3460,color:#fff
style TEX fill:#16213e,stroke:#0f3460,color:#fff
style URP fill:#0f3460,stroke:#e94560,color:#fff
style OUTPUT fill:#533483,stroke:#e94560,color:#fff
graph LR
subgraph Input["📥 输入数据"]
UV["UV 坐标"]
Pos["位置/法线"]
Col["颜色/Alpha"]
Depth["深度信息"]
end
subgraph Transform["🔧 变换处理"]
UV_Ctrl["<b>UV 控制</b><br/>Rotate / Scale / Clamp<br/>BumpOffset / ScreenUV"]
ColorProc["<b>颜色处理</b><br/>RGB Control / ColorRamp<br/>R as A / S-Curve"]
GeoProc["<b>几何处理</b><br/>VertexOffset / RotateVector<br/>VectorToRadial"]
end
subgraph Effect["✨ 特效生成"]
SurfaceFX["<b>表面效果</b><br/>Fresnel / Matcap / Normal<br/>Reflection / Refraction<br/>Dissolve"]
BlendFX["<b>混合与深度</b><br/>AlphaControl / SoftParticle<br/>CameraDepthFade / OpacityDepthFade"]
PostFX["<b>后处理</b><br/>Spectral / Flash"]
end
subgraph ParticleFX["🎆 粒子专用"]
P_Color["ParticleColorAndAlpha"]
P_Blur["ParticleBlur"]
P_RadBlur["ParticleRadialBlur"]
P_SpecRadBlur["ParticleSpectralRadialBlur"]
P_Shrink["ParticleShrink"]
end
Input --> Transform
Transform --> Effect
ColorProc --> ParticleFX
SurfaceFX --> ParticleFX
PostFX --> P_SpecRadBlur
BlendFX --> P_Blur
style Input fill:#2d3436,stroke:#0984e3,color:#fff
style Transform fill:#6c5ce7,stroke:#a29bfe,color:#fff
style Effect fill:#00b894,stroke:#55efc4,color:#fff
style ParticleFX fill:#e17055,stroke:#fab1a0,color:#fff
graph TB
subgraph Shaders["🎨 完整 Shader"]
BladeLight["BladeLightBright<br/><i>刀光</i>"]
Trail["Trail<br/><i>拖尾</i>"]
FlipbookT["TransparentFlipbook<br/><i>透明序列图</i>"]
FlipbookO["OpaqueFlipbook<br/><i>不透明序列图</i>"]
Flare["Flare<br/><i>光斑</i>"]
Flash["Flash<br/><i>爆点</i>"]
Fresnel["Fresnel<br/><i>菲涅尔</i>"]
Ref["Reflection<br/><i>反射</i>"]
Decal["Decal<br/><i>贴花</i>"]
Blur["Blur<br/><i>模糊</i>"]
SpecBlur["SpectralRadialBlur<br/><i>光谱径向模糊</i>"]
Wave["Wave<br/><i>波浪</i>"]
end
subgraph CoreSG["🧩 核心 Sub Graph 依赖"]
FresnelSG["MF_Fresnel"]
AlphaSG["MF_AlphaControl"]
SoftPartSG["MF_SoftParticle"]
UVSG["MF_UVControl / MF_UVScale"]
ColorRampSG["MF_ColorRamp"]
FlashSG["MF_Flash"]
ReflectSG["MF_Reflection"]
VertexSG["MF_VertexOffset"]
BlurSG["MF_ParticleBlur"]
RadBlurSG["MF_ParticleRadialBlur"]
SpecSG["MF_Spectral"]
SpecRadSG["MF_ParticleSpectralRadialBlur"]
end
BladeLight --> FresnelSG & AlphaSG
Trail --> AlphaSG & UVSG
FlipbookT --> UVSG & AlphaSG & SoftPartSG
FlipbookO --> UVSG & ColorRampSG
Flare --> FresnelSG & ColorRampSG
Flash --> FlashSG & AlphaSG
Fresnel --> FresnelSG
Ref --> ReflectSG & FresnelSG
Decal --> AlphaSG & VertexSG
Blur --> BlurSG
SpecBlur --> SpecRadSG & SpecSG
Wave --> VertexSG & UVSG
style Shaders fill:#dfe6e9,stroke:#2d3436,color:#2d3436
style CoreSG fill:#ffeaa7,stroke:#fdcb6e,color:#2d3436
flowchart LR
A["🎯 确定特效需求"] --> B{"选择使用方式"}
B -->|"快速出活<br/>直接可用"| C["📂 选择完整 Shader"]
B -->|"自定义定制<br/>灵活搭建"| D["🧩 组合 Sub Graph"]
C --> E["创建 Material"]
D --> F["新建 Shader Graph"]
F --> G["从 Blackboard<br/>搜索 MF_Qiezi"]
G --> H["连接节点网络"]
H --> E
E --> I{"渲染目标?"}
I -->|"Mesh Renderer"| J["赋予 GameObject"]
I -->|"VFX Graph"| K["绑定到<br/>VFX Output"]
J --> L["✅ 完成"]
K --> L
style A fill:#74b9ff,stroke:#0984e3,color:#fff
style L fill:#00b894,stroke:#00b894,color:#fff
style C fill:#fd79a8,stroke:#e84393,color:#fff
style D fill:#a29bfe,stroke:#6c5ce7,color:#fff
- 更多 Sub Graph 模块覆盖进阶特效需求
- 新增更多生产级完整 Shader
- 优化现有模块性能
- 添加更多配套纹理资源
- 提供更详细的使用文档和示例场景
特别感谢 Silence&Moon(Realtime.xyz)分享的三个重要 Shader 技术实现思路,同时也衷心感谢一路以来帮助、支持与鼓励我的朋友们。
本项目仅供学习交流使用。
欢迎提交 Issue 和 Pull Request!
专注于可复用的工作流设计,目标是减少重复节点搭建,提高迭代效率,并为 Unity 中高级实时特效制作提供一个可扩展的底层框架。