diff --git a/shaders/dimensions/all_solid.vsh b/shaders/dimensions/all_solid.vsh index 0a9e1bd..4265db7 100644 --- a/shaders/dimensions/all_solid.vsh +++ b/shaders/dimensions/all_solid.vsh @@ -334,7 +334,7 @@ void main() { data_out.centerPosition = worldpos + at_midBlock.xyz / 64.0; - vec3 LPVpos = GetLpvPosition(data_out.centerPosition); + vec3 LPVpos = GetLpvPosition2(data_out.centerPosition); #if REPLACE_SHORT_GRASS > 0 uint blockTop = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y + 0.6, LPVpos.z)); @@ -504,7 +504,7 @@ void main() { if(length(worldpos) < maxShortGrassRange && data_out.blockID == 12) { vec3 centerPosition = worldpos + at_midBlock.xyz / 64.0; - vec3 LPVpos = GetLpvPosition(centerPosition); + vec3 LPVpos = GetLpvPosition2(centerPosition); uint blockBelow = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y - 0.6, LPVpos.z)); if(blockBelow == 85) gl_Position.z -= 10000.0; } diff --git a/shaders/dimensions/all_vanilla_emissives.vsh b/shaders/dimensions/all_vanilla_emissives.vsh index 674f806..9f23ebc 100644 --- a/shaders/dimensions/all_vanilla_emissives.vsh +++ b/shaders/dimensions/all_vanilla_emissives.vsh @@ -41,25 +41,25 @@ void main() { vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; - vec3 worldpos = mat3(gbufferModelViewInverse) * position + gbufferModelViewInverse[3].xyz; + vec3 playerPos = mat3(gbufferModelViewInverse) * position + gbufferModelViewInverse[3].xyz; #if defined PLANET_CURVATURE - float curvature = length(worldpos.xz) / (16.0*8.0); - worldpos.y -= curvature*curvature * CURVATURE_AMOUNT; + float curvature = length(playerPos.xz) / (16.0*8.0); + playerPos.y -= curvature*curvature * CURVATURE_AMOUNT; #endif - position = mat3(gbufferModelView) * worldpos + gbufferModelView[3].xyz; - - gl_Position = toClipSpace3(position); - #ifdef BEACON_BEAM - if(gl_Color.a < 1.0) gl_Position = vec4(10,10,10,0); - #endif + gl_Position = vec4(playerPos, 1.0); + #else + position = mat3(gbufferModelView) * playerPos + gbufferModelView[3].xyz; - #ifdef TAA_UPSCALING - gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w; - #endif - #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; + gl_Position = toClipSpace3(position); + + #ifdef TAA_UPSCALING + gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w; + #endif + #ifdef TAA + gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; + #endif #endif } diff --git a/shaders/dimensions/beacon.gsh b/shaders/dimensions/beacon.gsh new file mode 100644 index 0000000..99af41b --- /dev/null +++ b/shaders/dimensions/beacon.gsh @@ -0,0 +1,155 @@ +layout(triangles) in; +layout(triangle_strip, max_vertices = 3) out; + +#include "/lib/settings.glsl" +#include "/lib/res_params.glsl" + +#include "/lib/SSBOs.glsl" + +uniform vec2 texelSize; +uniform int framemod8; +uniform mat4 gbufferModelView; +uniform mat4 gbufferModelViewInverse; +#include "/lib/TAA_jitter.glsl" + + +in DATA { + vec4 color; + vec2 texcoord; +} data_in[]; + + +out DATA { + vec4 color; + vec2 texcoord; +} data_out; + +#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) +#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) +vec4 toClipSpace3(vec3 viewSpacePosition) { + return vec4(projMAD(gl_ProjectionMatrix, viewSpacePosition),-viewSpacePosition.z); +} + +uniform vec3 cameraPosition; +uniform vec3 relativeEyePosition; + +#define RENDER_SHADOW + +#include "/lib/voxel_common.glsl" + +ivec3 GetVoxelIndex(const in vec3 playerPos) { + #if !defined IS_LPV_ENABLED && !defined SHADER_GRASS + vec3 cameraOffset = fract(cameraPosition-relativeEyePosition); + #else + vec3 cameraOffset = fract(cameraPosition); + #endif + return ivec3(floor(playerPos + cameraOffset) + VoxelSize3/2u); +} + +void SetVoxelBlock(const in ivec3 voxelPos, const in uint blockId) { + if (clamp(voxelPos.y, int(0), int(VoxelSize-1u)) != voxelPos.y) return; + + // imageStore(imgQuarterVoxelMask, voxelPos / 4, uvec4(1u)); + + imageStore(imgVoxelMask, voxelPos, uvec4(blockId)); +} + +int packColor(vec3 color) { + int ri = int(round(clamp(color.r, 0.0, 1.0) * 100.0)); + int gi = int(round(clamp(color.g, 0.0, 1.0) * 100.0)); + int bi = int(round(clamp(color.b, 0.0, 1.0) * 100.0)); + + int index = (ri * 101 + gi) * 101 + bi; + return 50000 + index; +} + +vec3 UnpackColor(int packedC) { + int idx = packedC - 50000; + if (idx < 0) return vec3(-1.0); + + int b = idx % 101; + idx /= 101; + int g = idx % 101; + idx /= 101; + int r = idx % 101; + + return vec3(r / 100.0, g / 100.0, b / 100.0); +} + + +void main() { + + #if defined BEACON_FLOODFILL && defined IS_LPV_ENABLED + float h0 = gl_in[0].gl_Position.y; + float h1 = gl_in[1].gl_Position.y; + float h2 = gl_in[2].gl_Position.y; + + float yStart = min(h0, min(h1, h2)); + + bool isBottom0 = abs(h0 - yStart) < 1e-5; + bool isBottom1 = abs(h1 - yStart) < 1e-5; + bool isBottom2 = abs(h2 - yStart) < 1e-5; + + + if(int(isBottom0) + int(isBottom1) + int(isBottom2) == 1) { + int bottomIndex = isBottom0 ? 0 : (isBottom1 ? 1 : 2); + if(data_in[bottomIndex].color.a < 1.0) { + vec3 playerPos = gl_in[bottomIndex].gl_Position.xyz; + + vec3 edge1 = gl_in[1].gl_Position.xyz - gl_in[0].gl_Position.xyz; + vec3 edge2 = gl_in[2].gl_Position.xyz - gl_in[0].gl_Position.xyz; + vec3 flatNormals = normalize(cross(edge1, edge2)); + + if(flatNormals.x > 0.5) { + playerPos.y += 0.5; + + ivec3 voxelPos = GetVoxelIndex(playerPos); + + if (clamp(voxelPos.xz, ivec2(0), ivec2(VoxelSize-1u)) == voxelPos.xz) { + float yEnd = max(h0, max(h1, h2)); + int blocks = int(yEnd - yStart - 0.5); + vec4 vcolor = data_in[bottomIndex].color; + vec3 color = vcolor.rgb * vcolor.rgb; + + int j; + for (j = 0; j < blocks; j++) { + SetVoxelBlock(voxelPos, packColor(color)); + voxelPos.y += 1; + if(voxelPos.y > int(VoxelSize) - 1) break; + } + } + } + } + } + #endif + + int i; + for (i = 0; i < 3; i++) { + vec4 vertex = gl_in[i].gl_Position; + + data_out.color = data_in[i].color; + + data_out.texcoord = data_in[i].texcoord; + + gl_Position = vertex; + + vertex.rgb = mat3(gbufferModelView) * vertex.rgb + gbufferModelView[3].xyz; + + gl_Position = toClipSpace3(vertex.rgb); + + + if(data_in[i].color.a < 1.0) gl_Position = vec4(10,10,10,0); + + #ifdef TAA_UPSCALING + gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w; + #endif + #ifdef TAA + gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; + #endif + + + EmitVertex(); + } + EndPrimitive(); + +} \ No newline at end of file diff --git a/shaders/dimensions/final.fsh b/shaders/dimensions/final.fsh index 16e1564..6141cc8 100644 --- a/shaders/dimensions/final.fsh +++ b/shaders/dimensions/final.fsh @@ -318,37 +318,37 @@ void main() { #endif #if defined SHADER_GRASS_SETTING && MC_VERSION >= 260200 && defined IEXT_ENABLED && IRIS_VERSION <= 11102 - const float textSize2 = 4.0; - beginText(ivec2(gl_FragCoord.xy/textSize2), ivec2(0.05*viewWidth/textSize2, 0.75*viewHeight/textSize2)); - text.fgCol = vec4(1.0, 0.0, 0.0, 1.0); - printString((_S, _h, _a, _d, _e, _r, _space, _G, _r, _a, _s, _s, _space, _i, _s, _space, _b, _r, _o, _k, _e, _n, _space, _o, _n, _space, _2, _6, _dot, _2, _space, _o, _r, _space, _h, _i, _g, _h, _e, _r, _exclm)); - printLine(); - printString((_D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _exclm)); - endText(gl_FragColor.rgb); + const float textSize2 = 4.0; + beginText(ivec2(gl_FragCoord.xy/textSize2), ivec2(0.05*viewWidth/textSize2, 0.75*viewHeight/textSize2)); + text.fgCol = vec4(1.0, 0.0, 0.0, 1.0); + printString((_S, _h, _a, _d, _e, _r, _space, _G, _r, _a, _s, _s, _space, _i, _s, _space, _b, _r, _o, _k, _e, _n, _space, _o, _n, _space, _2, _6, _dot, _2, _space, _o, _r, _space, _h, _i, _g, _h, _e, _r, _exclm)); + printLine(); + printString((_D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _exclm)); + endText(gl_FragColor.rgb); #endif #if MC_VERSION >= 260200 && !defined IEXT_ENABLED && IRIS_VERSION <= 11102 - const float textSize2 = 4.0; - beginText(ivec2(gl_FragCoord.xy/textSize2), ivec2(0.05*viewWidth/textSize2, 0.75*viewHeight/textSize2)); - text.fgCol = vec4(1.0, 0.0, 0.0, 1.0); - printString((_T, _h, _e, _space, _i, _n, _v, _i, _s, _i, _b, _l, _e, _space, _t, _e, _r, _r, _a, _i, _n, _space, _i, _s, _space, _a, _n, _space, _I, _r, _i, _s, _space, _b, _u, _g, _exclm)); - printLine(); - printLine(); - printString((_I, _n, _s, _t, _a, _l, _l, _space, _m, _y, _space)); - text.fgCol = vec4(0.0, 1.0, 0.0, 1.0); - printString((_I, _r, _i, _s, _space, _E, _x, _t, _e, _n, _s, _i, _o, _n)); - text.fgCol = vec4(1.0, 0.0, 0.0, 1.0); - printString((_space, _m, _o, _d, _space, _t, _o, _space, _f, _i, _x, _space, _i, _t, _exclm)); - endText(gl_FragColor.rgb); + const float textSize2 = 4.0; + beginText(ivec2(gl_FragCoord.xy/textSize2), ivec2(0.05*viewWidth/textSize2, 0.75*viewHeight/textSize2)); + text.fgCol = vec4(1.0, 0.0, 0.0, 1.0); + printString((_T, _h, _e, _space, _i, _n, _v, _i, _s, _i, _b, _l, _e, _space, _t, _e, _r, _r, _a, _i, _n, _space, _i, _s, _space, _a, _n, _space, _I, _r, _i, _s, _space, _b, _u, _g, _exclm)); + printLine(); + printLine(); + printString((_I, _n, _s, _t, _a, _l, _l, _space, _m, _y, _space)); + text.fgCol = vec4(0.0, 1.0, 0.0, 1.0); + printString((_I, _r, _i, _s, _space, _E, _x, _t, _e, _n, _s, _i, _o, _n)); + text.fgCol = vec4(1.0, 0.0, 0.0, 1.0); + printString((_space, _m, _o, _d, _space, _t, _o, _space, _f, _i, _x, _space, _i, _t, _exclm)); + endText(gl_FragColor.rgb); #endif -#if defined SHADER_GRASS_SETTING && defined CREATE_AERONAUTICS - const float textSize3 = 4.0; - beginText(ivec2(gl_FragCoord.xy/textSize3), ivec2(0.05*viewWidth/textSize3, 0.75*viewHeight/textSize3)); - text.fgCol = vec4(1.0, 0.0, 0.0, 1.0); - printString((_S, _h, _a, _d, _e, _r, _space, _G, _r, _a, _s, _s, _space, _i, _s, _space, _b, _r, _o, _k, _e, _n, _space, _b, _y, _space, _C, _r, _e, _a, _t, _e, _space, _A, _e, _r, _o, _n, _a, _u, _t, _i, _c, _s, _exclm)); - printLine(); - printString((_D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _exclm)); - endText(gl_FragColor.rgb); -#endif + #if defined SHADER_GRASS_SETTING && defined CREATE_AERONAUTICS + const float textSize3 = 4.0; + beginText(ivec2(gl_FragCoord.xy/textSize3), ivec2(0.05*viewWidth/textSize3, 0.75*viewHeight/textSize3)); + text.fgCol = vec4(1.0, 0.0, 0.0, 1.0); + printString((_S, _h, _a, _d, _e, _r, _space, _G, _r, _a, _s, _s, _space, _i, _s, _space, _b, _r, _o, _k, _e, _n, _space, _b, _y, _space, _C, _r, _e, _a, _t, _e, _space, _A, _e, _r, _o, _n, _a, _u, _t, _i, _c, _s, _exclm)); + printLine(); + printString((_D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _exclm)); + endText(gl_FragColor.rgb); + #endif } diff --git a/shaders/dimensions/prepare.csh b/shaders/dimensions/prepare.csh index a913ae8..7c2cbc4 100644 --- a/shaders/dimensions/prepare.csh +++ b/shaders/dimensions/prepare.csh @@ -3,6 +3,8 @@ layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in; const ivec3 workGroups = ivec3(1, 1, 1); +uniform vec3 previousCameraPosition; + #include "/lib/util.glsl" uniform vec3 cameraPosition; uniform vec3 relativeEyePosition; @@ -75,7 +77,7 @@ void main() { #else vec3 rayStart = vec3(-relativeEyePosition); #endif - vec3 LPVpos = GetLpvPosition(rayStart); + vec3 LPVpos = GetLpvPosition2(rayStart); uint BlockID1 = GetVoxelBlock(ivec3(LPVpos)); uint BlockID2 = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y - 0.5*playerTallness, LPVpos.z)); uint BlockID3 = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y - playerTallness, LPVpos.z)); diff --git a/shaders/dimensions/setup.csh b/shaders/dimensions/setup.csh index f4a0a46..b089f4a 100644 --- a/shaders/dimensions/setup.csh +++ b/shaders/dimensions/setup.csh @@ -117,8 +117,8 @@ void main() { } if (blockId == BLOCK_BEACON || blockId == ITEM_BEACON) { - lightColor = vec3(1.0); - lightRange = 15.0; + lightColor = vec3(0.7, 0.85, 1.0); + lightRange = 10.0; } if (blockId == BLOCK_BREWING_STAND) { diff --git a/shaders/dimensions/shadowcomp.csh b/shaders/dimensions/shadowcomp.csh index b7960c2..24ccf78 100644 --- a/shaders/dimensions/shadowcomp.csh +++ b/shaders/dimensions/shadowcomp.csh @@ -56,6 +56,10 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 8) in; uint blockId = imageLoad(imgVoxelMask, voxelPos).r; + #ifdef BEACON_FLOODFILL + if(blockId >= 50000u) return blockId; + #endif + blockId = blockId % 2000u; #if IRIS_VERSION < 11004 @@ -79,7 +83,7 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 8) in; uint mask = 0xFFFF; uint blockId = voxelSharedData[shared_index]; - if (blockId > 0 && blockId != BLOCK_EMPTY) { + if (blockId > 0 && blockId < 2048) { uvec2 blockData = imageLoad(imgBlockData, int(blockId)).rg; mask = (blockData.g >> 24) & 0xFFFF; } @@ -103,6 +107,17 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 8) in; } #endif +vec3 UnpackColor(uint packedC) { + int idx = int(packedC) - 50000; + + int b = idx % 101; + idx /= 101; + int g = idx % 101; + idx /= 101; + int r = idx % 101; + + return vec3(r / 100.0, g / 100.0, b / 100.0); +} ////////////////////////////// VOID MAIN ////////////////////////////// @@ -136,7 +151,7 @@ void main() { // Decode light data for current voxel uint blockId = voxelSharedData[getSharedIndex(ivec3(gl_LocalInvocationID) + 1)]; - if (blockId > 0u) { + if (blockId > 0u && blockId < 2048u) { uvec2 blockData = imageLoad(imgBlockData, int(blockId)).rg; vec4 lightColorRange = unpackUnorm4x8(blockData.r); lightColor = srgbToLinear(lightColorRange.rgb); @@ -145,6 +160,15 @@ void main() { tintColor = srgbToLinear(tintColorMask.rgb); mixMask = (blockData.g >> 24) & 0xFFFF; } + #ifdef BEACON_FLOODFILL + else if(blockId >= 50000u) { + lightColor = BEACON_FLOODFILL_BRIGHTNESS * 17.0 * srgbToLinear(UnpackColor(blockId)); + + lightRange = 0.0425 * 255.0; + tintColor = vec3(1.0); + mixMask = 0xFFFF; + } + #endif // Mix neighbor voxel light values if (any(greaterThan(tintColor, vec3(0.0)))) { @@ -156,7 +180,12 @@ void main() { // Add light for current voxel if (lightRange > 0.0) { vec3 hsv = RgbToHsv(lightColor); - hsv.z = exp2(lightRange) - 1.0; + #ifdef BEACON_FLOODFILL + if(blockId < 50000u) + #endif + { + hsv.z = exp2(lightRange) - 1.0; + } lightValue.rgb += HsvToRgb(hsv); } diff --git a/shaders/lang/en_us.lang b/shaders/lang/en_us.lang index ac87afb..95c907b 100644 --- a/shaders/lang/en_us.lang +++ b/shaders/lang/en_us.lang @@ -1,6 +1,6 @@ option.SHADER_VERSION_LABEL = §d§lECLIPSE§r - A Bliss Edit prefix.SHADER_VERSION_LABEL = V - value.SHADER_VERSION_LABEL.482 = 8.3.4 + value.SHADER_VERSION_LABEL.482 = 8.4.0 iris_extension.keybind.key0.name=Flashlight @@ -260,6 +260,11 @@ screen.Direct_Light = Direct Light value.LPV_HANDHELD_SHADOWS_QUALITY.1 = High option.HANDHELD_LIGHT_REFLECTIONS = Handheld Lights in Reflections suffix.HANDHELD_LIGHT_REFLECTIONS=% + option.BEACON_FLOODFILL = Beacon Beam Floodfill + option.BEACON_FLOODFILL.comment = Whether Beacon Beams should emit colored lighting. §aPERFORMANCE COST:§r Low + option.BEACON_FLOODFILL_BRIGHTNESS = Beacon Beam Floodfill Brightness + suffix.BEACON_FLOODFILL_BRIGHTNESS=% + screen.Ambient_light = Ambient Light diff --git a/shaders/lang/zh_cn.lang b/shaders/lang/zh_cn.lang index 67fbc32..e3ffe99 100644 --- a/shaders/lang/zh_cn.lang +++ b/shaders/lang/zh_cn.lang @@ -1,6 +1,6 @@ option.SHADER_VERSION_LABEL = §d§lECLIPSE§r - Bliss 编辑版 prefix.SHADER_VERSION_LABEL = 版本 - value.SHADER_VERSION_LABEL.482 = 8.3.4 + value.SHADER_VERSION_LABEL.482 = 8.4.0 # 如果你是来翻译的,这不是玩笑,这些选项的功能正如其名 profile.POTATO=§4土豆 (极低配置) diff --git a/shaders/lib/lpv_common.glsl b/shaders/lib/lpv_common.glsl index ea0ead7..686d6c0 100644 --- a/shaders/lib/lpv_common.glsl +++ b/shaders/lib/lpv_common.glsl @@ -10,6 +10,11 @@ const vec2 LpvBlockSkyRange = vec2(15.0, 24.0); #endif vec3 GetLpvPosition(const in vec3 playerPos) { + vec3 cameraOffset = cameraPosition - floor(previousCameraPosition); + return playerPos + cameraOffset + LpvSize3/2u; +} + +vec3 GetLpvPosition2(const in vec3 playerPos) { #if !defined IS_LPV_ENABLED && !defined SHADER_GRASS vec3 cameraOffset = fract(cameraPosition-relativeEyePosition); #else diff --git a/shaders/lib/lpv_render.glsl b/shaders/lib/lpv_render.glsl index a1d4a05..312a3e6 100644 --- a/shaders/lib/lpv_render.glsl +++ b/shaders/lib/lpv_render.glsl @@ -14,8 +14,8 @@ vec4 SampleLpvLinear(const in vec3 lpvPos) { vec3 texcoord = lpvPos / LpvSize3; vec4 lpvSample = (frameCounter % 2) == 0 - ? textureLod(texLpv1, texcoord, 0) - : textureLod(texLpv2, texcoord, 0); + ? textureLod(texLpv2, texcoord, 0) + : textureLod(texLpv1, texcoord, 0); vec3 hsv = RgbToHsv(lpvSample.rgb); hsv.z = lpvCurve(hsv.b) * LpvBlockSkyRange.x; diff --git a/shaders/lib/settings.glsl b/shaders/lib/settings.glsl index 84eecf7..8d039e3 100644 --- a/shaders/lib/settings.glsl +++ b/shaders/lib/settings.glsl @@ -1122,6 +1122,8 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631) #define LPV_NORMAL_STRENGTH 50 // [0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100] #define LPV_NORMAL_OFFSET #define LPV_ENTITY_LIGHTS +#define BEACON_FLOODFILL +#define BEACON_FLOODFILL_BRIGHTNESS 100 // [1 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 LPV_REDSTONE_LIGHTS //#define LPV_COLORED_CANDLES #define LPV_VL_FOG_ILLUMINATION diff --git a/shaders/lib/voxel_common.glsl b/shaders/lib/voxel_common.glsl index 184d92f..9ff598c 100644 --- a/shaders/lib/voxel_common.glsl +++ b/shaders/lib/voxel_common.glsl @@ -1,12 +1,20 @@ #ifdef RENDER_SHADOW - layout(r16ui) uniform uimage3D imgVoxelMask; + #if defined BEACON_FLOODFILL && defined IS_LPV_ENABLED + layout(r32ui) uniform uimage3D imgVoxelMask; + #else + layout(r16ui) uniform uimage3D imgVoxelMask; + #endif // layout(r8ui) uniform uimage3D imgQuarterVoxelMask; // // layout(std430, binding = 5) buffer voxelSSBO { // vec4[6] voxelData[]; // }; #else - layout(r16ui) uniform readonly uimage3D imgVoxelMask; + #if defined BEACON_FLOODFILL && defined IS_LPV_ENABLED + layout(r32ui) uniform readonly uimage3D imgVoxelMask; + #else + layout(r16ui) uniform readonly uimage3D imgVoxelMask; + #endif // layout(r8ui) uniform readonly uimage3D imgQuarterVoxelMask; // // layout(std430, binding = 5) readonly buffer voxelSSBO { diff --git a/shaders/shaders.properties b/shaders/shaders.properties index 4ea6472..b4b41b8 100644 --- a/shaders/shaders.properties +++ b/shaders/shaders.properties @@ -272,7 +272,7 @@ alphaTest.gbuffers_beaconbeam = off alphaTest.gbuffers_armor_glint = off alphaTest.gbuffers_damagedblock = off -sliders = HANDHELD_LIGHT_REFLECTIONS PHOTONICS_MAX_SAMPLES PHOTONICS_MAX_LIGHTS PHOTONICS_ALPHA_MODE PATCHY_WAVE_BLEND WAVES_A_RADIUS WAVES_B_RADIUS PHOTONICS_INDIRECT_BRIGHTNESS TEXTURE_RESOLUTION PALE_GARDEN_UNIFORM_DENSITY PALE_GARDEN_CLOUDY_DENSITY PALE_GARDEN_R PALE_GARDEN_G PALE_GARDEN_B GTAO_SLICES RAIN_BRIGHTNESS RAIN_MODE UNDERWATER_BLOOMY_FOG ENCHANT_GLINT_BRIGHTNESS EMISSIVE_TRIMS_STRENGTH RAY_STEPS FISHEYE_STRENGTH SCREENSPACE_CONTACT_SHADOWS PIXELIZATION_STRENGTH MAX_COLORS_PER_CHANNEL RAINBOW_SELECT_BOX CLOUD_SAMPLES AmbientLightThunder_R AmbientLightThunder_G AmbientLightThunder_B GRASS_RANDOMNESS GRASS_WAVY_STRENGTH GRASS_RANGE GRASS_QUALITY GRASS_DENSITY REPLACE_SHORT_GRASS GRASS_THICKNESS_FALLOFF SHORT_GRASS_HEIGHT BASE_GRASS_HEIGHT GRASS_BASE_THICKNESS FILM_GRAIN_STRENGTH PUDDLE_MODE FLASHLIGHT_SHADOWS_STRENGTH LPV_HANDHELD_SHADOWS_STRENGTH AURORA_R AURORA_G AURORA_B AURORA_LOCATION AURORA_MOON AURORA_BRIGHTNESS AURORA_CHANCE WATER_SIM_STRENGTH WATER_SIM_FRAMERATE WATER_SIM_SCALE WATER_SIM_DISTANCE dayStartTick nightStartTick daySpeed nightSpeed FAKE_REFRACTION_AMOUNT FAKE_DISPERSION_AMOUNT REFRACTION_SMUDGE_AMOUNT NORMAL_MAP_MULT DEFERRED_SSR_QUALITY FORWARD_SSR_QUALITY RAINBOW_TIME RAINBOW RAINBOW_DISTANCE RAINBOW_BRIGHTNESS 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 Max_Filter_Depth_END Min_Shadow_Filter_Radius_END MOON_TIME_OFFSET EARTH_ROTATION_TILT CUSTOM_SHADOWS_QUALITY MOON_LATITUDE MOON_SIZE SUN_SIZE MONTH_LENGTH LIGHTNING_SHADOWS WHITE_BALANCE STARS_BRIGHTNESS STARS_AMOUNT AmbientLightEnd_R AmbientLightEnd_G AmbientLightEnd_B CloudLayer0_distance CloudLayer1_distance CloudLayer2_distance CloudLayer3_distance BLEND_FACTOR_DURING_MOVEMENT CloudLayer0_detail CloudLayer1_detail MIN_LIGHT_AMOUNT_INSIDE CUMULONIMBUS_FADE_TIME CUMULONIMBUS NOISE_RESOLUTION NOISE_INTENSITY NOISE_DROPOFF WAVE_DETAIL DH_CHUNK_FADING CLOUD_MOVEMENT_TYPE LIGHTLEAKFIX_MODE EMISSIVE_ORES_STRENGTH RIPPLE_STRENGTH RIPPLE_INTENSITY 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_AMOUNT 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_SETTING SCALE_FACTOR ambientsss_brightness SSS_TYPE_SETTING 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 AmbientLightRain_R AmbientLightRain_G AmbientLightRain_B AmbientLight_R AmbientLight_G AmbientLight_B Rain_coverage Thunder_coverage Moon_temp Haze_amount RainFog_amount Sun_temp Puddle_Size Puddle_Reflection_Sharpness 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 TORCH_G TORCH_B TORCH_AMOUNT shadowMapResolution sunPathRotation BLEND_FACTOR VL_SAMPLES Exposure_Speed POM_DEPTH MAX_ITERATIONS MAX_DIST ambientOcclusionLevel SEA_LEVEL moon_illuminance moonColorR moonColorG moonColorB fog_coefficientRayleighR fog_coefficientRayleighG SATURATION Manual_exposure_value focal fstop 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 DoF_Adaptation_Speed Purkinje_Multiplier CROSSTALK VL_RENDER_SCALE BLOOM_QUALITY VL_RENDER_SCALE RAY_COUNT STEPS STEP_LENGTH cloud_LevelOfDetail cloud_ShadowLevelOfDetail cloud_LevelOfDetailLQ cloud_ShadowLevelOfDetailLQ minRayMarchSteps maxRayMarchSteps minRayMarchStepsLQ maxRayMarchStepsLQ fbmAmount fbmPower1 fbmPower2 ROUGHNESS_THRESHOLD SUN_SPECULAR_MULT reflection_quality 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 = BEACON_FLOODFILL_BRIGHTNESS HANDHELD_LIGHT_REFLECTIONS PHOTONICS_MAX_SAMPLES PHOTONICS_MAX_LIGHTS PHOTONICS_ALPHA_MODE PATCHY_WAVE_BLEND WAVES_A_RADIUS WAVES_B_RADIUS PHOTONICS_INDIRECT_BRIGHTNESS TEXTURE_RESOLUTION PALE_GARDEN_UNIFORM_DENSITY PALE_GARDEN_CLOUDY_DENSITY PALE_GARDEN_R PALE_GARDEN_G PALE_GARDEN_B GTAO_SLICES RAIN_BRIGHTNESS RAIN_MODE UNDERWATER_BLOOMY_FOG ENCHANT_GLINT_BRIGHTNESS EMISSIVE_TRIMS_STRENGTH RAY_STEPS FISHEYE_STRENGTH SCREENSPACE_CONTACT_SHADOWS PIXELIZATION_STRENGTH MAX_COLORS_PER_CHANNEL RAINBOW_SELECT_BOX CLOUD_SAMPLES AmbientLightThunder_R AmbientLightThunder_G AmbientLightThunder_B GRASS_RANDOMNESS GRASS_WAVY_STRENGTH GRASS_RANGE GRASS_QUALITY GRASS_DENSITY REPLACE_SHORT_GRASS GRASS_THICKNESS_FALLOFF SHORT_GRASS_HEIGHT BASE_GRASS_HEIGHT GRASS_BASE_THICKNESS FILM_GRAIN_STRENGTH PUDDLE_MODE FLASHLIGHT_SHADOWS_STRENGTH LPV_HANDHELD_SHADOWS_STRENGTH AURORA_R AURORA_G AURORA_B AURORA_LOCATION AURORA_MOON AURORA_BRIGHTNESS AURORA_CHANCE WATER_SIM_STRENGTH WATER_SIM_FRAMERATE WATER_SIM_SCALE WATER_SIM_DISTANCE dayStartTick nightStartTick daySpeed nightSpeed FAKE_REFRACTION_AMOUNT FAKE_DISPERSION_AMOUNT REFRACTION_SMUDGE_AMOUNT NORMAL_MAP_MULT DEFERRED_SSR_QUALITY FORWARD_SSR_QUALITY RAINBOW_TIME RAINBOW RAINBOW_DISTANCE RAINBOW_BRIGHTNESS 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 Max_Filter_Depth_END Min_Shadow_Filter_Radius_END MOON_TIME_OFFSET EARTH_ROTATION_TILT CUSTOM_SHADOWS_QUALITY MOON_LATITUDE MOON_SIZE SUN_SIZE MONTH_LENGTH LIGHTNING_SHADOWS WHITE_BALANCE STARS_BRIGHTNESS STARS_AMOUNT AmbientLightEnd_R AmbientLightEnd_G AmbientLightEnd_B CloudLayer0_distance CloudLayer1_distance CloudLayer2_distance CloudLayer3_distance BLEND_FACTOR_DURING_MOVEMENT CloudLayer0_detail CloudLayer1_detail MIN_LIGHT_AMOUNT_INSIDE CUMULONIMBUS_FADE_TIME CUMULONIMBUS NOISE_RESOLUTION NOISE_INTENSITY NOISE_DROPOFF WAVE_DETAIL DH_CHUNK_FADING CLOUD_MOVEMENT_TYPE LIGHTLEAKFIX_MODE EMISSIVE_ORES_STRENGTH RIPPLE_STRENGTH RIPPLE_INTENSITY 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_AMOUNT 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_SETTING SCALE_FACTOR ambientsss_brightness SSS_TYPE_SETTING 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 AmbientLightRain_R AmbientLightRain_G AmbientLightRain_B AmbientLight_R AmbientLight_G AmbientLight_B Rain_coverage Thunder_coverage Moon_temp Haze_amount RainFog_amount Sun_temp Puddle_Size Puddle_Reflection_Sharpness 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 TORCH_G TORCH_B TORCH_AMOUNT shadowMapResolution sunPathRotation BLEND_FACTOR VL_SAMPLES Exposure_Speed POM_DEPTH MAX_ITERATIONS MAX_DIST ambientOcclusionLevel SEA_LEVEL moon_illuminance moonColorR moonColorG moonColorB fog_coefficientRayleighR fog_coefficientRayleighG SATURATION Manual_exposure_value focal fstop 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 DoF_Adaptation_Speed Purkinje_Multiplier CROSSTALK VL_RENDER_SCALE BLOOM_QUALITY VL_RENDER_SCALE RAY_COUNT STEPS STEP_LENGTH cloud_LevelOfDetail cloud_ShadowLevelOfDetail cloud_LevelOfDetailLQ cloud_ShadowLevelOfDetailLQ minRayMarchSteps maxRayMarchSteps minRayMarchStepsLQ maxRayMarchStepsLQ fbmAmount fbmPower1 fbmPower2 ROUGHNESS_THRESHOLD SUN_SPECULAR_MULT reflection_quality 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 screen.columns=2 screen = \ @@ -374,6 +374,7 @@ SHADER_VERSION_LABEL \ LPV_SATURATION LPV_COLORED_CANDLES \ LPV_TINT_SATURATION LPV_REDSTONE_LIGHTS \ LPV_NORMAL_STRENGTH LPV_ENTITY_LIGHTS \ + BEACON_FLOODFILL BEACON_FLOODFILL_BRIGHTNESS \ LPV_NOSHADOW_HACK \ LPV_VL_FOG_ILLUMINATION LPV_VL_FOG_ILLUMINATION_BRIGHTNESS \ LPV_VL_FOG_ILLUMINATION_HANDHELD_WATER \ @@ -1034,15 +1035,27 @@ uniform.int.dhVoxyRenderDistance = dhRenderDistance image.imgBlockData = texBlockData RG_INTEGER RG32UI UNSIGNED_INT false false 2048 #if LPV_SIZE == 8 && (defined LPV_ENABLED || (defined SHADER_GRASS && (defined GRASS_DETECT_FALLOFF || defined GRASS_DETECT_INV_FALLOFF || REPLACE_SHORT_GRASS > 0))) - image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 256 256 256 + #if defined BEACON_FLOODFILL && defined LPV_ENABLED + image.imgVoxelMask = none RED_INTEGER R32UI UNSIGNED_INT true false 256 256 256 + #else + image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 256 256 256 + #endif image.imgLpv1 = texLpv1 RGB RGBA8 UNSIGNED_BYTE false false 256 256 256 image.imgLpv2 = texLpv2 RGB RGBA8 UNSIGNED_BYTE false false 256 256 256 #elif LPV_SIZE == 7 && (defined LPV_ENABLED || (defined SHADER_GRASS && (defined GRASS_DETECT_FALLOFF || defined GRASS_DETECT_INV_FALLOFF || REPLACE_SHORT_GRASS > 0))) - image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 128 128 128 + #if defined BEACON_FLOODFILL && defined LPV_ENABLED + image.imgVoxelMask = none RED_INTEGER R32UI UNSIGNED_INT true false 128 128 128 + #else + image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 128 128 128 + #endif image.imgLpv1 = texLpv1 RGB RGBA8 UNSIGNED_BYTE false false 128 128 128 image.imgLpv2 = texLpv2 RGB RGBA8 UNSIGNED_BYTE false false 128 128 128 #elif LPV_SIZE == 6 && (defined LPV_ENABLED || (defined SHADER_GRASS && (defined GRASS_DETECT_FALLOFF || defined GRASS_DETECT_INV_FALLOFF || REPLACE_SHORT_GRASS > 0))) - image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 64 64 64 + #if defined BEACON_FLOODFILL && defined LPV_ENABLED + image.imgVoxelMask = none RED_INTEGER R32UI UNSIGNED_INT true false 64 64 64 + #else + image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 64 64 64 + #endif image.imgLpv1 = texLpv1 RGB RGBA8 UNSIGNED_BYTE false false 64 64 64 image.imgLpv2 = texLpv2 RGB RGBA8 UNSIGNED_BYTE false false 64 64 64 #elif WATER_INTERACTION == 2 && IRIS_VERSION < 11004 diff --git a/shaders/world-1/shadowcomp.csh b/shaders/world-1/composite20.csh similarity index 100% rename from shaders/world-1/shadowcomp.csh rename to shaders/world-1/composite20.csh diff --git a/shaders/world-1/gbuffers_beaconbeam.gsh b/shaders/world-1/gbuffers_beaconbeam.gsh new file mode 100644 index 0000000..2aec664 --- /dev/null +++ b/shaders/world-1/gbuffers_beaconbeam.gsh @@ -0,0 +1,5 @@ +#version 430 compatibility + +#define BEACON_BEAM + +#include "/dimensions/beacon.gsh" \ No newline at end of file diff --git a/shaders/world0/shadowcomp.csh b/shaders/world0/composite20.csh similarity index 100% rename from shaders/world0/shadowcomp.csh rename to shaders/world0/composite20.csh diff --git a/shaders/world0/gbuffers_beaconbeam.gsh b/shaders/world0/gbuffers_beaconbeam.gsh new file mode 100644 index 0000000..2aec664 --- /dev/null +++ b/shaders/world0/gbuffers_beaconbeam.gsh @@ -0,0 +1,5 @@ +#version 430 compatibility + +#define BEACON_BEAM + +#include "/dimensions/beacon.gsh" \ No newline at end of file diff --git a/shaders/world0_with_aether_flag/shadowcomp.csh b/shaders/world0_with_aether_flag/composite20.csh similarity index 100% rename from shaders/world0_with_aether_flag/shadowcomp.csh rename to shaders/world0_with_aether_flag/composite20.csh diff --git a/shaders/world0_with_aether_flag/gbuffers_beaconbeam.gsh b/shaders/world0_with_aether_flag/gbuffers_beaconbeam.gsh new file mode 100644 index 0000000..2aec664 --- /dev/null +++ b/shaders/world0_with_aether_flag/gbuffers_beaconbeam.gsh @@ -0,0 +1,5 @@ +#version 430 compatibility + +#define BEACON_BEAM + +#include "/dimensions/beacon.gsh" \ No newline at end of file diff --git a/shaders/world0_with_twilight_forest_flag/shadowcomp.csh b/shaders/world0_with_twilight_forest_flag/composite20.csh similarity index 100% rename from shaders/world0_with_twilight_forest_flag/shadowcomp.csh rename to shaders/world0_with_twilight_forest_flag/composite20.csh diff --git a/shaders/world0_with_twilight_forest_flag/gbuffers_beaconbeam.gsh b/shaders/world0_with_twilight_forest_flag/gbuffers_beaconbeam.gsh new file mode 100644 index 0000000..2aec664 --- /dev/null +++ b/shaders/world0_with_twilight_forest_flag/gbuffers_beaconbeam.gsh @@ -0,0 +1,5 @@ +#version 430 compatibility + +#define BEACON_BEAM + +#include "/dimensions/beacon.gsh" \ No newline at end of file diff --git a/shaders/world1/shadowcomp.csh b/shaders/world1/composite20.csh similarity index 100% rename from shaders/world1/shadowcomp.csh rename to shaders/world1/composite20.csh diff --git a/shaders/world1/gbuffers_beaconbeam.gsh b/shaders/world1/gbuffers_beaconbeam.gsh new file mode 100644 index 0000000..2aec664 --- /dev/null +++ b/shaders/world1/gbuffers_beaconbeam.gsh @@ -0,0 +1,5 @@ +#version 430 compatibility + +#define BEACON_BEAM + +#include "/dimensions/beacon.gsh" \ No newline at end of file