glsl[2] glsl-666cf724b25f5bd1b8fbb4cbfaf37491
#version 330 core
// LunarGOO output
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_420pack : enable
layout(std140, binding = 1 ) 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( binding = 0 ) uniform sampler2D g_tColor0;
layout( binding = 1 ) uniform sampler2D g_tColor1;
layout( binding = 2 ) uniform sampler2D g_tColor2;
layout( binding = 3 ) uniform sampler2D g_tColor3;
layout(std140, binding = 0 ) uniform _Globals_ {
float g_flBumpStrength;
vec3 g_vColorTint0;
vec3 g_vColorTint1;
vec3 g_vColorTint2;
vec3 g_vColorTint3;
vec3 g_vColorTintB0;
vec3 g_vColorTintB1;
vec3 g_vColorTintB2;
vec3 g_vColorTintB3;
vec4 g_vGlobalTint;
vec3 g_vBorderColorTint1;
vec3 g_vBorderColorTint2;
vec3 g_vBorderColorTint3;
float g_flBorderOffset1;
float g_flBorderOffset2;
float g_flBorderOffset3;
float g_flBorderTintStrength1;
float g_flBorderTintStrength2;
float g_flBorderTintStrength3;
float g_flBorderTintSoftness1;
float g_flBorderTintSoftness2;
float g_flBorderTintSoftness3;
float g_flTexCoordScale0;
float g_flTexCoordRotate0;
vec2 g_vTexCoordScroll0;
vec2 g_vTexCoordOffset0;
float g_flTexCoordScale1;
float g_flTexCoordRotate1;
vec2 g_vTexCoordScroll1;
vec2 g_vTexCoordOffset1;
float g_flTexCoordScale2;
float g_flTexCoordRotate2;
vec2 g_vTexCoordScroll2;
vec2 g_vTexCoordOffset2;
vec3 g_vTexCoordTransform2U;
vec3 g_vTexCoordTransform2V;
float g_flTexCoordScale3;
float g_flTexCoordRotate3;
vec2 g_vTexCoordScroll3;
vec2 g_vTexCoordOffset3;
vec3 g_vTexCoordTransform3U;
vec3 g_vTexCoordTransform3V;
vec3 g_vNormalTransform0U;
vec3 g_vNormalTransform0V;
vec3 g_vNormalTransform1U;
vec3 g_vNormalTransform1V;
vec3 g_vNormalTransform2U;
vec3 g_vNormalTransform2V;
vec3 g_vNormalTransform3U;
vec3 g_vNormalTransform3V;
} ;
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 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) uniform PerLayerConstantBuffer_t {
vec4 g_vWireframeColor;
} ;
uniform sampler2D g_tClouds;
uniform sampler2DShadow g_tShadowDepthTexture;
uniform sampler2D g_tTintMasks;
layout(location=0) in vec4 PS_INPUT_gl_vPositionWs_flLinearDepth;
layout(location=1) in vec4 PS_INPUT_gl_vNormalWs_flSpecularAmount;
layout(location=2) in vec4 PS_INPUT_gl_vVertexColor;
layout(location=3) in vec4 PS_INPUT_gl_vColorBlendValues_BlendY;
layout(location=4) in vec4 PS_INPUT_gl_vAlphaBlendValues_BlendZ;
layout(location=5) in vec4 PS_INPUT_gl_vBaseTexCoord0_vBaseTexCoord1;
layout(location=6) in vec4 PS_INPUT_gl_vBaseTexCoord2_vBaseTexCoord3;
layout(location=0) out vec4 PS_OUTPUT_gl_vDiffuse;
layout(location=1) out vec4 PS_OUTPUT_gl_flDepth;
const float C_0d0 = 0.0;
const float C_1d0 = 1.0;
const vec3 C_vec3p0d0p = vec3(0.0);
const float C_1d85 = 1.85;
const float C_0d45 = 0.45;
const float C_2d1 = 2.1;
const float C_0d5 = 0.5;
const vec4 C_xx1m2m1 = vec4(0.0, 0.0, 0.0, 1.0);
void main()
{
vec3 vGeometricNormalWs = normalize(PS_INPUT_gl_vNormalWs_flSpecularAmount.xyz);
vec4 vDiffuse = texture(g_tColor0, PS_INPUT_gl_vBaseTexCoord0_vBaseTexCoord1.xy);
vec4 vDiffuse1 = texture(g_tColor1, PS_INPUT_gl_vBaseTexCoord0_vBaseTexCoord1.zw);
vec4 vDiffuse2 = texture(g_tColor2, PS_INPUT_gl_vBaseTexCoord2_vBaseTexCoord3.xy);
vec4 vDiffuse3 = texture(g_tColor3, PS_INPUT_gl_vBaseTexCoord2_vBaseTexCoord3.zw);
vec3 H_wcvtba1 = g_vColorTint0 * vDiffuse.xyz;
vec3 H_uc7tjr = g_vColorTint1 * vDiffuse1.xyz;
vec3 H_q8wrom1 = g_vColorTint2 * vDiffuse2.xyz;
vec3 H_q30rsf = g_vColorTint3 * vDiffuse3.xyz;
float H_kgh6kc = vDiffuse1.w - PS_INPUT_gl_vAlphaBlendValues_BlendZ.x;
float minb = max(C_0d0, H_kgh6kc);
float H_cl72vu1 = PS_INPUT_gl_vAlphaBlendValues_BlendZ.x + vDiffuse1.w;
float maxb = min(C_1d0, H_cl72vu1);
float flResult = smoothstep(minb, maxb, PS_INPUT_gl_vColorBlendValues_BlendY.x);
vec3 H_ce1opy1 = vec3(flResult);
float H_4abpfv = C_1d0 - flResult;
float H_8kria8 = vDiffuse2.w - PS_INPUT_gl_vAlphaBlendValues_BlendZ.y;
float minb1 = max(C_0d0, H_8kria8);
float H_qcf9ui = PS_INPUT_gl_vAlphaBlendValues_BlendZ.y + vDiffuse2.w;
float maxb1 = min(C_1d0, H_qcf9ui);
float flResult1 = smoothstep(minb1, maxb1, PS_INPUT_gl_vColorBlendValues_BlendY.y);
float flResult2 = clamp(flResult1, C_0d0, H_4abpfv);
vec3 H_cy3lxl = vec3(flResult2);
float H_x6pp2y1 = H_4abpfv - flResult2;
float H_snh0yx = vDiffuse3.w - PS_INPUT_gl_vAlphaBlendValues_BlendZ.z;
float minb2 = max(C_0d0, H_snh0yx);
float H_cvcskd1 = PS_INPUT_gl_vAlphaBlendValues_BlendZ.z + vDiffuse3.w;
float maxb2 = min(C_1d0, H_cvcskd1);
float flResult3 = smoothstep(minb2, maxb2, PS_INPUT_gl_vColorBlendValues_BlendY.z);
float flResult4 = clamp(flResult3, C_0d0, H_x6pp2y1);
vec3 H_yruoot = vec3(flResult4);
float H_8qsjgf1 = H_x6pp2y1 - flResult4;
vec3 H_q3sb44 = vec3(H_8qsjgf1);
vec3 H_4hzefm = H_q3sb44 * H_wcvtba1;
vec3 H_6uaahc = H_ce1opy1 * H_uc7tjr;
vec3 H_w8521h = H_4hzefm + H_6uaahc;
vec3 H_tqrw62 = H_cy3lxl * H_q8wrom1;
vec3 H_7q73ff1 = H_tqrw62 + H_w8521h;
vec3 H_y6sunf = H_q30rsf * H_yruoot;
vec3 H_6dk5u9 = H_7q73ff1 + H_y6sunf;
vec3 H_9qw7i8 = H_6dk5u9 * PS_INPUT_gl_vVertexColor.xyz;
vec3 H_j03jbn = C_vec3p0d0p - g_vGlobalLightDir;
float flNDotL = dot(H_j03jbn, vGeometricNormalWs);
float misc3a = clamp(flNDotL, C_0d0, C_1d0);
float flDirectOcclusionFactor = pow(C_1d0, C_1d85);
float flDirectOcclusionFactor1 = mix(C_0d45, C_1d0, flDirectOcclusionFactor);
float flIndirectOcclusionFactor = pow(C_1d0, C_2d1);
vec3 H_fx1uua = vec3(g_flGlobalLightAmbientScale1);
vec3 vDirectionalAmbientColor = H_fx1uua * g_vGlobalLightAmbientColor1;
float H_guttgv1 = vGeometricNormalWs.z * C_0d5;
float H_0yyagq1 = C_0d5 + H_guttgv1;
vec3 vShadowAmbientColor = mix(g_vGlobalLightAmbientColor3, g_vGlobalLightAmbientColor2, H_0yyagq1);
vec3 H_s7noda1 = vec3(g_flGlobalLightAmbientScale2);
vec3 vShadowAmbientColor1 = H_s7noda1 * vShadowAmbientColor;
float H_bgqkwx = flDirectOcclusionFactor1 * misc3a;
vec3 H_ml4d271 = vec3(H_bgqkwx);
vec3 vDirectLight = H_ml4d271 * g_vGlobalLightColor;
float vDirectionalAmbientLight = dot(g_vGlobalLightAmbientDir, vGeometricNormalWs);
float misc3a1 = clamp(vDirectionalAmbientLight, C_0d0, C_1d0);
float H_4kcpid1 = flIndirectOcclusionFactor * misc3a1;
vec3 H_mw4dld1 = vec3(H_4kcpid1);
vec3 vDirectionalAmbientLight1 = H_mw4dld1 * vDirectionalAmbientColor;
float H_fhpmz7 = C_1d0 - misc3a;
float H_66yg4i1 = H_fhpmz7 * flIndirectOcclusionFactor;
vec3 H_em3adb1 = vec3(H_66yg4i1);
vec3 vShadowAmbientLight = H_em3adb1 * vShadowAmbientColor1;
vec3 H_8w78gv1 = vDirectLight + vDirectionalAmbientLight1;
vec3 vLighting = H_8w78gv1 + vShadowAmbientLight;
vec3 H_tw7zw21 = H_9qw7i8 * vLighting;
vec4 H_rwwpo7 = C_xx1m2m1;
H_rwwpo7.xyz = H_tw7zw21.xyz;
PS_OUTPUT_gl_vDiffuse = H_rwwpo7;
PS_OUTPUT_gl_flDepth = PS_INPUT_gl_vPositionWs_flLinearDepth.wwww;
}