2012-10-07 23:41:18 -04:00
|
|
|
uniform vec3 _TerrainTreeLightDirections[4];
|
2014-02-11 02:06:13 -05:00
|
|
|
uniform float _TranslucencyViewDependency;
|
|
|
|
uniform mat4 _World2Object;
|
|
|
|
uniform vec3 _WorldSpaceCameraPos;
|
|
|
|
uniform vec4 unity_Scale;
|
|
|
|
attribute vec4 TANGENT;
|
2012-10-07 23:41:18 -04:00
|
|
|
void main ()
|
|
|
|
{
|
2014-10-11 15:32:43 -04:00
|
|
|
vec3 lightDir_1;
|
|
|
|
vec3 viewDir_2;
|
2012-10-07 23:41:18 -04:00
|
|
|
vec3 tmpvar_3;
|
|
|
|
vec3 tmpvar_4;
|
2014-10-11 15:32:43 -04:00
|
|
|
vec3 tmpvar_5;
|
|
|
|
vec4 pos_6;
|
|
|
|
float isBillboard_7;
|
|
|
|
isBillboard_7 = (1.0 - abs(TANGENT.w));
|
2012-10-07 23:41:18 -04:00
|
|
|
vec4 tmpvar_8;
|
2014-10-11 15:32:43 -04:00
|
|
|
tmpvar_8.w = 0.0;
|
|
|
|
tmpvar_8.xyz = gl_Normal;
|
|
|
|
vec4 tmpvar_9;
|
|
|
|
tmpvar_9.zw = vec2(0.0, 0.0);
|
|
|
|
tmpvar_9.xy = gl_Normal.xy;
|
|
|
|
pos_6 = (gl_Vertex + ((tmpvar_9 * gl_ModelViewMatrixInverseTranspose) * isBillboard_7));
|
|
|
|
vec3 tmpvar_10;
|
|
|
|
tmpvar_10 = mix (gl_Normal, normalize((tmpvar_8 * gl_ModelViewMatrixInverseTranspose)).xyz, vec3(isBillboard_7));
|
|
|
|
vec4 tmpvar_11;
|
|
|
|
tmpvar_11.w = 1.0;
|
|
|
|
tmpvar_11.xyz = _WorldSpaceCameraPos;
|
|
|
|
viewDir_2 = normalize(((
|
|
|
|
(_World2Object * tmpvar_11)
|
|
|
|
.xyz * unity_Scale.w) - pos_6.xyz));
|
|
|
|
lightDir_1 = _TerrainTreeLightDirections[0];
|
2012-10-07 23:41:18 -04:00
|
|
|
float tmpvar_12;
|
2014-10-11 15:32:43 -04:00
|
|
|
tmpvar_12 = dot (tmpvar_10, lightDir_1);
|
|
|
|
vec3 tmpvar_13;
|
|
|
|
tmpvar_13.yz = tmpvar_3.yz;
|
|
|
|
tmpvar_13.x = (mix (clamp (
|
2014-02-11 02:06:13 -05:00
|
|
|
-(tmpvar_12)
|
|
|
|
, 0.0, 1.0), clamp (
|
2014-10-11 15:32:43 -04:00
|
|
|
dot (viewDir_2, -(lightDir_1))
|
2014-02-11 02:06:13 -05:00
|
|
|
, 0.0, 1.0), _TranslucencyViewDependency) * 2.0);
|
2014-10-11 15:32:43 -04:00
|
|
|
vec3 tmpvar_14;
|
|
|
|
tmpvar_14.yz = tmpvar_4.yz;
|
|
|
|
tmpvar_14.x = max (0.0, ((tmpvar_12 * 0.6) + 0.4));
|
|
|
|
vec3 tmpvar_15;
|
|
|
|
tmpvar_15.yz = tmpvar_5.yz;
|
|
|
|
tmpvar_15.x = max (0.0, dot (tmpvar_10, normalize(
|
|
|
|
(lightDir_1 + viewDir_2)
|
2014-02-11 02:06:13 -05:00
|
|
|
)));
|
2014-10-11 15:32:43 -04:00
|
|
|
lightDir_1 = _TerrainTreeLightDirections[1];
|
|
|
|
float tmpvar_16;
|
|
|
|
tmpvar_16 = dot (tmpvar_10, lightDir_1);
|
|
|
|
vec3 tmpvar_17;
|
|
|
|
tmpvar_17.xz = tmpvar_13.xz;
|
|
|
|
tmpvar_17.y = (mix (clamp (
|
|
|
|
-(tmpvar_16)
|
2014-02-11 02:06:13 -05:00
|
|
|
, 0.0, 1.0), clamp (
|
2014-10-11 15:32:43 -04:00
|
|
|
dot (viewDir_2, -(lightDir_1))
|
2014-02-11 02:06:13 -05:00
|
|
|
, 0.0, 1.0), _TranslucencyViewDependency) * 2.0);
|
2014-10-11 15:32:43 -04:00
|
|
|
vec3 tmpvar_18;
|
|
|
|
tmpvar_18.xz = tmpvar_14.xz;
|
|
|
|
tmpvar_18.y = max (0.0, ((tmpvar_16 * 0.6) + 0.4));
|
|
|
|
vec3 tmpvar_19;
|
|
|
|
tmpvar_19.xz = tmpvar_15.xz;
|
|
|
|
tmpvar_19.y = max (0.0, dot (tmpvar_10, normalize(
|
|
|
|
(lightDir_1 + viewDir_2)
|
2014-02-11 02:06:13 -05:00
|
|
|
)));
|
2014-10-11 15:32:43 -04:00
|
|
|
lightDir_1 = _TerrainTreeLightDirections[2];
|
|
|
|
float tmpvar_20;
|
|
|
|
tmpvar_20 = dot (tmpvar_10, lightDir_1);
|
|
|
|
vec3 tmpvar_21;
|
|
|
|
tmpvar_21.xy = tmpvar_17.xy;
|
|
|
|
tmpvar_21.z = (mix (clamp (
|
|
|
|
-(tmpvar_20)
|
2014-02-11 02:06:13 -05:00
|
|
|
, 0.0, 1.0), clamp (
|
2014-10-11 15:32:43 -04:00
|
|
|
dot (viewDir_2, -(lightDir_1))
|
2014-02-11 02:06:13 -05:00
|
|
|
, 0.0, 1.0), _TranslucencyViewDependency) * 2.0);
|
2014-10-11 15:32:43 -04:00
|
|
|
tmpvar_3 = tmpvar_21;
|
|
|
|
vec3 tmpvar_22;
|
|
|
|
tmpvar_22.xy = tmpvar_18.xy;
|
|
|
|
tmpvar_22.z = max (0.0, ((tmpvar_20 * 0.6) + 0.4));
|
|
|
|
tmpvar_4 = tmpvar_22;
|
|
|
|
vec3 tmpvar_23;
|
|
|
|
tmpvar_23.xy = tmpvar_19.xy;
|
|
|
|
tmpvar_23.z = max (0.0, dot (tmpvar_10, normalize(
|
|
|
|
(lightDir_1 + viewDir_2)
|
2014-02-11 02:06:13 -05:00
|
|
|
)));
|
2014-10-11 15:32:43 -04:00
|
|
|
tmpvar_5 = tmpvar_23;
|
|
|
|
gl_Position = (gl_ModelViewProjectionMatrix * pos_6);
|
|
|
|
vec4 tmpvar_24;
|
|
|
|
tmpvar_24.zw = vec2(0.0, 0.0);
|
|
|
|
tmpvar_24.xy = gl_MultiTexCoord0.xy;
|
|
|
|
gl_TexCoord[0] = tmpvar_24;
|
|
|
|
vec4 tmpvar_25;
|
|
|
|
tmpvar_25.w = 0.0;
|
|
|
|
tmpvar_25.xyz = gl_Color.www;
|
|
|
|
gl_TexCoord[1] = tmpvar_25;
|
|
|
|
vec4 tmpvar_26;
|
|
|
|
tmpvar_26.w = 0.0;
|
|
|
|
tmpvar_26.xyz = tmpvar_21;
|
|
|
|
gl_TexCoord[2] = tmpvar_26;
|
|
|
|
vec4 tmpvar_27;
|
|
|
|
tmpvar_27.w = 0.0;
|
|
|
|
tmpvar_27.xyz = tmpvar_22;
|
|
|
|
gl_TexCoord[3] = tmpvar_27;
|
|
|
|
vec4 tmpvar_28;
|
|
|
|
tmpvar_28.w = 0.0;
|
|
|
|
tmpvar_28.xyz = tmpvar_23;
|
|
|
|
gl_TexCoord[4] = tmpvar_28;
|
2012-10-07 23:41:18 -04:00
|
|
|
}
|
|
|
|
|
2014-02-11 02:06:13 -05:00
|
|
|
|
2014-10-11 15:32:43 -04:00
|
|
|
// stats: 66 alu 0 tex 0 flow
|
|
|
|
// inputs: 5
|
|
|
|
// #0: gl_MultiTexCoord0 (high float) 4x1 [-1] loc 8
|
|
|
|
// #1: gl_Color (high float) 4x1 [-1] loc 3
|
|
|
|
// #2: gl_Normal (high float) 3x1 [-1] loc 2
|
|
|
|
// #3: gl_Vertex (high float) 4x1 [-1] loc 0
|
|
|
|
// #4: TANGENT (high float) 4x1 [-1]
|
|
|
|
// uniforms: 7 (total size: 0)
|
|
|
|
// #0: gl_ModelViewMatrixInverseTranspose (high float) 4x4 [-1]
|
|
|
|
// #1: gl_ModelViewProjectionMatrix (high float) 4x4 [-1]
|
|
|
|
// #2: _TerrainTreeLightDirections (high float) 3x1 [4]
|
|
|
|
// #3: _TranslucencyViewDependency (high float) 1x1 [-1]
|
|
|
|
// #4: _World2Object (high float) 4x4 [-1]
|
|
|
|
// #5: _WorldSpaceCameraPos (high float) 3x1 [-1]
|
|
|
|
// #6: unity_Scale (high float) 4x1 [-1]
|