#include using namespace metal; struct xlatMtlShaderInput { float4 _glesVertex [[attribute(0)]]; half3 _glesNormal [[attribute(1)]]; float4 _glesMultiTexCoord0 [[attribute(2)]]; }; struct xlatMtlShaderOutput { float4 gl_Position [[position]]; half4 xlv_COLOR0; float2 xlv_TEXCOORD0; }; struct xlatMtlShaderUniform { half4 unity_LightColor[8]; float4 unity_LightPosition[8]; half4 unity_LightAtten[8]; float4x4 glstate_matrix_mvp; float4x4 glstate_matrix_modelview0; float4x4 glstate_matrix_invtrans_modelview0; float4 glstate_lightmodel_ambient; half4 _Color; }; vertex xlatMtlShaderOutput xlatMtlMain (xlatMtlShaderInput _mtl_i [[stage_in]], constant xlatMtlShaderUniform& _mtl_u [[buffer(0)]]) { xlatMtlShaderOutput _mtl_o; float3 tmpvar_1; tmpvar_1 = _mtl_i._glesVertex.xyz; float3 n_2; n_2 = float3(_mtl_i._glesNormal); half4 tmpvar_3; float4 tmpvar_4; tmpvar_4.w = 1.0; tmpvar_4.xyz = tmpvar_1; float3 lightColor_5; float3 viewN_6; float3 viewpos_7; float4 tmpvar_8; tmpvar_8.w = 1.0; tmpvar_8.xyz = tmpvar_1; viewpos_7 = (_mtl_u.glstate_matrix_modelview0 * tmpvar_8).xyz; float3x3 tmpvar_9; tmpvar_9[0] = _mtl_u.glstate_matrix_invtrans_modelview0[0].xyz; tmpvar_9[1] = _mtl_u.glstate_matrix_invtrans_modelview0[1].xyz; tmpvar_9[2] = _mtl_u.glstate_matrix_invtrans_modelview0[2].xyz; viewN_6 = (tmpvar_9 * n_2); float3 tmpvar_10; tmpvar_10 = (_mtl_u.unity_LightPosition[0].xyz - (viewpos_7 * _mtl_u.unity_LightPosition[0].w)); lightColor_5 = (_mtl_u.glstate_lightmodel_ambient.xyz + ((float3)_mtl_u.unity_LightColor[0].xyz * ( max (0.0, dot (viewN_6, normalize(tmpvar_10))) * (1.0/((1.0 + (dot (tmpvar_10, tmpvar_10) * (float)_mtl_u.unity_LightAtten[0].z)))) ))); float3 tmpvar_11; tmpvar_11 = (_mtl_u.unity_LightPosition[1].xyz - (viewpos_7 * _mtl_u.unity_LightPosition[1].w)); lightColor_5 = (lightColor_5 + ((float3)_mtl_u.unity_LightColor[1].xyz * ( max (0.0, dot (viewN_6, normalize(tmpvar_11))) * (1.0/((1.0 + (dot (tmpvar_11, tmpvar_11) * (float)_mtl_u.unity_LightAtten[1].z)))) ))); float3 tmpvar_12; tmpvar_12 = (_mtl_u.unity_LightPosition[2].xyz - (viewpos_7 * _mtl_u.unity_LightPosition[2].w)); lightColor_5 = (lightColor_5 + ((float3)_mtl_u.unity_LightColor[2].xyz * ( max (0.0, dot (viewN_6, normalize(tmpvar_12))) * (1.0/((1.0 + (dot (tmpvar_12, tmpvar_12) * (float)_mtl_u.unity_LightAtten[2].z)))) ))); float3 tmpvar_13; tmpvar_13 = (_mtl_u.unity_LightPosition[3].xyz - (viewpos_7 * _mtl_u.unity_LightPosition[3].w)); lightColor_5 = (lightColor_5 + ((float3)_mtl_u.unity_LightColor[3].xyz * ( max (0.0, dot (viewN_6, normalize(tmpvar_13))) * (1.0/((1.0 + (dot (tmpvar_13, tmpvar_13) * (float)_mtl_u.unity_LightAtten[3].z)))) ))); float4 tmpvar_14; tmpvar_14.w = 1.0; tmpvar_14.xyz = ((lightColor_5 * (float3)_mtl_u._Color.xyz) * 2.0); tmpvar_3 = half4(tmpvar_14); _mtl_o.gl_Position = (_mtl_u.glstate_matrix_mvp * tmpvar_4); _mtl_o.xlv_COLOR0 = tmpvar_3; _mtl_o.xlv_TEXCOORD0 = _mtl_i._glesMultiTexCoord0.xy; return _mtl_o; } // stats: 56 alu 0 tex 0 flow // inputs: 3 // #0: _glesVertex (high float) 4x1 [-1] loc 0 // #1: _glesNormal (medium float) 3x1 [-1] loc 1 // #2: _glesMultiTexCoord0 (high float) 4x1 [-1] loc 2 // uniforms: 8 (total size: 472) // #0: unity_LightColor (medium float) 4x1 [8] loc 0 // #1: unity_LightPosition (high float) 4x1 [8] loc 64 // #2: unity_LightAtten (medium float) 4x1 [8] loc 192 // #3: glstate_matrix_mvp (high float) 4x4 [-1] loc 256 // #4: glstate_matrix_modelview0 (high float) 4x4 [-1] loc 320 // #5: glstate_matrix_invtrans_modelview0 (high float) 4x4 [-1] loc 384 // #6: glstate_lightmodel_ambient (high float) 4x1 [-1] loc 448 // #7: _Color (medium float) 4x1 [-1] loc 464