#include using namespace metal; struct xlatMtlShaderInput { float4 in_POSITION0 [[attribute(0)]]; float4 in_NORMAL0 [[attribute(1)]]; float4 in_TEXCOORD0 [[attribute(2)]]; }; struct xlatMtlShaderOutput { float4 gl_Position [[position]]; float4 TEXCOORD0; float4 COLOR0; }; struct xlatMtlShaderUniform { float4 unity_LightColor[8]; float4 unity_LightPosition[8]; float4 unity_LightAtten[8]; float4 unity_SpotDirection[8]; float4x4 glstate_matrix_mvp; float4x4 glstate_matrix_modelview0; float4x4 glstate_matrix_invtrans_modelview0; float4 glstate_lightmodel_ambient; float4 _MainTex_ST; float4 _Color; float4 _ReflectColor; }; ; vertex xlatMtlShaderOutput xlatMtlMain (xlatMtlShaderInput _mtl_i [[stage_in]], constant xlatMtlShaderUniform& _mtl_u [[buffer(0)]]) { xlatMtlShaderOutput _mtl_o; float4 phase0_Output2_1; float4 Temp_2_2; float4 Temp_3_3; int4 Temp_int_0_4; int4 Temp_int_1_5; Temp_int_0_4 = as_type((_mtl_i.in_POSITION0.yyyy * _mtl_u.glstate_matrix_mvp[1])); Temp_int_0_4 = as_type(((_mtl_u.glstate_matrix_mvp[0] * _mtl_i.in_POSITION0.xxxx) + as_type(Temp_int_0_4))); Temp_int_0_4 = as_type(((_mtl_u.glstate_matrix_mvp[2] * _mtl_i.in_POSITION0.zzzz) + as_type(Temp_int_0_4))); phase0_Output2_1 = ((_mtl_u.glstate_matrix_mvp[3] * _mtl_i.in_POSITION0.wwww) + as_type(Temp_int_0_4)); _mtl_o.TEXCOORD0.xy = ((_mtl_i.in_TEXCOORD0.xy * _mtl_u._MainTex_ST.xy) + _mtl_u._MainTex_ST.zw); Temp_int_0_4.xyz = as_type((_mtl_i.in_POSITION0.yyy * _mtl_u.glstate_matrix_modelview0[1].xyz)); Temp_int_0_4.xyz = as_type(((_mtl_u.glstate_matrix_modelview0[0].xyz * _mtl_i.in_POSITION0.xxx) + as_type(Temp_int_0_4).xyz)); Temp_int_0_4.xyz = as_type(((_mtl_u.glstate_matrix_modelview0[2].xyz * _mtl_i.in_POSITION0.zzz) + as_type(Temp_int_0_4).xyz)); Temp_int_0_4.xyz = as_type(((_mtl_u.glstate_matrix_modelview0[3].xyz * _mtl_i.in_POSITION0.www) + as_type(Temp_int_0_4).xyz)); Temp_int_1_5.xyz = as_type((_mtl_i.in_NORMAL0.yyy * _mtl_u.glstate_matrix_invtrans_modelview0[1].xyz)); Temp_int_1_5.xyz = as_type(((_mtl_u.glstate_matrix_invtrans_modelview0[0].xyz * _mtl_i.in_NORMAL0.xxx) + as_type(Temp_int_1_5).xyz)); Temp_int_1_5.xyz = as_type(((_mtl_u.glstate_matrix_invtrans_modelview0[2].xyz * _mtl_i.in_NORMAL0.zzz) + as_type(Temp_int_1_5).xyz)); Temp_int_0_4.w = as_type(dot (as_type(Temp_int_1_5).xyz, as_type(Temp_int_1_5).xyz)); Temp_int_0_4.w = as_type(rsqrt(as_type(Temp_int_0_4).w)); Temp_int_1_5.xyz = as_type((as_type(Temp_int_0_4).www * as_type(Temp_int_1_5).xyz)); Temp_2_2.xyz = _mtl_u.glstate_lightmodel_ambient.xyz; Temp_int_0_4.w = 0; for (; Temp_int_0_4.w < 4; Temp_int_0_4.w = (Temp_int_0_4.w + 1)) { Temp_3_3.xyz = ((-( as_type(Temp_int_0_4) .xyz) * _mtl_u.unity_LightPosition[Temp_int_0_4.w].www) + _mtl_u.unity_LightPosition[Temp_int_0_4.w].xyz); Temp_int_1_5.w = as_type(dot (Temp_3_3.xyz, Temp_3_3.xyz)); Temp_2_2.w = rsqrt(as_type(Temp_int_1_5).w); Temp_3_3.xyz = (Temp_2_2.www * Temp_3_3.xyz); Temp_int_1_5.w = as_type((( as_type(Temp_int_1_5) .w * _mtl_u.unity_LightAtten[Temp_int_0_4.w].z) + 1.0)); Temp_int_1_5.w = as_type((1.0/(as_type(Temp_int_1_5).w))); Temp_2_2.w = dot (Temp_3_3.xyz, _mtl_u.unity_SpotDirection[Temp_int_0_4.w].xyz); Temp_2_2.w = max (Temp_2_2.w, 0.0); Temp_2_2.w = (Temp_2_2.w - _mtl_u.unity_LightAtten[Temp_int_0_4.w].x); Temp_2_2.w = (Temp_2_2.w * _mtl_u.unity_LightAtten[Temp_int_0_4.w].y); Temp_2_2.w = clamp (Temp_2_2.w, 0.0, 1.0); Temp_int_1_5.w = as_type((as_type(Temp_int_1_5).w * Temp_2_2.w)); Temp_2_2.w = dot (as_type(Temp_int_1_5).xyz, Temp_3_3.xyz); Temp_2_2.w = max (Temp_2_2.w, 0.0); Temp_int_1_5.w = as_type((as_type(Temp_int_1_5).w * Temp_2_2.w)); Temp_2_2.xyz = ((_mtl_u.unity_LightColor[Temp_int_0_4.w].xyz * as_type(Temp_int_1_5).www) + Temp_2_2.xyz); }; _mtl_o.COLOR0.xyz = (Temp_2_2.xyz * _mtl_u._Color.xyz); _mtl_o.COLOR0.w = (_mtl_u._Color.w * _mtl_u._ReflectColor.w); _mtl_o.gl_Position = phase0_Output2_1; return _mtl_o; } // stats: 88 alu 0 tex 2 flow // inputs: 3 // #0: in_POSITION0 (high float) 4x1 [-1] loc 0 // #1: in_NORMAL0 (high float) 4x1 [-1] loc 1 // #2: in_TEXCOORD0 (high float) 4x1 [-1] loc 2 // uniforms: 11 (total size: 768) // #0: unity_LightColor (high float) 4x1 [8] loc 0 // #1: unity_LightPosition (high float) 4x1 [8] loc 128 // #2: unity_LightAtten (high float) 4x1 [8] loc 256 // #3: unity_SpotDirection (high float) 4x1 [8] loc 384 // #4: glstate_matrix_mvp (high float) 4x4 [-1] loc 512 // #5: glstate_matrix_modelview0 (high float) 4x4 [-1] loc 576 // #6: glstate_matrix_invtrans_modelview0 (high float) 4x4 [-1] loc 640 // #7: glstate_lightmodel_ambient (high float) 4x1 [-1] loc 704 // #8: _MainTex_ST (high float) 4x1 [-1] loc 720 // #9: _Color (high float) 4x1 [-1] loc 736 // #10: _ReflectColor (high float) 4x1 [-1] loc 752