#include using namespace metal; struct xlatMtlShaderInput { float4 var_uv; }; struct xlatMtlShaderOutput { half4 out_data [[color(0)]]; }; struct xlatMtlShaderUniform { float uni1; half4 uni4; half _AtmosphereThickness; }; fragment xlatMtlShaderOutput xlatMtlMain (xlatMtlShaderInput _mtl_i [[stage_in]], constant xlatMtlShaderUniform& _mtl_u [[buffer(0)]] , texture2d tex1 [[texture(0)]], sampler _mtlsmp_tex1 [[sampler(0)]]) { xlatMtlShaderOutput _mtl_o; float mut_uni1_1; half4 mut_uni4_2; float kKrESun_3; float kKr4PI_4; mut_uni4_2.zw = _mtl_u.uni4.zw; half tmpvar_5_5; half tmpvar_3_6; half4 c_7; c_7.yzw = half3(float3(0.0, 0.0, 0.0)); c_7.x = _mtl_u.uni4.x; float3 tmpvar_8; float2 uv_9; uv_9 = _mtl_i.var_uv.xy; mut_uni4_2.xy = half2(uv_9); half3 tmpvar_10; tmpvar_10 = tex1.sample(_mtlsmp_tex1, (float2)(mut_uni4_2.xy)).xyz; tmpvar_8 = float3(tmpvar_10); c_7.xyz = half3(((float3)c_7.xyz + tmpvar_8)); c_7.z = half(((float)c_7.z + _mtl_u.uni1)); mut_uni1_1 = (_mtl_u.uni1 + 2.0); c_7.w = half(mut_uni1_1); half tmpvar_11; tmpvar_11 = pow (_mtl_u._AtmosphereThickness, (half)2.5); tmpvar_3_6 = ((half)0.05 * tmpvar_11); kKrESun_3 = float(tmpvar_3_6); tmpvar_5_5 = (tmpvar_11 * (half)0.031416); kKr4PI_4 = float(tmpvar_5_5); if ((_mtl_i.var_uv.x > 0.5)) { float tmpvar_12; tmpvar_12 = pow (kKrESun_3, kKr4PI_4); c_7.x = half(((float)c_7.x + tmpvar_12)); }; _mtl_o.out_data = c_7; return _mtl_o; } // stats: 10 alu 1 tex 1 flow // inputs: 1 // #0: var_uv (high float) 4x1 [-1] // uniforms: 3 (total size: 18) // #0: uni1 (high float) 1x1 [-1] loc 0 // #1: uni4 (medium float) 4x1 [-1] loc 8 // #2: _AtmosphereThickness (medium float) 1x1 [-1] loc 16 // textures: 1 // #0: tex1 (low 2d) 0x0 [-1] loc 0