@@ -48,129 +48,120 @@ struct main0_in
4848fragment main0_out main0(main0_in in [[stage_in]], constant type_UniformBuffer& UniformBuffer [[buffer(0)]], constant type_UniformBuffer_1& UniformBuffer_1 [[buffer(1)]], constant type_UniformBuffer_2& UniformBuffer_2 [[buffer(2)]], const device type_StructuredBuffer_Light& lightBuffer [[buffer(3)]], texture2d_array<float> atlasTexture [[texture(0)]], texture2d<float> shadowTexture [[texture(1)]], texture2d<float> positionTexture [[texture(2)]], sampler atlasSampler [[sampler(0)]], sampler shadowSampler [[sampler(1)]], sampler positionSampler [[sampler(2)]])
4949{
5050 main0_out out = {};
51- float4 _106 = atlasTexture.sample(atlasSampler, in.in_var_TEXCOORD2.xy, uint(rint(in.in_var_TEXCOORD2.z)));
52- float _108 = _106 .w;
53- uint _111 = uint(UniformBuffer.LightCount);
54- float3 _113 ;
55- _113 = float3(0.0);
56- float3 _114 ;
57- for (uint _116 = 0u; _116 < _111; _113 = _114, _116 ++)
51+ float4 _108 = atlasTexture.sample(atlasSampler, in.in_var_TEXCOORD2.xy, uint(rint(in.in_var_TEXCOORD2.z)));
52+ float _110 = _108 .w;
53+ uint _113 = uint(UniformBuffer.LightCount);
54+ float3 _115 ;
55+ _115 = float3(0.0);
56+ float3 _116 ;
57+ for (uint _118 = 0u; _118 < _113; _115 = _116, _118 ++)
5858 {
59- float _129 = float((lightBuffer._m0[_116 ].Color & 4278190080u) >> 24u);
60- float3 _136 = (float3(float(lightBuffer._m0[_116 ].X), float(lightBuffer._m0[_116 ].Y), float(lightBuffer._m0[_116 ].Z)) + float3(0.5)) - in.in_var_TEXCOORD0.xyz;
61- float _137 = length(_136 );
62- bool _143 ;
63- if (!(_137 >= _129 ))
59+ float _131 = float((lightBuffer._m0[_118 ].Color & 4278190080u) >> 24u);
60+ float3 _138 = (float3(float(lightBuffer._m0[_118 ].X), float(lightBuffer._m0[_118 ].Y), float(lightBuffer._m0[_118 ].Z)) + float3(0.5, 0.75, 0.5)) - in.in_var_TEXCOORD0.xyz;
61+ float _139 = length(_138 );
62+ bool _145 ;
63+ if (!(_139 >= _131 ))
6464 {
65- _143 = _129 <= 0.0;
65+ _145 = _131 <= 0.0;
6666 }
6767 else
6868 {
69- _143 = true;
69+ _145 = true;
7070 }
71- if (_143 )
71+ if (_145 )
7272 {
73- _114 = _113 ;
73+ _116 = _115 ;
7474 continue;
7575 }
76- float _157 ;
77- if (_137 > 0.100000001490116119384765625 )
76+ float _151 = fast::clamp(dot(in.in_var_TEXCOORD1, _138 / float3(_139)), 0.0, 1.0) ;
77+ if (_151 <= 0.0 )
7878 {
79- float _153 = fast::clamp(dot(in.in_var_TEXCOORD1, _136 / float3(_137)), 0.0, 1.0);
80- if (_153 <= 0.0)
81- {
82- _114 = _113;
83- continue;
84- }
85- _157 = _153;
86- }
87- else
88- {
89- _157 = 1.0;
79+ _116 = _115;
80+ continue;
9081 }
91- float _160 = fast::clamp(1.0 - (_137 / _129 ), 0.0, 1.0);
92- _114 = _113 + ((float3(float((lightBuffer._m0[_116 ].Color & 255u) >> 0u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_116 ].Color & 65280u) >> 8u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_116 ].Color & 16711680u) >> 16u) * 0.0039215688593685626983642578125) * _157 ) * (_160 * _160 ));
82+ float _157 = fast::clamp(1.0 - (_139 / _131 ), 0.0, 1.0);
83+ _116 = _115 + ((float3(float((lightBuffer._m0[_118 ].Color & 255u) >> 0u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_118 ].Color & 65280u) >> 8u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_118 ].Color & 16711680u) >> 16u) * 0.0039215688593685626983642578125) * _151 ) * (_157 * _157 ));
9384 }
94- float _242 ;
85+ float _239 ;
9586 do
9687 {
97- float4 _189 = UniformBuffer_1.ShadowTransform * float4(in.in_var_TEXCOORD0.xyz, 1.0);
98- float3 _193 = _189 .xyz / float3(_189 .w);
99- float2 _196 = (_193 .xy * 0.5) + float2(0.5);
100- float _198 = 1.0 - _196 .y;
101- float2 _199 = _196 ;
102- _199 .y = _198 ;
103- float _200 = _196 .x;
104- bool _206 ;
105- if (!(_200 < 0.0))
106- {
107- _206 = _200 > 1.0;
88+ float4 _186 = UniformBuffer_1.ShadowTransform * float4(in.in_var_TEXCOORD0.xyz, 1.0);
89+ float3 _190 = _186 .xyz / float3(_186 .w);
90+ float2 _193 = (_190 .xy * 0.5) + float2(0.5);
91+ float _195 = 1.0 - _193 .y;
92+ float2 _196 = _193 ;
93+ _196 .y = _195 ;
94+ float _197 = _193 .x;
95+ bool _203 ;
96+ if (!(_197 < 0.0))
97+ {
98+ _203 = _197 > 1.0;
10899 }
109100 else
110101 {
111- _206 = true;
102+ _203 = true;
112103 }
113- bool _211 ;
114- if (!_206 )
104+ bool _208 ;
105+ if (!_203 )
115106 {
116- _211 = _198 < 0.0;
107+ _208 = _195 < 0.0;
117108 }
118109 else
119110 {
120- _211 = true;
111+ _208 = true;
121112 }
122- bool _216 ;
123- if (!_211 )
113+ bool _213 ;
114+ if (!_208 )
124115 {
125- _216 = _198 > 1.0;
116+ _213 = _195 > 1.0;
126117 }
127118 else
128119 {
129- _216 = true;
120+ _213 = true;
130121 }
131- if (_216 )
122+ if (_213 )
132123 {
133- _242 = 0.4000000059604644775390625;
124+ _239 = 0.4000000059604644775390625;
134125 break;
135126 }
136- float _231 ;
127+ float _228 ;
137128 if (((in.in_var_TEXCOORD3 >> 0u) & 1u) != 0u)
138129 {
139- float _227 = dot(in.in_var_TEXCOORD1, fast::normalize(float4(UniformBuffer_1.ShadowTransform[0][2], UniformBuffer_1.ShadowTransform[1][2], UniformBuffer_1.ShadowTransform[2][2], UniformBuffer_1.ShadowTransform[3][2]).xyz));
140- if (_227 > 0.0)
130+ float _224 = dot(in.in_var_TEXCOORD1, fast::normalize(float4(UniformBuffer_1.ShadowTransform[0][2], UniformBuffer_1.ShadowTransform[1][2], UniformBuffer_1.ShadowTransform[2][2], UniformBuffer_1.ShadowTransform[3][2]).xyz));
131+ if (_224 > 0.0)
141132 {
142- _242 = 0.0;
133+ _239 = 0.0;
143134 break;
144135 }
145- _231 = _227 ;
136+ _228 = _224 ;
146137 }
147138 else
148139 {
149- _231 = -0.7070000171661376953125;
140+ _228 = -0.7070000171661376953125;
150141 }
151- if (_193 .z < (shadowTexture.sample(shadowSampler, _199 , level(0.0)).x + 0.001000000047497451305389404296875))
142+ if (_190 .z < (shadowTexture.sample(shadowSampler, _196 , level(0.0)).x + 0.001000000047497451305389404296875))
152143 {
153- _242 = _231 * (-0.4000000059604644775390625);
144+ _239 = _228 * (-0.4000000059604644775390625);
154145 break;
155146 }
156147 else
157148 {
158- _242 = 0.0;
149+ _239 = 0.0;
159150 break;
160151 }
161152 break; // unreachable workaround
162153 } while(false);
163- float3 _246 = in.in_var_TEXCOORD0.xyz - UniformBuffer_2.PlayerPosition;
164- float _278 ;
154+ float3 _243 = in.in_var_TEXCOORD0.xyz - UniformBuffer_2.PlayerPosition;
155+ float _275 ;
165156 if (((in.in_var_TEXCOORD3 >> 26u) & 63u) == 16u)
166157 {
167- _278 = _108 + ((in.in_var_TEXCOORD0.y - positionTexture.sample(positionSampler, in.in_var_TEXCOORD4).y) * 0.100000001490116119384765625);
158+ _275 = _110 + ((in.in_var_TEXCOORD0.y - positionTexture.sample(positionSampler, in.in_var_TEXCOORD4).y) * 0.100000001490116119384765625);
168159 }
169160 else
170161 {
171- _278 = _108 ;
162+ _275 = _110 ;
172163 }
173- out.out_var_SV_Target0 = float4(mix(_106 .xyz * (((_113 * 2.0) + float3(0.5)) + float3(_242 )), mix(float3(0.2199999988079071044921875, 0.3490000069141387939453125, 0.70200002193450927734375), float3(0.21199999749660491943359375, 0.7730000019073486328125, 0.9570000171661376953125), float3((precise::atan2(_246 .y, length(float2(_246 .xz))) + 1.57079637050628662109375) * 0.3183098733425140380859375)), float3(precise::min(powr(distance(in.in_var_TEXCOORD0.xz, UniformBuffer_2.PlayerPosition.xz) * 0.0040000001899898052215576171875, 2.5), 1.0))), _278 );
164+ out.out_var_SV_Target0 = float4(mix(_108 .xyz * (((_115 * 2.0) + float3(0.5)) + float3(_239 )), mix(float3(0.2199999988079071044921875, 0.3490000069141387939453125, 0.70200002193450927734375), float3(0.21199999749660491943359375, 0.7730000019073486328125, 0.9570000171661376953125), float3((precise::atan2(_243 .y, length(float2(_243 .xz))) + 1.57079637050628662109375) * 0.3183098733425140380859375)), float3(precise::min(powr(distance(in.in_var_TEXCOORD0.xz, UniformBuffer_2.PlayerPosition.xz) * 0.0040000001899898052215576171875, 2.5), 1.0))), _275 );
174165 return out;
175166}
176167
0 commit comments