glsl[0] glsl-52430dc6dc70e358cb4982b8838de9a5
//ATTRIBMAP-00-30-50-51-52-53-5D-xx
#version 330 core
// LunarGOO output
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_420pack : enable
layout(std140, binding = 13 ) uniform PerViewConstantBuffer_t {
layout(row_major) mat4 g_matWorldToProjection;
layout(row_major) mat4 g_matProjectionToWorld;
layout(row_major) mat4 g_matWorldToView;
layout(row_major) mat4 g_matViewToProjection;
vec4 g_vInvProjRow3;
vec4 g_vClipPlane0;
float g_flToneMapScalarLinear;
float g_flLightMapScalar;
float g_flEnvMapScalar;
float g_flToneMapScalarGamma;
vec3 g_vCameraPositionWs;
float g_flViewportMinZ;
vec3 g_vCameraDirWs;
float g_flViewportMaxZ;
vec3 g_vCameraUpDirWs;
float g_flTime;
vec3 g_vDepthPsToVsConversion;
float g_flNearPlane;
float g_flFarPlane;
float g_flLightBinnerFarPlane;
vec2 g_vInvViewportSize;
vec2 g_vViewportToGBufferRatio;
vec2 g_vMorphTextureAtlasSize;
vec4 g_vInvGBufferSize;
vec2 g_vViewportOffset;
vec2 g_vViewportSize;
vec2 g_vRenderTargetSize;
float g_flFogBlendToBackground;
float g_flHenyeyGreensteinCoeff;
vec3 g_vFogColor;
float g_flNegFogStartOverFogRange;
float g_flInvFogRange;
float g_flFogMaxDensity;
float g_flFogExponent;
float g_flMod2xIdentity;
float g_bStereoEnabled;
float g_flStereoCameraIndex;
float g_fInvViewportZRange;
float g_fMinViewportZScaled;
vec3 g_vMiddleEyePositionWs;
float g_flPad2;
layout(row_major) mat4 g_matWorldToProjectionMultiview[2];
vec4 g_vCameraPositionWsMultiview[2];
vec4 g_vFrameBufferCopyInvSizeAndUvScale;
vec4 g_vCameraAngles;
vec4 g_vWorldToCameraOffset;
vec4 g_vWorldToCameraOffsetMultiview[2];
vec4 g_vPerViewConstantExtraData0;
vec4 g_vPerViewConstantExtraData1;
vec4 g_vPerViewConstantExtraData2;
vec4 g_vPerViewConstantExtraData3;
} ;
layout(std140, binding=12) uniform TransformConstantBuffer_t {
vec4 g_flTransformData[1024];
} ;
layout(std140, binding = 14 ) uniform _Globals_ {
float g_flTexCoordScale0;
float g_flTexCoordScale1;
float g_flTexCoordScale2;
float g_flTexCoordRotate0;
float g_flTexCoordRotate1;
float g_flTexCoordRotate2;
vec2 g_vTexCoordScroll0;
vec2 g_vTexCoordScroll1;
vec2 g_vTexCoordScroll2;
vec2 g_vTexCoordOffset0;
vec2 g_vTexCoordOffset1;
vec2 g_vTexCoordOffset2;
float g_flTexCoordScale3;
float g_flTexCoordRotate3;
vec2 g_vTexCoordScroll3;
vec2 g_vTexCoordOffset3;
float g_flScrollWaveHeight0;
float g_flScrollWaveSecondsPerCycle0;
float g_flScrollWaveOffsetSeconds0;
float g_flScrollWaveCycleSkip0;
float g_flScrollWaveHeight1;
float g_flScrollWaveSecondsPerCycle1;
float g_flScrollWaveOffsetSeconds1;
float g_flScrollWaveCycleSkip1;
float g_flScrollWaveHeight2;
float g_flScrollWaveSecondsPerCycle2;
float g_flScrollWaveOffsetSeconds2;
float g_flScrollWaveCycleSkip2;
float g_flScrollWaveHeight3;
float g_flScrollWaveSecondsPerCycle3;
float g_flScrollWaveOffsetSeconds3;
float g_flScrollWaveCycleSkip3;
} ;
layout(std140) uniform DotaGlobalParams_t {
vec3 g_vGlobalLightDir;
vec3 g_vGlobalLightColor;
float g_flGlobalLightSpecularScale;
vec3 g_vGlobalLightSpecularDir;
float g_flGlobalLightSpecularExp;
vec3 g_vGlobalLightSpecularColor;
float g_flGlobalLightSpecularIndependence;
vec3 g_vGlobalLightAmbientDir;
float g_flGlobalLightAmbientScale1;
vec3 g_vGlobalLightAmbientColor1;
float g_flGlobalLightAmbientScale2;
vec3 g_vGlobalLightAmbientColor2;
float g_flGlobalLightAmbientScale2Hero;
vec2 g_vGlobalCloud1Offset;
vec2 g_vGlobalCloud2Offset;
vec3 g_vFowColor;
float g_flGlobalCloudScale;
float g_flFowDarkness;
float g_flFowGrayFactor;
float g_flFowColorFactor;
float g_flFowGrayHilights;
vec4 g_vFowWorldSize;
vec4 g_vFowTexOffsets;
layout(row_major) mat4 g_matShadowWorldToTexture;
vec4 g_vInvShadowDepthTextureSize;
vec3 g_vGlobalLightAmbientColor3;
float g_flGlobalLightAmbientShadowAmount;
} ;
uniform sampler2D g_tFow;
uniform sampler2D g_tFrameBufferCopyTexture;
uniform sampler2D g_tDepthTexture;
uniform sampler2D g_tGBufferAlbedo;
uniform sampler2D g_tGBufferLightingTerms;
uniform sampler2D g_tGBufferDepth;
uniform sampler2D g_tGBufferNormalWs;
layout(std140) uniform PerLayerConstantBuffer_t {
vec4 g_vWireframeColor;
} ;
uniform sampler2D g_tClouds;
uniform sampler2DShadow g_tShadowDepthTexture;
layout(location=0) in vec3 VS_INPUT_gl_vPositionOs;
layout(location=1) in vec4 VS_INPUT_gl_vNormalOs;
layout(location=2) in vec2 VS_INPUT_gl_vTexCoord;
layout(location=3) in vec3 VS_INPUT_gl_vColorBlendValues;
layout(location=4) in vec3 VS_INPUT_gl_vAlphaBlendValues;
layout(location=5) in vec3 VS_INPUT_gl_vBlendColorTint;
layout(location=6) in vec2 VS_INPUT_gl_vTransformTextureUV;
out gl_PerVertex {
vec4 gl_Position;
float gl_ClipDistance[1];
} ;
layout(location=0) out vec4 PS_INPUT_gl_vPositionWs_flLinearDepth;
layout(location=1) out vec4 PS_INPUT_gl_vNormalWs_flSpecularAmount;
layout(location=2) out vec4 PS_INPUT_gl_vVertexColor;
layout(location=3) out vec4 PS_INPUT_gl_vColorBlendValues_BlendY;
layout(location=4) out vec4 PS_INPUT_gl_vAlphaBlendValues_BlendZ;
layout(location=5) out vec4 PS_INPUT_gl_vBaseTexCoord0_vBaseTexCoord1;
layout(location=6) out vec4 PS_INPUT_gl_vBaseTexCoord2_vBaseTexCoord3;
const float C_0d0 = 0.0;
const float C_4d0 = 4.0;
const int C_1 = 1;
const int C_2 = 2;
const float C_1d0 = 1.0;
const float C_0d0174533 = 0.0174533;
const vec2 C_vec2pa0d5p = vec2(-0.5);
const vec2 C_vec2p0d5p = vec2(0.5);
const float C_0d9 = 0.9;
const float C_3d14159 = 3.14159;
const float C_2d0 = 2.0;
const float C_a1d0 = -1.0;
const int C_3 = 3;
const vec3 C_vec3p0d5p = vec3(0.5);
const float C_0d0001 = 0.0001;
const vec3 C_vec3p12d92p = vec3(12.92);
const vec3 C_vec3p1d055p = vec3(1.055);
const vec3 C_bw96as = vec3(0.0521327);
const vec3 C_vec3p2d4p = vec3(2.4);
const float C_0d04045 = 0.04045;
void main()
{
gl_ClipDistance[0] = C_0d0;
float H_6zu10h = VS_INPUT_gl_vTransformTextureUV.x * C_4d0;
int H_kqhhaf = int(H_6zu10h);
int H_fvhz5l = H_kqhhaf + C_1;
int H_ek3zfl = H_kqhhaf + C_2;
vec4 H_xf03ot = vec4(VS_INPUT_gl_vNormalOs.x, VS_INPUT_gl_vNormalOs.y, VS_INPUT_gl_vNormalOs.z, C_0d0);
float dotres = dot(H_xf03ot, g_flTransformData[H_kqhhaf]);
float dotres1 = dot(H_xf03ot, g_flTransformData[H_fvhz5l]);
float dotres2 = dot(H_xf03ot, g_flTransformData[H_ek3zfl]);
vec3 H_3cij4j1 = vec3(dotres, dotres1, dotres2);
vec3 vNormalWs = normalize(H_3cij4j1);
vec4 H_ol7vfn1 = vec4(VS_INPUT_gl_vPositionOs.x, VS_INPUT_gl_vPositionOs.y, VS_INPUT_gl_vPositionOs.z, C_1d0);
float dotres3 = dot(H_ol7vfn1, g_flTransformData[H_kqhhaf]);
float dotres4 = dot(H_ol7vfn1, g_flTransformData[H_fvhz5l]);
float dotres5 = dot(H_ol7vfn1, g_flTransformData[H_ek3zfl]);
vec3 H_25kyhb = vec3(dotres3, dotres4, dotres5);
vec3 H_uktff21 = H_25kyhb - g_vCameraPositionWs;
float H_tuff051 = dot(g_vCameraDirWs, H_uktff21);
vec4 H_l3q6cr1 = vec4(dotres3, dotres4, dotres5, H_tuff051);
vec4 H_i8jodt1 = vec4(vNormalWs.x, vNormalWs.y, vNormalWs.z, C_0d0);
vec4 H_ywfxcw = vec4(dotres3, dotres4, dotres5, C_1d0);
vec4 H_attytl1 = H_ywfxcw + g_vWorldToCameraOffset;
float dotres6 = dot(H_attytl1, g_matWorldToProjection[0]);
float dotres7 = dot(H_attytl1, g_matWorldToProjection[1]);
float dotres8 = dot(H_attytl1, g_matWorldToProjection[2]);
float dotres9 = dot(H_attytl1, g_matWorldToProjection[3]);
float param = g_flTexCoordRotate0 * C_0d0174533;
vec2 H_6yh3dc1 = vec2(g_flTexCoordScale0);
vec2 vAdjust = VS_INPUT_gl_vTexCoord + C_vec2pa0d5p;
float H_03f8yp = cos(param);
float H_vk5mcr = sin(param);
float H_vgwbi4 = H_03f8yp * vAdjust.x;
float H_i60mdv = H_vk5mcr * vAdjust.y;
float H_7tip37 = H_vgwbi4 - H_i60mdv;
float H_hvllnv = H_vk5mcr * vAdjust.x;
float H_wrac84 = H_03f8yp * vAdjust.y;
float H_l28tm91 = H_hvllnv + H_wrac84;
vec2 H_h09tyk = vec2(H_7tip37, H_l28tm91);
vec2 H_yfjb4q = H_6yh3dc1 * H_h09tyk;
vec2 H_ib94v41 = H_yfjb4q + C_vec2p0d5p;
vec2 H_ts6vqy1 = vec2(g_flTime);
vec2 H_plg0l4 = H_ts6vqy1 * g_vTexCoordScroll0;
vec2 H_wlpoaj = H_ib94v41 + H_plg0l4;
vec2 H_3x9v3p = H_wlpoaj + g_vTexCoordOffset0;
float param1 = C_0d0174533 * g_flTexCoordRotate1;
vec2 H_z234mk = vec2(g_flTexCoordScale1);
float H_vyry841 = cos(param1);
float H_u7xj891 = sin(param1);
float H_iezkfh = H_vyry841 * vAdjust.x;
float H_mhulsx = H_u7xj891 * vAdjust.y;
float H_y0fmjt1 = H_iezkfh - H_mhulsx;
float H_l6gl2y = H_u7xj891 * vAdjust.x;
float H_h3lkph = H_vyry841 * vAdjust.y;
float H_az4w3d1 = H_h3lkph + H_l6gl2y;
vec2 H_xaeqcg1 = vec2(H_y0fmjt1, H_az4w3d1);
vec2 H_q8u1f51 = H_xaeqcg1 * H_z234mk;
vec2 H_rkgnpa = C_vec2p0d5p + H_q8u1f51;
vec2 H_qwu0b4 = H_ts6vqy1 * g_vTexCoordScroll1;
vec2 H_ml7bax1 = H_qwu0b4 + H_rkgnpa;
vec2 H_rurzyd1 = H_ml7bax1 + g_vTexCoordOffset1;
float param2 = C_0d0174533 * g_flTexCoordRotate2;
vec2 H_86eb9b1 = vec2(g_flTexCoordScale2);
float H_wniv4d1 = cos(param2);
float H_5djdwf1 = sin(param2);
float H_c5sk39 = H_wniv4d1 * vAdjust.x;
float H_j48c411 = H_5djdwf1 * vAdjust.y;
float H_5lge73 = H_c5sk39 - H_j48c411;
float H_kfmcu01 = H_5djdwf1 * vAdjust.x;
float H_budkd9 = H_wniv4d1 * vAdjust.y;
float H_e3qiao = H_budkd9 + H_kfmcu01;
vec2 H_d9r3ga = vec2(H_5lge73, H_e3qiao);
vec2 H_smuz251 = H_86eb9b1 * H_d9r3ga;
vec2 H_j88tzp1 = C_vec2p0d5p + H_smuz251;
vec2 H_r79114 = H_ts6vqy1 * g_vTexCoordScroll2;
vec2 H_7ngi8m1 = H_j88tzp1 + H_r79114;
vec2 H_9zxa7i1 = H_7ngi8m1 + g_vTexCoordOffset2;
float param3 = C_0d0174533 * g_flTexCoordRotate3;
vec2 H_17rqgn1 = vec2(g_flTexCoordScale3);
float H_x6o6531 = cos(param3);
float H_wftr481 = sin(param3);
float H_39rb4g = H_x6o6531 * vAdjust.x;
float H_0xbs4o = H_wftr481 * vAdjust.y;
float H_9k40i11 = H_39rb4g - H_0xbs4o;
float H_zlxreo = H_wftr481 * vAdjust.x;
float H_4k5cuf = H_x6o6531 * vAdjust.y;
float H_wl9kjg = H_4k5cuf + H_zlxreo;
vec2 H_h0lzdt1 = vec2(H_9k40i11, H_wl9kjg);
vec2 H_rz7mfe = H_17rqgn1 * H_h0lzdt1;
vec2 H_ff9j02 = C_vec2p0d5p + H_rz7mfe;
vec2 H_sin1r3 = H_ts6vqy1 * g_vTexCoordScroll3;
vec2 H_jtw451 = H_ff9j02 + H_sin1r3;
vec2 H_c0jipw1 = H_jtw451 + g_vTexCoordOffset3;
float H_prunbx = g_flScrollWaveOffsetSeconds0 + g_flTime;
float flCycle = H_prunbx / g_flScrollWaveSecondsPerCycle0;
float flCycle1 = floor(flCycle);
float param4 = C_1d0 + g_flScrollWaveCycleSkip0;
float H_0vxa1n1 = mod(flCycle1, param4);
float flCycle2 = step(H_0vxa1n1, C_0d9);
float flCycle3 = flCycle * flCycle2;
float H_zfojao = fract(flCycle3);
float flCycle4 = pow(H_zfojao, C_0d9);
float H_m3v1qw1 = flCycle4 * C_3d14159;
float H_mivvzt1 = H_m3v1qw1 * C_2d0;
float H_73t4fl1 = cos(H_mivvzt1);
float H_mks6ns = H_73t4fl1 + C_a1d0;
vec2 H_rx2uqs1 = vec2(H_mks6ns);
vec2 H_t38jb = H_rx2uqs1 * g_vTexCoordScroll0;
float H_m4cqjr1 = g_flScrollWaveHeight0 * g_flScrollWaveSecondsPerCycle0;
vec2 H_l3t3371 = vec2(H_m4cqjr1);
vec2 H_vfounu1 = H_l3t3371 * H_t38jb;
vec2 H_x5rapz = H_3x9v3p + H_vfounu1;
float H_ony84d = g_flScrollWaveOffsetSeconds1 + g_flTime;
float flCycle5 = H_ony84d / g_flScrollWaveSecondsPerCycle1;
float flCycle6 = floor(flCycle5);
float param5 = C_1d0 + g_flScrollWaveCycleSkip1;
float H_ubojzg = mod(flCycle6, param5);
float flCycle7 = step(H_ubojzg, C_0d9);
float flCycle8 = flCycle5 * flCycle7;
float H_0jzspw1 = fract(flCycle8);
float flCycle9 = pow(H_0jzspw1, C_0d9);
float H_nwwt191 = C_3d14159 * flCycle9;
float H_rw11xj1 = C_2d0 * H_nwwt191;
float H_wn0i0o = cos(H_rw11xj1);
float H_ee9sks1 = C_a1d0 + H_wn0i0o;
vec2 H_cp3py4 = vec2(H_ee9sks1);
vec2 H_nooivy1 = H_cp3py4 * g_vTexCoordScroll1;
float H_wg6k5d = g_flScrollWaveHeight1 * g_flScrollWaveSecondsPerCycle1;
vec2 H_p3k6v21 = vec2(H_wg6k5d);
vec2 H_vgytmy1 = H_nooivy1 * H_p3k6v21;
vec2 H_a27pop1 = H_rurzyd1 + H_vgytmy1;
vec4 H_20mrvi = vec4(H_x5rapz.x, H_x5rapz.y, H_a27pop1.x, H_a27pop1.y);
float H_ra4qg7 = g_flScrollWaveOffsetSeconds2 + g_flTime;
float flCyclea = H_ra4qg7 / g_flScrollWaveSecondsPerCycle2;
float flCycleb = floor(flCyclea);
float param6 = C_1d0 + g_flScrollWaveCycleSkip2;
float H_dke71b = mod(flCycleb, param6);
float flCyclec = step(H_dke71b, C_0d9);
float flCycled = flCyclea * flCyclec;
float H_0sdtsl1 = fract(flCycled);
float flCyclee = pow(H_0sdtsl1, C_0d9);
float H_r2w2xr1 = C_3d14159 * flCyclee;
float H_8c0l5y1 = C_2d0 * H_r2w2xr1;
float H_g72j0p = cos(H_8c0l5y1);
float H_r9nuet1 = C_a1d0 + H_g72j0p;
vec2 H_136n51 = vec2(H_r9nuet1);
vec2 H_b2zm9k = H_136n51 * g_vTexCoordScroll2;
float H_yoo1dw1 = g_flScrollWaveHeight2 * g_flScrollWaveSecondsPerCycle2;
vec2 H_1l17od = vec2(H_yoo1dw1);
vec2 H_gpi98 = H_1l17od * H_b2zm9k;
vec2 H_u3uze1 = H_9zxa7i1 + H_gpi98;
float H_m70ngs = g_flScrollWaveOffsetSeconds3 + g_flTime;
float flCyclef = H_m70ngs / g_flScrollWaveSecondsPerCycle3;
float flCycleg = floor(flCyclef);
float param7 = C_1d0 + g_flScrollWaveCycleSkip3;
float H_pi9nk21 = mod(flCycleg, param7);
float flCycleh = step(H_pi9nk21, C_0d9);
float flCyclei = flCyclef * flCycleh;
float H_tn1xaw = fract(flCyclei);
float flCyclej = pow(H_tn1xaw, C_0d9);
float H_e3qxiv1 = C_3d14159 * flCyclej;
float H_zapcys = C_2d0 * H_e3qxiv1;
float H_oo946l1 = cos(H_zapcys);
float H_7njog51 = C_a1d0 + H_oo946l1;
vec2 H_2pd0dz = vec2(H_7njog51);
vec2 H_6g9on9 = H_2pd0dz * g_vTexCoordScroll3;
float H_wko64z = g_flScrollWaveHeight3 * g_flScrollWaveSecondsPerCycle3;
vec2 H_u782o = vec2(H_wko64z);
vec2 H_kj2mxt = H_6g9on9 * H_u782o;
vec2 H_sb3bdy1 = H_c0jipw1 + H_kj2mxt;
vec4 H_6fxv1x = vec4(H_u3uze1.x, H_u3uze1.y, H_sb3bdy1.x, H_sb3bdy1.y);
int H_d9pypl = H_kqhhaf + C_3;
vec3 H_9jgiys = VS_INPUT_gl_vAlphaBlendValues * C_vec3p0d5p;
vec3 H_7rv8k2 = max(H_9jgiys, C_0d0001);
vec3 vLinearSegment = VS_INPUT_gl_vBlendColorTint / C_vec3p12d92p;
vec3 H_e3ai8x = VS_INPUT_gl_vBlendColorTint / C_vec3p1d055p;
vec3 H_rq9rhu1 = H_e3ai8x + C_bw96as;
vec3 vExpSegment = pow(H_rq9rhu1, C_vec3p2d4p);
bool H_imsmae = VS_INPUT_gl_vBlendColorTint.x > C_0d04045;
float select = H_imsmae ? vExpSegment.x : vLinearSegment.x;
bool H_d2bi461 = VS_INPUT_gl_vBlendColorTint.y > C_0d04045;
float select1 = H_d2bi461 ? vExpSegment.y : vLinearSegment.y;
bool H_ctsg351 = VS_INPUT_gl_vBlendColorTint.z > C_0d04045;
float select2 = H_ctsg351 ? vExpSegment.z : vLinearSegment.z;
vec3 H_g5tqsp = vec3(select, select1, select2);
vec3 H_82sc5 = H_g5tqsp * g_flTransformData[H_d9pypl].xyz;
vec4 H_sk9xfo = g_flTransformData[H_d9pypl];
H_sk9xfo.xyz = H_82sc5.xyz;
vec4 H_unzlmm1 = vec4(VS_INPUT_gl_vColorBlendValues.x, VS_INPUT_gl_vColorBlendValues.y, VS_INPUT_gl_vColorBlendValues.z, C_0d0);
vec4 H_cobels1 = vec4(H_7rv8k2.x, H_7rv8k2.y, H_7rv8k2.z, C_0d0);
PS_INPUT_gl_vPositionWs_flLinearDepth = H_l3q6cr1;
PS_INPUT_gl_vNormalWs_flSpecularAmount = H_i8jodt1;
PS_INPUT_gl_vVertexColor = H_sk9xfo;
PS_INPUT_gl_vColorBlendValues_BlendY = H_unzlmm1;
PS_INPUT_gl_vAlphaBlendValues_BlendZ = H_cobels1;
PS_INPUT_gl_vBaseTexCoord0_vBaseTexCoord1 = H_20mrvi;
PS_INPUT_gl_vBaseTexCoord2_vBaseTexCoord3 = H_6fxv1x;
float H_q212zt1 = C_0d0 - dotres7;
float H_8665611 = C_2d0 * dotres8;
float H_wyecv81 = H_8665611 - dotres9;
vec4 H_dbr10s1 = vec4(dotres6, H_q212zt1, H_wyecv81, dotres9);
gl_Position = H_dbr10s1;
}