From 8f5111d82d6a4c86c58d82ff9f9dde620ff7523d Mon Sep 17 00:00:00 2001 From: Xonk Date: Mon, 30 Oct 2023 16:07:38 -0400 Subject: [PATCH] make handheld lights work on particles and translucents. make lit particle brightness work again. exclude hand from bloom. extend bloom mulitplier slider. --- shaders/dimensions/all_particles.fsh | 15 +++++-- shaders/dimensions/all_particles.vsh | 12 +++++ shaders/dimensions/all_solid.fsh | 8 +++- shaders/dimensions/all_translucent.fsh | 5 +++ shaders/dimensions/all_translucent.vsh | 9 ++++ shaders/dimensions/all_vanilla_emissives.vsh | 15 +++---- shaders/dimensions/composite1.fsh | 46 +++++++++++--------- shaders/dimensions/composite5.fsh | 2 +- shaders/dimensions/composite6.fsh | 24 +++++++++- shaders/dimensions/deferred1.fsh | 1 + shaders/dimensions/final.fsh | 7 +++ shaders/lib/end_fog.glsl | 26 ++++++++--- shaders/lib/settings.glsl | 2 +- shaders/lib/volumetricClouds.glsl | 2 + shaders/shaders.properties | 8 +--- 15 files changed, 135 insertions(+), 47 deletions(-) diff --git a/shaders/dimensions/all_particles.fsh b/shaders/dimensions/all_particles.fsh index 1060405..34f8cde 100644 --- a/shaders/dimensions/all_particles.fsh +++ b/shaders/dimensions/all_particles.fsh @@ -33,6 +33,7 @@ uniform vec2 texelSize; uniform ivec2 eyeBrightnessSmooth; uniform float rainStrength; +flat varying float HELD_ITEM_BRIGHTNESS; #ifndef OVERWORLD_SHADER uniform float nightVision; @@ -99,6 +100,13 @@ void main() { #ifndef OVERWORLD_SHADER lightmap.y = 1.0; #endif + + #ifdef Hand_Held_lights + lightmap.x = max(lightmap.x, HELD_ITEM_BRIGHTNESS * clamp( pow(max(1.0-length(viewPos)/10,0.0),1.5),0.0,1.0)); + #endif + + + #ifdef WEATHER gl_FragData[1].a = TEXTURE.a; // for bloomy rain and stuff #endif @@ -117,9 +125,8 @@ void main() { vec3 Indirect_lighting = vec3(0.0); vec3 Torch_Color = vec3(TORCH_R,TORCH_G,TORCH_B); - #ifdef LIT - Torch_Color *= LIT_PARTICLE_BRIGHTNESS; - #endif + + if(lightmap.x >= 0.9) Torch_Color *= LIT_PARTICLE_BRIGHTNESS; #ifdef OVERWORLD_SHADER float Shadows = 1.0; @@ -161,7 +168,7 @@ void main() { vec3 AmbientLightColor = vec3(1.0); #endif - Indirect_lighting = DoAmbientLightColor(AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), clamp(lightmap.xy,0,1)); + Indirect_lighting = DoAmbientLightColor(AmbientLightColor, Torch_Color, clamp(lightmap.xy,0,1)); #ifdef LINES gl_FragData[0].rgb = (Indirect_lighting + Direct_lighting) * toLinear(color.rgb); diff --git a/shaders/dimensions/all_particles.vsh b/shaders/dimensions/all_particles.vsh index f551930..0a08bb2 100644 --- a/shaders/dimensions/all_particles.vsh +++ b/shaders/dimensions/all_particles.vsh @@ -29,6 +29,10 @@ uniform mat4 gbufferModelViewInverse; uniform mat4 gbufferModelView; uniform ivec2 eyeBrightnessSmooth; +uniform int heldItemId; +uniform int heldItemId2; +flat varying float HELD_ITEM_BRIGHTNESS; + const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), vec2(-1.,3.)/8., vec2(5.0,1.)/8., @@ -55,6 +59,14 @@ void main() { vec2 lmcoord = gl_MultiTexCoord1.xy / 255.0; // is this even correct? lol' lmtexcoord.zw = lmcoord; + + HELD_ITEM_BRIGHTNESS = 0.0; + + #ifdef Hand_Held_lights + if(heldItemId == 100 || heldItemId2 == 100) HELD_ITEM_BRIGHTNESS = 0.9; + #endif + + #ifdef WEATHER vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; diff --git a/shaders/dimensions/all_solid.fsh b/shaders/dimensions/all_solid.fsh index fc36424..32483c8 100644 --- a/shaders/dimensions/all_solid.fsh +++ b/shaders/dimensions/all_solid.fsh @@ -311,7 +311,13 @@ 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(fragpos)/10,0.0),1.5),0.0,1.0)); + #ifdef HAND + torchlightmap = 0.7; + #endif + #endif float lightmap = clamp( (lmtexcoord.w-0.8) * 10.0,0.,1.); @@ -435,7 +441,7 @@ void main() { else Albedo.a = 0.0; #endif - #if defined HAND + #ifdef HAND if (Albedo.a > 0.1) Albedo.a = 0.75; else Albedo.a = 0.0; #endif diff --git a/shaders/dimensions/all_translucent.fsh b/shaders/dimensions/all_translucent.fsh index d092aea..46ce25e 100644 --- a/shaders/dimensions/all_translucent.fsh +++ b/shaders/dimensions/all_translucent.fsh @@ -15,6 +15,7 @@ varying vec4 color; flat varying vec4 lightCol; #endif +flat varying float HELD_ITEM_BRIGHTNESS; const bool colortex4MipmapEnabled = true; uniform sampler2D noisetex; @@ -372,6 +373,10 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) #ifndef OVERWORLD_SHADER lightmap.y = 1.0; #endif + + #ifdef Hand_Held_lights + lightmap.x = max(lightmap.x, HELD_ITEM_BRIGHTNESS*clamp( pow(max(1.0-length(viewPos)/10,0.0),1.5),0.0,1.0)); + #endif vec3 Indirect_lighting = vec3(0.0); vec3 Direct_lighting = vec3(0.0); diff --git a/shaders/dimensions/all_translucent.vsh b/shaders/dimensions/all_translucent.vsh index 5c89986..934f26a 100644 --- a/shaders/dimensions/all_translucent.vsh +++ b/shaders/dimensions/all_translucent.vsh @@ -49,6 +49,10 @@ uniform float viewWidth; uniform int hideGUI; uniform float screenBrightness; +uniform int heldItemId; +uniform int heldItemId2; +flat varying float HELD_ITEM_BRIGHTNESS; + uniform vec2 texelSize; uniform int framemod8; @@ -85,7 +89,12 @@ void main() { vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; gl_Position = toClipSpace3(position); + HELD_ITEM_BRIGHTNESS = 0.0; + #ifdef Hand_Held_lights + if(heldItemId == 100 || heldItemId2 == 100) HELD_ITEM_BRIGHTNESS = 0.9; + #endif + float mat = 0.0; if(mc_Entity.x == 8.0) { diff --git a/shaders/dimensions/all_vanilla_emissives.vsh b/shaders/dimensions/all_vanilla_emissives.vsh index 423b2d3..68d78f7 100644 --- a/shaders/dimensions/all_vanilla_emissives.vsh +++ b/shaders/dimensions/all_vanilla_emissives.vsh @@ -38,7 +38,13 @@ uniform sampler2D colortex4; flat varying float exposure; void main() { + color = gl_Color; + #ifdef ENCHANT_GLINT + texcoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; + #else + texcoord = (gl_MultiTexCoord0).xy; + #endif #if defined ENCHANT_GLINT || defined SPIDER_EYES exposure = texelFetch2D(colortex4,ivec2(10,37),0).r; @@ -49,19 +55,12 @@ void main() { gl_Position = ftransform(); #endif - texcoord = (gl_MultiTexCoord0).xy; - #ifdef ENCHANT_GLINT - texcoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; - // float exposure = texelFetch2D(colortex4, ivec2(10,37),0).r; - #endif - - color = gl_Color; + #ifdef BEACON_BEAM if(gl_Color.a < 1.0) gl_Position = vec4(10,10,10,0); #endif - #ifdef TAA_UPSCALING gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w; #endif diff --git a/shaders/dimensions/composite1.fsh b/shaders/dimensions/composite1.fsh index 9ec8898..bc0c4bc 100644 --- a/shaders/dimensions/composite1.fsh +++ b/shaders/dimensions/composite1.fsh @@ -37,7 +37,7 @@ const bool colortex5MipmapEnabled = true; // #define LIGHTSOURCE_REFLECTION #endif - +uniform int hideGUI; uniform sampler2D noisetex; //noise uniform sampler2D depthtex0; //depth uniform sampler2D depthtex1; //depth @@ -420,18 +420,14 @@ void SSRT_Shadows(vec3 viewPos, vec3 lightDir, float noise, bool isSSS, bool ins vec3 rayDir = direction * (isSSS ? 1.5 : 3.0) * vec3(RENDER_SCALE,1.0); - vec3 screenPos = clipPosition*vec3(RENDER_SCALE,1.0) + rayDir*noise; + vec3 screenPos = clipPosition * vec3(RENDER_SCALE,1.0) + rayDir*noise; + if(isSSS)screenPos -= rayDir*0.9; - if(isSSS) screenPos -= rayDir*0.9; - - float shadowgradient = 0; for (int i = 0; i < int(steps); i++) { screenPos += rayDir; - - float shadowGradient = i/steps; - - float samplePos = texture2D(depthtex1, screenPos.xy).x; + + float samplePos = texture2D(depthtex2, screenPos.xy).x; if(samplePos <= screenPos.z) { vec2 linearZ = vec2(linZ(screenPos.z), linZ(samplePos)); float calcthreshold = abs(linearZ.x - linearZ.y) / linearZ.x; @@ -439,10 +435,9 @@ void SSRT_Shadows(vec3 viewPos, vec3 lightDir, float noise, bool isSSS, bool ins bool depthThreshold1 = calcthreshold < 0.015; bool depthThreshold2 = calcthreshold < 0.05; - // if (depthThreshold1) Shadow = inshadowmap ? shadowGradient : 0.0; if (depthThreshold1) Shadow = 0.0; - if (depthThreshold2) SSS = shadowGradient; + if (depthThreshold2) SSS = i/steps; } } @@ -509,8 +504,11 @@ vec3 SubsurfaceScattering_sky(vec3 albedo, float Scattering, float Density){ #include "/lib/indirect_lighting_effects.glsl" #include "/lib/PhotonGTAO.glsl" + void main() { + vec3 DEBUG =vec3( 1.0); + ////// --------------- SETUP STUFF --------------- ////// vec2 texcoord = gl_FragCoord.xy*texelSize; @@ -527,6 +525,8 @@ void main() { vec3 feetPlayerPos = mat3(gbufferModelViewInverse) * viewPos; vec3 feetPlayerPos_normalized = normVec(feetPlayerPos); + + ////// --------------- UNPACK OPAQUE GBUFFERS --------------- ////// vec4 data = texture2D(colortex1,texcoord); @@ -570,7 +570,7 @@ void main() { bool entities = abs(dataUnpacked1.w-0.45) < 0.01; // bool isBoss = abs(dataUnpacked1.w-0.60) < 0.01; bool isGrass = abs(dataUnpacked1.w-0.60) < 0.01; - bool hand = abs(dataUnpacked1.w-0.75) < 0.01; + bool hand = abs(dataUnpacked1.w-0.75) < 0.01 && z0 < 1.0; // bool blocklights = abs(dataUnpacked1.w-0.8) <0.01; @@ -674,8 +674,10 @@ void main() { #endif vec3 feetPlayerPos_shadow = mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz; - - if(!hand) GriAndEminShadowFix(feetPlayerPos_shadow, viewToWorld(FlatNormals), vanilla_AO, lightmap.y, entities); + + if(!entities){ + if(!hand) GriAndEminShadowFix(feetPlayerPos_shadow, viewToWorld(FlatNormals), vanilla_AO, lightmap.y, entities); + } // mat4 Custom_ViewMatrix = BuildShadowViewMatrix(LightDir); // vec3 projectedShadowPosition = mat3(Custom_ViewMatrix) * feetPlayerPos_shadow + Custom_ViewMatrix[3].xyz; @@ -697,13 +699,15 @@ void main() { if (shadowNDOTL >= -0.001){ Shadows = 0.0; int samples = SHADOW_FILTER_SAMPLE_COUNT; - float smallbias = 0; + float smallbias = 0.0; if(hand){ samples = 1; - smallbias = -0.0005; noise = 0.5; + smallbias = -0.0004; } + + if(entities) smallbias = -0.0001; projectedShadowPosition = projectedShadowPosition * vec3(0.5,0.5,0.5/6.0) + vec3(0.5); @@ -768,7 +772,10 @@ void main() { Shadows = min(Shadows, SS_shadow); - if (!inShadowmapBounds) ShadowBlockerDepth = max(ShadowBlockerDepth, SS_shadowSSS); + if (!inShadowmapBounds) ShadowBlockerDepth = max(ShadowBlockerDepth, clamp(SS_shadowSSS,0.0,1.0)); + + + // DEBUG = 1.0-SS_shadowSSS; #else if (!inShadowmapBounds) Direct_SSS = vec3(0.0); @@ -782,7 +789,7 @@ void main() { if (!inShadowmapBounds){ Direct_SSS *= lightmapAsShadows; - Direct_SSS *= 1.0-NdotL; + // Direct_SSS *= 1.0-NdotL; } #endif @@ -1020,8 +1027,7 @@ void main() { waterVolumetrics_notoverworld(gl_FragData[0].rgb, viewPos0, viewPos, estimatedDepth , estimatedDepth, Vdiff, noise_2, totEpsilon, scatterCoef, ambientColVol); } #endif - - + // gl_FragData[0].rgb = vec3(hand); /* DRAWBUFFERS:3 */ } \ No newline at end of file diff --git a/shaders/dimensions/composite5.fsh b/shaders/dimensions/composite5.fsh index b9a0c69..b522a5c 100644 --- a/shaders/dimensions/composite5.fsh +++ b/shaders/dimensions/composite5.fsh @@ -264,7 +264,7 @@ vec4 TAA_hq(){ vec4 albedoPrev = texture2D(colortex5, previousPosition.xy); vec3 supersampled = albedoPrev.rgb * albedoPrev.a + albedoCurrent0; - if (length(velocity) > 1e-6 || hideGUI < 1) return vec4(albedoCurrent0,1.0); + if ( hideGUI < 1) return vec4(albedoCurrent0,1.0); return vec4(supersampled/(albedoPrev.a+1.0), albedoPrev.a+1.0); #endif } diff --git a/shaders/dimensions/composite6.fsh b/shaders/dimensions/composite6.fsh index 7602216..930ce07 100644 --- a/shaders/dimensions/composite6.fsh +++ b/shaders/dimensions/composite6.fsh @@ -1,7 +1,24 @@ +uniform sampler2D depthtex1; +uniform sampler2D colortex1; uniform sampler2D colortex5; uniform vec2 texelSize; uniform float viewWidth; uniform float viewHeight; + +vec3 decode (vec2 encn){ + vec3 n = vec3(0.0); + encn = encn * 2.0 - 1.0; + n.xy = abs(encn); + n.z = 1.0 - n.x - n.y; + n.xy = n.z <= 0.0 ? (1.0 - n.yx) * sign(encn) : encn; + return clamp(normalize(n.xyz),-1.0,1.0); +} +vec2 decodeVec2(float a){ + const vec2 constant1 = 65535. / vec2( 256., 65536.); + const float constant2 = 256. / 255.; + return fract( a * constant1 ) * constant2 ; +} + //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -15,6 +32,11 @@ void main() { vec2 resScale = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.))/vec2(1920.,1080.); vec2 quarterResTC = gl_FragCoord.xy*2.*resScale*texelSize; +vec4 data = texture2D(colortex1,quarterResTC); +vec4 dataUnpacked1 = vec4(decodeVec2(data.z),decodeVec2(data.w)); +float depth = texture2D(depthtex1,quarterResTC).x; +bool hand = abs(dataUnpacked1.w-0.75) < 0.01 && depth < 1.0; + //0.5 gl_FragData[0] = texture2D(colortex5,quarterResTC-1.0*vec2(texelSize.x,texelSize.y))/4.*0.5; gl_FragData[0] += texture2D(colortex5,quarterResTC+1.0*vec2(texelSize.x,texelSize.y))/4.*0.5; @@ -37,7 +59,7 @@ vec2 quarterResTC = gl_FragCoord.xy*2.*resScale*texelSize; gl_FragData[0] += texture2D(colortex5,quarterResTC)*0.125; gl_FragData[0].rgb = clamp(gl_FragData[0].rgb,0.0,65000.); - if (quarterResTC.x > 1.0 - 3.5*texelSize.x || quarterResTC.y > 1.0 -3.5*texelSize.y || quarterResTC.x < 3.5*texelSize.x || quarterResTC.y < 3.5*texelSize.y) gl_FragData[0].rgb = vec3(0.0); + if (hand || quarterResTC.x > 1.0 - 3.5*texelSize.x || quarterResTC.y > 1.0 -3.5*texelSize.y || quarterResTC.x < 3.5*texelSize.x || quarterResTC.y < 3.5*texelSize.y) gl_FragData[0].rgb = vec3(0.0); } diff --git a/shaders/dimensions/deferred1.fsh b/shaders/dimensions/deferred1.fsh index aa45a0c..fb9befc 100644 --- a/shaders/dimensions/deferred1.fsh +++ b/shaders/dimensions/deferred1.fsh @@ -2,6 +2,7 @@ uniform sampler2D colortex4; uniform sampler2D depthtex1; +uniform sampler2D depthtex2; uniform float near; uniform float far; diff --git a/shaders/dimensions/final.fsh b/shaders/dimensions/final.fsh index 1d76858..abce74a 100644 --- a/shaders/dimensions/final.fsh +++ b/shaders/dimensions/final.fsh @@ -169,6 +169,13 @@ void main() { // uniform sampler2D shadowcolor0; // uniform sampler2D shadowtex0; // uniform sampler2D shadowtex1; + // vec2 coord = gl_FragCoord.xy; + // int invertChecker = int(mod(coord.x,2)) * int(mod(coord.y,2)); + + // int checker = int(mod(coord.x*coord.y,2)); + // int checker2 = int(mod(coord.x*coord.y+1,2)); + + // gl_FragColor.rgb = vec3(0.2) * checker * checker2; // if( hideGUI == 1){ diff --git a/shaders/lib/end_fog.glsl b/shaders/lib/end_fog.glsl index a348aa2..6b96895 100644 --- a/shaders/lib/end_fog.glsl +++ b/shaders/lib/end_fog.glsl @@ -65,13 +65,20 @@ SOFTWARE.*/ // vec3 RandomPosition = hash31(frameTimeCounter); vec3 ManualLightPos = vec3(ORB_X, ORB_Y, ORB_Z); +// int switcher = frameCounter % 2 == 0 ? 0 : 1; + +// float OneOrZero = int(mod(gl_FragCoord.x*gl_FragCoord.y + switcher, 2)); + void LightSourcePosition(vec3 WorldPos, vec3 CameraPos, inout vec3 Pos1, inout vec3 Pos2){ - + Pos1 = WorldPos - vec3(0,200,0); + // Pos2 = WorldPos - vec3(-50,100,0); + // Pos1 = mix(Pos1, Pos2, OneOrZero); + + vec3 Origin = WorldPos - CameraPos - ManualLightPos; - float cellSize = 200; vec3 cellPos = CameraPos ; @@ -82,6 +89,7 @@ void LightSourcePosition(vec3 WorldPos, vec3 CameraPos, inout vec3 Pos1, inout v Origin -= (randomPos * 2.0 - 1.0); + // Pos1 = mix(Pos1, Origin, OneOrZero); Pos2 = Origin; } @@ -169,8 +177,12 @@ float EndLightMie(vec3 LightPos){ } void LightSourceColors(inout vec3 Color1, inout vec3 Color2){ - Color1 = vec3(0.7,0.88,1.0); - Color2 = vec3(ORB_R,ORB_G,ORB_B); + // Color1 = vec3(0.7,0.88,1.0); + // Color2 = vec3(ORB_R,ORB_G,ORB_B); + Color1 = vec3(1.0,0.5,1.0); + Color2 = vec3(0.0,0.5,1.0); + + // Color1 = mix(Color1, Color2, OneOrZero); } vec3 LightSourceLighting( vec3 WorldPos, vec3 LightPos, float Dither, float VolumeDensity, vec3 LightColor, float Phase ){ @@ -178,7 +190,10 @@ vec3 LightSourceLighting( vec3 WorldPos, vec3 LightPos, float Dither, float Volu float Mie = EndLightMie(LightPos); float Shadow = 0.0; + // vec3 shadowSamplePos = WorldPos - LightPos * 0.05; + for (int j=0; j < 3; j++){ + // shadowSamplePos -= LightPos * 0.25 * Dither * min(j,1); vec3 shadowSamplePos = WorldPos - LightPos * (0.05 + j * (0.25 + Dither*0.15)); Shadow += cloudVol(shadowSamplePos); } @@ -254,6 +269,7 @@ vec4 GetVolumetricFog( LightSourcePosition(progressW, cameraPosition, LightPos1, LightPos2); float VolumeDensity = max(cloudVol(progressW),0.0); + // float VolumeDensity = 0.0; float Density = max(VolumeDensity,0.0); @@ -269,7 +285,7 @@ vec4 GetVolumetricFog( vec3 Light1 = vec3(0); vec3 Light2 = vec3(0); - // Density += clamp((1.0 - length(LightPos1) / 10.0) * 10 ,0.0,1.0); // THE ORRRRRRRRRRRRRRRRRRRRRRRRRRB + Density += clamp((1.0 - length(LightPos1) / 10.0) * 10 ,0.0,1.0); // THE ORRRRRRRRRRRRRRRRRRRRRRRRRRB Light1 = LightSourceLighting(progressW, LightPos1, dither2, VolumeDensity, LightCol1, Phase1); #if lightsourceCount == 2 diff --git a/shaders/lib/settings.glsl b/shaders/lib/settings.glsl index 79e5638..3297d46 100644 --- a/shaders/lib/settings.glsl +++ b/shaders/lib/settings.glsl @@ -165,7 +165,7 @@ const float sunPathRotation = -35; //[-90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -8 #define RainFog_amount 3 // [0 1 2 3 4 5 6 7 8 9 10 15 20 25] #define BLOOMY_FOG 1.5 // [0.0 0.25 0.5 0.75 1.0 1.25 1.5 1.75 2.0 3.0 4.0 6.0 10.0 15.0 20.0] -#define BLOOM_STRENGTH 4.0 // [0.0 0.25 0.5 0.75 1.0 1.25 1.5 1.75 2.0 3.0 4.0] +#define BLOOM_STRENGTH 4.0 // [0.0 0.25 0.5 0.75 1.0 1.25 1.5 1.75 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 15.0 20.0 25.0 50.0 75.0 100.0] #define Cave_fog #define CaveFogFallOff 2.0 // [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 ] diff --git a/shaders/lib/volumetricClouds.glsl b/shaders/lib/volumetricClouds.glsl index f917a70..29c7a5a 100644 --- a/shaders/lib/volumetricClouds.glsl +++ b/shaders/lib/volumetricClouds.glsl @@ -261,6 +261,8 @@ vec4 renderClouds( #ifdef Cumulus + + for(int i=0;i lViewPosM; diff --git a/shaders/shaders.properties b/shaders/shaders.properties index bfccfff..f055167 100644 --- a/shaders/shaders.properties +++ b/shaders/shaders.properties @@ -36,16 +36,12 @@ program.composite4.enabled = TAA_UPSCALING blend.gbuffers_water = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE blend.gbuffers_hand_water = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE - - - - blend.gbuffers_textured = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE blend.gbuffers_textured_lit = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE blend.gbuffers_spidereyes = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE blend.gbuffers_basic = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE blend.gbuffers_armor_glint = ONE ONE ONE ONE -blend.gbuffers_weather = ONE ONE ONE ONE +blend.gbuffers_weather = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE blend.gbuffers_skytextured = ONE ONE ONE ONE blend.gbuffers_damagedblock = ONE ONE ONE ONE @@ -61,13 +57,13 @@ blend.composite.colortex12 = off # Alpha test alphaTest.shadow = GREATER 0.1 alphaTest.gbuffers_entities = GREATER 0.1 +alphaTest.gbuffers_hand = true alphaTest.gbuffers_armor_glint=false alphaTest.gbuffers_weather=false alphaTest.gbuffers_water=false alphaTest.gbuffers_skybasic=false alphaTest.gbuffers_skytextured=false -alphaTest.gbuffers_hand=true sliders = WATER_WAVE_STRENGTH SWAMP_UNIFORM_DENSITY SWAMP_CLOUDY_DENSITY SWAMP_R SWAMP_G SWAMP_B JUNGLE_UNIFORM_DENSITY JUNGLE_CLOUDY_DENSITY JUNGLE_R JUNGLE_G JUNGLE_B DARKFOREST_UNIFORM_DENSITY DARKFOREST_CLOUDY_DENSITY DARKFOREST_R DARKFOREST_G DARKFOREST_B PLUME_DENSITY END_STORM_DENSTIY LIT_PARTICLE_BRIGHTNESS R_UPPER_CURVE R_LOWER_CURVE G_UPPER_CURVE G_LOWER_CURVE B_UPPER_CURVE B_LOWER_CURVE UPPER_CURVE LOWER_CURVE CONTRAST EMISSIVE_TYPE SCALE_FACTOR CompSky_R CompSky_G CompSky_B ambientsss_brightness SSS_TYPE Cloud_Speed Cumulus_height Cumulus_coverage Cumulus_density Alto_coverage Alto_density ORB_ColMult ORB_X ORB_Y ORB_Z ORB_R ORB_G ORB_B TOD_Fog_mult Morning_Uniform_Fog Noon_Uniform_Fog Evening_Uniform_Fog Night_Uniform_Fog Morning_Cloudy_Fog Noon_Cloudy_Fog Evening_Cloudy_Fog Night_Cloudy_Fog Summer_Leaf_R Summer_Leaf_G Summer_Leaf_B Fall_Leaf_R Fall_Leaf_G Fall_Leaf_B Winter_Leaf_R Winter_Leaf_G Winter_Leaf_B Spring_Leaf_R Spring_Leaf_G Spring_Leaf_B Summer_R Summer_G Summer_B Fall_R Fall_G Fall_B Winter_R Winter_G Winter_B Spring_R Spring_G Spring_B Season_Length CaveFogFallOff CaveFogColor_R CaveFogColor_G CaveFogColor_B indirect_effect GI_Strength ambient_brightness AmbientLight_R AmbientLight_G AmbientLight_B Rain_coverage Moon_temp Haze_amount RainFog_amount ambient_temp Sun_temp Puddle_Size LabSSS_Curve Emissive_Curve Emissive_Brightness AO_Strength BLOOMY_FOG WAVY_SPEED WAVY_STRENGTH BLOOM_STRENGTH shadowDistance FinalR FinalG FinalB Sky_Brightness fog_coefficientMieR fog_coefficientMieG fog_coefficientMieB sun_illuminance sunColorG sunColorB sunColorR sky_mieg sky_coefficientMieB sky_coefficientMieG sky_coefficientMieR sky_coefficientRayleighB sky_coefficientRayleighG sky_coefficientRayleighR CLOUDS_QUALITY EXPOSURE_MULTIPLIER MIN_LIGHT_AMOUNT TORCH_R TORCH_G TORCH_B TORCH_AMOUNT shadowMapResolution sunPathRotation BLEND_FACTOR VL_SAMPLES Exposure_Speed POM_DEPTH MAX_ITERATIONS MAX_DIST SSR_STEPS ambientOcclusionLevel SEA_LEVEL moon_illuminance moonColorR moonColorG moonColorB fog_coefficientRayleighR fog_coefficientRayleighG SATURATION Manual_exposure_value focal aperture MANUAL_FOCUS SHADOW_FILTER_SAMPLE_COUNT Max_Filter_Depth VPS_Search_Samples Min_Shadow_Filter_Radius Max_Shadow_Filter_Radius Water_Top_Layer fog_coefficientRayleighB SHARPENING rayMarchSampleCount Dirt_Amount Dirt_Scatter_R Dirt_Scatter_G Dirt_Scatter_B Dirt_Absorb_R Dirt_Absorb_G Dirt_Absorb_B Water_Absorb_R Water_Absorb_G Water_Absorb_B Purkinje_strength Purkinje_strength Purkinje_R Purkinje_G Purkinje_B Texture_MipMap_Bias DoF_Adaptation_Speed Purkinje_Multiplier CROSSTALK VL_RENDER_RESOLUTION BLOOM_QUALITY VL_RENDER_RESOLUTION RAY_COUNT STEPS STEP_LENGTH cloud_LevelOfDetail cloud_ShadowLevelOfDetail cloud_LevelOfDetailLQ cloud_ShadowLevelOfDetailLQ minRayMarchSteps maxRayMarchSteps minRayMarchStepsLQ maxRayMarchStepsLQ fbmAmount fbmPower1 fbmPower2 Roughness_Threshold Sun_specular_Strength reflection_quality DOF_QUALITY DOF_ANAMORPHIC_RATIO AEROCHROME_PINKNESS DOF_JITTER_FOCUS JITTER_STRENGTH