From dc4ddb986228302913d7c0f0e4e5f5de628ecea2 Mon Sep 17 00:00:00 2001 From: Merlin1809 <88194861+Merlin1809@users.noreply.github.com> Date: Tue, 10 Feb 2026 01:17:27 +0100 Subject: [PATCH] fix https://github.com/Merlin1809/Eclipse-Shader/issues/92 , bunch of fixes for photonics --- shaders/dimensions/DH_translucent.fsh | 3 +-- shaders/dimensions/composite1.fsh | 1 + shaders/dimensions/voxels.vsh | 9 +++++++ shaders/lang/en_us.lang | 3 ++- shaders/lang/zh_cn.lang | 2 +- shaders/lib/diffuse_lighting.glsl | 34 +++++++++++++++++++-------- shaders/lib/settings.glsl | 13 ++++++++-- shaders/shaders.properties | 2 +- 8 files changed, 50 insertions(+), 17 deletions(-) diff --git a/shaders/dimensions/DH_translucent.fsh b/shaders/dimensions/DH_translucent.fsh index 1080f32..3017830 100644 --- a/shaders/dimensions/DH_translucent.fsh +++ b/shaders/dimensions/DH_translucent.fsh @@ -480,8 +480,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) float distancefade = min(max(1.0 - viewDist/clamp(far-16*4, 16, maxOverdrawDistance),0.0)*5,1.0); if(texelFetch(depthtex0, ivec2(gl_FragCoord.xy), 0).x < 1.0 || distancefade > 0.0){ - gl_FragData[0].a = 0.0; - material = 0.0; + discard; } #endif diff --git a/shaders/dimensions/composite1.fsh b/shaders/dimensions/composite1.fsh index 48303b4..900d993 100644 --- a/shaders/dimensions/composite1.fsh +++ b/shaders/dimensions/composite1.fsh @@ -25,6 +25,7 @@ const bool colortex5MipmapEnabled = true; uniform float nightVision; uniform float frameTimeCounter; uniform float rainStrength; +#define PHOTONICS_LIGHT_PASS #if defined OVERWORLD_SHADER || (defined END_ISLAND_LIGHT && defined END_SHADER) const bool shadowHardwareFiltering = true; diff --git a/shaders/dimensions/voxels.vsh b/shaders/dimensions/voxels.vsh index 88f39dc..a98e448 100644 --- a/shaders/dimensions/voxels.vsh +++ b/shaders/dimensions/voxels.vsh @@ -255,4 +255,13 @@ void main() { gl_Position = toClipSpace3(mat3(gbufferModelView) * vec3(worldpos) + gbufferModelView[3].xyz); + #ifdef TAA_UPSCALING + gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w; + #endif + #ifdef TAA + vec2 TAA_offsets = offsets[framemod8]; + + gl_Position.xy += TAA_offsets * gl_Position.w*texelSize; + #endif + } \ No newline at end of file diff --git a/shaders/lang/en_us.lang b/shaders/lang/en_us.lang index 7992cb6..32652a6 100644 --- a/shaders/lang/en_us.lang +++ b/shaders/lang/en_us.lang @@ -1,6 +1,6 @@ option.SHADER_VERSION_LABEL = §d§lECLIPSE§r - A Bliss Edit prefix.SHADER_VERSION_LABEL = V - value.SHADER_VERSION_LABEL.482 = 6.3.0 + value.SHADER_VERSION_LABEL.482 = 6.3.1 # if you're here to translate, this is not a joke, these do what they say profile.POTATO=§4Potato @@ -1273,6 +1273,7 @@ screen.PHOTONICS_SETTINGS = Photonics Settings option.PHOTONICS_ENABLED = Enable Photonics option.PHOTONICS_INDIRECT_BRIGHTNESS = GI Brightness option.PHOTONICS_GI_ONLY = GI Only + option.PHOTONICS_FLOODFILL_FOG_LIGHT_PROPAGATION = Fog Light Propagation (Floodfill!) option.TRANSLUCENT_COLORED_SHADOWS.comment = §bWhat is this?§r This effect allows translucent things like stained glass to color the sunlight as it passes through it. §aPERFORMANCE COST:§r medium diff --git a/shaders/lang/zh_cn.lang b/shaders/lang/zh_cn.lang index ad9ae2f..8ed7fd6 100644 --- a/shaders/lang/zh_cn.lang +++ b/shaders/lang/zh_cn.lang @@ -1,6 +1,6 @@ option.SHADER_VERSION_LABEL = §d§lECLIPSE§r - Bliss 编辑版 prefix.SHADER_VERSION_LABEL = 版本 - value.SHADER_VERSION_LABEL.482 = 6.3.0 + value.SHADER_VERSION_LABEL.482 = 6.3.1 # 如果你是来翻译的,这不是玩笑,这些选项的功能正如其名 profile.POTATO=§4土豆 (极低配置) diff --git a/shaders/lib/diffuse_lighting.glsl b/shaders/lib/diffuse_lighting.glsl index d79ecf8..c884bd2 100644 --- a/shaders/lib/diffuse_lighting.glsl +++ b/shaders/lib/diffuse_lighting.glsl @@ -3,7 +3,7 @@ return (2.0 * _near) / (_far + _near - depth * (_far - _near)); } - float SSRT_Handlight_Shadows(vec3 viewPos, bool depthCheck, vec3 lightDir, float noise, vec3 normals, bool hand){ + float SSRT_Handlight_Shadows(vec3 viewPos, const bool depthCheck, vec3 lightDir, float noise, vec3 normals, bool hand){ if(hand) return 1.0; @@ -116,7 +116,7 @@ vec3 doBlockLightLighting( float lightmapCurve = mix(lightmapLight, 2.5, lightmapBrightspot); vec3 blockLight = lightmapCurve * lightColor; - #if defined IS_LPV_ENABLED && defined MC_GL_ARB_shader_image_load_store + #if defined IS_LPV_ENABLED && defined MC_GL_ARB_shader_image_load_store && (!defined PHOTONICS_LIGHT_PASS || !defined PHOTONICS_ENABLED) vec4 lpvSample = SampleLpvLinear(lpvPos); #ifdef VANILLA_LIGHTMAP_MASK lpvSample.rgb *= lightmapCurve; @@ -168,15 +168,29 @@ vec3 doBlockLightLighting( #endif #endif - #if defined PHOTONICS_ENABLED && !defined PHOTONICS_GI_ONLY - vec3 ph_direct_hand = texture(radiosity_handheld, gl_FragCoord.xy*texelSize).xyz; - vec3 ph_direct = texture(radiosity_direct, gl_FragCoord.xy*texelSize).xyz; - vec4 ph_direct_soft = texture(radiosity_direct_soft, gl_FragCoord.xy*texelSize); + #if defined PHOTONICS_ENABLED && !defined PHOTONICS_GI_ONLY && !defined WEATHER && defined PHOTONICS_LIGHT_PASS + #if defined DISTANT_HORIZONS || defined VOXY + if(!depthCheck) + #endif + { + vec3 ph_direct_hand = texture(radiosity_handheld, gl_FragCoord.xy*texelSize).xyz; + vec3 ph_direct = texture(radiosity_direct, gl_FragCoord.xy*texelSize).xyz; + vec4 ph_direct_soft = texture(radiosity_direct_soft, gl_FragCoord.xy*texelSize); - blockLight = ph_direct_hand * 1.35; - blockLight += ph_direct; - blockLight = pow(blockLight, vec3(1.45)); - blockLight += (ph_direct_soft.xyz / max(ph_direct_soft.w, 1.0f)); + vec3 photonicsLight = ph_direct_hand * 1.35; + photonicsLight += ph_direct; + photonicsLight = pow(photonicsLight, vec3(1.45)); + photonicsLight += (ph_direct_soft.xyz / max(ph_direct_soft.w, 1.0f)); + photonicsLight += lightColor * 2.5 * min(max(lightmap-0.999,0.0)/(1.0-0.999),1.0); + + + #if defined DISTANT_HORIZONS || defined VOXY + float photonicsFalloff = smoothstep(min(1.0*far, 256.0), min(0.9*far, 230.0), length(playerPos)); + blockLight = mix(blockLight, photonicsLight, photonicsFalloff); + #else + blockLight = photonicsLight; + #endif + } #endif return blockLight * TORCH_AMOUNT; diff --git a/shaders/lib/settings.glsl b/shaders/lib/settings.glsl index 926159d..1a0a622 100644 --- a/shaders/lib/settings.glsl +++ b/shaders/lib/settings.glsl @@ -1162,10 +1162,19 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631) // #define PHOTONICS_GI_ONLY +// #define PHOTONICS_FLOODFILL_FOG_LIGHT_PROPAGATION + +#ifdef PHOTONICS_FLOODFILL_FOG_LIGHT_PROPAGATION +#endif + #if defined PHOTONICS_ENABLED && !defined PHOTONICS_GI_ONLY + + #ifndef PHOTONICS_FLOODFILL_FOG_LIGHT_PROPAGATION + #undef IS_LPV_ENABLED + #undef LPV_ENABLED + #endif + #undef Hand_Held_lights - #undef LPV_ENABLED - #undef IS_LPV_ENABLED #undef VOXEL_REFLECTIONS #undef MIRROR_IRON #endif diff --git a/shaders/shaders.properties b/shaders/shaders.properties index 81b7a44..3df7302 100644 --- a/shaders/shaders.properties +++ b/shaders/shaders.properties @@ -526,7 +526,7 @@ SHADER_VERSION_LABEL \ ######## MOD SUPPORT SETTINGS screen.Mod_support = [DISTANT_HORIZONS_SETTINGS] [PHYSICS_MOD_OCEAN] [VOXY_SETTINGS] CAELUM_SUPPORT [PHOTONICS_SETTINGS] screen.PHOTONICS_SETTINGS.columns = 1 - screen.PHOTONICS_SETTINGS = PHOTONICS_ENABLED PHOTONICS_INDIRECT_BRIGHTNESS PHOTONICS_GI_ONLY + screen.PHOTONICS_SETTINGS = PHOTONICS_ENABLED PHOTONICS_INDIRECT_BRIGHTNESS PHOTONICS_GI_ONLY PHOTONICS_FLOODFILL_FOG_LIGHT_PROPAGATION screen.DISTANT_HORIZONS_SETTINGS.columns = 1 screen.DISTANT_HORIZONS_SETTINGS = DH_OVERDRAW_PREVENTION OVERDRAW_MAX_DISTANCE DH_CHUNK_FADING DH_AMBIENT_OCCLUSION DH_SUBSURFACE_SCATTERING DH_SCREENSPACE_REFLECTIONS DH_TAA_JITTER DH_NOISE_TEXTURE NOISE_RESOLUTION NOISE_INTENSITY NOISE_DROPOFF DISTANT_HORIZONS_SHADOWMAP shadowDistance shadowMapResolution TOGGLE_VL_FOG VOLUMETRIC_CLOUDS