From c169916c408c2a856b3b81e99d8e4b5a7d24688f Mon Sep 17 00:00:00 2001 From: Xonk Date: Mon, 8 Jul 2024 20:12:05 -0400 Subject: [PATCH] center handheld light to eyePosition when using iris. make lightmap handheld lights not function when floodfill is enabled --- shaders/dimensions/all_particles.fsh | 11 +++++++++-- shaders/dimensions/all_solid.fsh | 14 +++++++++----- shaders/dimensions/all_translucent.fsh | 11 +++++++++-- shaders/lib/settings.glsl | 2 +- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/shaders/dimensions/all_particles.fsh b/shaders/dimensions/all_particles.fsh index 3501d20..2a497d7 100644 --- a/shaders/dimensions/all_particles.fsh +++ b/shaders/dimensions/all_particles.fsh @@ -254,6 +254,8 @@ vec4 texture2D_POMSwitch( return texture2DGradARB(sampler, lightmapCoord, dcdxdcdy.xy, dcdxdcdy.zw); } +uniform vec3 eyePosition; + //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -365,8 +367,13 @@ void main() { lightmap.y = 1.0; #endif - #ifdef Hand_Held_lights - lightmap.x = max(lightmap.x, HELD_ITEM_BRIGHTNESS * clamp( pow(max(1.0-length(feetPlayerPos)/HANDHELD_LIGHT_RANGE,0.0),1.5),0.0,1.0)); + #if defined Hand_Held_lights && !defined LPV_ENABLED + #ifdef IS_IRIS + vec3 playerCamPos = eyePosition; + #else + vec3 playerCamPos = cameraPosition; + #endif + lightmap.x = max(lightmap.x, HELD_ITEM_BRIGHTNESS * clamp( pow(max(1.0-length((feetPlayerPos+cameraPosition) - playerCamPos)/HANDHELD_LIGHT_RANGE,0.0),1.5),0.0,1.0)); #endif #ifdef WEATHER diff --git a/shaders/dimensions/all_solid.fsh b/shaders/dimensions/all_solid.fsh index f9e75da..5fcaa59 100644 --- a/shaders/dimensions/all_solid.fsh +++ b/shaders/dimensions/all_solid.fsh @@ -275,7 +275,7 @@ vec4 texture2D_POMSwitch( } } - +uniform vec3 eyePosition; //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -315,8 +315,14 @@ void main() { float torchlightmap = lmtexcoord.z; - #ifdef Hand_Held_lights - if(HELD_ITEM_BRIGHTNESS > 0.0) torchlightmap = max(torchlightmap, HELD_ITEM_BRIGHTNESS * clamp( pow(max(1.0-length(worldpos-cameraPosition)/HANDHELD_LIGHT_RANGE,0.0),1.5),0.0,1.0)); + #if defined Hand_Held_lights && !defined LPV_ENABLED + #ifdef IS_IRIS + vec3 playerCamPos = eyePosition; + #else + vec3 playerCamPos = cameraPosition; + #endif + + if(HELD_ITEM_BRIGHTNESS > 0.0) torchlightmap = max(torchlightmap, HELD_ITEM_BRIGHTNESS * clamp( pow(max(1.0-length(worldpos-playerCamPos)/HANDHELD_LIGHT_RANGE,0.0),1.5),0.0,1.0)); #ifdef HAND torchlightmap *= 0.9; @@ -351,8 +357,6 @@ void main() { if(!ifPOM) maxdist = 0.0; gl_FragDepth = gl_FragCoord.z; - // coord += noise*interval; - // float sumVec = noise; if (dist < maxdist) { float depthmap = readNormal(vtexcoord.st).a; diff --git a/shaders/dimensions/all_translucent.fsh b/shaders/dimensions/all_translucent.fsh index 5ad2ac8..8d7910a 100644 --- a/shaders/dimensions/all_translucent.fsh +++ b/shaders/dimensions/all_translucent.fsh @@ -430,6 +430,8 @@ void Emission( if( Emission < 254.5/255.0) Lighting = mix(Lighting, Albedo * Emissive_Brightness * autoBrightnessAdjust * 0.1, pow(Emission, Emissive_Curve)); // old method.... idk why } +uniform vec3 eyePosition; + //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -586,8 +588,13 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) lightmap.y = 1.0; #endif - #ifdef Hand_Held_lights - lightmap.x = max(lightmap.x, HELD_ITEM_BRIGHTNESS*clamp( pow(max(1.0-length(feetPlayerPos)/HANDHELD_LIGHT_RANGE,0.0),1.5),0.0,1.0)); + #if defined Hand_Held_lights && !defined LPV_ENABLED + #ifdef IS_IRIS + vec3 playerCamPos = eyePosition; + #else + vec3 playerCamPos = cameraPosition; + #endif + lightmap.x = max(lightmap.x, HELD_ITEM_BRIGHTNESS*clamp( pow(max(1.0-length((feetPlayerPos+cameraPosition) - playerCamPos)/HANDHELD_LIGHT_RANGE,0.0),1.5),0.0,1.0)); #endif vec3 Indirect_lighting = vec3(0.0); diff --git a/shaders/lib/settings.glsl b/shaders/lib/settings.glsl index 9d73398..774654a 100644 --- a/shaders/lib/settings.glsl +++ b/shaders/lib/settings.glsl @@ -1,4 +1,4 @@ -#define SHADER_VERSION_LABEL 479 // [479] +#define SHADER_VERSION_LABEL 480 // [480] #define saturate(x) clamp(x,0.0,1.0)