@@ -42,117 +42,118 @@ struct main0_in
4242 float3 in_var_TEXCOORD1 [[user(locn1), flat]];
4343 float3 in_var_TEXCOORD2 [[user(locn2)]];
4444 uint in_var_TEXCOORD3 [[user(locn3)]];
45+ float2 in_var_TEXCOORD4 [[user(locn4)]];
4546};
4647
47- fragment 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)]], sampler atlasSampler [[sampler(0)]], sampler shadowSampler [[sampler(1)]])
48+ fragment 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 )]])
4849{
4950 main0_out out = {};
50- float4 _95 = atlasTexture.sample(atlasSampler, in.in_var_TEXCOORD2.xy, uint(rint(in.in_var_TEXCOORD2.z)));
51- uint _100 = uint(UniformBuffer.LightCount);
52- float3 _102 ;
53- _102 = float3(0.0);
54- float3 _103 ;
55- for (uint _105 = 0u; _105 < _100; _102 = _103, _105 ++)
51+ float4 _103 = atlasTexture.sample(atlasSampler, in.in_var_TEXCOORD2.xy, uint(rint(in.in_var_TEXCOORD2.z)));
52+ uint _108 = uint(UniformBuffer.LightCount);
53+ float3 _110 ;
54+ _110 = float3(0.0);
55+ float3 _111 ;
56+ for (uint _113 = 0u; _113 < _108; _110 = _111, _113 ++)
5657 {
57- float _118 = float((lightBuffer._m0[_105 ].Color & 4278190080u) >> 24u);
58- float3 _125 = (float3(float(lightBuffer._m0[_105 ].X), float(lightBuffer._m0[_105 ].Y), float(lightBuffer._m0[_105 ].Z)) + float3(0.5)) - in.in_var_TEXCOORD0.xyz;
59- float _126 = length(_125 );
60- bool _132 ;
61- if (!(_126 >= _118 ))
58+ float _126 = float((lightBuffer._m0[_113 ].Color & 4278190080u) >> 24u);
59+ float3 _133 = (float3(float(lightBuffer._m0[_113 ].X), float(lightBuffer._m0[_113 ].Y), float(lightBuffer._m0[_113 ].Z)) + float3(0.5)) - in.in_var_TEXCOORD0.xyz;
60+ float _134 = length(_133 );
61+ bool _140 ;
62+ if (!(_134 >= _126 ))
6263 {
63- _132 = _118 <= 0.0;
64+ _140 = _126 <= 0.0;
6465 }
6566 else
6667 {
67- _132 = true;
68+ _140 = true;
6869 }
69- if (_132 )
70+ if (_140 )
7071 {
71- _103 = _102 ;
72+ _111 = _110 ;
7273 continue;
7374 }
74- float _146 ;
75- if (_126 > 0.20000000298023223876953125)
75+ float _154 ;
76+ if (_134 > 0.20000000298023223876953125)
7677 {
77- float _142 = fast::clamp(dot(in.in_var_TEXCOORD1, _125 / float3(_126 )), 0.0, 1.0);
78- if (_142 <= 0.0)
78+ float _150 = fast::clamp(dot(in.in_var_TEXCOORD1, _133 / float3(_134 )), 0.0, 1.0);
79+ if (_150 <= 0.0)
7980 {
80- _103 = _102 ;
81+ _111 = _110 ;
8182 continue;
8283 }
83- _146 = _142 ;
84+ _154 = _150 ;
8485 }
8586 else
8687 {
87- _146 = 1.0;
88+ _154 = 1.0;
8889 }
89- float _149 = fast::clamp(1.0 - (_126 / _118 ), 0.0, 1.0);
90- _103 = _102 + ((float3(float(lightBuffer._m0[_105 ].Color & 255u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_105 ].Color & 65280u) >> 8u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_105 ].Color & 16711680u) >> 16u) * 0.0039215688593685626983642578125) * _146 ) * (_149 * _149 ));
90+ float _157 = fast::clamp(1.0 - (_134 / _126 ), 0.0, 1.0);
91+ _111 = _110 + ((float3(float(lightBuffer._m0[_113 ].Color & 255u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_113 ].Color & 65280u) >> 8u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_113 ].Color & 16711680u) >> 16u) * 0.0039215688593685626983642578125) * _154 ) * (_157 * _157 ));
9192 }
92- float _227 ;
93+ float _235 ;
9394 do
9495 {
95- float4 _177 = UniformBuffer_1.ShadowTransform * float4(in.in_var_TEXCOORD0.xyz, 1.0);
96- float3 _181 = _177 .xyz / float3(_177 .w);
97- float2 _184 = (_181 .xy * 0.5) + float2(0.5);
98- float _186 = 1.0 - _184 .y;
99- float2 _187 = _184 ;
100- _187 .y = _186 ;
101- float _188 = _184 .x;
102- bool _194 ;
103- if (!(_188 < 0.0))
96+ float4 _185 = UniformBuffer_1.ShadowTransform * float4(in.in_var_TEXCOORD0.xyz, 1.0);
97+ float3 _189 = _185 .xyz / float3(_185 .w);
98+ float2 _192 = (_189 .xy * 0.5) + float2(0.5);
99+ float _194 = 1.0 - _192 .y;
100+ float2 _195 = _192 ;
101+ _195 .y = _194 ;
102+ float _196 = _192 .x;
103+ bool _202 ;
104+ if (!(_196 < 0.0))
104105 {
105- _194 = _188 > 1.0;
106+ _202 = _196 > 1.0;
106107 }
107108 else
108109 {
109- _194 = true;
110+ _202 = true;
110111 }
111- bool _199 ;
112- if (!_194 )
112+ bool _207 ;
113+ if (!_202 )
113114 {
114- _199 = _186 < 0.0;
115+ _207 = _194 < 0.0;
115116 }
116117 else
117118 {
118- _199 = true;
119+ _207 = true;
119120 }
120- bool _204 ;
121- if (!_199 )
121+ bool _212 ;
122+ if (!_207 )
122123 {
123- _204 = _186 > 1.0;
124+ _212 = _194 > 1.0;
124125 }
125126 else
126127 {
127- _204 = true;
128+ _212 = true;
128129 }
129- if (_204 )
130+ if (_212 )
130131 {
131- _227 = 0.0;
132+ _235 = 0.0;
132133 break;
133134 }
134135 if ((in.in_var_TEXCOORD3 & 1u) != 0u)
135136 {
136137 if (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)) > 0.0)
137138 {
138- _227 = 0.4000000059604644775390625;
139+ _235 = 0.4000000059604644775390625;
139140 break;
140141 }
141142 }
142- if ((_181 .z - 0.001000000047497451305389404296875) <= shadowTexture.sample(shadowSampler, _187 , level(0.0)).x)
143+ if ((_189 .z - 0.001000000047497451305389404296875) <= shadowTexture.sample(shadowSampler, _195 , level(0.0)).x)
143144 {
144- _227 = 0.0;
145+ _235 = 0.0;
145146 break;
146147 }
147148 else
148149 {
149- _227 = 0.4000000059604644775390625;
150+ _235 = 0.4000000059604644775390625;
150151 break;
151152 }
152153 break; // unreachable workaround
153154 } while(false);
154- float3 _235 = in.in_var_TEXCOORD0.xyz - UniformBuffer_2.PlayerPosition;
155- out.out_var_SV_Target0 = float4(mix(_95 .xyz * (((_102 * 2.0) + float3(0.5)) - float3(_227 )), mix(float3(0.2199999988079071044921875, 0.3490000069141387939453125, 0.70200002193450927734375), float3(0.21199999749660491943359375, 0.7730000019073486328125, 0.9570000171661376953125), float3((precise::atan2(_235 .y, length(float2(_235 .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))), _95.w );
155+ float3 _243 = in.in_var_TEXCOORD0.xyz - UniformBuffer_2.PlayerPosition;
156+ out.out_var_SV_Target0 = float4(mix(_103 .xyz * (((_110 * 2.0) + float3(0.5)) - float3(_235 )), 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))), fast::clamp(_103.w + ((in.in_var_TEXCOORD0.y - positionTexture.sample(positionSampler, in.in_var_TEXCOORD4).y) * 0.0500000007450580596923828125), 0.0, 1.0) );
156157 return out;
157158}
158159
0 commit comments