@@ -53,6 +53,7 @@ Shader "UnityBox/ASS_UI"
5353 {
5454 float4 pos : SV_POSITION ;
5555 float2 uv : TEXCOORD0 ;
56+ float2 eyeShift : TEXCOORD1 ;
5657 UNITY_VERTEX_INPUT_INSTANCE_ID
5758 UNITY_VERTEX_OUTPUT_STEREO
5859 };
@@ -75,21 +76,32 @@ Shader "UnityBox/ASS_UI"
7576 UNITY_INITIALIZE_OUTPUT (v2f, o);
7677 UNITY_TRANSFER_INSTANCE_ID (v, o);
7778 UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO (o);
78- o.pos = float4 (v.uv * 2.0 - 1.0 , 0 , 1 );
79+
80+ float2 ndc = v.uv * 2.0 - 1.0 ;
7981 #if UNITY_UV_STARTS_AT_TOP
80- o.pos. y = -o.pos .y;
82+ ndc. y = -ndc .y;
8183 #endif
84+
85+ float d = 100.0 ;
86+ float3 vp = float3 (
87+ (ndc.x + UNITY_MATRIX_P [0 ][2 ]) * d / UNITY_MATRIX_P [0 ][0 ],
88+ (ndc.y + UNITY_MATRIX_P [1 ][2 ]) * d / UNITY_MATRIX_P [1 ][1 ],
89+ -d
90+ );
91+ o.pos = mul (UNITY_MATRIX_P , float4 (vp, 1.0 ));
8292 o.uv = v.uv;
93+ o.eyeShift = float2 (UNITY_MATRIX_P [0 ][2 ] * 0.5 , 0 );
8394 return o;
8495 }
8596
8697 fixed4 frag (v2f i) : SV_Target
8798 {
8899 UNITY_SETUP_INSTANCE_ID (i);
89100 UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX (i);
90- float2 uv = i.uv;
91101
92- float _cs = clamp (1.2 / max (unity_CameraProjection [1 ][1 ], 0.01 ), 1.0 , 2.0 );
102+ float2 uv = i.uv + i.eyeShift;
103+
104+ float _cs = max (1.0 , 2.0 / max (unity_CameraProjection [1 ][1 ], 0.5 ));
93105 float2 cUV = (uv - 0.5 ) * _cs + 0.5 ;
94106
95107 float barCenterY = 0.5 + _E3B5;
@@ -121,10 +133,10 @@ Shader "UnityBox/ASS_UI"
121133 {
122134 float2 logoUV = (cUV - logoMin) / (logoMax - logoMin);
123135 fixed4 logoColor = tex2D (_G4D9, logoUV);
124- baseColor = lerp (baseColor, logoColor, logoColor.a);
136+ baseColor = fixed4 ( lerp (baseColor.rgb , logoColor.rgb , logoColor.a), 1 );
125137 }
126138
127- return baseColor;
139+ return fixed4 ( baseColor.rgb, 1 ) ;
128140 }
129141 ENDCG
130142 }
0 commit comments