******** Shader Render Queue ******** Opaque = 2000 AlphaTest = 2450 -- T4M = 2451(AlphaTest + 1) 减少四贴图Shader渲染 -- PlayerXRay = 2453(AlphaTest + 3) 阻挡物完全渲染后再渲染 -- CharacterInGame/NPC/NPCAlpha/CharacterFrozen = 2460(AlphaTest + 10) 将会覆盖XRay -- NPCDead = 2470(AlphaTest + 20) ZWrite,主要使用AlphaTest,少量AlphaBlend。Blend SrcAlpha OneMinusSrcAlpha。 -- Skybox = 2490(AlphaTest + 40)非摄像机天空盒子,在水面之前渲染 不透明最高Queue = 2500 -- PlayerZ = 2501(AlphaTest + 51) ZWrite,ColorMask 0,PlayerTransparent写Z,会导致半透角色背后的NPCDead和特效不渲染,可接受 -- PlayerTransparent/PlayerWing = 2502(AlphaTest + 52) 半透明,Blend SrcAlpha OneMinusSrcAlpha,需要受到扭曲和水面影响。 -- TargetSelect = 2503(AlphaTest + 53) 使用Stencil来判断是否覆盖渲染 -- Water = 2505(AlphaTest + 55) 半透明,Blend SrcAlpha OneMinusSrcAlpha,比扭曲略低以使用扭曲效果 -- TerrainTransparent = 2505(AlphaTest+55) 半透明,Blend SrcAlpha OneMinusSrcAlpha,比扭曲略低以使用扭曲效果 -- NiuQu = 2510(AlphaTest+60) 屏幕扭曲,默认扭曲低于一般透明,高于水和地形透明 -- SkillRange/SkillWarning = 2999 技能指示器,使用Stencil来穿透地面,但是保持被角色Z遮挡 Transparent = 3000 ******** Shader Multi-Compile Tags ******** Unity定义 水面深度 - WATER_DEPTH_OFF 地表法线 - T4M_NORMAL_OFF 环境光效 - T4M_UNITY_GI_OFF 特效扭曲 - SFX_DISTORTION_OFF 主角贴图 - CHARACTER_NORMAL_OFF ******* Stencil ******* 写入 1 = 角色/NPC所在像素,CharacterInGame/NPC/NPCAlpha/CharacterFrozen/PlayerZ 检测 1 = SkillRange,Equal做ZTest On,否则ZTest Always