You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
901 B
GLSL
28 lines
901 B
GLSL
#version 120
|
|
|
|
varying vec2 diffuseMapUV;
|
|
|
|
varying float alphaPassthrough;
|
|
|
|
uniform int colorMode;
|
|
uniform bool useDiffuseMapForShadowAlpha = true;
|
|
uniform bool alphaTestShadows = true;
|
|
|
|
void main(void)
|
|
{
|
|
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
|
|
|
|
vec4 viewPos = (gl_ModelViewMatrix * gl_Vertex);
|
|
gl_ClipVertex = viewPos;
|
|
|
|
if (useDiffuseMapForShadowAlpha)
|
|
diffuseMapUV = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy;
|
|
else
|
|
diffuseMapUV = vec2(0.0); // Avoid undefined behaviour if running on hardware predating the concept of dynamically uniform expressions
|
|
if (colorMode == 2)
|
|
alphaPassthrough = gl_Color.a;
|
|
else
|
|
// This is uniform, so if it's too low, we might be able to put the position/clip vertex outside the view frustum and skip the fragment shader and rasteriser
|
|
alphaPassthrough = gl_FrontMaterial.diffuse.a;
|
|
}
|