bgfx/3rdparty/glsl-optimizer/tests/vertex/zun-Tree_Editor_Leaf_Shader1-ir.txt
2014-02-10 23:06:13 -08:00

402 lines
9.8 KiB
Text

struct appdata_full {
vec4 vertex;
vec4 tangent;
vec3 normal;
vec4 texcoord;
vec4 texcoord1;
vec4 color;
};
struct v2f_surf {
vec4 pos;
vec3 _ShadowCoord0;
vec3 _ShadowCoord1;
vec3 _ShadowCoord2;
vec3 _ShadowCoord3;
vec2 _ShadowZFade;
vec2 hip_pack0;
vec4 lop_color;
};
uniform vec4 _Color;
uniform vec4 _LightShadowData;
uniform vec4 _MainTex_ST;
uniform mat4 _Object2World;
uniform vec4 _Scale;
uniform float _SquashAmount;
uniform vec4 _SquashPlaneNormal;
uniform float _TimeX;
uniform vec4 _Wind;
uniform mat4 _World2Shadow;
uniform mat4 _World2Shadow1;
uniform mat4 _World2Shadow2;
uniform mat4 _World2Shadow3;
attribute vec4 TANGENT;
vec4 Squash (
in vec4 pos_1
)
{
vec3 planeNormal_2;
vec3 planePoint_3;
vec3 projectedVertex_4;
vec3 tmpvar_5;
tmpvar_5 = pos_1.xyz;
projectedVertex_4 = tmpvar_5;
vec3 tmpvar_6;
tmpvar_6.xz = vec2(0.0, 0.0);
tmpvar_6.y = _SquashPlaneNormal.w;
vec3 tmpvar_7;
tmpvar_7 = tmpvar_6;
planePoint_3 = tmpvar_7;
vec3 tmpvar_8;
tmpvar_8 = _SquashPlaneNormal.xyz;
planeNormal_2 = tmpvar_8;
vec3 tmpvar_9;
tmpvar_9 = pos_1.xyz;
float tmpvar_10;
tmpvar_10 = dot (planeNormal_2, (planePoint_3 - tmpvar_9));
vec3 tmpvar_11;
tmpvar_11 = (projectedVertex_4 + (tmpvar_10 * planeNormal_2));
projectedVertex_4 = tmpvar_11;
vec3 tmpvar_12;
tmpvar_12 = vec3(_SquashAmount);
vec3 tmpvar_13;
tmpvar_13 = mix (projectedVertex_4, pos_1.xyz, tmpvar_12);
vec4 tmpvar_14;
tmpvar_14.w = 1.0;
tmpvar_14.xyz = tmpvar_13.xyz;
vec4 tmpvar_15;
tmpvar_15 = tmpvar_14;
pos_1 = tmpvar_15;
return pos_1;
}
void ExpandBillboard (
in mat4 mat_16,
inout vec4 pos_17,
inout vec3 normal_18,
inout vec4 tangent_19
)
{
vec3 tanb_20;
vec3 norb_21;
float isBillboard_22;
float tmpvar_23;
tmpvar_23 = abs (tangent_19.w);
float tmpvar_24;
tmpvar_24 = (1.0 - tmpvar_23);
isBillboard_22 = tmpvar_24;
vec4 tmpvar_25;
tmpvar_25.w = 0.0;
tmpvar_25.xyz = normal_18.xyz;
vec4 tmpvar_26;
tmpvar_26 = normalize ((tmpvar_25 * mat_16));
vec3 tmpvar_27;
tmpvar_27 = tmpvar_26.xyz;
vec3 tmpvar_28;
tmpvar_28 = tmpvar_27;
norb_21 = tmpvar_28;
vec4 tmpvar_29;
tmpvar_29.yw = vec2(0.0, 0.0);
tmpvar_29.x = normal_18.z;
tmpvar_29.z = -(normal_18.x);
vec4 tmpvar_30;
tmpvar_30 = normalize ((tmpvar_29 * mat_16));
vec3 tmpvar_31;
tmpvar_31 = tmpvar_30.xyz;
vec3 tmpvar_32;
tmpvar_32 = tmpvar_31;
tanb_20 = tmpvar_32;
vec4 tmpvar_33;
tmpvar_33 = (pos_17 + ((tangent_19 * mat_16) * isBillboard_22));
pos_17 = tmpvar_33;
vec3 tmpvar_34;
tmpvar_34 = vec3(isBillboard_22);
vec3 tmpvar_35;
tmpvar_35 = mix (normal_18, norb_21, tmpvar_34);
vec3 tmpvar_36;
tmpvar_36 = tmpvar_35;
normal_18 = tmpvar_36;
vec4 tmpvar_37;
tmpvar_37.w = -1.0;
tmpvar_37.xyz = tanb_20.xyz;
vec4 tmpvar_38;
tmpvar_38 = vec4(isBillboard_22);
vec4 tmpvar_39;
tmpvar_39 = mix (tangent_19, tmpvar_37, tmpvar_38);
vec4 tmpvar_40;
tmpvar_40 = tmpvar_39;
tangent_19 = tmpvar_40;
}
vec4 TriangleWave (
in vec4 x_41
)
{
vec4 tmpvar_42;
tmpvar_42 = fract ((x_41 + 0.5));
vec4 tmpvar_43;
tmpvar_43 = abs (((tmpvar_42 * 2.0) - 1.0));
return tmpvar_43;
}
vec4 SmoothCurve (
in vec4 x_44
)
{
return ((x_44 * x_44) * (3.0 - (2.0 * x_44)));
}
vec4 SmoothTriangleWave (
in vec4 x_45
)
{
vec4 tmpvar_46;
tmpvar_46 = TriangleWave (x_45);
vec4 tmpvar_47;
tmpvar_47 = SmoothCurve (tmpvar_46);
return tmpvar_47;
}
vec4 AnimateVertex (
in vec4 pos_48,
in vec3 normal_49,
in vec4 animParams_50
)
{
vec3 bend_51;
vec2 vWavesSum_52;
vec4 vWaves_53;
vec2 vWavesIn_54;
float fVtxPhase_55;
float fBranchPhase_56;
float fObjPhase_57;
float fBranchAmp_58;
float fDetailAmp_59;
float tmpvar_60;
tmpvar_60 = 0.1;
fDetailAmp_59 = tmpvar_60;
float tmpvar_61;
tmpvar_61 = 0.3;
fBranchAmp_58 = tmpvar_61;
float tmpvar_62;
tmpvar_62 = dot (_Object2World[3].xyz, vec3(1.0, 1.0, 1.0));
float tmpvar_63;
tmpvar_63 = tmpvar_62;
fObjPhase_57 = tmpvar_63;
float tmpvar_64;
tmpvar_64 = (fObjPhase_57 + animParams_50.x);
fBranchPhase_56 = tmpvar_64;
vec3 tmpvar_65;
tmpvar_65 = vec3((animParams_50.y + fBranchPhase_56));
float tmpvar_66;
tmpvar_66 = dot (pos_48.xyz, tmpvar_65);
float tmpvar_67;
tmpvar_67 = tmpvar_66;
fVtxPhase_55 = tmpvar_67;
vec2 tmpvar_68;
tmpvar_68.x = fVtxPhase_55;
tmpvar_68.y = fBranchPhase_56;
vec2 tmpvar_69;
tmpvar_69 = (_TimeX + tmpvar_68);
vWavesIn_54 = tmpvar_69;
vec4 tmpvar_70;
tmpvar_70 = fract ((vWavesIn_54.xxyy * vec4(1.975, 0.793, 0.375, 0.193)));
vec4 tmpvar_71;
tmpvar_71 = ((tmpvar_70 * 2.0) - 1.0);
vWaves_53 = tmpvar_71;
vec4 tmpvar_72;
tmpvar_72 = SmoothTriangleWave (vWaves_53);
vec4 tmpvar_73;
tmpvar_73 = tmpvar_72;
vWaves_53 = tmpvar_73;
vec2 tmpvar_74;
tmpvar_74 = (vWaves_53.xz + vWaves_53.yw);
vWavesSum_52 = tmpvar_74;
vec3 tmpvar_75;
tmpvar_75 = ((animParams_50.y * fDetailAmp_59) * normal_49.xyz);
bend_51 = tmpvar_75;
float tmpvar_76;
tmpvar_76 = (animParams_50.w * fBranchAmp_58);
bend_51.y = vec2(tmpvar_76).y;
vec3 tmpvar_77;
tmpvar_77 = (pos_48.xyz + ((
(vWavesSum_52.xyx * bend_51)
+
((_Wind.xyz * vWavesSum_52.y) * animParams_50.w)
) * _Wind.w));
pos_48.xyz = tmpvar_77.xyz.xyz;
vec3 tmpvar_78;
tmpvar_78 = (pos_48.xyz + (animParams_50.z * _Wind.xyz));
pos_48.xyz = tmpvar_78.xyz.xyz;
return pos_48;
}
void TreeVertLeaf (
inout appdata_full v_79
)
{
ExpandBillboard (gl_ModelViewMatrixInverseTranspose, v_79.vertex, v_79.normal, v_79.tangent);
vec3 tmpvar_80;
tmpvar_80 = (v_79.vertex.xyz * _Scale.xyz);
v_79.vertex.xyz = tmpvar_80.xyz.xyz;
vec4 tmpvar_81;
tmpvar_81.xy = v_79.color.xy.xy;
tmpvar_81.zw = v_79.texcoord1.xy.xy;
vec4 tmpvar_82;
tmpvar_82 = AnimateVertex (v_79.vertex, v_79.normal, tmpvar_81);
vec4 tmpvar_83;
tmpvar_83 = tmpvar_82;
v_79.vertex = tmpvar_83;
vec4 tmpvar_84;
tmpvar_84 = Squash (v_79.vertex);
vec4 tmpvar_85;
tmpvar_85 = tmpvar_84;
v_79.vertex = tmpvar_85;
vec4 tmpvar_86;
tmpvar_86.xyz = (v_79.color.w * _Color.xyz).xyz;
tmpvar_86.w = _Color.w;
vec4 tmpvar_87;
tmpvar_87 = tmpvar_86;
v_79.color = tmpvar_87;
vec3 tmpvar_88;
tmpvar_88 = normalize (v_79.normal);
vec3 tmpvar_89;
tmpvar_89 = tmpvar_88;
v_79.normal = tmpvar_89;
vec3 tmpvar_90;
tmpvar_90 = normalize (v_79.tangent.xyz);
vec3 tmpvar_91;
tmpvar_91 = tmpvar_90;
v_79.tangent.xyz = tmpvar_91.xyz.xyz;
}
v2f_surf vert_surf (
in appdata_full v_92
)
{
vec4 wpos_93;
float z_94;
v2f_surf o_95;
TreeVertLeaf (v_92);
vec2 tmpvar_96;
tmpvar_96 = ((v_92.texcoord.xy * _MainTex_ST.xy) + _MainTex_ST.zw);
o_95.hip_pack0 = tmpvar_96.xy.xy;
vec4 tmpvar_97;
tmpvar_97 = v_92.color;
o_95.lop_color = tmpvar_97;
vec4 tmpvar_98;
tmpvar_98 = (gl_ModelViewProjectionMatrix * v_92.vertex);
o_95.pos = tmpvar_98;
float tmpvar_99;
tmpvar_99 = -((gl_ModelViewMatrix * v_92.vertex).z);
z_94 = tmpvar_99;
float tmpvar_100;
tmpvar_100 = z_94;
o_95._ShadowZFade.x = tmpvar_100;
float tmpvar_101;
tmpvar_101 = ((z_94 * _LightShadowData.z) + _LightShadowData.w);
o_95._ShadowZFade.y = vec2(tmpvar_101).y;
vec4 tmpvar_102;
tmpvar_102 = (_Object2World * v_92.vertex);
wpos_93 = tmpvar_102;
vec3 tmpvar_103;
tmpvar_103 = (_World2Shadow * wpos_93).xyz;
o_95._ShadowCoord0 = tmpvar_103;
vec3 tmpvar_104;
tmpvar_104 = (_World2Shadow1 * wpos_93).xyz;
o_95._ShadowCoord1 = tmpvar_104;
vec3 tmpvar_105;
tmpvar_105 = (_World2Shadow2 * wpos_93).xyz;
o_95._ShadowCoord2 = tmpvar_105;
vec3 tmpvar_106;
tmpvar_106 = (_World2Shadow3 * wpos_93).xyz;
o_95._ShadowCoord3 = tmpvar_106;
return o_95;
}
void main ()
{
appdata_full xlt_v_107;
v2f_surf xl_retval_108;
vec4 tmpvar_109;
tmpvar_109 = gl_Vertex.xyzw;
vec4 tmpvar_110;
tmpvar_110 = tmpvar_109;
xlt_v_107.vertex = tmpvar_110;
vec4 tmpvar_111;
tmpvar_111 = TANGENT.xyzw;
vec4 tmpvar_112;
tmpvar_112 = tmpvar_111;
xlt_v_107.tangent = tmpvar_112;
vec3 tmpvar_113;
tmpvar_113 = gl_Normal.xyz;
vec3 tmpvar_114;
tmpvar_114 = tmpvar_113;
xlt_v_107.normal = tmpvar_114;
vec4 tmpvar_115;
tmpvar_115 = gl_MultiTexCoord0.xyzw;
vec4 tmpvar_116;
tmpvar_116 = tmpvar_115;
xlt_v_107.texcoord = tmpvar_116;
vec4 tmpvar_117;
tmpvar_117 = gl_MultiTexCoord1.xyzw;
vec4 tmpvar_118;
tmpvar_118 = tmpvar_117;
xlt_v_107.texcoord1 = tmpvar_118;
vec4 tmpvar_119;
tmpvar_119 = gl_Color.xyzw;
vec4 tmpvar_120;
tmpvar_120 = tmpvar_119;
xlt_v_107.color = tmpvar_120;
v2f_surf tmpvar_121;
tmpvar_121 = vert_surf (xlt_v_107);
v2f_surf tmpvar_122;
tmpvar_122 = tmpvar_121;
xl_retval_108 = tmpvar_122;
vec4 tmpvar_123;
tmpvar_123 = xl_retval_108.pos.xyzw;
vec4 tmpvar_124;
tmpvar_124 = tmpvar_123;
gl_Position = tmpvar_124;
vec4 tmpvar_125;
tmpvar_125.w = 0.0;
tmpvar_125.xyz = xl_retval_108._ShadowCoord0.xyz;
vec4 tmpvar_126;
tmpvar_126 = tmpvar_125;
gl_TexCoord[0] = tmpvar_126;
vec4 tmpvar_127;
tmpvar_127.w = 0.0;
tmpvar_127.xyz = xl_retval_108._ShadowCoord1.xyz;
vec4 tmpvar_128;
tmpvar_128 = tmpvar_127;
gl_TexCoord[1] = tmpvar_128;
vec4 tmpvar_129;
tmpvar_129.w = 0.0;
tmpvar_129.xyz = xl_retval_108._ShadowCoord2.xyz;
vec4 tmpvar_130;
tmpvar_130 = tmpvar_129;
gl_TexCoord[2] = tmpvar_130;
vec4 tmpvar_131;
tmpvar_131.w = 0.0;
tmpvar_131.xyz = xl_retval_108._ShadowCoord3.xyz;
vec4 tmpvar_132;
tmpvar_132 = tmpvar_131;
gl_TexCoord[3] = tmpvar_132;
vec4 tmpvar_133;
tmpvar_133.zw = vec2(0.0, 0.0);
tmpvar_133.xy = xl_retval_108._ShadowZFade.xy;
vec4 tmpvar_134;
tmpvar_134 = tmpvar_133;
gl_TexCoord[4] = tmpvar_134;
vec4 tmpvar_135;
tmpvar_135.zw = vec2(0.0, 0.0);
tmpvar_135.xy = xl_retval_108.hip_pack0.xy;
vec4 tmpvar_136;
tmpvar_136 = tmpvar_135;
gl_TexCoord[5] = tmpvar_136;
vec4 tmpvar_137;
tmpvar_137 = xl_retval_108.lop_color.xyzw;
vec4 tmpvar_138;
tmpvar_138 = tmpvar_137;
gl_FrontColor = tmpvar_138;
}