Add lightning textures to thunder clouds

This commit is contained in:
Merlin1809 committed 2025-06-14 01:21:30 +02:00
1 parent 851932f864
commit f107bfdf12
26 files changed
+394 -66

No files matched your search

+11 -10
View File
@@ -531,10 +531,15 @@ void main() {
vec3 indirectLightColor = averageSkyCol / 1200.0;
vec3 indirectLightColor_dynamic = averageSkyCol_Clouds / 1200.0;
float cloudPlaneDistance = 0.0;
vec2 cloudDistance = vec2(0.0); // r = cumulus, g = cumulonimbus
#if defined OVERWORLD_SHADER
vec4 VolumetricClouds = GetVolumetricClouds(viewPos0, BN, WrealSunVec, WmoonVec, directSunlightColor, directMoonlightColor, indirectLightColor, cloudPlaneDistance);
#ifdef OVERWORLD_SHADER
vec4 VolumetricClouds = GetVolumetricClouds(viewPos0, BN, WrealSunVec, WmoonVec, directSunlightColor, directMoonlightColor, indirectLightColor, cloudPlaneDistance, cloudDistance);
#if defined CUMULONIMBUS_LIGHTNING && defined CUMULONIMBUS
imageStore(cloudDepthTex, ivec2(gl_FragCoord.xy), vec4(cloudDistance.r, cloudDistance.g, 0, 1));
#endif
#ifdef CAVE_FOG
#if (CAVE_DETECTION == 0.0) || (CAVE_DETECTION == 1.0)
#if (CAVE_DETECTION == 1.0)
@@ -548,27 +553,24 @@ void main() {
float skyhole = pow(clamp(1.0-pow(max(playerPos_normalized.y - 0.6,0.0)*5.0,2.0),0.0,1.0),2)* caveDetection * caveFactor;
VolumetricClouds.rgb *= 1.0-skyhole;
VolumetricClouds.a = mix(VolumetricClouds.a, 1.0, skyhole);
VolumetricClouds.a = mix(VolumetricClouds.a, 1.0, skyhole);
#endif
#endif
#ifdef OVERWORLD_SHADER
float atmosphereAlpha = 1.0;
vec3 sceneColor = texelFetch2D(colortex3,ivec2(tc/texelSize),0).rgb * VolumetricClouds.a + VolumetricClouds.rgb;
vec4 VolumetricFog = GetVolumetricFog(viewPos0, WsunVec, BN, directLightColor, indirectLightColor, indirectLightColor_dynamic, atmosphereAlpha, VolumetricClouds.rgb, cloudPlaneDistance);
VolumetricFog = vec4(VolumetricClouds.rgb * VolumetricFog.a + VolumetricFog.rgb, VolumetricFog.a*VolumetricClouds.a);
#endif
#if defined NETHER_SHADER || defined END_SHADER
vec4 VolumetricFog = GetVolumetricFog(viewPos0, BN.x, BN.y);
#endif
#if defined OVERWORLD_SHADER
VolumetricFog = vec4(VolumetricClouds.rgb * VolumetricFog.a + VolumetricFog.rgb, VolumetricFog.a*VolumetricClouds.a);
#endif
if (isEyeInWater == 1){
vec4 underWaterFog = waterVolumetrics(vec3(0.0), viewPos0_water, length(viewPos0_water), BN, totEpsilon, scatterCoef, indirectLightColor_dynamic, directLightColor , dot(normalize(viewPos0_water), normalize(sunVec* lightCol.a ) ));
vec4 underWaterFog = waterVolumetrics(vec3(0.0), viewPos0_water, length(viewPos0_water), BN, totEpsilon, scatterCoef, indirectLightColor_dynamic, directLightColor, dot(normalize(viewPos0_water), normalize(sunVec * lightCol.a)));
VolumetricFog = vec4(underWaterFog.rgb, 1.0);
}
@@ -576,7 +578,6 @@ void main() {
// VolumetricFog = raymarchTest2(viewPos0, BN.x);
// VolumetricFog = raymarchTest(viewPos0, BN);
gl_FragData[0] = clamp(VolumetricFog, 0.0, 65000.0);
}
+175 -2
View File
@@ -35,7 +35,6 @@ uniform sampler2D colortex14;
uniform sampler2D colortex15;
uniform vec2 texelSize;
uniform sampler2D colortex4;
uniform float viewHeight;
uniform float viewWidth;
uniform float nightVision;
@@ -68,6 +67,35 @@ uniform float darknessFactor;
uniform float darknessLightFactor;
uniform float caveDetection;
#if defined CUMULONIMBUS_LIGHTNING && defined OVERWORLD_SHADER && defined CUMULONIMBUS
uniform float sunElevation;
uniform vec4 lightningBoltPosition;
#include "/lib/scene_controller.glsl"
uniform sampler2D lightningTex1;
uniform sampler2D lightningTex2;
uniform sampler2D lightningTex3;
uniform sampler2D lightningTex4;
uniform sampler2D lightningTex5;
uniform sampler2D lightningTex6;
uniform sampler2D lightningTex7;
uniform sampler2D lightningTex8;
uniform sampler2D lightningTex9;
uniform sampler2D lightningTex10;
uniform sampler2D lightningTex11;
uniform sampler2D lightningTex12;
uniform sampler2D lightningTex13;
uniform sampler2D lightningTex14;
uniform sampler2D lightningTex15;
uniform sampler2D lightningTex16;
#define LIGHTNING_ONLY;
#include "/lib/volumetricClouds.glsl"
#else
uniform sampler2D colortex4;
#endif
#include "/lib/waterBump.glsl"
#include "/lib/res_params.glsl"
@@ -86,6 +114,12 @@ float ld(float depth) {
return 1.0 / (zMults.y - depth * zMults.z); // (-depth * (far - near)) = (2.0 * near)/ld - far - near
}
float convertHandDepth(float depth) {
float ndcDepth = depth * 2.0 - 1.0;
ndcDepth /= MC_HAND_DEPTH;
return ndcDepth * 0.5 + 0.5;
}
float luma(vec3 color) {
return dot(color,vec3(0.21, 0.72, 0.07));
}
@@ -554,6 +588,145 @@ void main() {
}
////// --------------- VARIOUS FOG EFFECTS (behind volumetric fog)
////// --------------- lightning effect
bool isLightning = false;
#if defined OVERWORLD_SHADER && defined CUMULONIMBUS_LIGHTNING && defined CUMULONIMBUS
vec2 cloudDepth = imageLoad(cloudDepthTex, ivec2(gl_FragCoord.xy*VL_RENDER_RESOLUTION*RENDER_SCALE)).rg;
vec3 lightningpos = vec3(getLightningPosition(600, 4680));
//lightningpos = vec3(0,0,1);
float lightningDist = length(lightningpos);
if ((lightningDist < cloudDepth.r || cloudDepth.r == 0.0) && rainStrength + thunderStrength > 1.0) {
vec2 tc = (gl_FragCoord.xy - 0.5)*texelSize;
float depth = z;
float z0 = depth < 0.56 ? convertHandDepth(depth) : depth;
#ifdef DISTANT_HORIZONS
float DH_z0 = DH_depth0;
#else
float DH_z0 = 1.0;
#endif
float uvScalar = 3.0 * CUSTOM_LIGHTNING_SCALE;
vec3 normLightningpos = normalize(lightningpos);
vec3 worldDir = normalize(mat3(gbufferModelViewInverse) * toScreenSpace(vec3(texcoord /RENDER_SCALE,1.0)));
vec3 tangent = normalize(cross(normLightningpos, vec3(0.0, 1.0, 0.0)));
vec3 binormal = cross(normLightningpos, tangent);
vec3 dirDiff = worldDir - normLightningpos;
float u = -1.0;
float v = -1.0;
vec4 lightningTex = vec4(0.0);
if (dot(worldDir, normLightningpos) > 0.0) {
u = dot(dirDiff, tangent) + 0.5/uvScalar;
v = 0.55*dot(dirDiff, binormal) + 0.1/uvScalar;
vec2 uv = vec2(u, v) * uvScalar;
float randomTex = 16*rand(lightningTimer*72.82723486);
#if CUSTOM_LIGHTNING_TEX > 0
randomTex = CUSTOM_LIGHTNING_TEX-1;
#endif
if (randomTex < 1.0) {
lightningTex = texture2D(lightningTex1, uv);
} else if (randomTex < 2.0) {
lightningTex = texture2D(lightningTex2, uv);
} else if (randomTex < 3.0) {
u = 1.3*dot(dirDiff, tangent) + 0.5/uvScalar;
uv = vec2(u, v) * uvScalar;
lightningTex = texture2D(lightningTex3, uv);
} else if (randomTex < 4.0) {
lightningTex = texture2D(lightningTex4, uv);
} else if (randomTex < 5.0) {
lightningTex = texture2D(lightningTex5, uv);
} else if (randomTex < 6.0) {
u = 1.25*dot(dirDiff, tangent) + 0.5/uvScalar;
uv = vec2(u, v) * uvScalar;
lightningTex = texture2D(lightningTex6, uv);
} else if (randomTex < 7.0) {
lightningTex = texture2D(lightningTex7, uv);
} else if (randomTex < 8.0) {
lightningTex = texture2D(lightningTex8, uv);
} else if (randomTex < 9.0) {
u = 1.4*dot(dirDiff, tangent) + 0.5/uvScalar;
uv = vec2(u, v) * uvScalar;
lightningTex = texture2D(lightningTex9, uv);
} else if (randomTex < 10.0) {
lightningTex = texture2D(lightningTex10, uv);
} else if (randomTex < 11.0) {
u = 0.5*dot(dirDiff, tangent)+0.5/uvScalar;
v = 0.7*dot(dirDiff, binormal) + 0.5/uvScalar;
uv = vec2(u, v) * uvScalar;
lightningTex = texture2D(lightningTex11, uv);
} else if (randomTex < 12.0) {
u = 0.45*dot(dirDiff, tangent)+0.5/uvScalar;
v = 0.7*dot(dirDiff, binormal) + 0.5/uvScalar;
uv = vec2(u, v) * uvScalar;
lightningTex = texture2D(lightningTex12, uv);
} else if (randomTex < 13.0) {
u = 0.45*dot(dirDiff, tangent)+0.5/uvScalar;
v = 0.7*dot(dirDiff, binormal) + 0.5/uvScalar;
uv = vec2(u, v) * uvScalar;
lightningTex = texture2D(lightningTex13, uv);
} else if (randomTex < 14.0) {
u = 0.5*dot(dirDiff, tangent)+0.5/uvScalar;
v = 0.7*dot(dirDiff, binormal) + 0.5/uvScalar;
uv = vec2(u, v) * uvScalar;
lightningTex = texture2D(lightningTex14, uv);
} else if (randomTex < 15.0) {
u = 0.45*dot(dirDiff, tangent)+0.5/uvScalar;
v = 0.7*dot(dirDiff, binormal) + 0.5/uvScalar;
uv = vec2(u, v) * uvScalar;
lightningTex = texture2D(lightningTex15, uv);
} else {
u = 0.4*dot(dirDiff, tangent)+0.5/uvScalar;
v = 0.7*dot(dirDiff, binormal) + 0.5/uvScalar;
uv = vec2(u, v) * uvScalar;
lightningTex = texture2D(lightningTex16, uv);
}
lightningTex.rgb *= vec3(CUSTOM_LIGHTNING_R, CUSTOM_LIGHTNING_G, CUSTOM_LIGHTNING_B) * CUMULONIMBUS_LIGHTNING_BRIGHTNESS * 0.01;
if(cloudDepth.g > 0.0) lightningTex.rgb *= smoothstep(7550, 0.0, lightningDist - cloudDepth.g);
#if defined CUSTOM_LIGHTNING_POS && CUSTOM_LIGHTNING_TEX > 0
lightningTex.a *= pow(lightningTex.a, 2.0);
lightningTex.rgb *= 75;
#else
lightningTex.a *= pow(lightningTex.a, lightningStart); // fade alpha in for cool expansion effect
lightningTex.rgb += 120 * lightningMid * lightningTex.rgb; // bright flash in the middle
lightningTex.rgb *= 75 * lightningFade; // fade out
#endif
if (length(lightningTex.rgb) == 0.0) lightningTex.a = 0.0;
}
bool isSky = z0 == 1.0 && DH_z0 == 1.0;
bool oneTexOnly = u > 0 && v > 0 && u*uvScalar < 1 && v*uvScalar < 1;
if (lightningTex.a > 0.01 && oneTexOnly && isSky) {
color = lightningTex.rgb * lightningFlash;
isLightning = true;
}
}
#endif
//////////// blindness, nightvision, liquid fogs and misc fogs
#if defined OVERWORLD_SHADER && defined CAVE_FOG
@@ -618,7 +791,7 @@ void main() {
// if(z >= 1.0) color = vec3(0,255,0);
// else color = vec3(0.01);
color *= min(temporallyFilteredVL.a + (1.0-nametagbackground),1.0);
if(!isLightning) color *= min(temporallyFilteredVL.a + (1.0-nametagbackground),1.0);
color += temporallyFilteredVL.rgb * nametagbackground;
#else
color *= temporallyFilteredVL.a ;
+9 -3
View File
@@ -3,8 +3,12 @@
varying vec2 texcoord;
flat varying vec3 zMults;
#ifdef BorderFog
#if defined BorderFog || (defined CUMULONIMBUS_LIGHTNING && defined CUMULONIMBUS)
uniform sampler2D colortex4;
#include "/lib/scene_controller.glsl"
#endif
#ifdef BorderFog
flat varying vec3 skyGroundColor;
#endif
@@ -22,8 +26,6 @@ flat varying vec2 TAA_Offset;
uniform int framemod8;
#include "/lib/TAA_jitter.glsl"
#ifdef OVERWORLD_SHADER
#endif
@@ -40,6 +42,10 @@ void main() {
skyGroundColor = texelFetch2D(colortex4,ivec2(1,37),0).rgb / 1200.0 * Sky_Brightness;
#endif
WsunVec = normalize(mat3(gbufferModelViewInverse) * sunPosition);
#if defined CUMULONIMBUS_LIGHTNING && defined CUMULONIMBUS
readSceneControllerParameters(colortex4, parameters.smallCumulus, parameters.largeCumulus, parameters.altostratus, parameters.cirrus, parameters.fog);
#endif
#endif
#ifdef TAA
+3 -1
View File
@@ -329,7 +329,9 @@ if (gl_FragCoord.x > 18.+257. && gl_FragCoord.y > 1. && gl_FragCoord.x < 18+257+
#endif
float rejection = 1.0;
float cloudPlaneDistance = 0.0;
vec4 volumetricClouds = GetVolumetricClouds(viewPos, vec2(noise, 1.0-noise), WsunVec, WmoonVec, sunColor*2.5, moonColor*2.5, skyGroundCol/30.0, cloudPlaneDistance);
vec2 cloudDistance = vec2(0.0);
vec4 volumetricClouds = GetVolumetricClouds(viewPos, vec2(noise, 1.0-noise), WsunVec, WmoonVec, sunColor*2.5, moonColor*2.5, skyGroundCol/30.0, cloudPlaneDistance, cloudDistance);
float atmosphereAlpha = 1.0;
WsunVec = mix(WmoonVec, WsunVec, clamp(float(sunElevation > 1e-5)*2.0-1.0 ,0,1));
+11
View File
@@ -10,6 +10,14 @@ uniform sampler2D depthtex2;
uniform sampler2D noisetex;
uniform sampler2D shadowcolor1;
#if DEBUG_VIEW == debug_CLOUDDEPTHTEX && defined CUMULONIMBUS_LIGHTNING && defined CUMULONIMBUS
#extension GL_NV_gpu_shader5 : enable
#extension GL_ARB_shader_image_load_store : enable
#extension GL_EXT_shader_image_load_store : enable
layout (rgba32f) uniform image2D cloudDepthTex;
#endif
varying vec2 texcoord;
uniform vec2 texelSize;
uniform float frameTimeCounter;
@@ -167,6 +175,9 @@ void main() {
#if DEBUG_VIEW == debug_DEPTHTEX1
COLOR = vec3(ld(texture2D(depthtex1, texcoord*RENDER_SCALE).r));
#endif
#if DEBUG_VIEW == debug_CLOUDDEPTHTEX && defined CUMULONIMBUS_LIGHTNING && defined CUMULONIMBUS
COLOR = imageLoad(cloudDepthTex, ivec2(gl_FragCoord.xy*VL_RENDER_RESOLUTION*RENDER_SCALE)).rgb;
#endif
gl_FragColor.rgb = COLOR;
@@ -353,9 +353,10 @@ void main() {
vec4 finalVolumetrics = vec4(0.0,0.0,0.0,1.0);
float cloudPlaneDistance = 0.0;
vec2 cloudDistance = vec2(0.0);
#ifdef OVERWORLD_SHADER
vec4 VolumetricClouds = GetVolumetricClouds(viewPos1, vec2(noise_1, noise_2), WrealSunVec, WmoonVec, directSunlightColor, directMoonlightColor, indirectLightColor, cloudPlaneDistance);
vec4 VolumetricClouds = GetVolumetricClouds(viewPos1, vec2(noise_1, noise_2), WrealSunVec, WmoonVec, directSunlightColor, directMoonlightColor, indirectLightColor, cloudPlaneDistance, cloudDistance);
float atmosphereAlpha = 1.0;
vec4 VolumetricFog = GetVolumetricFog(viewPos1, WsunVec, vec2(noise_1, noise_2), directLightColor, indirectLightColor, indirectLightColor_dynamic, atmosphereAlpha, VolumetricClouds.rgb,cloudPlaneDistance);
+22
View File
@@ -229,6 +229,28 @@ screen.Clouds = Cloud Settings
option.CloudLayer1_tallness = Tallness
option.CloudLayer1_scale = Scale
option.CUMULONIMBUS = Cumulonimbus Clouds
option.CUMULONIMBUS_LIGHTNING = Cumulonimbus Lightning
option.CUMULONIMBUS_LIGHTNING_BRIGHTNESS = Lightning Brightness
suffix.CUMULONIMBUS_LIGHTNING_BRIGHTNESS = %
option.CUMULONIMBUS_LIGHTNING_DELAY = Lightning Delay
suffix.CUMULONIMBUS_LIGHTNING_DELAY = s
screen.CUSTOM_LIGHTNING = Custom Lightning
option.CUSTOM_LIGHTNING_POS = Custom Position
option.CUSTOM_LIGHTNING_POS_X = X
option.CUSTOM_LIGHTNING_POS_Y = Y
option.CUSTOM_LIGHTNING_POS_Z = Z
option.CUSTOM_LIGHTNING_R = R
option.CUSTOM_LIGHTNING_G = G
option.CUSTOM_LIGHTNING_B = B
option.CUSTOM_LIGHTNING_SCALE = Scale
option.CUSTOM_LIGHTNING_TEX = Texture
value.CUSTOM_LIGHTNING_TEX.0 = Random
screen.READ_DESCRIPTION = READ DESCRIPTION
screen.READ_DESCRIPTION.comment = Set custom postion values in shaders/lib/settings.glsl
screen.HighAltitudeClouds = High Altitude Clouds
option.CloudLayer2 = Altostratus Clouds
option.CloudLayer2_coverage = Coverage
+18 -1
View File
@@ -378,7 +378,20 @@ uniform int moonPhase;
#define CloudLayer1_height 800.0 // [-300.0 -290.0 -280.0 -270.0 -260.0 -250.0 -240.0 -230.0 -220.0 -210.0 -200.0 -190.0 -180.0 -170.0 -160.0 -150.0 -140.0 -130.0 -120.0 -110.0 -100.0 -90.0 -80.0 -70.0 -60.0 -50.0 -40.0 -30.0 -20.0 -10.0 0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 120.0 130.0 140.0 150.0 160.0 170.0 180.0 190.0 200.0 210.0 220.0 230.0 240.0 250.0 260.0 270.0 280.0 290.0 300.0 310.0 320.0 330.0 340.0 350.0 360.0 370.0 380.0 390.0 400.0 410.0 420.0 430.0 440.0 450.0 460.0 470.0 480.0 490.0 500.0 510.0 520.0 530.0 540.0 550.0 560.0 570.0 580.0 590.0 600.0 700.0 800.0 900.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 4000.0 5000.0]
#define CloudLayer1_tallness 300.0 // [0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 120.0 130.0 140.0 150.0 160.0 170.0 180.0 190.0 200.0 210.0 220.0 230.0 240.0 250.0 260.0 270.0 280.0 290.0 300.0 310.0 320.0 330.0 340.0 350.0 360.0 370.0 380.0 390.0 400.0 410.0 420.0 430.0 440.0 450.0 460.0 470.0 480.0 490.0 500.0 510.0 520.0 530.0 540.0 550.0 560.0 570.0 580.0 590.0 600.0 700.0 800.0 900.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 4000.0 5000.0]
#define CloudLayer1_scale 1.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]
#define CUMULONIMBUS
#define CUMULONIMBUS_LIGHTNING
#define CUMULONIMBUS_LIGHTNING_BRIGHTNESS 100.0 // [25.0 30.0 35.0 40.0 45.0 50.0 55.0 60.0 65.0 70.0 75.0 80.0 85.0 90.0 95.0 100.0 105.0 110.0 115.0 120.0 125.0 130.0 135.0 140.0 145.0 150.0 155.0 160.0 165.0 170.0 175.0 180.0 185.0 190.0 195.0 200.0]
#define CUMULONIMBUS_LIGHTNING_DELAY 0.5 // [0.0 0.25 0.5 0.75 1.0 1.25 1.5 1.75 2.0 2.25 2.5 2.75 3.0 3.5 4.0 4.5 5.0 6.0 7.0 8.0 9.0 10.0]
// #define CUSTOM_LIGHTNING_POS
#define CUSTOM_LIGHTNING_SCALE 1.0 // [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]
#define CUSTOM_LIGHTNING_POS_X 100 // [-200 -195 -190 -185 -180 -175 -170 -165 -160 -155 -150 -145 -140 -135 -130 -125 -120 -115 -110 -105 -100 -95 -90 -85 -80 -75 -70 -65 -60 -55 -50 -45 -40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 155 160 165 170 175 180 185 190 195 200]
#define CUSTOM_LIGHTNING_POS_Y 0 // [-200 -195 -190 -185 -180 -175 -170 -165 -160 -155 -150 -145 -140 -135 -130 -125 -120 -115 -110 -105 -100 -95 -90 -85 -80 -75 -70 -65 -60 -55 -50 -45 -40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 155 160 165 170 175 180 185 190 195 200]
#define CUSTOM_LIGHTNING_POS_Z 0 // [-200 -195 -190 -185 -180 -175 -170 -165 -160 -155 -150 -145 -140 -135 -130 -125 -120 -115 -110 -105 -100 -95 -90 -85 -80 -75 -70 -65 -60 -55 -50 -45 -40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 155 160 165 170 175 180 185 190 195 200]
#define CUSTOM_LIGHTNING_R 0.63 // [0.0 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 CUSTOM_LIGHTNING_G 0.72 // [0.0 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 CUSTOM_LIGHTNING_B 1.0 // [0.0 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 CUSTOM_LIGHTNING_TEX 0 // [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]
#define CloudLayer2
#define CloudLayer2_coverage 0.3 // [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]
@@ -882,7 +895,8 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631)
#define debug_FILTERED_STUFF 8
#define debug_DEPTHTEX0 9
#define debug_DEPTHTEX1 10
#define DEBUG_VIEW debug_OFF // [debug_OFF debug_SHADOWMAP debug_NORMALS debug_SPECULAR debug_INDIRECT debug_DIRECT debug_VIEW_POSITION debug_DH_WATER_BLENDING debug_FILTERED_STUFF debug_DEPTHTEX0 debug_DEPTHTEX1]
#define debug_CLOUDDEPTHTEX 11
#define DEBUG_VIEW debug_OFF // [debug_OFF debug_SHADOWMAP debug_NORMALS debug_SPECULAR debug_INDIRECT debug_DIRECT debug_VIEW_POSITION debug_DH_WATER_BLENDING debug_FILTERED_STUFF debug_DEPTHTEX0 debug_DEPTHTEX1 debug_CLOUDDEPTHTEX]
// #define ISOLATE_RESOURCEPACK_SKY
#if DEBUG_VIEW == debug_DEPTHTEX0 || DEBUG_VIEW == debug_DEPTHTEX1
@@ -933,8 +947,11 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631)
#endif
#ifdef EMISSIVE_ORES
#endif
#ifdef CUMULONIMBUS_LIGHTNING
#endif
#ifdef MC_OS_MAC
#undef CUMULONIMBUS_LIGHTNING
#undef REALMOON
#define ShaderSnow 0
#undef Puddles
+105 -40
View File
@@ -10,14 +10,32 @@ uniform int worldDay;
uniform int worldTime;
float cloud_movement = (worldTime + mod(worldDay,100)*24000.0) / 24.0 * Cloud_Speed;
float sunMultiplier = smoothstep(500.0, 0.0, worldTime) + smoothstep(11500.0, 13500.0, worldTime) * smoothstep(13500.0, 11500.0, worldTime) + smoothstep(23500.0, 24000.0, worldTime);
float lightningTimer = floor(frameTimeCounter * 11.0);
float randomSeed = fract(sin(dot(vec2(lightningTimer), vec2(12.9898,78.233))) * 43758.5453);
float lightningFlashTimer = floor(frameTimeCounter * 11.0);
float randomSeed = fract(sin(dot(vec2(lightningFlashTimer), vec2(12.9898,78.233))) * 43758.5453);
float lightningFlash = mix(0.3, 1.5, randomSeed);
float rand(float x) {
return fract(sin(x) * 43758.5453123);
#ifdef CUMULONIMBUS
float lightningDuration = 0.75 + CUMULONIMBUS_LIGHTNING_DELAY;
float lightningTimer = floor(frameTimeCounter / lightningDuration);
float timeInLightning = (frameTimeCounter / (lightningDuration) - lightningTimer) * lightningDuration;
float lightningFade = smoothstep(0.6, 0.22, timeInLightning);
#endif
#if defined CUMULONIMBUS_LIGHTNING && defined CUMULONIMBUS
#extension GL_NV_gpu_shader5 : enable
#extension GL_ARB_shader_image_load_store : enable
#extension GL_EXT_shader_image_load_store : enable
layout (rgba32f) uniform image2D cloudDepthTex;
float lightningStart = mix(20.0, 1.0, smoothstep(0.0, 0.085, timeInLightning));
float lightningMid = smoothstep(0.0, 0.05, timeInLightning) * smoothstep(0.15, 0.066, timeInLightning);
#endif
float rand(float co){
vec2 co2 = vec2(co, co*2);
return fract(sin(dot(co2 ,vec2(12.9898,78.233))) * 43758.5453);
}
float getRainDensity(float currentDensity) {
@@ -189,8 +207,8 @@ float getCloudShape(int LayerIndex, int LOD, in vec3 position, float minHeight,
coverage += Thunder_coverage * thunderStrength;
largeCloud = texture2D(noisetex, (samplePos.zx + cloud_movement*2.0)/16000.0 * CloudLayer1_scale).b;
smallCloud = texture2D(noisetex, (samplePos.zx - cloud_movement*2.0)/5500.0 * CloudLayer1_scale).b;
largeCloud = texture2D(noisetex, (samplePos.zx + cloud_movement*2.0)/12000.0 * CloudLayer1_scale).b;
smallCloud = texture2D(noisetex, (samplePos.zx - cloud_movement*2.0)/3500.0 * CloudLayer1_scale).b;
smallCloud = abs(largeCloud* -0.7) + smallCloud;
@@ -264,6 +282,30 @@ float getCloudShape(int LayerIndex, int LOD, in vec3 position, float minHeight,
}
#if defined CUMULONIMBUS && defined CUMULONIMBUS_LIGHTNING
vec3 getLightningPosition(float minHeight, float maxHeight) {
float angle = rand(lightningTimer) * 6.28318530718;
float rMin = 7000.0;
float rMax = 13000.0;
float radius = sqrt(mix(rMin * rMin, rMax * rMax, rand(lightningTimer + 1)));
vec3 lightningPos = vec3(radius * cos(angle), minHeight + 0.5 * (maxHeight - minHeight), radius * sin(angle));
float shapeAtLightningPos = getCloudShape(CUMULONIMBUS_LAYER, 1, lightningPos, minHeight, maxHeight);
lightningPos.y -= cameraPosition.y;
if (shapeAtLightningPos < 0.1) lightningPos = vec3(0.0);
#ifdef CUSTOM_LIGHTNING_POS
lightningPos = vec3(CUSTOM_LIGHTNING_POS_X, CUSTOM_LIGHTNING_POS_Y, CUSTOM_LIGHTNING_POS_Z) - cameraPosition;
#endif
return lightningPos;
}
#endif
#ifndef LIGHTNINGONLY
float getPlanetShadow(vec3 playerPos, vec3 WsunVec){
float planetShadow = min(max(playerPos.y - (-100.0 + 1.0 / max(WsunVec.y*0.1, 0.0)),0.0) / 100.0, 1.0);
@@ -497,22 +539,11 @@ vec4 raymarchCloud(
#endif
vec3 lightningPos = vec3(0.0);
if(LayerIndex == CUMULONIMBUS_LAYER){
float interval = 0.7;
float t = floor(frameTimeCounter / interval);
float angle = rand(t) * 6.28318530718;
float rMin = 7000.0;
float rMax = 18000.0;
float radius = sqrt(mix(rMin * rMin, rMax * rMax, rand(t + 1)));
lightningPos = vec3(radius * cos(angle), minHeight + 0.5 * (maxHeight - minHeight), radius * sin(angle));
float shapeAtLightningPos = getCloudShape(LayerIndex, 1, lightningPos, minHeight, maxHeight);
if (shapeAtLightningPos < 0.1) lightningPos = vec3(0.0);
}
#if defined CUMULONIMBUS && defined CUMULONIMBUS_LIGHTNING
if(LayerIndex == CUMULONIMBUS_LAYER || thunderStrength > 0.0){
lightningPos = getLightningPosition(minHeight, maxHeight);
}
#endif
for(int i = 0; i < samples; i++) {
@@ -558,36 +589,39 @@ vec4 raymarchCloud(
#endif
vec3 lighting = getCloudLighting(LayerIndex, shapeWithDensity, shapeWithDensityFaded, sunShadowMask, sunScattering, sunMultiScattering, moonScattering, moonMultiScattering, indirectShadowMask, skyScattering * skylightOcclusion);
vec3 newPos = rayPosition - cameraPosition;
newPos.xz /= max(newPos.y,0.0)*0.0025 + 1.0;
float lightningIntensity = 0.0;
// normal lightning strikes
float horizontalDist = length((rayPosition.xz - cameraPosition.xz) - lightningBoltPosition.xz);
float horizontalDist = length((newPos.xz) - lightningBoltPosition.xz);
if (horizontalDist < 2500.0 && lightningBoltPosition.w > 0.0) {
lightningIntensity = exp(-horizontalDist * 0.022) * density * smoothstep(0.0, 0.02, fract(frameTimeCounter)) * lightningFlash;
lighting = mix(lighting, vec3(1.3,1.5,3.0), lightningIntensity);
}
// lightning strikes in cumulonimbus clouds
if(LayerIndex == CUMULONIMBUS_LAYER) {
horizontalDist = length(rayPosition.xz - cameraPosition.xz);
float horizontalDistLightining = length((rayPosition.xz - cameraPosition.xz) - lightningPos.xz);
if (horizontalDistLightining < 6000.0 && rainStrength == 0.0 && lightningPos != vec3(0.0)) {
#if defined CUMULONIMBUS_LIGHTNING && defined CUMULONIMBUS
if(LayerIndex == CUMULONIMBUS_LAYER || thunderStrength > 0.0){
horizontalDist = length(newPos.xz);
float lightningDist = length((newPos) - lightningPos);
lightningIntensity = smoothstep(6000.0, 0.0, horizontalDistLightining) * smoothstep(0.15, 1.0, shapeWithDensity) * lightningFlash;
lightningIntensity *= (1.0 - smoothstep(minHeight, 1.05 * maxHeight, rayPosition.y));
lightningIntensity *= smoothstep(17000, 14000, horizontalDist);
if (lightningDist < 6000.0 && lightningPos != vec3(0.0)) {
lightningIntensity = smoothstep(6000.0, 50.0, lightningDist) * smoothstep(0.15, 1.0, shapeWithDensity) * lightningFlash;
lightningIntensity *= (1.0 - smoothstep(minHeight, 1.05 * maxHeight, rayPosition.y));
lightningIntensity *= smoothstep(17000, 14000, horizontalDist);
lightningIntensity *= lightningFade;
vec3 lightningStrength = vec3(5.0,5.3,9.0);
lighting = mix(lighting, lightningStrength, lightningIntensity);
vec3 lightningStrength = vec3(CUSTOM_LIGHTNING_R, 1.05*CUSTOM_LIGHTNING_G, 1.22*CUSTOM_LIGHTNING_B) * CUMULONIMBUS_LIGHTNING_BRIGHTNESS * 0.125;
lighting = mix(lighting, lightningStrength, lightningIntensity);
}
}
}
#endif
newPos.xz /= max(newPos.y,0.0)*0.0025 + 1.0;
newPos.y = min(newPos.y,0.0);
float distancefog = exp2(-0.0002*length(newPos));
@@ -647,7 +681,8 @@ vec4 GetVolumetricClouds(
vec3 directLightCol2,
vec3 indirectLightCol,
inout float cloudPlaneDistance
inout float cloudPlaneDistance,
inout vec2 cloudDistance
){
#ifndef VOLUMETRIC_CLOUDS
return vec4(0.0,0.0,0.0,1.0);
@@ -751,6 +786,7 @@ vec4 GetVolumetricClouds(
vec2 cloudLayer0_Distance = vec2(startDistance, 1.0);
#ifdef CloudLayer0
float smallCumulusDistance = length(rayPosition - cameraPosition);
smallCumulusClouds = raymarchCloud(SMALLCUMULUS_LAYER, samples, rayPosition, rayDirection, dither.x, minHeight, maxHeight, unsignedSunVec, unsignedMoonVec, sunScattering2, sunMultiScattering2, moonScattering2, moonMultiScattering2, skyScattering, lViewPosM, sampledSkyCol, cloudLayer0_Distance);
#endif
@@ -768,6 +804,7 @@ vec4 GetVolumetricClouds(
rayPosition = getRayOrigin(rayDirection, cameraPosition, dither.y, minHeight, maxHeight);
vec2 cloudLayer1_Distance = vec2(startDistance, 1.0);
float largeCumulusDistance = length(rayPosition - cameraPosition);
if(smallCumulusClouds.a > 1e-5 || cameraPosition.y > minHeight) largeCumulusClouds = raymarchCloud(LARGECUMULUS_LAYER, samples, rayPosition, rayDirection, dither.x, minHeight, maxHeight, unsignedSunVec, unsignedMoonVec, sunScattering2, sunMultiScattering2, moonScattering2, moonMultiScattering2, skyScattering, lViewPosM, sampledSkyCol, cloudLayer1_Distance);
#endif
@@ -784,6 +821,7 @@ vec4 GetVolumetricClouds(
rayPosition = getRayOrigin(rayDirection, cameraPosition, dither.y, minHeight, maxHeight);
vec2 cloudLayer4_Distance = vec2(startDistance, 1.0);
float cumulonimbusDistance = length(rayPosition - cameraPosition);
cumulonimbusClouds = raymarchCloud(CUMULONIMBUS_LAYER, samples, rayPosition, rayDirection, dither.x, minHeight, maxHeight, unsignedSunVec, unsignedMoonVec, sunScattering2, sunMultiScattering2, moonScattering2, moonMultiScattering2, skyScattering, lViewPosM, sampledSkyCol, cloudLayer4_Distance);
#endif
@@ -866,6 +904,31 @@ vec4 GetVolumetricClouds(
cloudPlaneDistance = cloudLayer4_Distance.x;
#endif
#if defined CUMULONIMBUS_LIGHTNING && defined CUMULONIMBUS
#ifdef CloudLayer0
if (smallCumulusClouds.a < 1.0) cloudDistance.r = smallCumulusDistance;
#endif
#ifdef CloudLayer1
if (largeCumulusClouds.a < 1.0) cloudDistance.r = largeCumulusDistance;
#endif
#if defined CloudLayer0 && defined CloudLayer1
if(cameraPosition.y < CloudLayer1_height) {
if (largeCumulusClouds.a < 1.0) cloudDistance.r = largeCumulusDistance;
if (smallCumulusClouds.a < 1.0) cloudDistance.r = smallCumulusDistance;
} else {
if (smallCumulusClouds.a < 1.0) cloudDistance.r = smallCumulusDistance;
if (largeCumulusClouds.a < 1.0) cloudDistance.r = largeCumulusDistance;
}
#endif
if (cumulonimbusClouds.a < 1.0) cloudDistance.g = cumulonimbusDistance;
if(cloudDistance.r > 15000.0) cloudDistance.r = 0.0;
if(cloudDistance.g > 15000.0) cloudDistance.g = 0.0;
#endif
#ifdef CloudLayer3
cloudColor = cirrusClouds;
#endif
@@ -908,4 +971,6 @@ vec4 GetVolumetricClouds(
return vec4(color, totalAbsorbance);
}
#endif
#endif
+38 -8
View File
@@ -39,6 +39,27 @@ iris.features.optional = ENTITY_TRANSLUCENT REVERSED_CULLING COMPUTE_SHADERS CUS
customTexture.snowTexR = texture/snowR.png
#endif
#if defined CUMULONIMBUS_LIGHTNING && defined CUMULONIMBUS
customTexture.lightningTex1 = texture/lightning/lightning1.png
customTexture.lightningTex2 = texture/lightning/lightning2.png
customTexture.lightningTex3 = texture/lightning/lightning3.png
customTexture.lightningTex4 = texture/lightning/lightning4.png
customTexture.lightningTex5 = texture/lightning/lightning5.png
customTexture.lightningTex6 = texture/lightning/lightning6.png
customTexture.lightningTex7 = texture/lightning/lightning7.png
customTexture.lightningTex8 = texture/lightning/lightning8.png
customTexture.lightningTex9 = texture/lightning/lightning9.png
customTexture.lightningTex10 = texture/lightning/lightning10.png
customTexture.lightningTex11 = texture/lightning/lightning11.png
customTexture.lightningTex12 = texture/lightning/lightning12.png
customTexture.lightningTex13 = texture/lightning/lightning13.png
customTexture.lightningTex14 = texture/lightning/lightning14.png
customTexture.lightningTex15 = texture/lightning/lightning15.png
customTexture.lightningTex16 = texture/lightning/lightning16.png
image.cloudDepthTex = cSampler1 rgba rgba32f float true true 1.0 1.0
#endif
#ifdef LPV_ENABLED
shadow.enabled = true
shadow.culling = reversed
@@ -146,7 +167,7 @@ alphaTest.gbuffers_water = false
alphaTest.gbuffers_skybasic = false
alphaTest.gbuffers_skytextured = false
sliders = ShaderSnow ShaderSnowStrength BorderFogIntensity CAVE_DETECTION ON_FIRE_DISTORT_EFFECT_STRENGTH USE_CUSTOM_SKY_GROUND_LIGHTING_COLORS DIRECTLIGHT_DIFFUSE_R DIRECTLIGHT_DIFFUSE_G DIRECTLIGHT_DIFFUSE_B INDIRECTLIGHT_DIFFUSE_R INDIRECTLIGHT_DIFFUSE_G INDIRECTLIGHT_DIFFUSE_B DIRECTLIGHT_CLOUDS_R DIRECTLIGHT_CLOUDS_G DIRECTLIGHT_CLOUDS_B INDIRECTLIGHT_CLOUDS_R INDIRECTLIGHT_CLOUDS_G INDIRECTLIGHT_CLOUDS_B DIRECTLIGHT_FOG_R DIRECTLIGHT_FOG_G DIRECTLIGHT_FOG_B INDIRECTLIGHT_FOG_R INDIRECTLIGHT_FOG_G INDIRECTLIGHT_FOG_B SKY_GROUND_R SKY_GROUND_G SKY_GROUND_B DOF_DISPERSION_MULT FLASHLIGHT_BRIGHTNESS_MULT FLASHLIGHT_BRIGHTNESS_FALLOFF_MULT FLASHLIGHT_RANGE FLASHLIGHT_SIZE FLASHLIGHT_R FLASHLIGHT_G FLASHLIGHT_B LOW_HEALTH_EFFECT_START CRITICALLY_LOW_HEALTH_EFFECT_START CloudLayer2_scale CloudLayer0_scale CloudLayer1_scale CloudLayer3_scale CloudLayer0_tallness CloudLayer1_tallness EXPOSURE_DARKENING EXPOSURE_BRIGHTENING VIGNETTE_STRENGTH CURVATURE_AMOUNT MINIMUM_WATER_ABSORBANCE CHROMATIC_ABERRATION_STRENGTH SELECT_BOX_COL_R SELECT_BOX_COL_G SELECT_BOX_COL_B LPV_VL_FOG_ILLUMINATION_BRIGHTNESS minRayMarchSteps MOTION_BLUR_STRENGTH OVERDRAW_MAX_DISTANCE DAY0_l3_coverage DAY0_l3_density DAY1_l3_coverage DAY1_l3_density DAY2_l3_coverage DAY2_l3_density DAY3_l3_coverage DAY3_l3_density DAY4_l3_coverage DAY4_l3_density DAY5_l3_coverage DAY5_l3_density DAY6_l3_coverage DAY6_l3_density DAY7_l3_coverage DAY7_l3_density DAY8_l3_coverage DAY8_l3_density DAY9_l3_coverage DAY9_l3_density DAY0_l0_coverage DAY0_l1_coverage DAY0_l2_coverage DAY0_ufog_density DAY0_l0_density DAY0_l1_density DAY0_l2_density DAY0_cfog_density DAY1_l0_coverage DAY1_l1_coverage DAY1_l2_coverage DAY1_ufog_density DAY1_l0_density DAY1_l1_density DAY1_l2_density DAY1_cfog_density DAY2_l0_coverage DAY2_l1_coverage DAY2_l2_coverage DAY2_ufog_density DAY2_l0_density DAY2_l1_density DAY2_l2_density DAY2_cfog_density DAY3_l0_coverage DAY3_l1_coverage DAY3_l2_coverage DAY3_ufog_density DAY3_l0_density DAY3_l1_density DAY3_l2_density DAY3_cfog_density DAY4_l0_coverage DAY4_l1_coverage DAY4_l2_coverage DAY4_ufog_density DAY4_l0_density DAY4_l1_density DAY4_l2_density DAY4_cfog_density DAY5_l0_coverage DAY5_l1_coverage DAY5_l2_coverage DAY5_ufog_density DAY5_l0_density DAY5_l1_density DAY5_l2_density DAY5_cfog_density DAY6_l0_coverage DAY6_l1_coverage DAY6_l2_coverage DAY6_ufog_density DAY6_l0_density DAY6_l1_density DAY6_l2_density DAY6_cfog_density DAY7_l0_coverage DAY7_l1_coverage DAY7_l2_coverage DAY7_ufog_density DAY7_l0_density DAY7_l1_density DAY7_l2_density DAY7_cfog_density DAY8_l0_coverage DAY8_l1_coverage DAY8_l2_coverage DAY8_ufog_density DAY8_l0_density DAY8_l1_density DAY8_l2_density DAY8_cfog_density DAY9_l0_coverage DAY9_l1_coverage DAY9_l2_coverage DAY9_ufog_density DAY9_l0_density DAY9_l1_density DAY9_l2_density DAY9_cfog_density sss_density_multiplier sss_absorbance_multiplier MOTION_AMOUNT TONEMAP WATER_WAVE_SPEED WATER_CAUSTICS_BRIGHTNESS WATER_CAUSTICS_POWER DEBUG_VIEW entityShadowDistanceMul HANDHELD_LIGHT_RANGE CLOUD_SHADOW_STRENGTH CloudLayer0_coverage CloudLayer0_density CloudLayer0_height CloudLayer1_coverage CloudLayer1_density CloudLayer1_height CloudLayer2_coverage CloudLayer2_density CloudLayer2_height CloudLayer3_coverage CloudLayer3_density CloudLayer3_height PLANET_GROUND_BRIGHTNESS FOG_START_HEIGHT 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 NETHER_PLUME_DENSITY END_STORM_DENSTIY LIT_PARTICLE_BRIGHTNESS UPPER_CURVE LOWER_CURVE EMISSIVE_TYPE SCALE_FACTOR ambientsss_brightness SSS_TYPE Cloud_Speed Cloud_Speed_Rain Cloud_Speed_Thunder 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 Thunder_coverage Moon_temp Haze_amount RainFog_amount Sun_temp Puddle_Size Puddle_Reflection_Strength LabSSS_Curve Emissive_Curve Emissive_Brightness AO_Strength BLOOMY_FOG WAVY_SPEED WAVY_STRENGTH BLOOM_STRENGTH shadowDistance 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 TORCHLine truncated
sliders = CUSTOM_LIGHTNING_SCALE CUSTOM_LIGHTNING_R CUSTOM_LIGHTNING_G CUSTOM_LIGHTNING_B CUSTOM_LIGHTNING_TEX CUSTOM_LIGHTNING_POS_X CUSTOM_LIGHTNING_POS_Y CUSTOM_LIGHTNING_POS_Z CUMULONIMBUS_LIGHTNING_BRIGHTNESS CUMULONIMBUS_LIGHTNING_DELAY ShaderSnow ShaderSnowStrength BorderFogIntensity CAVE_DETECTION ON_FIRE_DISTORT_EFFECT_STRENGTH USE_CUSTOM_SKY_GROUND_LIGHTING_COLORS DIRECTLIGHT_DIFFUSE_R DIRECTLIGHT_DIFFUSE_G DIRECTLIGHT_DIFFUSE_B INDIRECTLIGHT_DIFFUSE_R INDIRECTLIGHT_DIFFUSE_G INDIRECTLIGHT_DIFFUSE_B DIRECTLIGHT_CLOUDS_R DIRECTLIGHT_CLOUDS_G DIRECTLIGHT_CLOUDS_B INDIRECTLIGHT_CLOUDS_R INDIRECTLIGHT_CLOUDS_G INDIRECTLIGHT_CLOUDS_B DIRECTLIGHT_FOG_R DIRECTLIGHT_FOG_G DIRECTLIGHT_FOG_B INDIRECTLIGHT_FOG_R INDIRECTLIGHT_FOG_G INDIRECTLIGHT_FOG_B SKY_GROUND_R SKY_GROUND_G SKY_GROUND_B DOF_DISPERSION_MULT FLASHLIGHT_BRIGHTNESS_MULT FLASHLIGHT_BRIGHTNESS_FALLOFF_MULT FLASHLIGHT_RANGE FLASHLIGHT_SIZE FLASHLIGHT_R FLASHLIGHT_G FLASHLIGHT_B LOW_HEALTH_EFFECT_START CRITICALLY_LOW_HEALTH_EFFECT_START CloudLayer2_scale CloudLayer0_scale CloudLayer1_scale CloudLayer3_scale CloudLayer0_tallness CloudLayer1_tallness EXPOSURE_DARKENING EXPOSURE_BRIGHTENING VIGNETTE_STRENGTH CURVATURE_AMOUNT MINIMUM_WATER_ABSORBANCE CHROMATIC_ABERRATION_STRENGTH SELECT_BOX_COL_R SELECT_BOX_COL_G SELECT_BOX_COL_B LPV_VL_FOG_ILLUMINATION_BRIGHTNESS minRayMarchSteps MOTION_BLUR_STRENGTH OVERDRAW_MAX_DISTANCE DAY0_l3_coverage DAY0_l3_density DAY1_l3_coverage DAY1_l3_density DAY2_l3_coverage DAY2_l3_density DAY3_l3_coverage DAY3_l3_density DAY4_l3_coverage DAY4_l3_density DAY5_l3_coverage DAY5_l3_density DAY6_l3_coverage DAY6_l3_density DAY7_l3_coverage DAY7_l3_density DAY8_l3_coverage DAY8_l3_density DAY9_l3_coverage DAY9_l3_density DAY0_l0_coverage DAY0_l1_coverage DAY0_l2_coverage DAY0_ufog_density DAY0_l0_density DAY0_l1_density DAY0_l2_density DAY0_cfog_density DAY1_l0_coverage DAY1_l1_coverage DAY1_l2_coverage DAY1_ufog_density DAY1_l0_density DAY1_l1_density DAY1_l2_density DAY1_cfog_density DAY2_l0_coverage DAY2_l1_coverage DAY2_l2_coverage DAY2_ufog_density DAY2_l0_density DAY2_l1_density DAY2_l2_density DAY2_cfog_density DAY3_l0_coverage DAY3_l1_coverage DAY3_l2_coverage DAY3_ufog_density DAY3_l0_density DAY3_l1_density DAY3_l2_density DAY3_cfog_density DAY4_l0_coverage DAY4_l1_coverage DAY4_l2_coverage DAY4_ufog_density DAY4_l0_density DAY4_l1_density DAY4_l2_density DAY4_cfog_density DAY5_l0_coverage DAY5_l1_coverage DAY5_l2_coverage DAY5_ufog_density DAY5_l0_density DAY5_l1_density DAY5_l2_density DAY5_cfog_density DAY6_l0_coverage DAY6_l1_coverage DAY6_l2_coverage DAY6_ufog_density DAY6_l0_density DAY6_l1_density DAY6_l2_density DAY6_cfog_density DAY7_l0_coverage DAY7_l1_coverage DAY7_l2_coverage DAY7_ufog_density DAY7_l0_density DAY7_l1_density DAY7_l2_density DAY7_cfog_density DAY8_l0_coverage DAY8_l1_coverage DAY8_l2_coverage DAY8_ufog_density DAY8_l0_density DAY8_l1_density DAY8_l2_density DAY8_cfog_density DAY9_l0_coverage DAY9_l1_coverage DAY9_l2_coverage DAY9_ufog_density DAY9_l0_density DAY9_l1_density DAY9_l2_density DAY9_cfog_density sss_density_multiplier sss_absorbance_multiplier MOTION_AMOUNT TONEMAP WATER_WAVE_SPEED WATER_CAUSTICS_BRIGHTNESS WATER_CAUSTICS_POWER DEBUG_VIEW entityShadowDistanceMul HANDHELD_LIGHT_RANGE CLOUD_SHADOW_STRENGTH CloudLayer0_coverage CloudLayer0_density CloudLayer0_height CloudLayer1_coverage CloudLayer1_density CloudLayer1_height CloudLayer2_coverage CloudLayer2_density CloudLayer2_height CloudLayer3_coverage CloudLayer3_density CloudLayer3_height PLANET_GROUND_BRIGHTNESS FOG_START_HEIGHT 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 NETHER_PLUME_DENSITY END_STORM_DENSTIY LIT_PARTICLE_BRIGHTNESS UPPER_CURVE LOWER_CURVE EMISSIVE_TYPE SCALE_FACTOR ambientsss_brightness SSS_TYPE Cloud_Speed Cloud_Speed_Rain Cloud_Speed_Thunder 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 Thunder_coverage Moon_temp Haze_amount RainFog_amount Sun_temp Puddle_Size Puddle_Reflection_Strength LabSSS_Curve Emissive_Curve Emissive_Brightness AO_Strength BLOOMY_FOG WAVY_SPEED WAVY_STRENGTH BLOOM_STRENGTH shadowDistance Sky_Brightness fog_coefficientMieR fog_coefficientMieG fog_coefficientMieB sun_illuminance sunColLine truncated
screen.columns=2
screen = \
@@ -275,13 +296,22 @@ SHADER_VERSION_LABEL <empty> \
[CumulusClouds] [HighAltitudeClouds]
screen.CumulusClouds.columns = 2
screen.CumulusClouds = CloudLayer0 CloudLayer1 \
CloudLayer0_coverage CloudLayer1_coverage \
CloudLayer0_density CloudLayer1_density \
CloudLayer0_height CloudLayer1_height \
CloudLayer0_tallness CloudLayer1_tallness \
CloudLayer0_scale CloudLayer1_scale \
<empty> CUMULONIMBUS
screen.CumulusClouds = CloudLayer0 CloudLayer1 \
CloudLayer0_coverage CloudLayer1_coverage \
CloudLayer0_density CloudLayer1_density \
CloudLayer0_height CloudLayer1_height \
CloudLayer0_tallness CloudLayer1_tallness \
CloudLayer0_scale CloudLayer1_scale \
<empty> <empty> \
CUMULONIMBUS CUMULONIMBUS_LIGHTNING \
CUMULONIMBUS_LIGHTNING_BRIGHTNESS CUMULONIMBUS_LIGHTNING_DELAY \
[CUSTOM_LIGHTNING] <empty>
screen.CUSTOM_LIGHTNING.columns = 2
screen.CUSTOM_LIGHTNING = CUSTOM_LIGHTNING_POS CUSTOM_LIGHTNING_TEX \
CUSTOM_LIGHTNING_POS_X CUSTOM_LIGHTNING_R \
CUSTOM_LIGHTNING_POS_Y CUSTOM_LIGHTNING_G \
CUSTOM_LIGHTNING_POS_Z CUSTOM_LIGHTNING_B \
[READ_DESCRIPTION] CUSTOM_LIGHTNING_SCALE
screen.HighAltitudeClouds.columns = 2
screen.HighAltitudeClouds = CloudLayer2 CloudLayer3 \
Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 683 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 518 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB