mirror of
https://github.com/luanti-org/luanti.git
synced 2025-08-31 18:31:04 +00:00
Improvements to colored shadows (#11516)
This commit is contained in:
parent
21113ad410
commit
982e03f60d
5 changed files with 29 additions and 5 deletions
|
@ -2,6 +2,8 @@ uniform sampler2D ColorMapSampler;
|
|||
varying vec4 tPos;
|
||||
|
||||
#ifdef COLORED_SHADOWS
|
||||
varying vec3 varColor;
|
||||
|
||||
// c_precision of 128 fits within 7 base-10 digits
|
||||
const float c_precision = 128.0;
|
||||
const float c_precisionp1 = c_precision + 1.0;
|
||||
|
@ -30,7 +32,10 @@ void main()
|
|||
|
||||
//col.rgb = col.a == 1.0 ? vec3(1.0) : col.rgb;
|
||||
#ifdef COLORED_SHADOWS
|
||||
float packedColor = packColor(mix(col.rgb, black, col.a));
|
||||
col.rgb *= varColor.rgb;
|
||||
// alpha 0.0 results in all-white, 0.5 means full color, 1.0 means all black
|
||||
// resulting color is used as a factor in the final shader
|
||||
float packedColor = packColor(mix(mix(vec3(1.0), col.rgb, 2.0 * clamp(col.a, 0.0, 0.5)), black, 2.0 * clamp(col.a - 0.5, 0.0, 0.5)));
|
||||
gl_FragColor = vec4(depth, packedColor, 0.0,1.0);
|
||||
#else
|
||||
gl_FragColor = vec4(depth, 0.0, 0.0, 1.0);
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
uniform mat4 LightMVP; // world matrix
|
||||
varying vec4 tPos;
|
||||
#ifdef COLORED_SHADOWS
|
||||
varying vec3 varColor;
|
||||
#endif
|
||||
|
||||
const float bias0 = 0.9;
|
||||
const float zPersFactor = 0.5;
|
||||
|
@ -23,4 +26,8 @@ void main()
|
|||
|
||||
gl_Position = vec4(tPos.xyz, 1.0);
|
||||
gl_TexCoord[0].st = gl_MultiTexCoord0.st;
|
||||
|
||||
#ifdef COLORED_SHADOWS
|
||||
varColor = gl_Color.rgb;
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue