glsl[12] glsl-f0b318b4e394b46d65db2aa4d45fe92a
//ATTRIBMAP-00-30-50-51-52-53-60-20-10-5D-xx
#version 330 core
// LunarGOO output
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_420pack : enable
struct VS_INPUT {
vec3 member0;
vec4 member1;
vec2 member2;
vec3 member3;
vec3 member4;
vec3 member5;
vec4 member6;
ivec4 member7;
vec4 member8;
vec2 member9;
};
struct PS_INPUT {
vec4 member0;
vec4 member1;
vec4 member2;
vec4 member3;
vec4 member4;
vec4 member5;
vec4 member6;
vec4 member7;
vec4 member8;
};
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 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;
} ;
layout(std140, binding = 15 ) 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;
} ;
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 vec4 VS_INPUT_gl_vTangentUOs_flTangentVSign;
layout(location=7) in uvec4 VS_INPUT_gl_vBlendIndices;
layout(location=8) in vec4 VS_INPUT_gl_vBlendWeight;
layout(location=9) 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_vTangentUWs_flTangentVSign;
layout(location=6) out vec4 PS_INPUT_gl_vBaseTexCoord0_vBaseTexCoord1;
layout(location=7) out vec4 PS_INPUT_gl_vBaseTexCoord2_vBaseTexCoord3;
const float C_0d0 = 0.0;
const float C_4d0 = 4.0;
const int C_8 = 8;
const int C_2 = 2;
const int C_1 = 1;
const float C_1d0 = 1.0;
const vec3 C_vec3p0d0p = vec3(0.0);
const float C_16d0 = 16.0;
const float C_0d0174533 = 0.0174533;
const vec2 C_vec2pa0d5p = vec2(-0.5);
const vec2 C_vec2p0d5p = vec2(0.5);
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;
const float C_2d0 = 2.0;
void main()
{
VS_INPUT param;
PS_INPUT o;
VS_INPUT param1;
VS_INPUT param2;
VS_INPUT param3;
PS_INPUT mainOut;
VS_INPUT mainIn;
mainIn.member0 = VS_INPUT_gl_vPositionOs;
mainIn.member1 = VS_INPUT_gl_vNormalOs;
mainIn.member2 = VS_INPUT_gl_vTexCoord;
mainIn.member3 = VS_INPUT_gl_vColorBlendValues;
mainIn.member4 = VS_INPUT_gl_vAlphaBlendValues;
mainIn.member5 = VS_INPUT_gl_vBlendColorTint;
mainIn.member6 = VS_INPUT_gl_vTangentUOs_flTangentVSign;
mainIn.member7 = ivec4(VS_INPUT_gl_vBlendIndices);
mainIn.member8 = VS_INPUT_gl_vBlendWeight;
mainIn.member9 = VS_INPUT_gl_vTransformTextureUV;
gl_ClipDistance[0] = C_0d0;
float H_mq794d1 = mainIn.member9.x * C_4d0;
int H_nhqulv = int(H_mq794d1);
int nStartOffset = H_nhqulv + C_8;
int H_8jzo411 = mainIn.member7.x << C_2;
int nBoneOffset = H_8jzo411 + nStartOffset;
int H_pyp8oq = C_2 + nBoneOffset;
int H_48cnfx = nBoneOffset + C_1;
vec4 vMatObjectToWorldRow = g_flTransformData[H_pyp8oq] * mainIn.member8.xxxx;
vec4 vMatObjectToWorldRow1 = g_flTransformData[H_48cnfx] * mainIn.member8.xxxx;
vec4 vMatObjectToWorldRow2 = g_flTransformData[nBoneOffset] * mainIn.member8.xxxx;
int H_lzj0af = mainIn.member7.y << C_2;
int nBoneOffset1 = H_lzj0af + nStartOffset;
vec4 H_547kcw = vec4(mainIn.member8.y);
vec4 H_5pfqjx1 = H_547kcw * g_flTransformData[nBoneOffset1];
vec4 vMatObjectToWorldRow3 = H_5pfqjx1 + vMatObjectToWorldRow2;
int H_fxgtrj1 = C_1 + nBoneOffset1;
vec4 H_uzzefg1 = H_547kcw * g_flTransformData[H_fxgtrj1];
vec4 vMatObjectToWorldRow4 = H_uzzefg1 + vMatObjectToWorldRow1;
int H_cdyvg51 = C_2 + nBoneOffset1;
vec4 H_flhpsm = H_547kcw * g_flTransformData[H_cdyvg51];
vec4 vMatObjectToWorldRow5 = H_flhpsm + vMatObjectToWorldRow;
float H_q1uowq = C_4d0 * mainIn.member9.x;
int H_wvmexl1 = int(H_q1uowq);
vec4 H_6i8dt01 = vec4(mainIn.member1.x, mainIn.member1.y, mainIn.member1.z, C_0d0);
float dotres = dot(H_6i8dt01, vMatObjectToWorldRow3);
float dotres1 = dot(H_6i8dt01, vMatObjectToWorldRow4);
float dotres2 = dot(H_6i8dt01, vMatObjectToWorldRow5);
vec3 H_3cij4j1 = vec3(dotres, dotres1, dotres2);
vec3 vNormalWs = normalize(H_3cij4j1);
vec4 H_pj8mqi1;
H_pj8mqi1.xyz = vNormalWs.xyz;
vec4 H_fu7qqq = vec4(mainIn.member6.x, mainIn.member6.y, mainIn.member6.z, C_0d0);
float dotres3 = dot(H_fu7qqq, vMatObjectToWorldRow3);
float dotres4 = dot(H_fu7qqq, vMatObjectToWorldRow4);
float dotres5 = dot(H_fu7qqq, vMatObjectToWorldRow5);
vec3 H_25kyhb = vec3(dotres3, dotres4, dotres5);
float vTangentUWs = dot(H_25kyhb, vNormalWs);
vec3 H_5m70t21 = vec3(vTangentUWs);
vec3 H_7g28ki = H_5m70t21 * vNormalWs;
vec3 H_tiz4n5 = H_25kyhb - H_7g28ki;
vec3 vTangentUWs1 = normalize(H_tiz4n5);
vec4 H_hpv9u3 = vec4(vTangentUWs1.x, vTangentUWs1.y, vTangentUWs1.z, mainIn.member6.w);
o.member5 = H_hpv9u3;
o.member1 = H_pj8mqi1;
vec3 H_str8zh1 = g_flTransformData[H_wvmexl1].zzz * mainIn.member0;
vec4 H_x5lktf = vec4(H_str8zh1.x, H_str8zh1.y, H_str8zh1.z, C_1d0);
float dotres6 = dot(H_x5lktf, vMatObjectToWorldRow3);
float dotres7 = dot(H_x5lktf, vMatObjectToWorldRow4);
float dotres8 = dot(H_x5lktf, vMatObjectToWorldRow5);
vec3 H_v3pmtu1 = vec3(dotres6, dotres7, dotres8);
vec4 Lg_1;
Lg_1.xyz = vec3(dotres6, dotres7, dotres8);
o.member0 = Lg_1;
vec3 H_n1robs1 = H_v3pmtu1 - g_vCameraPositionWs;
float H_q6adkl = dot(g_vCameraDirWs, H_n1robs1);
vec4 H_s4cwvz = vec4(dotres6, dotres7, dotres8, H_q6adkl);
o.member0 = H_s4cwvz;
vec3 H_aojmgm = normalize(H_n1robs1);
vec3 H_p188i31 = C_vec3p0d0p - H_aojmgm;
vec3 vReflectedLightDirWs = reflect(g_vGlobalLightDir, vNormalWs);
float param4 = dot(H_p188i31, vReflectedLightDirWs);
float misc3a = clamp(param4, C_0d0, C_1d0);
float param5 = pow(misc3a, C_16d0);
float misc3a1 = clamp(param5, C_0d0, C_1d0);
vec4 H_tewgcl1 = vec4(vNormalWs.x, vNormalWs.y, vNormalWs.z, misc3a1);
o.member1 = H_tewgcl1;
vec4 H_pzx5dy = vec4(dotres6, dotres7, dotres8, C_1d0);
vec4 H_sg41bi = H_pzx5dy + g_vWorldToCameraOffset;
float dotres9 = dot(H_sg41bi, g_matWorldToProjection[0]);
float dotresa = dot(H_sg41bi, g_matWorldToProjection[1]);
float dotresb = dot(H_sg41bi, g_matWorldToProjection[2]);
float dotresc = dot(H_sg41bi, g_matWorldToProjection[3]);
vec4 H_zolhrr1 = vec4(dotres9, dotresa, dotresb, dotresc);
o.member8 = H_zolhrr1;
float param6 = g_flTexCoordRotate0 * C_0d0174533;
vec2 H_6yh3dc1 = vec2(g_flTexCoordScale0);
vec2 vAdjust = mainIn.member2 + C_vec2pa0d5p;
float H_sby0eb = cos(param6);
float H_hxbpp9 = sin(param6);
float H_a8v13g = H_sby0eb * vAdjust.x;
float H_3pfwuv = H_hxbpp9 * vAdjust.y;
float H_1e5uc91 = H_a8v13g - H_3pfwuv;
float H_40uwkv = H_hxbpp9 * vAdjust.x;
float H_9xg1dg = H_sby0eb * vAdjust.y;
float H_5jn71r1 = H_40uwkv + H_9xg1dg;
vec2 H_1wmood = vec2(H_1e5uc91, H_5jn71r1);
vec2 H_ys3grr1 = H_1wmood * H_6yh3dc1;
vec2 H_3v36bj = H_ys3grr1 + C_vec2p0d5p;
vec2 H_ts6vqy1 = vec2(g_flTime);
vec2 H_plg0l4 = H_ts6vqy1 * g_vTexCoordScroll0;
vec2 H_p6e3hf = H_3v36bj + H_plg0l4;
vec2 H_8khbfc = H_p6e3hf + g_vTexCoordOffset0;
vec4 H_cc01s61 = o.member6;
H_cc01s61.xy = H_8khbfc.xy;
o.member6 = H_cc01s61;
float param7 = C_0d0174533 * g_flTexCoordRotate1;
vec2 H_z234mk = vec2(g_flTexCoordScale1);
float H_h51tpe = cos(param7);
float H_s39xd6 = sin(param7);
float H_sr0ps9 = H_h51tpe * vAdjust.x;
float H_bf348r1 = H_s39xd6 * vAdjust.y;
float H_pzlxtq = H_sr0ps9 - H_bf348r1;
float H_cqh4yq1 = H_s39xd6 * vAdjust.x;
float H_rgmo2a = H_h51tpe * vAdjust.y;
float H_npcip11 = H_cqh4yq1 + H_rgmo2a;
vec2 H_l2rbw31 = vec2(H_pzlxtq, H_npcip11);
vec2 H_hjg17s1 = H_l2rbw31 * H_z234mk;
vec2 H_hmyobj1 = C_vec2p0d5p + H_hjg17s1;
vec2 H_qwu0b4 = H_ts6vqy1 * g_vTexCoordScroll1;
vec2 H_nq0v29 = H_hmyobj1 + H_qwu0b4;
vec2 H_d5gzbm = H_nq0v29 + g_vTexCoordOffset1;
vec4 H_w77w0w1 = vec4(H_8khbfc.x, H_8khbfc.y, H_d5gzbm.x, H_d5gzbm.y);
o.member6 = H_w77w0w1;
float param8 = C_0d0174533 * g_flTexCoordRotate2;
vec2 H_86eb9b1 = vec2(g_flTexCoordScale2);
float H_u12bpe = cos(param8);
float H_3r2tgh = sin(param8);
float H_selmjv1 = H_u12bpe * vAdjust.x;
float H_qa2e8o = H_3r2tgh * vAdjust.y;
float H_8um3fb1 = H_selmjv1 - H_qa2e8o;
float H_pzndio = H_3r2tgh * vAdjust.x;
float H_r37mtv1 = H_u12bpe * vAdjust.y;
float H_y64goy = H_pzndio + H_r37mtv1;
vec2 H_aypb481 = vec2(H_8um3fb1, H_y64goy);
vec2 H_nzjp22 = H_86eb9b1 * H_aypb481;
vec2 H_ots2d = C_vec2p0d5p + H_nzjp22;
vec2 H_r79114 = H_ts6vqy1 * g_vTexCoordScroll2;
vec2 H_wvr5b9 = H_ots2d + H_r79114;
vec2 H_prseok = H_wvr5b9 + g_vTexCoordOffset2;
vec4 H_b1m0271 = o.member7;
H_b1m0271.xy = H_prseok.xy;
o.member7 = H_b1m0271;
float param9 = C_0d0174533 * g_flTexCoordRotate3;
vec2 H_17rqgn1 = vec2(g_flTexCoordScale3);
float H_vk7mp4 = cos(param9);
float H_utc7p9 = sin(param9);
float H_6ho1ep = H_vk7mp4 * vAdjust.x;
float H_yaht2o1 = H_utc7p9 * vAdjust.y;
float H_7vtr91 = H_6ho1ep - H_yaht2o1;
float H_xz2tco1 = H_utc7p9 * vAdjust.x;
float H_56a1op = H_vk7mp4 * vAdjust.y;
float H_h4kk7r1 = H_56a1op + H_xz2tco1;
vec2 H_fan9hf1 = vec2(H_7vtr91, H_h4kk7r1);
vec2 H_nzm8k21 = H_17rqgn1 * H_fan9hf1;
vec2 H_9wrky51 = C_vec2p0d5p + H_nzm8k21;
vec2 H_sin1r3 = H_ts6vqy1 * g_vTexCoordScroll3;
vec2 H_8wrvxi1 = H_9wrky51 + H_sin1r3;
vec2 H_yfyij81 = H_8wrvxi1 + g_vTexCoordOffset3;
vec4 H_6mfuip = vec4(H_prseok.x, H_prseok.y, H_yfyij81.x, H_yfyij81.y);
o.member7 = H_6mfuip;
float H_q1uowqr = C_4d0 * mainIn.member9.x;
int H_kqopx71 = int(H_q1uowqr);
int H_3l7s0e = H_kqopx71 + C_3;
o.member2 = g_flTransformData[H_3l7s0e];
vec4 H_f972y51 = o.member3;
H_f972y51.xyz = mainIn.member3.xyz;
o.member3 = H_f972y51;
vec3 H_nxu4q01 = mainIn.member4 * C_vec3p0d5p;
vec3 H_953cgn = max(H_nxu4q01, C_0d0001);
vec4 H_aq70c71 = o.member4;
H_aq70c71.xyz = H_953cgn.xyz;
o.member4 = H_aq70c71;
vec3 vLinearSegment = mainIn.member5 / C_vec3p12d92p;
vec3 H_po1zof = mainIn.member5 / C_vec3p1d055p;
vec3 H_c4xiez = H_po1zof + C_bw96as;
vec3 vExpSegment = pow(H_c4xiez, C_vec3p2d4p);
bool H_dl0t981 = mainIn.member5.x > C_0d04045;
float select = H_dl0t981 ? vExpSegment.x : vLinearSegment.x;
bool H_it9lyu1 = mainIn.member5.y > C_0d04045;
float select1 = H_it9lyu1 ? vExpSegment.y : vLinearSegment.y;
bool H_vsrgyl1 = mainIn.member5.z > C_0d04045;
float select2 = H_vsrgyl1 ? vExpSegment.z : vLinearSegment.z;
vec3 H_g5tqsp = vec3(select, select1, select2);
vec3 H_imv4nu1 = H_g5tqsp * g_flTransformData[H_3l7s0e].xyz;
vec4 H_av2xvk1 = g_flTransformData[H_3l7s0e];
H_av2xvk1.xyz = H_imv4nu1.xyz;
o.member2 = H_av2xvk1;
vec4 H_simyxt = vec4(mainIn.member3.x, mainIn.member3.y, mainIn.member3.z, C_0d0);
o.member3 = H_simyxt;
vec4 H_bhujso = vec4(H_953cgn.x, H_953cgn.y, H_953cgn.z, C_0d0);
o.member4 = H_bhujso;
PS_INPUT_gl_vPositionWs_flLinearDepth = o.member0;
PS_INPUT_gl_vNormalWs_flSpecularAmount = o.member1;
PS_INPUT_gl_vVertexColor = o.member2;
PS_INPUT_gl_vColorBlendValues_BlendY = o.member3;
PS_INPUT_gl_vAlphaBlendValues_BlendZ = o.member4;
PS_INPUT_gl_vTangentUWs_flTangentVSign = o.member5;
PS_INPUT_gl_vBaseTexCoord0_vBaseTexCoord1 = o.member6;
PS_INPUT_gl_vBaseTexCoord2_vBaseTexCoord3 = o.member7;
float H_2fljzx1 = C_0d0 - o.member8.y;
float H_kcpsgv = o.member8.z * C_2d0;
float H_jkxto51 = H_kcpsgv - o.member8.w;
vec4 H_6imyf81 = o.member8;
H_6imyf81.yz = vec2(H_2fljzx1, H_jkxto51);
gl_Position = H_6imyf81;
}