28 lines
4.3 KiB
Markdown
28 lines
4.3 KiB
Markdown
# 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 规避覆盖人物角色。
|