Files
Cielonos/.agents/skills/unity-vfx/knowledge/ParticleBase_Shader_Analysis.md
2026-04-18 13:57:19 -04:00

4.3 KiB
Raw Blame History

Uber Shader: ParticleBase 核心解析

更新时间: 2026-03-03

1. 表现目标 (Target Aesthetics)

此 Uber Shader (ParticleBase.shader) 是一个具有极高自由度的特效“瑞士军刀”。它的功能组合非常适合表现二次元轻度科幻 (Anime Sci-Fi) 风格的动作游戏,能够实现包括但不限于以下效果:

  • 高频能量爆发/剑气: 通过复杂遮罩组合、溶解通道以及Ramp映射实现硬边缘、色彩鲜艳的二次元特效表现。
  • 时空扭曲/引力场: 依靠屏幕空间扭曲 (Screen Distort)、漩涡扭曲 (Twirl) 与极坐标 (Polar Coordinates),配合色散 (Chromatic Aberration) 呈现科幻质感的黑洞或能量场。
  • 全息防护罩/力场屏障: 使用多种菲涅尔 (Fresnel) 组合、深度描边 (Depth Outline)、以及六路光 (Six-Way Light)/MatCap 实现具有厚度感与丰富折射边缘的光球。
  • 数据流/ UI化特效: 兼容 UI 渲染模式与剔除,可以通过多层 UV 动画偏移与噪波直接制作数据化碎片分解或 UI 故障表现。

2. 核心模块与参数对照表 (Core Modules & Parameters)

功能模块 (Feature) 关键控制参数 (Key Properties) 作用解析 (Description)
基础渲染模式 _MeshSourceMode, _UIEffect_Toggle, 双Pass (Backface/Front) 支持 3D Mesh 或 UI Canvas 下渲染,运用双 Pass 解决重叠材质渲染穿插的问题,支持强制深度写入。
遮罩系统 (Masks) _MaskMap, _MaskMap2, _MaskMap3, _MaskMapOffsetAnition 提供多达 3 层的遮罩贴图以及各自独立的独立 UV, 偏移速度、旋转、甚至附带色彩渐变映射,用于叠加形状细节。
溶解与消散 (Dissolve) _Dissolve, _DissolveMap, _DissolveRampMap, _DissolveVoronoi 提供基础遮罩溶解、极高细节的 Voronoi 程序噪波溶解;并可以用 RampMap 让溶解边缘呈现多种发光色带断点。
空间与 UV 扭曲 _ScreenDistortModeToggle, _NoiseMap, _TwirlEnabled 包含平面扭曲、带色差 (Chromatic Aberration) 的屏幕扭曲、漩涡扭曲及极坐标映射,用于制作法术场与冲击波扭曲。
顶点与视差 (Vertex) _VertexOffset_Toggle, _ParallaxMapping_Toggle 把顶点向外基于指定贴图或矢量方向挤出变形,或者利用视差映射实现虚假的体积感切口。
环境光与着色器光照 _FxLightMode (BlinnPhong/PBR/SixWay), _MatCapToggle 虽然是特效 Shader但支持假想的六方向光照 (Rig Light)、MatCap与 PBR 渲染,可以制作具有物理体积质感的特效碎块。
边缘光与深度融合 _FresnelColor, _DepthOutline_Toggle, _IntersectEnabled 处理特体自身内外的菲涅尔泛光发光,以及粒子与场景结构相交处所产生的高亮融合线圈。
颜色与 Ramp 映射 _RampColorToggle, _HueShift, _ColorBlendMap 可以通过贴图渐变与最高 6 个断点的系统 Ramp 面板,来直接映射黑白特效从而呈现极具二次元扁平光感的阶梯颜色。
Custom Vertex Streams _CustomData1X ~ _CustomData2W 等宏指令 将粒子系统的生命周期、速度等属性无缝引入Shader实时调节诸如溶解度、色相、UI位移等供 Timeline 调用。

3. 粒子模块结合关键值 (Shuriken Particle Best Practices)

  • Custom Data: 当编写技能时,应在 Shuriken 中开启 Custom Data,并将生命周期连结到 Shader 中的对应解析轴(如 _CustomData1Z_Dissolve_Toggle),可实现受时间严格控制的单次溶解特效。
  • Sorting: 使用大体积扭曲及屏幕级折射时,需要注意 Layer Sorting 穿插情况,可配合该 Shader 中的 Stencil 及 ZTest 规避覆盖人物角色。