struct v2f { highp vec4 pos; highp vec2 uv; lowp vec4 color; }; struct appdata_full { highp vec4 vertex; highp vec4 tangent; highp vec3 normal; highp vec4 texcoord; highp vec4 texcoord1; highp vec4 color; }; varying lowp vec4 xlv_TEXCOORD1; varying highp vec2 xlv_TEXCOORD0; varying highp vec4 xlv_SV_POSITION; attribute vec4 TANGENT; uniform highp mat4 glstate_matrix_mvp; uniform highp vec3 _WorldSpaceCameraPos; uniform highp mat4 _World2Object; uniform highp float _VerticalBillboarding; uniform highp float _TimeOnDuration; uniform highp float _TimeOffDuration; uniform highp vec4 _Time; uniform highp float _SizeGrowStartDist; uniform highp float _SizeGrowEndDist; uniform highp float _NoiseAmount; uniform highp float _Multiplier; uniform highp float _MaxGrowSize; uniform highp float _FadeOutDistNear; uniform highp float _FadeOutDistFar; uniform highp vec4 _Color; uniform highp float _BlinkingTimeOffsScale; uniform highp float _Bias; attribute lowp vec4 _glesColor; attribute highp vec4 _glesMultiTexCoord1; attribute highp vec4 _glesMultiTexCoord0; attribute mediump vec3 _glesNormal; attribute highp vec4 _glesVertex; float xll_mod ( in float x_1, in float y_2 ) { float f_3; float d_4; float tmpvar_5; tmpvar_5 = (x_1 / y_2); d_4 = tmpvar_5; float tmpvar_6; tmpvar_6 = abs (d_4); float tmpvar_7; tmpvar_7 = fract (tmpvar_6); float tmpvar_8; tmpvar_8 = (tmpvar_7 * y_2); f_3 = tmpvar_8; float tmpvar_9; if ((d_4 >= 0.0)) { tmpvar_9 = f_3; } else { tmpvar_9 = -(f_3); }; return tmpvar_9; } vec2 xll_mod ( in vec2 x_10, in vec2 y_11 ) { vec2 f_12; vec2 d_13; vec2 tmpvar_14; tmpvar_14 = (x_10 / y_11); d_13 = tmpvar_14; vec2 tmpvar_15; tmpvar_15 = abs (d_13); vec2 tmpvar_16; tmpvar_16 = fract (tmpvar_15); vec2 tmpvar_17; tmpvar_17 = (tmpvar_16 * y_11); f_12 = tmpvar_17; float tmpvar_18; if ((d_13.x >= 0.0)) { tmpvar_18 = f_12.x; } else { tmpvar_18 = -(f_12.x); }; float tmpvar_19; if ((d_13.y >= 0.0)) { tmpvar_19 = f_12.y; } else { tmpvar_19 = -(f_12.y); }; vec2 tmpvar_20; tmpvar_20.x = tmpvar_18; tmpvar_20.y = tmpvar_19; return tmpvar_20; } vec3 xll_mod ( in vec3 x_21, in vec3 y_22 ) { vec3 f_23; vec3 d_24; vec3 tmpvar_25; tmpvar_25 = (x_21 / y_22); d_24 = tmpvar_25; vec3 tmpvar_26; tmpvar_26 = abs (d_24); vec3 tmpvar_27; tmpvar_27 = fract (tmpvar_26); vec3 tmpvar_28; tmpvar_28 = (tmpvar_27 * y_22); f_23 = tmpvar_28; float tmpvar_29; if ((d_24.x >= 0.0)) { tmpvar_29 = f_23.x; } else { tmpvar_29 = -(f_23.x); }; float tmpvar_30; if ((d_24.y >= 0.0)) { tmpvar_30 = f_23.y; } else { tmpvar_30 = -(f_23.y); }; float tmpvar_31; if ((d_24.z >= 0.0)) { tmpvar_31 = f_23.z; } else { tmpvar_31 = -(f_23.z); }; vec3 tmpvar_32; tmpvar_32.x = tmpvar_29; tmpvar_32.y = tmpvar_30; tmpvar_32.z = tmpvar_31; return tmpvar_32; } vec4 xll_mod ( in vec4 x_33, in vec4 y_34 ) { vec4 f_35; vec4 d_36; vec4 tmpvar_37; tmpvar_37 = (x_33 / y_34); d_36 = tmpvar_37; vec4 tmpvar_38; tmpvar_38 = abs (d_36); vec4 tmpvar_39; tmpvar_39 = fract (tmpvar_38); vec4 tmpvar_40; tmpvar_40 = (tmpvar_39 * y_34); f_35 = tmpvar_40; float tmpvar_41; if ((d_36.x >= 0.0)) { tmpvar_41 = f_35.x; } else { tmpvar_41 = -(f_35.x); }; float tmpvar_42; if ((d_36.y >= 0.0)) { tmpvar_42 = f_35.y; } else { tmpvar_42 = -(f_35.y); }; float tmpvar_43; if ((d_36.z >= 0.0)) { tmpvar_43 = f_35.z; } else { tmpvar_43 = -(f_35.z); }; float tmpvar_44; if ((d_36.w >= 0.0)) { tmpvar_44 = f_35.w; } else { tmpvar_44 = -(f_35.w); }; vec4 tmpvar_45; tmpvar_45.x = tmpvar_41; tmpvar_45.y = tmpvar_42; tmpvar_45.z = tmpvar_43; tmpvar_45.w = tmpvar_44; return tmpvar_45; } float xll_saturate ( in float x_46 ) { float tmpvar_47; tmpvar_47 = clamp (x_46, 0.0, 1.0); return tmpvar_47; } vec2 xll_saturate ( in vec2 x_48 ) { vec2 tmpvar_49; tmpvar_49 = clamp (x_48, 0.0, 1.0); return tmpvar_49; } vec3 xll_saturate ( in vec3 x_50 ) { vec3 tmpvar_51; tmpvar_51 = clamp (x_50, 0.0, 1.0); return tmpvar_51; } vec4 xll_saturate ( in vec4 x_52 ) { vec4 tmpvar_53; tmpvar_53 = clamp (x_52, 0.0, 1.0); return tmpvar_53; } mat2 xll_saturate ( in mat2 m_54 ) { vec2 tmpvar_55; tmpvar_55 = clamp (m_54[0], 0.0, 1.0); vec2 tmpvar_56; tmpvar_56 = clamp (m_54[1], 0.0, 1.0); mat2 tmpvar_57; vec2 tmpvar_58; tmpvar_58 = tmpvar_55; tmpvar_57[0] = tmpvar_58; vec2 tmpvar_59; tmpvar_59 = tmpvar_56; tmpvar_57[1] = tmpvar_59; return tmpvar_57; } mat3 xll_saturate ( in mat3 m_60 ) { vec3 tmpvar_61; tmpvar_61 = clamp (m_60[0], 0.0, 1.0); vec3 tmpvar_62; tmpvar_62 = clamp (m_60[1], 0.0, 1.0); vec3 tmpvar_63; tmpvar_63 = clamp (m_60[2], 0.0, 1.0); mat3 tmpvar_64; vec3 tmpvar_65; tmpvar_65 = tmpvar_61; tmpvar_64[0] = tmpvar_65; vec3 tmpvar_66; tmpvar_66 = tmpvar_62; tmpvar_64[1] = tmpvar_66; vec3 tmpvar_67; tmpvar_67 = tmpvar_63; tmpvar_64[2] = tmpvar_67; return tmpvar_64; } mat4 xll_saturate ( in mat4 m_68 ) { vec4 tmpvar_69; tmpvar_69 = clamp (m_68[0], 0.0, 1.0); vec4 tmpvar_70; tmpvar_70 = clamp (m_68[1], 0.0, 1.0); vec4 tmpvar_71; tmpvar_71 = clamp (m_68[2], 0.0, 1.0); vec4 tmpvar_72; tmpvar_72 = clamp (m_68[3], 0.0, 1.0); mat4 tmpvar_73; vec4 tmpvar_74; tmpvar_74 = tmpvar_69; tmpvar_73[0] = tmpvar_74; vec4 tmpvar_75; tmpvar_75 = tmpvar_70; tmpvar_73[1] = tmpvar_75; vec4 tmpvar_76; tmpvar_76 = tmpvar_71; tmpvar_73[2] = tmpvar_76; vec4 tmpvar_77; tmpvar_77 = tmpvar_72; tmpvar_73[3] = tmpvar_77; return tmpvar_73; } void CalcOrthonormalBasis ( in highp vec3 dir_78, out highp vec3 right_79, out highp vec3 up_80 ) { highp float tmpvar_81; tmpvar_81 = abs (dir_78.y); vec3 tmpvar_82; if ((tmpvar_81 > 0.999)) { tmpvar_82 = vec3(0.0, 0.0, 1.0); } else { tmpvar_82 = vec3(0.0, 1.0, 0.0); }; vec3 tmpvar_83; tmpvar_83 = tmpvar_82; up_80 = tmpvar_83; highp vec3 tmpvar_84; tmpvar_84 = cross (up_80, dir_78); highp vec3 tmpvar_85; tmpvar_85 = normalize (tmpvar_84); highp vec3 tmpvar_86; tmpvar_86 = tmpvar_85; right_79 = tmpvar_86; highp vec3 tmpvar_87; tmpvar_87 = cross (dir_78, right_79); highp vec3 tmpvar_88; tmpvar_88 = tmpvar_87; up_80 = tmpvar_88; } float CalcFadeOutFactor ( in highp float dist_89 ) { highp float ffadeout_90; highp float nfadeout_91; float tmpvar_92; tmpvar_92 = xll_saturate ((dist_89 / _FadeOutDistNear)); float tmpvar_93; tmpvar_93 = tmpvar_92; nfadeout_91 = tmpvar_93; highp float tmpvar_94; tmpvar_94 = max ((dist_89 - _FadeOutDistFar), 0.0); float tmpvar_95; tmpvar_95 = xll_saturate ((tmpvar_94 * 0.2)); float tmpvar_96; tmpvar_96 = (1.0 - tmpvar_95); ffadeout_90 = tmpvar_96; highp float tmpvar_97; tmpvar_97 = (ffadeout_90 * ffadeout_90); ffadeout_90 = tmpvar_97; highp float tmpvar_98; tmpvar_98 = (nfadeout_91 * nfadeout_91); nfadeout_91 = tmpvar_98; highp float tmpvar_99; tmpvar_99 = (nfadeout_91 * nfadeout_91); nfadeout_91 = tmpvar_99; highp float tmpvar_100; tmpvar_100 = (nfadeout_91 * ffadeout_90); nfadeout_91 = tmpvar_100; return nfadeout_91; } float CalcDistScale ( in highp float dist_101 ) { highp float distScale_102; highp float tmpvar_103; tmpvar_103 = max ((dist_101 - _SizeGrowStartDist), 0.0); highp float tmpvar_104; tmpvar_104 = min ((tmpvar_103 / _SizeGrowEndDist), 1.0); highp float tmpvar_105; tmpvar_105 = tmpvar_104; distScale_102 = tmpvar_105; return ((distScale_102 * distScale_102) * _MaxGrowSize); } v2f xlat_main ( in appdata_full v_106 ) { v2f o_107; highp float noiseWave_108; highp float noise_109; highp float noiseTime_110; highp float wave_111; highp float fracTime_112; highp float time_113; highp vec3 BBLocalPos_114; highp vec3 BBNormal_115; highp float distScale_116; highp vec3 upLocal_117; highp vec3 rightLocal_118; highp float localDirLength_119; highp vec3 localDir_120; highp vec3 viewerLocal_121; highp vec3 centerLocal_122; highp vec3 centerOffs_123; highp vec3 tmpvar_124; tmpvar_124.z = 0.0; tmpvar_124.xy = (vec2(0.5, 0.5) - v_106.color.xy).xy; highp vec3 tmpvar_125; tmpvar_125 = (tmpvar_124 * v_106.texcoord1.xyy); centerOffs_123 = tmpvar_125; highp vec3 tmpvar_126; tmpvar_126 = (v_106.vertex.xyz + centerOffs_123.xyz); centerLocal_122 = tmpvar_126; highp vec4 tmpvar_127; tmpvar_127.w = 1.0; tmpvar_127.xyz = _WorldSpaceCameraPos.xyz; highp vec3 tmpvar_128; tmpvar_128 = (_World2Object * tmpvar_127).xyz; highp vec3 tmpvar_129; tmpvar_129 = tmpvar_128; viewerLocal_121 = tmpvar_129; highp vec3 tmpvar_130; tmpvar_130 = (viewerLocal_121 - centerLocal_122); localDir_120 = tmpvar_130; highp float tmpvar_131; tmpvar_131 = mix (0.0, localDir_120.y, _VerticalBillboarding); highp float tmpvar_132; tmpvar_132 = tmpvar_131; localDir_120.y = vec2(tmpvar_132).y; highp float tmpvar_133; tmpvar_133 = length (localDir_120); highp float tmpvar_134; tmpvar_134 = tmpvar_133; localDirLength_119 = tmpvar_134; CalcOrthonormalBasis ((localDir_120 / localDirLength_119), rightLocal_118, upLocal_117); highp float tmpvar_135; tmpvar_135 = CalcDistScale (localDirLength_119); highp float tmpvar_136; tmpvar_136 = (tmpvar_135 * v_106.color.w); distScale_116 = tmpvar_136; highp vec3 tmpvar_137; tmpvar_137 = ((rightLocal_118 * v_106.normal.x) + (upLocal_117 * v_106.normal.y)); BBNormal_115 = tmpvar_137; highp vec3 tmpvar_138; tmpvar_138 = ((centerLocal_122 - ((rightLocal_118 * centerOffs_123.x) + (upLocal_117 * centerOffs_123.y))) + (BBNormal_115 * distScale_116)); BBLocalPos_114 = tmpvar_138; highp float tmpvar_139; tmpvar_139 = (_Time.y + (_BlinkingTimeOffsScale * v_106.color.z)); time_113 = tmpvar_139; float tmpvar_140; tmpvar_140 = xll_mod (time_113, (_TimeOnDuration + _TimeOffDuration)); float tmpvar_141; tmpvar_141 = tmpvar_140; fracTime_112 = tmpvar_141; highp float tmpvar_142; tmpvar_142 = smoothstep (0.0, (_TimeOnDuration * 0.25), fracTime_112); highp float tmpvar_143; tmpvar_143 = smoothstep ((_TimeOnDuration * 0.75), _TimeOnDuration, fracTime_112); highp float tmpvar_144; tmpvar_144 = (tmpvar_142 * (1.0 - tmpvar_143)); wave_111 = tmpvar_144; highp float tmpvar_145; tmpvar_145 = (time_113 * (6.28319 / _TimeOnDuration)); noiseTime_110 = tmpvar_145; highp float tmpvar_146; tmpvar_146 = sin (noiseTime_110); highp float tmpvar_147; tmpvar_147 = cos (((noiseTime_110 * 0.6366) + 56.7272)); highp float tmpvar_148; tmpvar_148 = (tmpvar_146 * ((0.5 * tmpvar_147) + 0.5)); noise_109 = tmpvar_148; highp float tmpvar_149; tmpvar_149 = ((_NoiseAmount * noise_109) + (1.0 - _NoiseAmount)); noiseWave_108 = tmpvar_149; highp float tmpvar_150; if ((_NoiseAmount < 0.01)) { tmpvar_150 = wave_111; } else { tmpvar_150 = noiseWave_108; }; highp float tmpvar_151; tmpvar_151 = tmpvar_150; wave_111 = tmpvar_151; highp float tmpvar_152; tmpvar_152 = (wave_111 + _Bias); wave_111 = tmpvar_152; highp vec2 tmpvar_153; tmpvar_153 = v_106.texcoord.xy; o_107.uv = tmpvar_153; highp vec4 tmpvar_154; tmpvar_154.w = 1.0; tmpvar_154.xyz = BBLocalPos_114.xyz; highp vec4 tmpvar_155; tmpvar_155 = (glstate_matrix_mvp * tmpvar_154); o_107.pos = tmpvar_155; highp float tmpvar_156; tmpvar_156 = CalcFadeOutFactor (localDirLength_119); highp vec4 tmpvar_157; tmpvar_157 = (((tmpvar_156 * _Color) * _Multiplier) * wave_111); o_107.color = tmpvar_157; return o_107; } void main () { appdata_full xlt_v_158; v2f xl_retval_159; highp vec4 tmpvar_160; tmpvar_160 = _glesVertex.xyzw; highp vec4 tmpvar_161; tmpvar_161 = tmpvar_160; xlt_v_158.vertex = tmpvar_161; vec4 tmpvar_162; tmpvar_162 = TANGENT.xyzw; vec4 tmpvar_163; tmpvar_163 = tmpvar_162; xlt_v_158.tangent = tmpvar_163; mediump vec3 tmpvar_164; tmpvar_164 = _glesNormal.xyz; mediump vec3 tmpvar_165; tmpvar_165 = tmpvar_164; xlt_v_158.normal = tmpvar_165; highp vec4 tmpvar_166; tmpvar_166 = _glesMultiTexCoord0.xyzw; highp vec4 tmpvar_167; tmpvar_167 = tmpvar_166; xlt_v_158.texcoord = tmpvar_167; highp vec4 tmpvar_168; tmpvar_168 = _glesMultiTexCoord1.xyzw; highp vec4 tmpvar_169; tmpvar_169 = tmpvar_168; xlt_v_158.texcoord1 = tmpvar_169; lowp vec4 tmpvar_170; tmpvar_170 = _glesColor.xyzw; lowp vec4 tmpvar_171; tmpvar_171 = tmpvar_170; xlt_v_158.color = tmpvar_171; v2f tmpvar_172; tmpvar_172 = xlat_main (xlt_v_158); v2f tmpvar_173; tmpvar_173 = tmpvar_172; xl_retval_159 = tmpvar_173; highp vec4 tmpvar_174; tmpvar_174 = xl_retval_159.pos.xyzw; highp vec4 tmpvar_175; tmpvar_175 = tmpvar_174; xlv_SV_POSITION = tmpvar_175; highp vec2 tmpvar_176; tmpvar_176 = xl_retval_159.uv.xy; highp vec2 tmpvar_177; tmpvar_177 = tmpvar_176; xlv_TEXCOORD0 = tmpvar_177; lowp vec4 tmpvar_178; tmpvar_178 = xl_retval_159.color.xyzw; lowp vec4 tmpvar_179; tmpvar_179 = tmpvar_178; xlv_TEXCOORD1 = tmpvar_179; }