fix(memory-shader): 补齐 UI Stencil 并修复 aspect 计算

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-02 19:03:37 +08:00
co-authored by Cursor
parent c08021a2c8
commit 870f914950
+19 -1
View File
@@ -21,6 +21,13 @@ Shader "AibisDream/MemoryTuningSprite"
_UVDistortFade ("UV Distort Fade", Range(0,1)) = 0
_MemoryGrayscale ("Memory Grayscale", Range(0,1)) = 0
_MemoryContrast ("Memory Contrast", Range(0,3)) = 1
[HideInInspector] _StencilComp ("Stencil Comparison", Float) = 8
[HideInInspector] _Stencil ("Stencil ID", Float) = 0
[HideInInspector] _StencilOp ("Stencil Operation", Float) = 0
[HideInInspector] _StencilWriteMask ("Stencil Write Mask", Float) = 255
[HideInInspector] _StencilReadMask ("Stencil Read Mask", Float) = 255
[HideInInspector] _ColorMask ("Color Mask", Float) = 15
}
SubShader
@@ -37,7 +44,18 @@ Shader "AibisDream/MemoryTuningSprite"
Cull Off
Lighting Off
ZWrite Off
ZTest [unity_GUIZTestMode]
Blend SrcAlpha OneMinusSrcAlpha
ColorMask [_ColorMask]
Stencil
{
Ref [_Stencil]
Comp [_StencilComp]
Pass [_StencilOp]
ReadMask [_StencilReadMask]
WriteMask [_StencilWriteMask]
}
Pass
{
@@ -161,7 +179,7 @@ Shader "AibisDream/MemoryTuningSprite"
half4 ChromaticSample(float2 uv, half4 source, half strength)
{
float aspect = max(0.001, _MainTex_TexelSize.z / _MainTex_TexelSize.w);
float aspect = max(0.001, abs(_MainTex_TexelSize.z) / max(1.0, abs(_MainTex_TexelSize.w)));
float angle = 0.496 * 6.2831853;
float2 dirA = float2(cos(angle) / aspect, sin(angle));
float2 dirB = -dirA;