mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2024-12-28 18:18:52 +00:00
33 lines
858 B
GLSL
33 lines
858 B
GLSL
#version 120
|
|
|
|
#if @useGPUShader4
|
|
#extension GL_EXT_gpu_shader4: require
|
|
#endif
|
|
|
|
uniform sampler2D diffuseMap;
|
|
varying vec2 diffuseMapUV;
|
|
|
|
varying float alphaPassthrough;
|
|
|
|
uniform bool useDiffuseMapForShadowAlpha;
|
|
uniform bool alphaTestShadows;
|
|
uniform float alphaRef;
|
|
|
|
#include "lib/material/alpha.glsl"
|
|
|
|
void main()
|
|
{
|
|
gl_FragData[0].rgb = vec3(1.0);
|
|
if (useDiffuseMapForShadowAlpha)
|
|
gl_FragData[0].a = texture2D(diffuseMap, diffuseMapUV).a * alphaPassthrough;
|
|
else
|
|
gl_FragData[0].a = alphaPassthrough;
|
|
|
|
gl_FragData[0].a = alphaTest(gl_FragData[0].a, alphaRef);
|
|
|
|
// Prevent translucent things casting shadow (including the player using an invisibility effect).
|
|
// This replaces alpha blending, which obviously doesn't work with depth buffers
|
|
if (alphaTestShadows && gl_FragData[0].a <= 0.5)
|
|
discard;
|
|
}
|