Bliss-Shader/shaders/world0/dh_shadow.vsh

70 lines
1.6 KiB
GLSL

#version 120
/*
!! DO NOT REMOVE !!
This code is from Chocapic13' shaders
Read the terms of modification and sharing before changing something below please !
!! DO NOT REMOVE !!
*/
#include "/lib/settings.glsl"
#define SHADOW_MAP_BIAS 0.5
const float PI = 3.1415927;
varying vec2 texcoord;
uniform mat4 shadowProjectionInverse;
uniform mat4 shadowProjection;
uniform mat4 shadowModelViewInverse;
uniform mat4 shadowModelView;
uniform mat4 gbufferProjection;
uniform mat4 gbufferProjectionInverse;
flat varying int water;
#include "/lib/Shadow_Params.glsl"
#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z)
#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz)
// uniform float far;
uniform float dhFarPlane;
#include "/lib/DistantHorizons_projections.glsl"
vec4 toClipSpace3(vec3 viewSpacePosition) {
// mat4 projection = DH_shadowProjectionTweak(gl_ProjectionMatrix);
return vec4(projMAD(gl_ProjectionMatrix, viewSpacePosition),1.0);
}
varying float overdrawCull;
// uniform int renderStage;
void main() {
water = 0;
if(gl_Color.a < 1.0) water = 1;
texcoord.xy = gl_MultiTexCoord0.xy;
vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz;
#ifdef DH_OVERDRAW_PREVENTION
vec3 worldpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz;
overdrawCull = 1.0 - clamp(1.0 - length(worldpos) / far,0.0,1.0);
#else
overdrawCull = 1.0;
#endif
#ifdef DISTORT_SHADOWMAP
gl_Position = BiasShadowProjection(toClipSpace3(position));
#else
gl_Position = toClipSpace3(position);
#endif
gl_Position.z /= 6.0;
}