mat3 xll_constructMat3_mf4x4( mat4 m) { return mat3( vec3( m[0]), vec3( m[1]), vec3( m[2])); } struct VertexOutput { vec4 pos; vec4 tex; vec4 posWorld; vec3 normalWorld; vec4 tangentWorld; vec3 extra; vec4 _ShadowCoord; vec3 lightDir; }; struct VertexInput { vec4 vertex; vec3 normal; vec4 texcoord; vec4 texcoord1; vec4 tangent; }; uniform vec4 _ProjectionParams; uniform vec4 _ScreenParams; uniform vec4 _WorldSpaceLightPos0; uniform mat4 _Object2World; uniform mat4 _World2Object; uniform vec4 unity_Scale; uniform mat4 glstate_matrix_transpose_modelview0; uniform samplerCube _Cube; uniform sampler2D _MainTex; uniform vec4 _MainTex_ST; uniform sampler2D _DetailAlbedoMap; uniform vec4 _DetailAlbedoMap_ST; uniform sampler2D _AlphaMap; uniform sampler2D _Occlusion; uniform sampler2D _DetailNormalMap; uniform vec4 _DetailNormalMap_ST; uniform float _DetailNormalMapScale; uniform sampler2D _BumpMap; uniform float _BumpScale; uniform float _Exposure; uniform float _DetailBumpScale; uniform float _AlphaTestRef; uniform float _DetailBumpTiling; uniform vec4 _Color; uniform vec4 _SpecularColor; uniform sampler2D _SpecGlossMap; uniform float _Glossiness; uniform vec4 unity_ColorSpaceGrey; uniform vec4 _LightColor0; uniform samplerCube _SpecCube; uniform vec4 unity_LightmapST; uniform sampler2D unity_Lightmap; uniform sampler2D unity_LightmapInd; uniform float _SelfIllumScale; uniform sampler2D _SelfIllum; vec4 ComputeScreenPos( in vec4 pos ) { vec4 o = (pos * 0.5); o.xy = (vec2( o.x, (o.y * _ProjectionParams.x)) + o.w); o.zw = pos.zw; return o; } VertexOutput vert( in VertexInput v ) { VertexOutput o; o.posWorld = (_Object2World * v.vertex); o.pos = (gl_ModelViewProjectionMatrix * v.vertex); o.tex = v.texcoord; o.tex.xy = ((v.texcoord.xy * _MainTex_ST.xy) + _MainTex_ST.zw); o.tex.zw = ((v.texcoord.xy * _DetailAlbedoMap_ST.xy) + _DetailAlbedoMap_ST.zw); o.normalWorld = normalize((xll_constructMat3_mf4x4( _Object2World) * v.normal)); o.tangentWorld = vec4( (xll_constructMat3_mf4x4( _Object2World) * v.tangent.xyz), v.tangent.w); o.tangentWorld.xyz = normalize(o.tangentWorld.xyz); o._ShadowCoord = ComputeScreenPos( o.pos); o.extra.xy = ((v.texcoord1.xy * unity_LightmapST.xy) + unity_LightmapST.zw); o.extra.z = 0.0; return o; } attribute vec4 TANGENT; varying vec4 xlv_TEXCOORD0; varying vec4 xlv_TEXCOORD1; varying vec3 xlv_TEXCOORD2; varying vec4 xlv_TEXCOORD3; varying vec3 xlv_TEXCOORD4; varying vec4 xlv_TEXCOORD5; varying vec3 xlv_TEXCOORD7; void main() { VertexOutput xl_retval; VertexInput xlt_v; xlt_v.vertex = vec4(gl_Vertex); xlt_v.normal = vec3(gl_Normal); xlt_v.texcoord = vec4(gl_MultiTexCoord0); xlt_v.texcoord1 = vec4(gl_MultiTexCoord1); xlt_v.tangent = vec4(TANGENT); xl_retval = vert( xlt_v); gl_Position = vec4(xl_retval.pos); xlv_TEXCOORD0 = vec4(xl_retval.tex); xlv_TEXCOORD1 = vec4(xl_retval.posWorld); xlv_TEXCOORD2 = vec3(xl_retval.normalWorld); xlv_TEXCOORD3 = vec4(xl_retval.tangentWorld); xlv_TEXCOORD4 = vec3(xl_retval.extra); xlv_TEXCOORD5 = vec4(xl_retval._ShadowCoord); xlv_TEXCOORD7 = vec3(xl_retval.lightDir); }