add alternate mode for SSRT handheld light shadows to only work in first person view

This commit is contained in:
Xonk
2026-01-18 22:47:41 -05:00
parent a9c234a51e
commit 3990f8f404
4 changed files with 13 additions and 5 deletions
+8 -3
View File
@@ -400,7 +400,7 @@ vec2 SSRT_Shadows(vec3 viewPos, bool depthCheck, vec3 lightDir, float noise, boo
}
return vec2(shadows, SSS / samples );
}
#ifdef HANDHELD_LIGHTSOURCE_SSRT_SHADOWS
#if HANDHELD_LIGHTSOURCE_SSRT_SHADOWS > 0
float handHeldLight_SSRT_Shadows(vec3 viewPos, vec3 shadowHandPos, float noise){
vec3 shadowHandViewPos = mat3(gbufferModelView) * shadowHandPos;
@@ -1250,9 +1250,14 @@ void main() {
,mainHandPos, mainHandCol, offHandPos, offHandCol
);
#ifdef HANDHELD_LIGHTSOURCE_SSRT_SHADOWS
#if HANDHELD_LIGHTSOURCE_SSRT_SHADOWS > 0
// make sure not to calculate ssrt shadows if there is no light being held.
if(!hand && (heldBlockLightValue > 0 || heldBlockLightValue2 > 0)){
#if HANDHELD_LIGHTSOURCE_SSRT_SHADOWS == 1
if(!hand && (heldBlockLightValue > 0 || heldBlockLightValue2 > 0)){
#elif HANDHELD_LIGHTSOURCE_SSRT_SHADOWS == 2
if((firstPersonCamera && !hand) && (heldBlockLightValue > 0 || heldBlockLightValue2 > 0)){
#endif
// whichever held light is brighter gets the shadows
vec3 shadowHandPos = heldBlockLightValue > heldBlockLightValue2 ? mainHandPos : offHandPos;
+3
View File
@@ -210,6 +210,9 @@ screen.Ambient_light = Ambient Light
option.HANDHELD_LIGHTSOURCE_G = Light Color G
option.HANDHELD_LIGHTSOURCE_B = Light Color B
option.HANDHELD_LIGHTSOURCE_SSRT_SHADOWS = Shadows from Handheld Light
value.HANDHELD_LIGHTSOURCE_SSRT_SHADOWS.0 = §cOFF
value.HANDHELD_LIGHTSOURCE_SSRT_SHADOWS.1 = ON §bⓘ First & Third Person§r
value.HANDHELD_LIGHTSOURCE_SSRT_SHADOWS.2 = ON §bⓘ First Person only§r
option.FLASHLIGHT_BOUNCED_INDIRECT = (Flashlight) Bounced light §c⚠ CURRENTLY BROKEN§r
option.FLASHLIGHT_FOG_ILLUMINATION = (Flashlight) Fog illumination §c⚠ CURRENTLY BROKEN§r
+1 -1
View File
@@ -96,7 +96,7 @@
#define HANDHELD_LIGHTSOURCE_G 0.5 // [0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.2 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 0.3 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.4 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.5 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.6 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.7 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.8 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.9 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1.0]
#define HANDHELD_LIGHTSOURCE_B 0.25 // [0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.2 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 0.3 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.4 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.5 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.6 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.7 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.8 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.9 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1.0]
#define HANDHELD_LIGHTSOURCE_SPECULAR
#define HANDHELD_LIGHTSOURCE_SSRT_SHADOWS
#define HANDHELD_LIGHTSOURCE_SSRT_SHADOWS 2 // [0 1 2]
// #define FLASHLIGHT_BOUNCED_INDIRECT
// #define FLASHLIGHT_FOG_ILLUMINATION
File diff suppressed because one or more lines are too long