Skip to content

qiezi-228/SayCheese_Modular_UnityShaderLibrary_SupportVFXGraph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unity Modular Shader Library - Support VFX Graph

一套为 Unity URPVFX 工作流打造的模块化 Shader Graph 框架,专为实时特效制作而设计。

📺 视频讲解

📺 Bilibili 视频教程

✨ 功能特性

  • 🧩 模块化 Shader Graph 架构 — 31 个可复用的 Sub Graph 模块,覆盖特效材质生产常用方法
  • 🎨 生产级完整 Shader — 12 个开箱即用的完整 Shader,包括刀光、爆点、序列图、拖尾等
  • 完整支持 VFX Graph — 无缝对接 Visual Effect Graph 工作流
  • 🎯 减少重复搭建 — 专注于可复用工作流设计,大幅提高迭代效率
  • 🔧 可扩展底层框架 — 为中高级实时特效制作提供坚实基础

📦 内容概览

Sub Graph 模块 (31 个)

位于 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 粒子收缩

完整 Shader (12 个)

位于 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 包

导入方式

  1. 将本项目文件夹复制到你的 Unity 项目 Assets/ 目录下
  2. 或通过 Unity Package Manager 以本地包形式导入

使用方法

使用 Sub Graph 模块

  1. 创建或打开一个 Shader Graph
  2. 在 Blackboard 或 Graph 窗口中右键 → 搜索 MF_Qiezi
  3. 选择需要的 Sub Graph 并连接到你的节点网络

使用完整 Shader

  1. 在 Project 窗口中导航至 茄子的王之宝库/ShaderGraph/VFXShader/
  2. 选择需要的 Shader Graph 文件
  3. 创建 Material 并指定该 Shader
  4. 将 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
Loading

Sub Graph 模块分类关系

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
Loading

完整 Shader 依赖关系

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
Loading

工作流程

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
Loading

🔮 路线图

  • 更多 Sub Graph 模块覆盖进阶特效需求
  • 新增更多生产级完整 Shader
  • 优化现有模块性能
  • 添加更多配套纹理资源
  • 提供更详细的使用文档和示例场景

🙏 致谢

特别感谢 Silence&Moon(Realtime.xyz)分享的三个重要 Shader 技术实现思路,同时也衷心感谢一路以来帮助、支持与鼓励我的朋友们。

📝 许可证

本项目仅供学习交流使用。

🤝 贡献

欢迎提交 Issue 和 Pull Request!


专注于可复用的工作流设计,目标是减少重复节点搭建,提高迭代效率,并为 Unity 中高级实时特效制作提供一个可扩展的底层框架。

About

A modular Shader Graph library designed for Unity URP and VFX Graph workflows.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages