#include using namespace metal; struct xlatMtlShaderInput { float4 _uv0; half3 _uv1; half3 _uv2; half3 _uv3; }; struct xlatMtlShaderOutput { half4 _fragData [[color(0)]]; }; struct xlatMtlShaderUniform { half4 _Color; half4 _LightColor0; float _Shininess; half4 _SpecColor; }; fragment xlatMtlShaderOutput xlatMtlMain (xlatMtlShaderInput _mtl_i [[stage_in]], constant xlatMtlShaderUniform& _mtl_u [[buffer(0)]] , texture2d _BumpMap [[texture(0)]], sampler _mtlsmp__BumpMap [[sampler(0)]] , texture2d _MainTex [[texture(1)]], sampler _mtlsmp__MainTex [[sampler(1)]]) { xlatMtlShaderOutput _mtl_o; half4 c_1; half3 tmpvar_2; half tmpvar_3; half4 tmpvar_4; tmpvar_4 = _MainTex.sample(_mtlsmp__MainTex, (float2)(_mtl_i._uv0.xy)); tmpvar_2 = (tmpvar_4.xyz * _mtl_u._Color.xyz); tmpvar_3 = (tmpvar_4.w * _mtl_u._Color.w); half4 tmpvar_5; tmpvar_5 = _BumpMap.sample(_mtlsmp__BumpMap, (float2)(_mtl_i._uv0.zw)); half4 packednormal_6; packednormal_6 = tmpvar_5; half4 normal_7; normal_7.xy = ((packednormal_6.wy * (half)2.0) - (half)1.0); normal_7.z = sqrt((((half)1.0 - (normal_7.x * normal_7.x) ) - (normal_7.y * normal_7.y))); half4 c_8; half spec_9; half tmpvar_10; float y_11; y_11 = (_mtl_u._Shininess * 128.0); tmpvar_10 = ((half)pow ((float)max ((half)0.0, dot (normal_7.xyz, normalize((_mtl_i._uv2 + normalize(_mtl_i._uv1))) )), y_11)); spec_9 = (tmpvar_10 * tmpvar_4.w); c_8.xyz = ((( (tmpvar_2 * _mtl_u._LightColor0.xyz) * max ((half)0.0, dot (normal_7.xyz, _mtl_i._uv2)) ) + ( (_mtl_u._LightColor0.xyz * _mtl_u._SpecColor.xyz) * spec_9)) * (half)2.0); c_8.w = (tmpvar_3 + ((_mtl_u._LightColor0.w * _mtl_u._SpecColor.w) * spec_9)); c_1.xyz = (c_8.xyz + (tmpvar_2 * _mtl_i._uv3)); c_1.w = tmpvar_3; half4 tmpvar_12; tmpvar_12 = c_1; _mtl_o._fragData = tmpvar_12; return _mtl_o; } // stats: 30 alu 2 tex 0 flow // inputs: 4 // #0: _uv0 (high float) 4x1 [-1] // #1: _uv1 (medium float) 3x1 [-1] // #2: _uv2 (medium float) 3x1 [-1] // #3: _uv3 (medium float) 3x1 [-1] // uniforms: 4 (total size: 32) // #0: _Color (medium float) 4x1 [-1] loc 0 // #1: _LightColor0 (medium float) 4x1 [-1] loc 8 // #2: _Shininess (high float) 1x1 [-1] loc 16 // #3: _SpecColor (medium float) 4x1 [-1] loc 24 // textures: 2 // #0: _BumpMap (low 2d) 0x0 [-1] loc 0 // #1: _MainTex (low 2d) 0x0 [-1] loc 1