From 589483f82efa6cbc8b3efc81eb050418d5abee90 Mon Sep 17 00:00:00 2001 From: NULL511 Date: Sun, 31 May 2026 18:49:56 -0400 Subject: [PATCH] add lpv shift --- shaders/dimensions/all_particles.fsh | 4 +- shaders/dimensions/all_translucent.fsh | 4 +- shaders/dimensions/composite1.fsh | 4 +- shaders/dimensions/composite2.fsh | 6 +-- shaders/dimensions/shadowcomp.csh | 45 +++++++++++-------- shaders/lang/en_us.lang | 3 ++ shaders/lib/diffuse_lighting.glsl | 2 +- shaders/lib/lpv_common.glsl | 10 ----- shaders/lib/lpv_render.glsl | 4 +- shaders/lib/settings.glsl | 1 + shaders/lib/voxel_buffer.glsl | 5 +++ shaders/lib/voxel_common.glsl | 33 +++++++++++--- shaders/lib/voxel_write.glsl | 9 +--- shaders/shaders.properties | 6 ++- shaders/world-1/clrwl_shadow.vsh | 2 + shaders/world-1/shadow.vsh | 6 ++- shaders/world0/clrwl_shadow.vsh | 1 + shaders/world0/shadow.vsh | 1 + .../world0_with_aether_flag/clrwl_shadow.vsh | 1 + shaders/world0_with_aether_flag/shadow.vsh | 1 + .../clrwl_shadow.vsh | 1 + .../shadow.vsh | 1 + shaders/world1/clrwl_shadow.vsh | 2 + shaders/world1/shadow.vsh | 2 + 24 files changed, 96 insertions(+), 58 deletions(-) delete mode 100644 shaders/lib/lpv_common.glsl create mode 100644 shaders/lib/voxel_buffer.glsl diff --git a/shaders/dimensions/all_particles.fsh b/shaders/dimensions/all_particles.fsh index 3cf3ea8..15ae0ec 100644 --- a/shaders/dimensions/all_particles.fsh +++ b/shaders/dimensions/all_particles.fsh @@ -94,7 +94,7 @@ uniform int heldBlockLightValue2; uniform int frameCounter; #include "/lib/hsv.glsl" - #include "/lib/lpv_common.glsl" + #include "/lib/voxel_common.glsl" #include "/lib/lpv_render.glsl" #endif @@ -526,7 +526,7 @@ float luma(vec3 color) { ///////////////////////// BLOCKLIGHT LIGHTING OR LPV LIGHTING OR FLOODFILL COLORED LIGHTING #ifdef IS_LPV_ENABLED - vec3 lpvPos = GetLpvPosition(feetPlayerPos); + vec3 lpvPos = GetVoxelPosition(feetPlayerPos); #else const vec3 lpvPos = vec3(0.0); #endif diff --git a/shaders/dimensions/all_translucent.fsh b/shaders/dimensions/all_translucent.fsh index 95d600e..dbaa7e6 100644 --- a/shaders/dimensions/all_translucent.fsh +++ b/shaders/dimensions/all_translucent.fsh @@ -141,7 +141,7 @@ uniform vec3 OVERDRAW_PREVENTION_SCALE; #ifdef IS_LPV_ENABLED #include "/lib/hsv.glsl" - #include "/lib/lpv_common.glsl" + #include "/lib/voxel_common.glsl" #include "/lib/lpv_render.glsl" #endif @@ -705,7 +705,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) } #endif - vec3 lpvPos = GetLpvPosition(feetPlayerPos) + normalOffset; + vec3 lpvPos = GetVoxelPosition(feetPlayerPos) + normalOffset; #else const vec3 lpvPos = vec3(0.0); #endif diff --git a/shaders/dimensions/composite1.fsh b/shaders/dimensions/composite1.fsh index fb9e2c4..7a8dc62 100644 --- a/shaders/dimensions/composite1.fsh +++ b/shaders/dimensions/composite1.fsh @@ -173,7 +173,7 @@ float convertHandDepth_2(in float depth, bool hand) { #ifdef IS_LPV_ENABLED #include "/lib/hsv.glsl" - #include "/lib/lpv_common.glsl" + #include "/lib/voxel_common.glsl" #include "/lib/lpv_render.glsl" #endif @@ -1190,7 +1190,7 @@ void main() { normalOffset = mix(normalOffset, texNormalOffset, (LPV_NORMAL_STRENGTH*0.01)); #endif - vec3 lpvPos = GetLpvPosition(feetPlayerPos) + normalOffset; + vec3 lpvPos = GetVoxelPosition(feetPlayerPos) + normalOffset; #else const vec3 lpvPos = vec3(0.0); #endif diff --git a/shaders/dimensions/composite2.fsh b/shaders/dimensions/composite2.fsh index 1daac11..b7837f6 100644 --- a/shaders/dimensions/composite2.fsh +++ b/shaders/dimensions/composite2.fsh @@ -127,7 +127,7 @@ float linearizeDepthFast(const in float depth, const in float near, const in flo #ifdef IS_LPV_ENABLED #include "/lib/hsv.glsl" - #include "/lib/lpv_common.glsl" + #include "/lib/voxel_common.glsl" #include "/lib/lpv_render.glsl" #endif vec4 raymarchLPV( @@ -163,10 +163,10 @@ float linearizeDepthFast(const in float depth, const in float near, const in flo LPVrayProgress = gbufferModelViewInverse[3].xyz + d*LPVrayStartPos; - vec3 lpvPos = GetLpvPosition(LPVrayProgress); + vec3 lpvPos = GetVoxelPosition(LPVrayProgress); float fadeLength = 10.0; // in blocks - vec3 cubicRadius = clamp( min(((LpvSize3-1.0) - lpvPos)/fadeLength, lpvPos/fadeLength) ,0.0,1.0); + vec3 cubicRadius = clamp( min(((VoxelSize3-1.0) - lpvPos)/fadeLength, lpvPos/fadeLength) ,0.0,1.0); float LpvFadeF = cubicRadius.x*cubicRadius.y*cubicRadius.z; if(LpvFadeF < 0.01) break; diff --git a/shaders/dimensions/shadowcomp.csh b/shaders/dimensions/shadowcomp.csh index 730c7eb..27c528e 100644 --- a/shaders/dimensions/shadowcomp.csh +++ b/shaders/dimensions/shadowcomp.csh @@ -10,24 +10,26 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 8) in; const ivec3 workGroups = ivec3(8, 8, 8); #endif +uniform int frameCounter; +uniform vec3 cameraPosition; +uniform vec3 previousCameraPosition; +uniform mat4 gbufferModelViewInverse; +uniform mat4 gbufferPreviousModelView; + #ifdef IS_LPV_ENABLED shared vec4 lpvSharedData[10*10*10]; shared uint voxelSharedData[10*10*10]; - const vec2 LpvBlockSkyFalloff = vec2(0.96, 0.96); + const float LpvBlockFalloff = 0.96; const ivec3 lpvFlatten = ivec3(1, 10, 100); - uniform int frameCounter; - uniform vec3 cameraPosition; - uniform vec3 previousCameraPosition; - #include "/lib/hsv.glsl" #include "/lib/util.glsl" #include "/lib/blocks.glsl" - #include "/lib/lpv_common.glsl" + #include "/lib/voxel_buffer.glsl" + #include "/lib/voxel_common.glsl" #include "/lib/lpv_blocks.glsl" #include "/lib/lpv_buffer.glsl" - #include "/lib/voxel_common.glsl" int sumOf(ivec3 vec) {return vec.x + vec.y + vec.z;} @@ -36,22 +38,21 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 8) in; } vec4 GetLpvValue(in ivec3 texCoord) { - if (clamp(texCoord, ivec3(0), ivec3(LpvSize) - 1) != texCoord) return vec4(0.0); + if (!InVoxelBounds(texCoord)) return vec4(0.0); vec4 lpvSample = (frameCounter % 2) == 0 ? imageLoad(imgLpv2, texCoord) : imageLoad(imgLpv1, texCoord); vec4 hsv_sky = vec4(RgbToHsv(lpvSample.rgb), lpvSample.a); - hsv_sky.zw = exp2(hsv_sky.zw * LpvBlockSkyRange) - 1.0; + hsv_sky.z = exp2(hsv_sky.z * LpvBlockRange) - 1.0; lpvSample = vec4(HsvToRgb(hsv_sky.xyz), hsv_sky.w); return lpvSample; } uint GetVoxelBlock(const in ivec3 voxelPos) { - if (clamp(voxelPos, ivec3(0), ivec3(VoxelSize3-1u)) != voxelPos) - return BLOCK_EMPTY; + if (!InVoxelBounds(voxelPos)) return BLOCK_EMPTY; return imageLoad(imgVoxelMask, voxelPos).r; } @@ -72,7 +73,7 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 8) in; if (blockId > 0 && blockId != BLOCK_EMPTY) { uvec2 blockData = imageLoad(imgBlockData, int(blockId)).rg; - mask = (blockData.g >> 24) & 0xFFFF; + mask = (blockData.g >> 24u) & 0xFFFFu; } return lpvSharedData[shared_index] * ((mask >> mask_index) & 1u); @@ -89,7 +90,7 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 8) in; vec4 sZ1 = sampleShared(fragCoord + ivec3( 0, 0, -1), 5) * m1.z; vec4 sZ2 = sampleShared(fragCoord + ivec3( 0, 0, 1), 4) * m2.z; - const vec4 avgFalloff = (1.0/6.0) * LpvBlockSkyFalloff.xxxy; + const float avgFalloff = (1.0/6.0) * LpvBlockFalloff; return (sX1 + sX2 + sY1 + sY2 + sZ1 + sZ2) * avgFalloff; } #endif @@ -100,23 +101,31 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 8) in; void main() { #ifdef IS_LPV_ENABLED uvec3 chunkPos = gl_WorkGroupID * gl_WorkGroupSize; - if (any(greaterThanEqual(chunkPos, LpvSize3))) return; + if (any(greaterThanEqual(chunkPos, VoxelSize3))) return; // Pre-populate shared-memory buffer for improved sampling performance uint i = uint(gl_LocalInvocationIndex) * 2u; if (i < 1000u) { - ivec3 imgCoordOffset = ivec3(floor(cameraPosition) - floor(previousCameraPosition)); + vec3 cameraViewDir = gbufferModelViewInverse[2].xyz; + vec3 lpvPosNow = GetVoxelOffset(cameraPosition, cameraViewDir); + + vec3 previousCameraViewDir = vec3(gbufferPreviousModelView[0].z, gbufferPreviousModelView[1].z, gbufferPreviousModelView[2].z); + vec3 lpvPosLast = GetVoxelOffset(previousCameraPosition, previousCameraViewDir); + + ivec3 imgCoordOffset = ivec3(floor(lpvPosLast) - floor(lpvPosNow)) + ivec3(floor(cameraPosition) - floor(previousCameraPosition)); + ivec3 workGroupOffset = ivec3(gl_WorkGroupID * gl_WorkGroupSize) - 1; PopulateSharedIndex(imgCoordOffset, workGroupOffset, i); PopulateSharedIndex(imgCoordOffset, workGroupOffset, i + 1u); } + memoryBarrierShared(); barrier(); // Exit early if outside LPV buffer size ivec3 imgCoord = ivec3(gl_GlobalInvocationID); - if (any(greaterThanEqual(imgCoord, LpvSize3))) return; + if (any(greaterThanEqual(imgCoord, VoxelSize3))) return; vec4 lightValue = vec4(0.0); vec3 lightColor = vec3(0.0); @@ -134,7 +143,7 @@ void main() { lightRange = lightColorRange.a * 255.0; vec4 tintColorMask = unpackUnorm4x8(blockData.g); tintColor = srgbToLinear(tintColorMask.rgb); - mixMask = (blockData.g >> 24) & 0xFFFF; + mixMask = (blockData.g >> 24u) & 0xFFFFu; } // Mix neighbor voxel light values @@ -153,7 +162,7 @@ void main() { // Convert back to linear RGB space vec4 hsv_sky = vec4(RgbToHsv(lightValue.rgb), lightValue.a); - hsv_sky.zw = log2(hsv_sky.zw + 1.0) / LpvBlockSkyRange; + hsv_sky.z = log2(hsv_sky.z + 1.0) / LpvBlockRange; lightValue = vec4(HsvToRgb(hsv_sky.xyz), hsv_sky.w); // Store final value diff --git a/shaders/lang/en_us.lang b/shaders/lang/en_us.lang index 919411f..3f3a5ad 100644 --- a/shaders/lang/en_us.lang +++ b/shaders/lang/en_us.lang @@ -161,6 +161,8 @@ screen.Ambient_light = Ambient Light option.LPV_VL_FOG_ILLUMINATION_BRIGHTNESS = Fog Light Propagation Brightness suffix.LPV_VL_FOG_ILLUMINATION_BRIGHTNESS=% option.VANILLA_LIGHTMAP_MASK = Vanilla Torch lightmap Mask + option.LPV_FRUSTUM_OFFSET = Shifting + suffix.LPV_FRUSTUM_OFFSET=% option.AO_in_sunlight = Apply AO to sunlight option.AO_Strength = AO Multiplier @@ -251,6 +253,7 @@ screen.Ambient_light = Ambient Light option.LPV_NOSHADOW_HACK.comment = Fix for Iris 1.7.0 and lower! Allows floodfill to work in Nether & End, but disables entity & dropped item lights. option.LPV_VL_FOG_ILLUMINATION.comment = Allow the colored lighting to light up the air around it. option.LPV_VL_FOG_ILLUMINATION_BRIGHTNESS.comment = Configure the brightness of lit up fog. + option.LPV_FRUSTUM_OFFSET.comment = Increases visible lighting range by shifting the lighting volume in the direction the camera is looking. ###################################################### ↓↓↓ THIS SUBMENU'S LABELS screen.Resource_Pack_Support = Materials / Resource Pack Support diff --git a/shaders/lib/diffuse_lighting.glsl b/shaders/lib/diffuse_lighting.glsl index 8a81522..f4f7345 100644 --- a/shaders/lib/diffuse_lighting.glsl +++ b/shaders/lib/diffuse_lighting.glsl @@ -46,7 +46,7 @@ vec3 doBlockLightLighting( // create a smooth falloff at the edges of the voxel volume. float fadeLength = 10.0; // in meters - vec3 cubicRadius = clamp( min(((LpvSize3-1.0) - lpvPos)/fadeLength, lpvPos/fadeLength) ,0.0,1.0); + vec3 cubicRadius = clamp( min(((VoxelSize3-1.0) - lpvPos)/fadeLength, lpvPos/fadeLength) ,0.0,1.0); float voxelRangeFalloff = cubicRadius.x*cubicRadius.y*cubicRadius.z; voxelRangeFalloff = 1.0 - pow(1.0-pow(voxelRangeFalloff,1.5),3.0); diff --git a/shaders/lib/lpv_common.glsl b/shaders/lib/lpv_common.glsl deleted file mode 100644 index 949bff3..0000000 --- a/shaders/lib/lpv_common.glsl +++ /dev/null @@ -1,10 +0,0 @@ -// How far light propagates (block, sky) -const vec2 LpvBlockSkyRange = vec2(15.0, 24.0); - -const uint LpvSize = uint(exp2(LPV_SIZE)); -const uvec3 LpvSize3 = uvec3(LpvSize); - -vec3 GetLpvPosition(const in vec3 playerPos) { - vec3 cameraOffset = fract(cameraPosition); - return playerPos + cameraOffset + LpvSize3/2u; -} diff --git a/shaders/lib/lpv_render.glsl b/shaders/lib/lpv_render.glsl index a1d4a05..38d760c 100644 --- a/shaders/lib/lpv_render.glsl +++ b/shaders/lib/lpv_render.glsl @@ -11,14 +11,14 @@ float lpvCurve(float values) { } vec4 SampleLpvLinear(const in vec3 lpvPos) { - vec3 texcoord = lpvPos / LpvSize3; + vec3 texcoord = lpvPos / VoxelSize3; vec4 lpvSample = (frameCounter % 2) == 0 ? textureLod(texLpv1, texcoord, 0) : textureLod(texLpv2, texcoord, 0); vec3 hsv = RgbToHsv(lpvSample.rgb); - hsv.z = lpvCurve(hsv.b) * LpvBlockSkyRange.x; + hsv.z = lpvCurve(hsv.b) * LpvBlockRange; lpvSample.rgb = HsvToRgb(hsv); lpvSample.rgb = clamp(lpvSample.rgb/15.0,0.0,1.0); diff --git a/shaders/lib/settings.glsl b/shaders/lib/settings.glsl index 937957e..06a10a7 100644 --- a/shaders/lib/settings.glsl +++ b/shaders/lib/settings.glsl @@ -776,6 +776,7 @@ //#define LPV_COLORED_CANDLES //#define LPV_VL_FOG_ILLUMINATION #define LPV_VL_FOG_ILLUMINATION_BRIGHTNESS 5 // [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 105 110 115 120 125 130 135 140 145 150 155 160 165 170 175 180 185 190 195 200] +#define LPV_FRUSTUM_OFFSET 25 // [0 5 10 15 20 25 30 35 40 45 50] // Fix for making nether/end work until next Iris release to fix shadow matrices //#define LPV_NOSHADOW_HACK diff --git a/shaders/lib/voxel_buffer.glsl b/shaders/lib/voxel_buffer.glsl new file mode 100644 index 0000000..028899a --- /dev/null +++ b/shaders/lib/voxel_buffer.glsl @@ -0,0 +1,5 @@ +#ifdef RENDER_SHADOW + layout(r16ui) uniform uimage3D imgVoxelMask; +#else + layout(r16ui) uniform readonly uimage3D imgVoxelMask; +#endif diff --git a/shaders/lib/voxel_common.glsl b/shaders/lib/voxel_common.glsl index 4c00eb7..0d71643 100644 --- a/shaders/lib/voxel_common.glsl +++ b/shaders/lib/voxel_common.glsl @@ -1,10 +1,29 @@ -#ifdef RENDER_SHADOW - layout(r16ui) uniform uimage3D imgVoxelMask; -#else - layout(r16ui) uniform readonly uimage3D imgVoxelMask; -#endif +#define BLOCK_EMPTY 0 const uint VoxelSize = uint(exp2(LPV_SIZE)); -const uvec3 VoxelSize3 = uvec3(VoxelSize); +const ivec3 VoxelSize3 = ivec3(VoxelSize); +const ivec3 VoxelCenter = ivec3(VoxelSize/2u); +const float VoxelShiftF = LPV_FRUSTUM_OFFSET * 0.01; -#define BLOCK_EMPTY 0 +const float LpvBlockRange = 15.0; + + +ivec3 GetVoxelCenter(const in vec3 viewDir) { + vec3 offset = viewDir * (VoxelSize * VoxelShiftF); + return VoxelCenter + ivec3(floor(offset)); +} + +vec3 GetVoxelOffset(const in vec3 cameraPos, const in vec3 playerViewDir) { + return fract(cameraPos) + GetVoxelCenter(playerViewDir); +} + +vec3 GetVoxelPosition(const in vec3 playerPos) { + vec3 viewDir = gbufferModelViewInverse[2].xyz; + return playerPos + GetVoxelOffset(cameraPosition, viewDir); +} + +bool InVoxelBounds(const in ivec3 voxelPos) { + const ivec3 voxelMin = ivec3(0); + const ivec3 voxelMax = ivec3(VoxelSize-1u); + return clamp(voxelPos, voxelMin, voxelMax) == voxelPos; +} diff --git a/shaders/lib/voxel_write.glsl b/shaders/lib/voxel_write.glsl index 06c137f..d2cf651 100644 --- a/shaders/lib/voxel_write.glsl +++ b/shaders/lib/voxel_write.glsl @@ -1,11 +1,6 @@ -ivec3 GetVoxelIndex(const in vec3 playerPos) { - vec3 cameraOffset = fract(cameraPosition); - return ivec3(floor(playerPos + cameraOffset) + VoxelSize3/2u); -} - void SetVoxelBlock(const in vec3 playerPos, const in uint blockId) { - ivec3 voxelPos = GetVoxelIndex(playerPos); - if (clamp(voxelPos, ivec3(0), ivec3(VoxelSize-1u)) != voxelPos) return; + ivec3 voxelPos = ivec3(floor(GetVoxelPosition(playerPos))); + if (!InVoxelBounds(voxelPos)) return; imageStore(imgVoxelMask, voxelPos, uvec4(blockId)); } diff --git a/shaders/shaders.properties b/shaders/shaders.properties index bd2031c..cb71d9f 100644 --- a/shaders/shaders.properties +++ b/shaders/shaders.properties @@ -163,7 +163,7 @@ alphaTest.gbuffers_beaconbeam = false alphaTest.gbuffers_armor_glint = false -sliders = DIRECT_SSS_BRIGHTNESS DIRECT_SSS_DENSITY_MULT DIRECT_SSS_ABSORBANCE_AMOUNT INDIRECT_SSS_ABSORBANCE_AMOUNT WATER_DEPTH_FREQUENCY_ALL_LIGHT MINIMUM_UNDERWATER_FOG_BRIGHTNESS WATER_DEPTH_FREQUENCY_DIRECTLIGHT WATER_DEPTH_FREQUENCY_INDIRECTLIGHT COLOR_KEY_R COLOR_KEY_G COLOR_KEY_B COLOR_KEY_RANGE COLOR_KEY_WIDTH HANDHELD_LIGHTSOURCE_FLICKER_MODE LIGHT_BLOCK_R LIGHT_BLOCK_G LIGHT_BLOCK_B CINEMATIC_BORDER_COVERAGE_VERTICAL CINEMATIC_BORDER_COVERAGE_HORIZONTAL MINOR_DAMAGE_TAKEN_EFFECT_START CRITICAL_DAMAGE_TAKEN_EFFECT_START WATER_ON_CAMERA_EFFECT_AMOUNT LOW_HEALTH_EFFECT_START CRITICALLY_LOW_HEALTH_EFFECT_START PLANET_EXIT_ALTITUDE AERIAL_PERSPECTIVE_DENSITY PATCHY_WAVE_BLEND WAVES_A_RADIUS WAVES_B_RADIUS RAIN_SNOW_BRIGHTNESS RAIN_SNOW_BLOOMY_FOG FOLIAGE_ANIMATION_AMOUNT HANDHELD_LIGHTSOURCE_BRIGHTNESS LPV_SIZE HANDHELD_LIGHTSOURCE_SSRT_SHADOWS HANDHELD_LIGHTSOURCE_R HANDHELD_LIGHTSOURCE_G HANDHELD_LIGHTSOURCE_B HANDHELD_LIGHTSOURCE_MODE HANDHELD_LIGHTSOURCE_RANGE PIXEL_ZOOM AUTO_EXPOSURE_ADJUST_RATE ENTITY_SHADOW_AMOUNT FAKE_PLANET_START_HEIGHT FAKE_PLANET_GRADIENT_LENGTH NEIGHBORHOOD_CLAMP_RADIUS_MULT_DURING_MOVEMENT FILM_GRAIN_AMOUNT VIGNETTE_AMOUNT CHROMATIC_ABERRATION_AMOUNT MOTION_BLUR_AMOUNT ENCHANT_GLINT_BRIGHTNESS UNDERWATER_BLOOMY_FOG HOT_BIOME_RAINY_PROFILE_1_UNIFORM_FOG_DENSITY HOT_BIOME_RAINY_PROFILE_1_CLUMPY_FOG_DENSITY HOT_BIOME_RAINY_PROFILE_1_FOG_COLOR_R HOT_BIOME_RAINY_PROFILE_1_FOG_COLOR_G HOT_BIOME_RAINY_PROFILE_1_FOG_COLOR_B HOT_BIOME_RAINY_PROFILE_2_UNIFORM_FOG_DENSITY HOT_BIOME_RAINY_PROFILE_2_CLUMPY_FOG_DENSITY HOT_BIOME_RAINY_PROFILE_2_FOG_COLOR_R HOT_BIOME_RAINY_PROFILE_2_FOG_COLOR_G HOT_BIOME_RAINY_PROFILE_2_FOG_COLOR_B HOT_BIOME_RAINY_PROFILE_3_UNIFORM_FOG_DENSITY HOT_BIOME_RAINY_PROFILE_3_CLUMPY_FOG_DENSITY HOT_BIOME_RAINY_PROFILE_3_FOG_COLOR_R HOT_BIOME_RAINY_PROFILE_3_FOG_COLOR_G HOT_BIOME_RAINY_PROFILE_3_FOG_COLOR_B COLD_BIOME_RAINY_PROFILE_1_UNIFORM_FOG_DENSITY COLD_BIOME_RAINY_PROFILE_1_CLUMPY_FOG_DENSITY COLD_BIOME_RAINY_PROFILE_1_FOG_COLOR_R COLD_BIOME_RAINY_PROFILE_1_FOG_COLOR_G COLD_BIOME_RAINY_PROFILE_1_FOG_COLOR_B COLD_BIOME_RAINY_PROFILE_2_UNIFORM_FOG_DENSITY COLD_BIOME_RAINY_PROFILE_2_CLUMPY_FOG_DENSITY COLD_BIOME_RAINY_PROFILE_2_FOG_COLOR_R COLD_BIOME_RAINY_PROFILE_2_FOG_COLOR_G COLD_BIOME_RAINY_PROFILE_2_FOG_COLOR_B COLD_BIOME_RAINY_PROFILE_3_UNIFORM_FOG_DENSITY COLD_BIOME_RAINY_PROFILE_3_CLUMPY_FOG_DENSITY COLD_BIOME_RAINY_PROFILE_3_FOG_COLOR_R COLD_BIOME_RAINY_PROFILE_3_FOG_COLOR_G COLD_BIOME_RAINY_PROFILE_3_FOG_COLOR_B CUSTOM_SWAMP_PROFILE_1_UNIFORM_FOG_DENSITY CUSTOM_SWAMP_PROFILE_1_CLUMPY_FOG_DENSITY CUSTOM_SWAMP_PROFILE_1_FOG_COLOR_R CUSTOM_SWAMP_PROFILE_1_FOG_COLOR_G CUSTOM_SWAMP_PROFILE_1_FOG_COLOR_B CUSTOM_JUNGLE_PROFILE_1_UNIFORM_FOG_DENSITY CUSTOM_JUNGLE_PROFILE_1_CLUMPY_FOG_DENSITY CUSTOM_JUNGLE_PROFILE_1_FOG_COLOR_R CUSTOM_JUNGLE_PROFILE_1_FOG_COLOR_G CUSTOM_JUNGLE_PROFILE_1_FOG_COLOR_B USE_CUSTOM_SWAMP_CATEGORY_PROFILE USE_CUSTOM_JUNGLE_CATEGORY_PROFILE USE_CUSTOM_HOT_BIOME_RAIN_PROFILE USE_CUSTOM_COLD_BIOME_RAIN_PROFILE DAILY_PROFILE_1_LAYER0_COVERAGE DAILY_PROFILE_1_LAYER0_DENSITY DAILY_PROFILE_1_LAYER1_COVERAGE DAILY_PROFILE_1_LAYER1_DENSITY DAILY_PROFILE_1_LAYER2_COVERAGE DAILY_PROFILE_1_LAYER2_DENSITY DAILY_PROFILE_2_LAYER0_COVERAGE DAILY_PROFILE_2_LAYER0_DENSITY DAILY_PROFILE_2_LAYER1_COVERAGE DAILY_PROFILE_2_LAYER1_DENSITY DAILY_PROFILE_2_LAYER2_COVERAGE DAILY_PROFILE_2_LAYER2_DENSITY DAILY_PROFILE_3_LAYER0_COVERAGE DAILY_PROFILE_3_LAYER0_DENSITY DAILY_PROFILE_3_LAYER1_COVERAGE DAILY_PROFILE_3_LAYER1_DENSITY DAILY_PROFILE_3_LAYER2_COVERAGE DAILY_PROFILE_3_LAYER2_DENSITY DAILY_PROFILE_4_LAYER0_COVERAGE DAILY_PROFILE_4_LAYER0_DENSITY DAILY_PROFILE_4_LAYER1_COVERAGE DAILY_PROFILE_4_LAYER1_DENSITY DAILY_PROFILE_4_LAYER2_COVERAGE DAILY_PROFILE_4_LAYER2_DENSITY DAILY_PROFILE_5_LAYER0_COVERAGE DAILY_PROFILE_5_LAYER0_DENSITY DAILY_PROFILE_5_LAYER1_COVERAGE DAILY_PROFILE_5_LAYER1_DENSITY DAILY_PROFILE_5_LAYER2_COVERAGE DAILY_PROFILE_5_LAYER2_DENSITY DAILY_PROFILE_6_LAYER0_COVERAGE DAILY_PROFILE_6_LAYER0_DENSITY DAILY_PROFILE_6_LAYER1_COVERAGE DAILY_PROFILE_6_LAYER1_DENSITY DAILY_PROFILE_6_LAYER2_COVERAGE DAILY_PROFILE_6_LAYER2_DENSITY RAINY_PROFILE_1_LAYER0_COVERAGE RAINY_PROFILE_1_LAYER0_DENSITY RAINY_PROFILE_1_LAYER1_COVERAGE RAINY_PROFILE_1_LAYER1_DENSITY RAINY_PROFILE_1_LAYER2_COVERAGE RAINY_PROFILE_1_LAYER2_DENSITY RAINY_PROFILE_2_LAYER0_COVERAGE RAINY_PROFILE_2_LAYER0_DENSITY RAINY_PROFILE_2_LAYER1_COVERAGE RAINY_PROFILE_2_LAYER1_DENSITY RAINY_PROFILE_2_LAYER2_COVERAGE RAINY_PROFILE_2_LAYER2_DENSITY RAINY_PROFILE_3_LAYER0_COVERAGE RAINY_PROFILE_3_LAYER0_DENSITY RAINY_PROFILE_3_LAYER1_COVERAGE RAINY_PROFILE_3_LAYER1_DENSITY RAINY_PROFILE_3_LAYER2_COVERAGE RAINY_PROFILE_3_LAYER2_DENSITY RAINY_PROFILE_4_LAYER0_COVERAGE RAINY_PROFILE_4_LAYER0_DENSITY RAINY_PROFILE_4_LAYER1_COVERAGE RAINY_PROFILE_4_LAYER1_DENSITY RAINY_PROFILE_4_LAYER2_COVERAGE RAINY_PROFILE_4_LAYER2_DENSITY RAINY_PROFILE_5_LAYER0_COVERAGE RAINY_PROFILE_5_LAYER0_DENSITY RAINY_PROFILE_5_LAYER1_COVERAGE RAINY_PROFILE_5_LAYER1_DENSITY RAINY_PROFILE_5_LAYER2_COVERAGE RAINY_PROFILE_5_LAYER2_DENSITY RAINY_PROFILE_6_LAYER0_COVERAGE RAINY_PROFILE_6_LAYER0_DENSITY RAINY_PROFILE_6_LAYER1_COVERAGE RAINY_PROFILE_6_LAYER1_DENSITY RAINY_PROFILE_6_LAYER2_COVERAGE RAINY_PROFILE_6_LAYER2_DENSITY USE_CUSTOM_DAILY_WEATHER_PROFILE USE_CUSTOM_DAILY_RAIN_PROFILE CLOUD_SHADOW_AMOUNT TAA_MODE PUDDLE_MODE FAKE_REFRACTION_AMOUNT FAKE_DISPERSION_AMOUNT REFRACTION_SMUDGE_AMOUNT NORMAL_MAP_MULT DEFERRED_SSR_QUALITY FORWARD_SSR_QUALITY VORTEX_LIGHT_COL_R VORTEX_LIGHT_COL_G VORTEX_LIGHT_COL_B END_LIGHTNING_COL_R END_LIGHTNING_COL_G END_LIGHTNING_COL_B END_HAZE_DENSTIY NETHER_CEILING_SMOKE_DENSITY NETHER_HAZE_DENSITY WHITE_BALANCE BLEND_FACTOR_DURING_MOVEMENT MINIMUM_OUTDOOR_LIGHT MINIMUM_INDOOR_LIGHT LIGHTLEAKFIX_MODE SCREENSPACE_DIRECT_SSS_BLENDING ON_FIRE_DISTORT_EFFECT_AMOUNT 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 CloudLayer0_tallness CloudLayer1_tallness EXPOSURE_DARKENING EXPOSURE_BRIGHTENING CURVATURE_AMOUNT MINIMUM_WATER_ABSORBANCE SELECT_BOX_COL_R SELECT_BOX_COL_G SELECT_BOX_COL_B LPV_VL_FOG_ILLUMINATION_BRIGHTNESS minRayMarchSteps OVERDRAW_MAX_DISTANCE MOTION_AMOUNT TONEMAP WATER_WAVE_SPEED WATER_CAUSTICS_BRIGHTNESS WATER_CAUSTICS_POWER DEBUG_VIEW CloudLayer0_height CloudLayer1_height CloudLayer2_height PLANET_GROUND_BRIGHTNESS FOG_START_HEIGHT WATER_WAVE_STRENGTH NETHER_PLUME_DENSITY END_STORM_DENSTIY LIT_PARTICLE_BRIGHTNESS UPPER_CURVE LOWER_CURVE EMISSIVE_TYPE SCALE_FACTOR ambientsss_brightness SSS_TYPE Cloud_Speed ORB_ColMult ORB_X ORB_Y ORB_Z ORB_R ORB_G ORB_B TOD_FOG_AMOUNT 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 Sun_temp Puddle_Size LabSSS_Curve Emissive_Curve Emissive_Brightness AO_Strength BLOOMY_FOG WAVY_SPEED 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 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 ambientOcclusionLevel 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 fog_coefficientRayleighB SHARPENING_AMOUNT 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_AMOUNT PURKINJE_AMOUNT Purkinje_R Purkinje_G Purkinje_B DoF_Adaptation_Speed Purkinje_Multiplier CROSSTALK VL_RENDERING_RESOLUTION_SCALE RAY_COUNT ROUGHNESS_TRESHOLD SUN_SPECULAR_MULT DOF_QUALITY DOF_ANAMORPHIC_RATIO AEROCHROME_PINKNESS DOF_JITTER_FOCUS JITTER_STRENGTH SHADOWS_GRADE_R MIDS_GRADE_R HIGHLIGHTS_GRADE_R SHADOWS_GRADE_G MIDS_GRADE_G HIGHLIGHTS_GRADE_G SHADOWS_GRADE_B MIDS_GRADE_B HIGHLIGHTS_GRADE_B SHADOWS_GRADE_MUL MIDS_GRADE_MUL HIGHLIGHTS_GRADE_MUL LPV_SATURATION LPV_TINT_SATURATION LPV_NORMAL_STRENGTH +sliders = DIRECT_SSS_BRIGHTNESS DIRECT_SSS_DENSITY_MULT DIRECT_SSS_ABSORBANCE_AMOUNT INDIRECT_SSS_ABSORBANCE_AMOUNT WATER_DEPTH_FREQUENCY_ALL_LIGHT MINIMUM_UNDERWATER_FOG_BRIGHTNESS WATER_DEPTH_FREQUENCY_DIRECTLIGHT WATER_DEPTH_FREQUENCY_INDIRECTLIGHT COLOR_KEY_R COLOR_KEY_G COLOR_KEY_B COLOR_KEY_RANGE COLOR_KEY_WIDTH HANDHELD_LIGHTSOURCE_FLICKER_MODE LIGHT_BLOCK_R LIGHT_BLOCK_G LIGHT_BLOCK_B CINEMATIC_BORDER_COVERAGE_VERTICAL CINEMATIC_BORDER_COVERAGE_HORIZONTAL MINOR_DAMAGE_TAKEN_EFFECT_START CRITICAL_DAMAGE_TAKEN_EFFECT_START WATER_ON_CAMERA_EFFECT_AMOUNT LOW_HEALTH_EFFECT_START CRITICALLY_LOW_HEALTH_EFFECT_START PLANET_EXIT_ALTITUDE AERIAL_PERSPECTIVE_DENSITY PATCHY_WAVE_BLEND WAVES_A_RADIUS WAVES_B_RADIUS RAIN_SNOW_BRIGHTNESS RAIN_SNOW_BLOOMY_FOG FOLIAGE_ANIMATION_AMOUNT HANDHELD_LIGHTSOURCE_BRIGHTNESS LPV_SIZE HANDHELD_LIGHTSOURCE_SSRT_SHADOWS HANDHELD_LIGHTSOURCE_R HANDHELD_LIGHTSOURCE_G HANDHELD_LIGHTSOURCE_B HANDHELD_LIGHTSOURCE_MODE HANDHELD_LIGHTSOURCE_RANGE PIXEL_ZOOM AUTO_EXPOSURE_ADJUST_RATE ENTITY_SHADOW_AMOUNT FAKE_PLANET_START_HEIGHT FAKE_PLANET_GRADIENT_LENGTH NEIGHBORHOOD_CLAMP_RADIUS_MULT_DURING_MOVEMENT FILM_GRAIN_AMOUNT VIGNETTE_AMOUNT CHROMATIC_ABERRATION_AMOUNT MOTION_BLUR_AMOUNT ENCHANT_GLINT_BRIGHTNESS UNDERWATER_BLOOMY_FOG HOT_BIOME_RAINY_PROFILE_1_UNIFORM_FOG_DENSITY HOT_BIOME_RAINY_PROFILE_1_CLUMPY_FOG_DENSITY HOT_BIOME_RAINY_PROFILE_1_FOG_COLOR_R HOT_BIOME_RAINY_PROFILE_1_FOG_COLOR_G HOT_BIOME_RAINY_PROFILE_1_FOG_COLOR_B HOT_BIOME_RAINY_PROFILE_2_UNIFORM_FOG_DENSITY HOT_BIOME_RAINY_PROFILE_2_CLUMPY_FOG_DENSITY HOT_BIOME_RAINY_PROFILE_2_FOG_COLOR_R HOT_BIOME_RAINY_PROFILE_2_FOG_COLOR_G HOT_BIOME_RAINY_PROFILE_2_FOG_COLOR_B HOT_BIOME_RAINY_PROFILE_3_UNIFORM_FOG_DENSITY HOT_BIOME_RAINY_PROFILE_3_CLUMPY_FOG_DENSITY HOT_BIOME_RAINY_PROFILE_3_FOG_COLOR_R HOT_BIOME_RAINY_PROFILE_3_FOG_COLOR_G HOT_BIOME_RAINY_PROFILE_3_FOG_COLOR_B COLD_BIOME_RAINY_PROFILE_1_UNIFORM_FOG_DENSITY COLD_BIOME_RAINY_PROFILE_1_CLUMPY_FOG_DENSITY COLD_BIOME_RAINY_PROFILE_1_FOG_COLOR_R COLD_BIOME_RAINY_PROFILE_1_FOG_COLOR_G COLD_BIOME_RAINY_PROFILE_1_FOG_COLOR_B COLD_BIOME_RAINY_PROFILE_2_UNIFORM_FOG_DENSITY COLD_BIOME_RAINY_PROFILE_2_CLUMPY_FOG_DENSITY COLD_BIOME_RAINY_PROFILE_2_FOG_COLOR_R COLD_BIOME_RAINY_PROFILE_2_FOG_COLOR_G COLD_BIOME_RAINY_PROFILE_2_FOG_COLOR_B COLD_BIOME_RAINY_PROFILE_3_UNIFORM_FOG_DENSITY COLD_BIOME_RAINY_PROFILE_3_CLUMPY_FOG_DENSITY COLD_BIOME_RAINY_PROFILE_3_FOG_COLOR_R COLD_BIOME_RAINY_PROFILE_3_FOG_COLOR_G COLD_BIOME_RAINY_PROFILE_3_FOG_COLOR_B CUSTOM_SWAMP_PROFILE_1_UNIFORM_FOG_DENSITY CUSTOM_SWAMP_PROFILE_1_CLUMPY_FOG_DENSITY CUSTOM_SWAMP_PROFILE_1_FOG_COLOR_R CUSTOM_SWAMP_PROFILE_1_FOG_COLOR_G CUSTOM_SWAMP_PROFILE_1_FOG_COLOR_B CUSTOM_JUNGLE_PROFILE_1_UNIFORM_FOG_DENSITY CUSTOM_JUNGLE_PROFILE_1_CLUMPY_FOG_DENSITY CUSTOM_JUNGLE_PROFILE_1_FOG_COLOR_R CUSTOM_JUNGLE_PROFILE_1_FOG_COLOR_G CUSTOM_JUNGLE_PROFILE_1_FOG_COLOR_B USE_CUSTOM_SWAMP_CATEGORY_PROFILE USE_CUSTOM_JUNGLE_CATEGORY_PROFILE USE_CUSTOM_HOT_BIOME_RAIN_PROFILE USE_CUSTOM_COLD_BIOME_RAIN_PROFILE DAILY_PROFILE_1_LAYER0_COVERAGE DAILY_PROFILE_1_LAYER0_DENSITY DAILY_PROFILE_1_LAYER1_COVERAGE DAILY_PROFILE_1_LAYER1_DENSITY DAILY_PROFILE_1_LAYER2_COVERAGE DAILY_PROFILE_1_LAYER2_DENSITY DAILY_PROFILE_2_LAYER0_COVERAGE DAILY_PROFILE_2_LAYER0_DENSITY DAILY_PROFILE_2_LAYER1_COVERAGE DAILY_PROFILE_2_LAYER1_DENSITY DAILY_PROFILE_2_LAYER2_COVERAGE DAILY_PROFILE_2_LAYER2_DENSITY DAILY_PROFILE_3_LAYER0_COVERAGE DAILY_PROFILE_3_LAYER0_DENSITY DAILY_PROFILE_3_LAYER1_COVERAGE DAILY_PROFILE_3_LAYER1_DENSITY DAILY_PROFILE_3_LAYER2_COVERAGE DAILY_PROFILE_3_LAYER2_DENSITY DAILY_PROFILE_4_LAYER0_COVERAGE DAILY_PROFILE_4_LAYER0_DENSITY DAILY_PROFILE_4_LAYER1_COVERAGE DAILY_PROFILE_4_LAYER1_DENSITY DAILY_PROFILE_4_LAYER2_COVERAGE DAILY_PROFILE_4_LAYER2_DENSITY DAILY_PROFILE_5_LAYER0_COVERAGE DAILY_PROFILE_5_LAYER0_DENSITY DAILY_PROFILE_5_LAYER1_COVERAGE DAILY_PROFILE_5_LAYER1_DENSITY DAILY_PROFILE_5_LAYER2_COVERAGE DAILY_PROFILE_5_LAYER2_DENSITY DAILY_PROFILE_6_LAYER0_COVERAGE DAILY_PROFILE_6_LAYER0_DENSITY DAILY_PROFILE_6_LAYER1_COVERAGE DAILY_PROFILE_6_LAYER1_DENSITY DAILY_PROFILE_6_LAYER2_COVERAGE DAILY_PROFILE_6_LAYER2_DENSITY RAINY_PROFILE_1_LAYER0_COVERAGE RAINY_PROFILE_1_LAYER0_DENSITY RAINY_PROFILE_1_LAYER1_COVERAGE RAINY_PROFILE_1_LAYER1_DENSITY RAINY_PROFILE_1_LAYER2_COVERAGE RAINY_PROFILE_1_LAYER2_DENSITY RAINY_PROFILE_2_LAYER0_COVERAGE RAINY_PROFILE_2_LAYER0_DENSITY RAINY_PROFILE_2_LAYER1_COVERAGE RAINY_PROFILE_2_LAYER1_DENSITY RAINY_PROFILE_2_LAYER2_COVERAGE RAINY_PROFILE_2_LAYER2_DENSITY RAINY_PROFILE_3_LAYER0_COVERAGE RAINY_PROFILE_3_LAYER0_DENSITY RAINY_PROFILE_3_LAYER1_COVERAGE RAINY_PROFILE_3_LAYER1_DENSITY RAINY_PROFILE_3_LAYER2_COVERAGE RAINY_PROFILE_3_LAYER2_DENSITY RAINY_PROFILE_4_LAYER0_COVERAGE RAINY_PROFILE_4_LAYER0_DENSITY RAINY_PROFILE_4_LAYER1_COVERAGE RAINY_PROFILE_4_LAYER1_DENSITY RAINY_PROFILE_4_LAYER2_COVERAGE RAINY_PROFILE_4_LAYER2_DENSITY RAINY_PROFILE_5_LAYER0_COVERAGE RAINY_PROFILE_5_LAYER0_DENSITY RAINY_PROFILE_5_LAYER1_COVERAGE RAINY_PROFILE_5_LAYER1_DENSITY RAINY_PROFILE_5_LAYER2_COVERAGE RAINY_PROFILE_5_LAYER2_DENSITY RAINY_PROFILE_6_LAYER0_COVERAGE RAINY_PROFILE_6_LAYER0_DENSITY RAINY_PROFILE_6_LAYER1_COVERAGE RAINY_PROFILE_6_LAYER1_DENSITY RAINY_PROFILE_6_LAYER2_COVERAGE RAINY_PROFILE_6_LAYER2_DENSITY USE_CUSTOM_DAILY_WEATHER_PROFILE USE_CUSTOM_DAILY_RAIN_PROFILE CLOUD_SHADOW_AMOUNT TAA_MODE PUDDLE_MODE FAKE_REFRACTION_AMOUNT FAKE_DISPERSION_AMOUNT REFRACTION_SMUDGE_AMOUNT NORMAL_MAP_MULT DEFERRED_SSR_QUALITY FORWARD_SSR_QUALITY VORTEX_LIGHT_COL_R VORTEX_LIGHT_COL_G VORTEX_LIGHT_COL_B END_LIGHTNING_COL_R END_LIGHTNING_COL_G END_LIGHTNING_COL_B END_HAZE_DENSTIY NETHER_CEILING_SMOKE_DENSITY NETHER_HAZE_DENSITY WHITE_BALANCE BLEND_FACTOR_DURING_MOVEMENT MINIMUM_OUTDOOR_LIGHT MINIMUM_INDOOR_LIGHT LIGHTLEAKFIX_MODE SCREENSPACE_DIRECT_SSS_BLENDING ON_FIRE_DISTORT_EFFECT_AMOUNT 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 CloudLayer0_tallness CloudLayer1_tallness EXPOSURE_DARKENING EXPOSURE_BRIGHTENING CURVATURE_AMOUNT MINIMUM_WATER_ABSORBANCE SELECT_BOX_COL_R SELECT_BOX_COL_G SELECT_BOX_COL_B LPV_VL_FOG_ILLUMINATION_BRIGHTNESS minRayMarchSteps OVERDRAW_MAX_DISTANCE MOTION_AMOUNT TONEMAP WATER_WAVE_SPEED WATER_CAUSTICS_BRIGHTNESS WATER_CAUSTICS_POWER DEBUG_VIEW CloudLayer0_height CloudLayer1_height CloudLayer2_height PLANET_GROUND_BRIGHTNESS FOG_START_HEIGHT WATER_WAVE_STRENGTH NETHER_PLUME_DENSITY END_STORM_DENSTIY LIT_PARTICLE_BRIGHTNESS UPPER_CURVE LOWER_CURVE EMISSIVE_TYPE SCALE_FACTOR ambientsss_brightness SSS_TYPE Cloud_Speed ORB_ColMult ORB_X ORB_Y ORB_Z ORB_R ORB_G ORB_B TOD_FOG_AMOUNT 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 Sun_temp Puddle_Size LabSSS_Curve Emissive_Curve Emissive_Brightness AO_Strength BLOOMY_FOG WAVY_SPEED 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 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 ambientOcclusionLevel 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 fog_coefficientRayleighB SHARPENING_AMOUNT 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_AMOUNT PURKINJE_AMOUNT Purkinje_R Purkinje_G Purkinje_B DoF_Adaptation_Speed Purkinje_Multiplier CROSSTALK VL_RENDERING_RESOLUTION_SCALE RAY_COUNT ROUGHNESS_TRESHOLD SUN_SPECULAR_MULT DOF_QUALITY DOF_ANAMORPHIC_RATIO AEROCHROME_PINKNESS DOF_JITTER_FOCUS JITTER_STRENGTH SHADOWS_GRADE_R MIDS_GRADE_R HIGHLIGHTS_GRADE_R SHADOWS_GRADE_G MIDS_GRADE_G HIGHLIGHTS_GRADE_G SHADOWS_GRADE_B MIDS_GRADE_B HIGHLIGHTS_GRADE_B SHADOWS_GRADE_MUL MIDS_GRADE_MUL HIGHLIGHTS_GRADE_MUL LPV_SATURATION LPV_TINT_SATURATION LPV_NORMAL_STRENGTH LPV_FRUSTUM_OFFSET screen.columns=2 screen = \ @@ -255,7 +255,9 @@ screen = \ VANILLA_LIGHTMAP_MASK LPV_NOSHADOW_HACK \ TORCH_LIGHTMAP_EMISSION_WORKAROUND [FLOODFILL_COLORS] \ DOORS_BLOCK_LIGHT TRAPDOORS_BLOCK_LIGHT \ - + \ + LPV_FRUSTUM_OFFSET + screen.FLOODFILL_COLORS.columns = 2 screen.FLOODFILL_COLORS = \ LIGHT_BLOCK_R TORCH_R \ diff --git a/shaders/world-1/clrwl_shadow.vsh b/shaders/world-1/clrwl_shadow.vsh index 3625138..0392914 100644 --- a/shaders/world-1/clrwl_shadow.vsh +++ b/shaders/world-1/clrwl_shadow.vsh @@ -20,6 +20,7 @@ Read the terms of modification and sharing before changing something below pleas #endif attribute vec3 vaPosition; + uniform mat4 gbufferModelViewInverse; uniform mat4 shadowModelViewInverse; uniform int renderStage; @@ -31,6 +32,7 @@ Read the terms of modification and sharing before changing something below pleas #include "/lib/blocks.glsl" #include "/lib/entities.glsl" + #include "/lib/voxel_buffer.glsl" #include "/lib/voxel_common.glsl" #include "/lib/voxel_write.glsl" #endif diff --git a/shaders/world-1/shadow.vsh b/shaders/world-1/shadow.vsh index 1ba5759..6affedd 100644 --- a/shaders/world-1/shadow.vsh +++ b/shaders/world-1/shadow.vsh @@ -23,17 +23,19 @@ Read the terms of modification and sharing before changing something below pleas #endif attribute vec3 vaPosition; + uniform mat4 gbufferModelViewInverse; uniform mat4 shadowModelViewInverse; - + uniform int renderStage; uniform vec3 chunkOffset; uniform vec3 cameraPosition; - uniform int currentRenderedItemId; + uniform int currentRenderedItemId; uniform int blockEntityId; uniform int entityId; #include "/lib/blocks.glsl" #include "/lib/entities.glsl" + #include "/lib/voxel_buffer.glsl" #include "/lib/voxel_common.glsl" #include "/lib/voxel_write.glsl" #endif diff --git a/shaders/world0/clrwl_shadow.vsh b/shaders/world0/clrwl_shadow.vsh index b0eeb57..ac5c7bb 100644 --- a/shaders/world0/clrwl_shadow.vsh +++ b/shaders/world0/clrwl_shadow.vsh @@ -68,6 +68,7 @@ uniform int entityId; uniform int currentRenderedItemId; uniform int renderStage; + #include "/lib/voxel_buffer.glsl" #include "/lib/voxel_common.glsl" #include "/lib/voxel_write.glsl" #endif diff --git a/shaders/world0/shadow.vsh b/shaders/world0/shadow.vsh index e0655f6..596a973 100644 --- a/shaders/world0/shadow.vsh +++ b/shaders/world0/shadow.vsh @@ -66,6 +66,7 @@ uniform int entityId; uniform int currentRenderedItemId; uniform int renderStage; + #include "/lib/voxel_buffer.glsl" #include "/lib/voxel_common.glsl" #include "/lib/voxel_write.glsl" #endif diff --git a/shaders/world0_with_aether_flag/clrwl_shadow.vsh b/shaders/world0_with_aether_flag/clrwl_shadow.vsh index 70b9eba..a7a2c2b 100644 --- a/shaders/world0_with_aether_flag/clrwl_shadow.vsh +++ b/shaders/world0_with_aether_flag/clrwl_shadow.vsh @@ -67,6 +67,7 @@ uniform int entityId; uniform int currentRenderedItemId; uniform int renderStage; + #include "/lib/voxel_buffer.glsl" #include "/lib/voxel_common.glsl" #include "/lib/voxel_write.glsl" #endif diff --git a/shaders/world0_with_aether_flag/shadow.vsh b/shaders/world0_with_aether_flag/shadow.vsh index 1eb971b..9bfa1fb 100644 --- a/shaders/world0_with_aether_flag/shadow.vsh +++ b/shaders/world0_with_aether_flag/shadow.vsh @@ -67,6 +67,7 @@ uniform int entityId; uniform int currentRenderedItemId; uniform int renderStage; + #include "/lib/voxel_buffer.glsl" #include "/lib/voxel_common.glsl" #include "/lib/voxel_write.glsl" #endif diff --git a/shaders/world0_with_twilight_forest_flag/clrwl_shadow.vsh b/shaders/world0_with_twilight_forest_flag/clrwl_shadow.vsh index 3631320..e180e76 100644 --- a/shaders/world0_with_twilight_forest_flag/clrwl_shadow.vsh +++ b/shaders/world0_with_twilight_forest_flag/clrwl_shadow.vsh @@ -66,6 +66,7 @@ uniform int entityId; uniform int currentRenderedItemId; uniform int renderStage; + #include "/lib/voxel_buffer.glsl" #include "/lib/voxel_common.glsl" #include "/lib/voxel_write.glsl" #endif diff --git a/shaders/world0_with_twilight_forest_flag/shadow.vsh b/shaders/world0_with_twilight_forest_flag/shadow.vsh index 1eb971b..9bfa1fb 100644 --- a/shaders/world0_with_twilight_forest_flag/shadow.vsh +++ b/shaders/world0_with_twilight_forest_flag/shadow.vsh @@ -67,6 +67,7 @@ uniform int entityId; uniform int currentRenderedItemId; uniform int renderStage; + #include "/lib/voxel_buffer.glsl" #include "/lib/voxel_common.glsl" #include "/lib/voxel_write.glsl" #endif diff --git a/shaders/world1/clrwl_shadow.vsh b/shaders/world1/clrwl_shadow.vsh index 7e95091..1981354 100644 --- a/shaders/world1/clrwl_shadow.vsh +++ b/shaders/world1/clrwl_shadow.vsh @@ -26,6 +26,7 @@ Read the terms of modification and sharing before changing something below pleas #endif attribute vec3 vaPosition; + uniform mat4 gbufferModelViewInverse; uniform mat4 shadowModelViewInverse; uniform int renderStage; @@ -37,6 +38,7 @@ Read the terms of modification and sharing before changing something below pleas #include "/lib/blocks.glsl" #include "/lib/entities.glsl" + #include "/lib/voxel_buffer.glsl" #include "/lib/voxel_common.glsl" #include "/lib/voxel_write.glsl" #endif diff --git a/shaders/world1/shadow.vsh b/shaders/world1/shadow.vsh index 1ba5759..d983152 100644 --- a/shaders/world1/shadow.vsh +++ b/shaders/world1/shadow.vsh @@ -23,6 +23,7 @@ Read the terms of modification and sharing before changing something below pleas #endif attribute vec3 vaPosition; + uniform mat4 gbufferModelViewInverse; uniform mat4 shadowModelViewInverse; uniform int renderStage; @@ -34,6 +35,7 @@ Read the terms of modification and sharing before changing something below pleas #include "/lib/blocks.glsl" #include "/lib/entities.glsl" + #include "/lib/voxel_buffer.glsl" #include "/lib/voxel_common.glsl" #include "/lib/voxel_write.glsl" #endif