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

28 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 规避覆盖人物角色。