diff --git a/shaders/dimensions/all_particles.fsh b/shaders/dimensions/all_particles.fsh index 2a1a2c7..9be7ce2 100644 --- a/shaders/dimensions/all_particles.fsh +++ b/shaders/dimensions/all_particles.fsh @@ -2,6 +2,7 @@ #ifdef IS_LPV_ENABLED #extension GL_EXT_shader_image_load_store: enable + #extension GL_ARB_shading_language_packing: enable #endif #include "/lib/res_params.glsl" @@ -35,7 +36,9 @@ uniform int isEyeInWater; uniform sampler2D texture; uniform sampler2D noisetex; uniform sampler2D colortex4; + #ifdef IS_LPV_ENABLED + uniform usampler1D texBlockData; uniform sampler3D texLpv1; uniform sampler3D texLpv2; #endif @@ -61,6 +64,8 @@ flat varying float HELD_ITEM_BRIGHTNESS; uniform float nightVision; #endif +#include "/lib/util.glsl" + #ifdef OVERWORLD_SHADER #define CLOUDSHADOWSONLY #include "/lib/volumetricClouds.glsl" @@ -417,7 +422,7 @@ void main() { const vec3 lpvPos = vec3(0.0); #endif - Indirect_lighting = DoAmbientLightColor(lpvPos, AmbientLightColor, MinimumLightColor, Torch_Color, clamp(lightmap.xy,0,1), exposure); + Indirect_lighting = DoAmbientLightColor(feetPlayerPos, lpvPos, AmbientLightColor, MinimumLightColor, Torch_Color, clamp(lightmap.xy,0,1), exposure); #ifdef LINES gl_FragData[0].rgb = (Indirect_lighting + Direct_lighting) * toLinear(color.rgb); diff --git a/shaders/dimensions/all_translucent.fsh b/shaders/dimensions/all_translucent.fsh index b1e188b..31c5836 100644 --- a/shaders/dimensions/all_translucent.fsh +++ b/shaders/dimensions/all_translucent.fsh @@ -2,6 +2,7 @@ #ifdef IS_LPV_ENABLED #extension GL_EXT_shader_image_load_store: enable + #extension GL_ARB_shading_language_packing: enable #endif #include "/lib/res_params.glsl" @@ -49,6 +50,7 @@ uniform sampler2D specular; uniform sampler2D normals; #ifdef IS_LPV_ENABLED + uniform usampler1D texBlockData; uniform sampler3D texLpv1; uniform sampler3D texLpv2; #endif @@ -92,6 +94,7 @@ uniform vec3 nsunColor; #include "/lib/projections.glsl" #include "/lib/sky_gradient.glsl" #include "/lib/waterBump.glsl" +#include "/lib/util.glsl" #ifdef OVERWORLD_SHADER flat varying float Flashing; @@ -634,7 +637,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) const vec3 lpvPos = vec3(0.0); #endif - Indirect_lighting = DoAmbientLightColor(lpvPos, AmbientLightColor, MinimumLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.xy, exposure); + Indirect_lighting = DoAmbientLightColor(feetPlayerPos, lpvPos, AmbientLightColor, MinimumLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.xy, exposure); vec3 FinalColor = (Indirect_lighting + Direct_lighting) * Albedo; diff --git a/shaders/dimensions/composite1.fsh b/shaders/dimensions/composite1.fsh index 10a7440..a38a627 100644 --- a/shaders/dimensions/composite1.fsh +++ b/shaders/dimensions/composite1.fsh @@ -1,7 +1,8 @@ #include "/lib/settings.glsl" #ifdef IS_LPV_ENABLED - #extension GL_EXT_shader_image_load_store: enable + #extension GL_ARB_shader_image_load_store: enable + #extension GL_ARB_shading_language_packing: enable #endif #include "/lib/res_params.glsl" @@ -76,6 +77,7 @@ uniform sampler2D colortex14; uniform sampler2D colortex15; // flat normals(rgb), vanillaAO(alpha) #ifdef IS_LPV_ENABLED + uniform usampler1D texBlockData; uniform sampler3D texLpv1; uniform sampler3D texLpv2; #endif @@ -166,9 +168,12 @@ vec3 toScreenSpace(vec3 p) { #include "/lib/volumetricClouds.glsl" #endif +#include "/lib/util.glsl" + #ifdef IS_LPV_ENABLED #include "/lib/hsv.glsl" #include "/lib/lpv_common.glsl" + // #include "/lib/lpv_blocks.glsl" #include "/lib/lpv_render.glsl" #endif @@ -238,10 +243,10 @@ vec3 fp10Dither(vec3 color,float dither){ -float facos(float sx){ - float x = clamp(abs( sx ),0.,1.); - return sqrt( 1. - x ) * ( -0.16882 * x + 1.56734 ); -} +// float facos(float sx){ +// float x = clamp(abs( sx ),0.,1.); +// return sqrt( 1. - x ) * ( -0.16882 * x + 1.56734 ); +// } vec2 tapLocation(int sampleNumber,int nb, float nbRot,float jitter,float distort) { @@ -1192,7 +1197,7 @@ void main() { const vec3 lpvPos = vec3(0.0); #endif - Indirect_lighting = DoAmbientLightColor(lpvPos, Indirect_lighting, MinimumLightColor, vec3(TORCH_R,TORCH_G,TORCH_B) , lightmap.xy, exposure); + Indirect_lighting = DoAmbientLightColor(feetPlayerPos, lpvPos, Indirect_lighting, MinimumLightColor, vec3(TORCH_R,TORCH_G,TORCH_B) , lightmap.xy, exposure); #ifdef OVERWORLD_SHADER Indirect_lighting += LightningFlashLighting; diff --git a/shaders/dimensions/setup.csh b/shaders/dimensions/setup.csh index e2f81dc..4304ea2 100644 --- a/shaders/dimensions/setup.csh +++ b/shaders/dimensions/setup.csh @@ -40,8 +40,8 @@ const ivec3 workGroups = ivec3(6, 6, 1); void main() { #ifdef IS_LPV_ENABLED - uint blockId = uint(gl_GlobalInvocationID.x + gl_GlobalInvocationID.y * 32); - if (blockId >= 2000) return; + int blockId = int(gl_GlobalInvocationID.x + gl_GlobalInvocationID.y * 32); + if (blockId >= 2048) return; vec3 lightColor = vec3(0.0); float lightRange = 0.0; @@ -49,908 +49,934 @@ void main() { uint mixMask = 0xFFFF; vec3 tintColor = vec3(1.0); - switch (blockId) { - case BLOCK_WATER: - mixWeight = 0.8; - break; + if (blockId < 1000) { + // BLOCKS - case BLOCK_BAMBOO: - mixWeight = 0.8; - break; + switch (blockId) { + case BLOCK_WATER: + mixWeight = 0.8; + break; - case BLOCK_GRASS_SHORT: - case BLOCK_GRASS_TALL_UPPER: - case BLOCK_GRASS_TALL_LOWER: - mixWeight = 0.85; - break; + case BLOCK_BAMBOO: + mixWeight = 0.8; + break; - case BLOCK_GROUND_WAVING: - case BLOCK_GROUND_WAVING_VERTICAL: - case BLOCK_AIR_WAVING: - mixWeight = 0.9; - break; + case BLOCK_GRASS_SHORT: + case BLOCK_GRASS_TALL_UPPER: + case BLOCK_GRASS_TALL_LOWER: + mixWeight = 0.85; + break; - case BLOCK_SAPLING: - mixWeight = 0.9; - break; + case BLOCK_GROUND_WAVING: + case BLOCK_GROUND_WAVING_VERTICAL: + case BLOCK_AIR_WAVING: + mixWeight = 0.9; + break; - // lightsources + case BLOCK_SAPLING: + mixWeight = 0.9; + break; - case BLOCK_AMETHYST_BUD_LARGE: - lightColor = LightColor_Amethyst; - lightRange = 4.0; - mixWeight = 0.6; - break; - case BLOCK_AMETHYST_BUD_MEDIUM: - lightColor = LightColor_Amethyst; - lightRange = 2.0; - mixWeight = 0.8; - break; - case BLOCK_AMETHYST_CLUSTER: - lightColor = LightColor_Amethyst; - lightRange = 5.0; - mixWeight = 0.4; - break; - case BLOCK_BEACON: - lightColor = vec3(1.0); - lightRange = 15.0; - break; - case BLOCK_BREWING_STAND: - lightColor = vec3(0.636, 0.509, 0.179); - lightRange = 1.0; - mixWeight = 0.8; - break; + // lightsources - #ifdef LPV_COLORED_CANDLES - case BLOCK_CANDLES_PLAIN_LIT_1: - lightColor = LightColor_Candles; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PLAIN_LIT_2: - lightColor = LightColor_Candles; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PLAIN_LIT_3: - lightColor = LightColor_Candles; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PLAIN_LIT_4: - lightColor = LightColor_Candles; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_AMETHYST_BUD_LARGE: + lightColor = LightColor_Amethyst; + lightRange = 4.0; + mixWeight = 0.6; + break; + case BLOCK_AMETHYST_BUD_MEDIUM: + lightColor = LightColor_Amethyst; + lightRange = 2.0; + mixWeight = 0.8; + break; + case BLOCK_AMETHYST_CLUSTER: + lightColor = LightColor_Amethyst; + lightRange = 5.0; + mixWeight = 0.4; + break; + case BLOCK_BEACON: + lightColor = vec3(1.0); + lightRange = 15.0; + break; + case BLOCK_BREWING_STAND: + lightColor = vec3(0.636, 0.509, 0.179); + lightRange = 1.0; + mixWeight = 0.8; + break; - case BLOCK_CANDLES_BLACK_LIT_1: - lightColor = LightColor_Candles_Black; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLACK_LIT_2: - lightColor = LightColor_Candles_Black; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLACK_LIT_3: - lightColor = LightColor_Candles_Black; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLACK_LIT_4: - lightColor = LightColor_Candles_Black; - lightRange = 12.0; - mixWeight = 1.0; - break; + #ifdef LPV_COLORED_CANDLES + case BLOCK_CANDLES_PLAIN_LIT_1: + lightColor = LightColor_Candles; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PLAIN_LIT_2: + lightColor = LightColor_Candles; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PLAIN_LIT_3: + lightColor = LightColor_Candles; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PLAIN_LIT_4: + lightColor = LightColor_Candles; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_BLUE_LIT_1: - lightColor = LightColor_Candles_Blue; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLUE_LIT_2: - lightColor = LightColor_Candles_Blue; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLUE_LIT_3: - lightColor = LightColor_Candles_Blue; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BLUE_LIT_4: - lightColor = LightColor_Candles_Blue; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_BLACK_LIT_1: + lightColor = LightColor_Candles_Black; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLACK_LIT_2: + lightColor = LightColor_Candles_Black; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLACK_LIT_3: + lightColor = LightColor_Candles_Black; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLACK_LIT_4: + lightColor = LightColor_Candles_Black; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_BROWN_LIT_1: - lightColor = LightColor_Candles_Brown; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BROWN_LIT_2: - lightColor = LightColor_Candles_Brown; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BROWN_LIT_3: - lightColor = LightColor_Candles_Brown; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_BROWN_LIT_4: - lightColor = LightColor_Candles_Brown; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_BLUE_LIT_1: + lightColor = LightColor_Candles_Blue; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLUE_LIT_2: + lightColor = LightColor_Candles_Blue; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLUE_LIT_3: + lightColor = LightColor_Candles_Blue; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BLUE_LIT_4: + lightColor = LightColor_Candles_Blue; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_CYAN_LIT_1: - lightColor = LightColor_Candles_Cyan; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_CYAN_LIT_2: - lightColor = LightColor_Candles_Cyan; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_CYAN_LIT_3: - lightColor = LightColor_Candles_Cyan; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_CYAN_LIT_4: - lightColor = LightColor_Candles_Cyan; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_BROWN_LIT_1: + lightColor = LightColor_Candles_Brown; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BROWN_LIT_2: + lightColor = LightColor_Candles_Brown; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BROWN_LIT_3: + lightColor = LightColor_Candles_Brown; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_BROWN_LIT_4: + lightColor = LightColor_Candles_Brown; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_GRAY_LIT_1: - lightColor = LightColor_Candles_Gray; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GRAY_LIT_2: - lightColor = LightColor_Candles_Gray; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GRAY_LIT_3: - lightColor = LightColor_Candles_Gray; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GRAY_LIT_4: - lightColor = LightColor_Candles_Gray; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_CYAN_LIT_1: + lightColor = LightColor_Candles_Cyan; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_CYAN_LIT_2: + lightColor = LightColor_Candles_Cyan; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_CYAN_LIT_3: + lightColor = LightColor_Candles_Cyan; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_CYAN_LIT_4: + lightColor = LightColor_Candles_Cyan; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_GREEN_LIT_1: - lightColor = LightColor_Candles_Green; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GREEN_LIT_2: - lightColor = LightColor_Candles_Green; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GREEN_LIT_3: - lightColor = LightColor_Candles_Green; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_GREEN_LIT_4: - lightColor = LightColor_Candles_Green; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_GRAY_LIT_1: + lightColor = LightColor_Candles_Gray; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GRAY_LIT_2: + lightColor = LightColor_Candles_Gray; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GRAY_LIT_3: + lightColor = LightColor_Candles_Gray; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GRAY_LIT_4: + lightColor = LightColor_Candles_Gray; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_LIGHT_BLUE_LIT_1: - lightColor = LightColor_Candles_LightBlue; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_BLUE_LIT_2: - lightColor = LightColor_Candles_LightBlue; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_BLUE_LIT_3: - lightColor = LightColor_Candles_LightBlue; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_BLUE_LIT_4: - lightColor = LightColor_Candles_LightBlue; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_GREEN_LIT_1: + lightColor = LightColor_Candles_Green; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GREEN_LIT_2: + lightColor = LightColor_Candles_Green; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GREEN_LIT_3: + lightColor = LightColor_Candles_Green; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_GREEN_LIT_4: + lightColor = LightColor_Candles_Green; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_LIGHT_GRAY_LIT_1: - lightColor = LightColor_Candles_LightGray; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_GRAY_LIT_2: - lightColor = LightColor_Candles_LightGray; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_GRAY_LIT_3: - lightColor = LightColor_Candles_LightGray; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIGHT_GRAY_LIT_4: - lightColor = LightColor_Candles_LightGray; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_LIGHT_BLUE_LIT_1: + lightColor = LightColor_Candles_LightBlue; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_BLUE_LIT_2: + lightColor = LightColor_Candles_LightBlue; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_BLUE_LIT_3: + lightColor = LightColor_Candles_LightBlue; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_BLUE_LIT_4: + lightColor = LightColor_Candles_LightBlue; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_LIME_LIT_1: - lightColor = LightColor_Candles_Lime; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIME_LIT_2: - lightColor = LightColor_Candles_Lime; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIME_LIT_3: - lightColor = LightColor_Candles_Lime; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIME_LIT_4: - lightColor = LightColor_Candles_Lime; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_LIGHT_GRAY_LIT_1: + lightColor = LightColor_Candles_LightGray; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_GRAY_LIT_2: + lightColor = LightColor_Candles_LightGray; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_GRAY_LIT_3: + lightColor = LightColor_Candles_LightGray; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIGHT_GRAY_LIT_4: + lightColor = LightColor_Candles_LightGray; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_MAGENTA_LIT_1: - lightColor = LightColor_Candles_Magenta; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_MAGENTA_LIT_2: - lightColor = LightColor_Candles_Magenta; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_MAGENTA_LIT_3: - lightColor = LightColor_Candles_Magenta; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_MAGENTA_LIT_4: - lightColor = LightColor_Candles_Magenta; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_LIME_LIT_1: + lightColor = LightColor_Candles_Lime; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIME_LIT_2: + lightColor = LightColor_Candles_Lime; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIME_LIT_3: + lightColor = LightColor_Candles_Lime; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIME_LIT_4: + lightColor = LightColor_Candles_Lime; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_ORANGE_LIT_1: - lightColor = LightColor_Candles_Orange; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_ORANGE_LIT_2: - lightColor = LightColor_Candles_Orange; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_ORANGE_LIT_3: - lightColor = LightColor_Candles_Orange; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_ORANGE_LIT_4: - lightColor = LightColor_Candles_Orange; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_MAGENTA_LIT_1: + lightColor = LightColor_Candles_Magenta; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_MAGENTA_LIT_2: + lightColor = LightColor_Candles_Magenta; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_MAGENTA_LIT_3: + lightColor = LightColor_Candles_Magenta; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_MAGENTA_LIT_4: + lightColor = LightColor_Candles_Magenta; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_PINK_LIT_1: - lightColor = LightColor_Candles_Pink; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PINK_LIT_2: - lightColor = LightColor_Candles_Pink; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PINK_LIT_3: - lightColor = LightColor_Candles_Pink; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PINK_LIT_4: - lightColor = LightColor_Candles_Pink; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_ORANGE_LIT_1: + lightColor = LightColor_Candles_Orange; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_ORANGE_LIT_2: + lightColor = LightColor_Candles_Orange; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_ORANGE_LIT_3: + lightColor = LightColor_Candles_Orange; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_ORANGE_LIT_4: + lightColor = LightColor_Candles_Orange; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_PURPLE_LIT_1: - lightColor = LightColor_Candles_Purple; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PURPLE_LIT_2: - lightColor = LightColor_Candles_Purple; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PURPLE_LIT_3: - lightColor = LightColor_Candles_Purple; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_PURPLE_LIT_4: - lightColor = LightColor_Candles_Purple; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_PINK_LIT_1: + lightColor = LightColor_Candles_Pink; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PINK_LIT_2: + lightColor = LightColor_Candles_Pink; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PINK_LIT_3: + lightColor = LightColor_Candles_Pink; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PINK_LIT_4: + lightColor = LightColor_Candles_Pink; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_RED_LIT_1: - lightColor = LightColor_Candles_Red; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_RED_LIT_2: - lightColor = LightColor_Candles_Red; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_RED_LIT_3: - lightColor = LightColor_Candles_Red; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_RED_LIT_4: - lightColor = LightColor_Candles_Red; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_PURPLE_LIT_1: + lightColor = LightColor_Candles_Purple; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PURPLE_LIT_2: + lightColor = LightColor_Candles_Purple; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PURPLE_LIT_3: + lightColor = LightColor_Candles_Purple; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_PURPLE_LIT_4: + lightColor = LightColor_Candles_Purple; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_WHITE_LIT_1: - lightColor = LightColor_Candles_White; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_WHITE_LIT_2: - lightColor = LightColor_Candles_White; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_WHITE_LIT_3: - lightColor = LightColor_Candles_White; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_WHITE_LIT_4: - lightColor = LightColor_Candles_White; - lightRange = 12.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_RED_LIT_1: + lightColor = LightColor_Candles_Red; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_RED_LIT_2: + lightColor = LightColor_Candles_Red; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_RED_LIT_3: + lightColor = LightColor_Candles_Red; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_RED_LIT_4: + lightColor = LightColor_Candles_Red; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CANDLES_YELLOW_LIT_1: - lightColor = LightColor_Candles_Yellow; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_YELLOW_LIT_2: - lightColor = LightColor_Candles_Yellow; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_YELLOW_LIT_3: - lightColor = LightColor_Candles_Yellow; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_YELLOW_LIT_4: - lightColor = LightColor_Candles_Yellow; - lightRange = 12.0; - mixWeight = 1.0; - break; - #else - case BLOCK_CANDLES_LIT_1: - lightColor = LightColor_Candles; - lightRange = 3.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIT_2: - lightColor = LightColor_Candles; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIT_3: - lightColor = LightColor_Candles; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_CANDLES_LIT_4: - lightColor = LightColor_Candles; - lightRange = 12.0; - mixWeight = 1.0; - break; - #endif + case BLOCK_CANDLES_WHITE_LIT_1: + lightColor = LightColor_Candles_White; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_WHITE_LIT_2: + lightColor = LightColor_Candles_White; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_WHITE_LIT_3: + lightColor = LightColor_Candles_White; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_WHITE_LIT_4: + lightColor = LightColor_Candles_White; + lightRange = 12.0; + mixWeight = 1.0; + break; - case BLOCK_CAVE_VINE_BERRIES: - lightColor = vec3(0.651, 0.369, 0.157); - lightRange = 14.0; - mixWeight = 1.0; - break; + case BLOCK_CANDLES_YELLOW_LIT_1: + lightColor = LightColor_Candles_Yellow; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_YELLOW_LIT_2: + lightColor = LightColor_Candles_Yellow; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_YELLOW_LIT_3: + lightColor = LightColor_Candles_Yellow; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_YELLOW_LIT_4: + lightColor = LightColor_Candles_Yellow; + lightRange = 12.0; + mixWeight = 1.0; + break; + #else + case BLOCK_CANDLES_LIT_1: + lightColor = LightColor_Candles; + lightRange = 3.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIT_2: + lightColor = LightColor_Candles; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIT_3: + lightColor = LightColor_Candles; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_CANDLES_LIT_4: + lightColor = LightColor_Candles; + lightRange = 12.0; + mixWeight = 1.0; + break; + #endif - #ifdef LPV_REDSTONE_LIGHTS - case BLOCK_COMPARATOR_LIT: - lightColor = LightColor_RedstoneTorch; - lightRange = 4.0; - break; - #endif + case BLOCK_CAVE_VINE_BERRIES: + lightColor = vec3(0.651, 0.369, 0.157); + lightRange = 14.0; + mixWeight = 1.0; + break; - case BLOCK_COPPER_BULB_LIT: - lightColor = LightColor_CopperBulb; - lightRange = 15.0; - break; - case BLOCK_COPPER_BULB_EXPOSED_LIT: - lightColor = LightColor_CopperBulb; - lightRange = 12.0; - break; - case BLOCK_COPPER_BULB_OXIDIZED_LIT: - lightColor = LightColor_CopperBulb; - lightRange = 4.0; - break; - case BLOCK_COPPER_BULB_WEATHERED_LIT: - lightColor = LightColor_CopperBulb; - lightRange = 8.0; - break; - case BLOCK_CONDUIT: - lightColor = vec3(1.0); - lightRange = 15.0; - break; - case BLOCK_CRYING_OBSIDIAN: - lightColor = vec3(0.390, 0.065, 0.646); - lightRange = 10.0; - break; - case BLOCK_END_GATEWAY: - lightColor = vec3(1.0); - lightRange = 15.0; - break; - case BLOCK_END_ROD: - lightColor = vec3(0.957, 0.929, 0.875); - lightRange = 14.0; - break; - case BLOCK_FIRE: - lightColor = vec3(0.864, 0.598, 0.348); - lightRange = 15.0; - mixWeight = 1.0; - break; - case BLOCK_FROGLIGHT_OCHRE: - lightColor = vec3(0.768, 0.648, 0.108); - lightRange = 15.0; - break; - case BLOCK_FROGLIGHT_PEARLESCENT: - lightColor = vec3(0.737, 0.435, 0.658); - lightRange = 15.0; - break; - case BLOCK_FROGLIGHT_VERDANT: - lightColor = vec3(0.463, 0.763, 0.409); - lightRange = 15.0; - break; - case BLOCK_FURNACE_LIT: - lightColor = vec3(0.8, 0.7, 0.1); - lightRange = 13.0; - break; - case BLOCK_GLOW_LICHEN: - lightColor = vec3(0.092, 0.217, 0.126); - lightRange = 7.0; - break; - case BLOCK_GLOWSTONE: - lightColor = vec3(0.747, 0.594, 0.326); - lightRange = 15.0; - break; - case BLOCK_JACK_O_LANTERN: - lightColor = vec3(0.864, 0.598, 0.348); - lightRange = 15.0; - break; - case BLOCK_LANTERN: - lightColor = vec3(0.839, 0.541, 0.2); - lightRange = 15.0; - mixWeight = 0.8; - break; - case BLOCK_LAVA: - lightColor = vec3(0.659, 0.302, 0.106); - lightRange = 15.0; - break; + #ifdef LPV_REDSTONE_LIGHTS + case BLOCK_COMPARATOR_LIT: + lightColor = LightColor_RedstoneTorch; + lightRange = 4.0; + break; + #endif - case BLOCK_LIGHT_1: - lightColor = LightColor_LightBlock; - lightRange = 1; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_2: - lightColor = LightColor_LightBlock; - lightRange = 2; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_3: - lightColor = LightColor_LightBlock; - lightRange = 3; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_4: - lightColor = LightColor_LightBlock; - lightRange = 4; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_5: - lightColor = LightColor_LightBlock; - lightRange = 5; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_6: - lightColor = LightColor_LightBlock; - lightRange = 6; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_7: - lightColor = LightColor_LightBlock; - lightRange = 7; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_8: - lightColor = LightColor_LightBlock; - lightRange = 8; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_9: - lightColor = LightColor_LightBlock; - lightRange = 9; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_10: - lightColor = LightColor_LightBlock; - lightRange = 10; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_11: - lightColor = LightColor_LightBlock; - lightRange = 11; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_12: - lightColor = LightColor_LightBlock; - lightRange = 12; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_13: - lightColor = LightColor_LightBlock; - lightRange = 13; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_14: - lightColor = LightColor_LightBlock; - lightRange = 14; - mixWeight = 1.0; - break; - case BLOCK_LIGHT_15: - lightColor = LightColor_LightBlock; - lightRange = 15; - mixWeight = 1.0; - break; + case BLOCK_COPPER_BULB_LIT: + lightColor = LightColor_CopperBulb; + lightRange = 15.0; + break; + case BLOCK_COPPER_BULB_EXPOSED_LIT: + lightColor = LightColor_CopperBulb; + lightRange = 12.0; + break; + case BLOCK_COPPER_BULB_OXIDIZED_LIT: + lightColor = LightColor_CopperBulb; + lightRange = 4.0; + break; + case BLOCK_COPPER_BULB_WEATHERED_LIT: + lightColor = LightColor_CopperBulb; + lightRange = 8.0; + break; + case BLOCK_CONDUIT: + lightColor = vec3(1.0); + lightRange = 15.0; + break; + case BLOCK_CRYING_OBSIDIAN: + lightColor = vec3(0.390, 0.065, 0.646); + lightRange = 10.0; + break; + case BLOCK_END_GATEWAY: + lightColor = vec3(1.0); + lightRange = 15.0; + break; + case BLOCK_END_ROD: + lightColor = vec3(0.957, 0.929, 0.875); + lightRange = 14.0; + break; + case BLOCK_FIRE: + lightColor = vec3(0.864, 0.598, 0.348); + lightRange = 15.0; + mixWeight = 1.0; + break; + case BLOCK_FROGLIGHT_OCHRE: + lightColor = vec3(0.768, 0.648, 0.108); + lightRange = 15.0; + break; + case BLOCK_FROGLIGHT_PEARLESCENT: + lightColor = vec3(0.737, 0.435, 0.658); + lightRange = 15.0; + break; + case BLOCK_FROGLIGHT_VERDANT: + lightColor = vec3(0.463, 0.763, 0.409); + lightRange = 15.0; + break; + case BLOCK_FURNACE_LIT: + lightColor = vec3(0.8, 0.7, 0.1); + lightRange = 13.0; + break; + case BLOCK_GLOW_LICHEN: + lightColor = vec3(0.092, 0.217, 0.126); + lightRange = 7.0; + break; + case BLOCK_GLOWSTONE: + lightColor = vec3(0.747, 0.594, 0.326); + lightRange = 15.0; + break; + case BLOCK_JACK_O_LANTERN: + lightColor = vec3(0.864, 0.598, 0.348); + lightRange = 15.0; + break; + case BLOCK_LANTERN: + lightColor = vec3(0.839, 0.541, 0.2); + lightRange = 15.0; + mixWeight = 0.8; + break; + case BLOCK_LAVA: + lightColor = vec3(0.659, 0.302, 0.106); + lightRange = 15.0; + break; - case BLOCK_MAGMA: - lightColor = vec3(0.747, 0.323, 0.110); - lightRange = 3.0; - break; - case BLOCK_REDSTONE_LAMP_LIT: - lightColor = vec3(0.953, 0.796, 0.496); - lightRange = 15.0; - break; - case BLOCK_REDSTONE_TORCH_LIT: - lightColor = LightColor_RedstoneTorch; - lightRange = 7.0; - break; + case BLOCK_LIGHT_1: + lightColor = LightColor_LightBlock; + lightRange = 1; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_2: + lightColor = LightColor_LightBlock; + lightRange = 2; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_3: + lightColor = LightColor_LightBlock; + lightRange = 3; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_4: + lightColor = LightColor_LightBlock; + lightRange = 4; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_5: + lightColor = LightColor_LightBlock; + lightRange = 5; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_6: + lightColor = LightColor_LightBlock; + lightRange = 6; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_7: + lightColor = LightColor_LightBlock; + lightRange = 7; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_8: + lightColor = LightColor_LightBlock; + lightRange = 8; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_9: + lightColor = LightColor_LightBlock; + lightRange = 9; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_10: + lightColor = LightColor_LightBlock; + lightRange = 10; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_11: + lightColor = LightColor_LightBlock; + lightRange = 11; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_12: + lightColor = LightColor_LightBlock; + lightRange = 12; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_13: + lightColor = LightColor_LightBlock; + lightRange = 13; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_14: + lightColor = LightColor_LightBlock; + lightRange = 14; + mixWeight = 1.0; + break; + case BLOCK_LIGHT_15: + lightColor = LightColor_LightBlock; + lightRange = 15; + mixWeight = 1.0; + break; - #ifdef LPV_REDSTONE_LIGHTS - case BLOCK_REDSTONE_WIRE_1: - lightColor = LightColor_RedstoneTorch; - lightRange = 0.5; - break; - case BLOCK_REDSTONE_WIRE_2: - lightColor = LightColor_RedstoneTorch; - lightRange = 1.0; - break; - case BLOCK_REDSTONE_WIRE_3: - lightColor = LightColor_RedstoneTorch; - lightRange = 1.5; - break; - case BLOCK_REDSTONE_WIRE_4: - lightColor = LightColor_RedstoneTorch; - lightRange = 2.0; - break; - case BLOCK_REDSTONE_WIRE_5: - lightColor = LightColor_RedstoneTorch; - lightRange = 2.5; - break; - case BLOCK_REDSTONE_WIRE_6: - lightColor = LightColor_RedstoneTorch; - lightRange = 3.0; - break; - case BLOCK_REDSTONE_WIRE_7: - lightColor = LightColor_RedstoneTorch; - lightRange = 3.5; - break; - case BLOCK_REDSTONE_WIRE_8: - lightColor = LightColor_RedstoneTorch; - lightRange = 4.0; - break; - case BLOCK_REDSTONE_WIRE_9: - lightColor = LightColor_RedstoneTorch; - lightRange = 4.5; - break; - case BLOCK_REDSTONE_WIRE_10: - lightColor = LightColor_RedstoneTorch; - lightRange = 5.0; - break; - case BLOCK_REDSTONE_WIRE_11: - lightColor = LightColor_RedstoneTorch; - lightRange = 5.5; - break; - case BLOCK_REDSTONE_WIRE_12: - lightColor = LightColor_RedstoneTorch; - lightRange = 6.0; - break; - case BLOCK_REDSTONE_WIRE_13: - lightColor = LightColor_RedstoneTorch; - lightRange = 6.5; - break; - case BLOCK_REDSTONE_WIRE_14: - lightColor = LightColor_RedstoneTorch; - lightRange = 7.0; - break; - case BLOCK_REDSTONE_WIRE_15: - lightColor = LightColor_RedstoneTorch; - lightRange = 7.5; - break; + case BLOCK_MAGMA: + lightColor = vec3(0.747, 0.323, 0.110); + lightRange = 3.0; + break; + case BLOCK_REDSTONE_LAMP_LIT: + lightColor = vec3(0.953, 0.796, 0.496); + lightRange = 15.0; + break; + case BLOCK_REDSTONE_TORCH_LIT: + lightColor = LightColor_RedstoneTorch; + lightRange = 7.0; + break; - case BLOCK_REPEATER_LIT: - lightColor = LightColor_RedstoneTorch; - lightRange = 4.0; - break; - #endif + #ifdef LPV_REDSTONE_LIGHTS + case BLOCK_REDSTONE_WIRE_1: + lightColor = LightColor_RedstoneTorch; + lightRange = 0.5; + break; + case BLOCK_REDSTONE_WIRE_2: + lightColor = LightColor_RedstoneTorch; + lightRange = 1.0; + break; + case BLOCK_REDSTONE_WIRE_3: + lightColor = LightColor_RedstoneTorch; + lightRange = 1.5; + break; + case BLOCK_REDSTONE_WIRE_4: + lightColor = LightColor_RedstoneTorch; + lightRange = 2.0; + break; + case BLOCK_REDSTONE_WIRE_5: + lightColor = LightColor_RedstoneTorch; + lightRange = 2.5; + break; + case BLOCK_REDSTONE_WIRE_6: + lightColor = LightColor_RedstoneTorch; + lightRange = 3.0; + break; + case BLOCK_REDSTONE_WIRE_7: + lightColor = LightColor_RedstoneTorch; + lightRange = 3.5; + break; + case BLOCK_REDSTONE_WIRE_8: + lightColor = LightColor_RedstoneTorch; + lightRange = 4.0; + break; + case BLOCK_REDSTONE_WIRE_9: + lightColor = LightColor_RedstoneTorch; + lightRange = 4.5; + break; + case BLOCK_REDSTONE_WIRE_10: + lightColor = LightColor_RedstoneTorch; + lightRange = 5.0; + break; + case BLOCK_REDSTONE_WIRE_11: + lightColor = LightColor_RedstoneTorch; + lightRange = 5.5; + break; + case BLOCK_REDSTONE_WIRE_12: + lightColor = LightColor_RedstoneTorch; + lightRange = 6.0; + break; + case BLOCK_REDSTONE_WIRE_13: + lightColor = LightColor_RedstoneTorch; + lightRange = 6.5; + break; + case BLOCK_REDSTONE_WIRE_14: + lightColor = LightColor_RedstoneTorch; + lightRange = 7.0; + break; + case BLOCK_REDSTONE_WIRE_15: + lightColor = LightColor_RedstoneTorch; + lightRange = 7.5; + break; - case BLOCK_RESPAWN_ANCHOR_4: - lightColor = vec3(1.0, 0.2, 1.0); - lightRange = 15.0; - break; - case BLOCK_SCULK_SENSOR_ACTIVE: - lightColor = vec3(0.1, 0.4, 1.0); - lightRange = 1.0; - break; - case BLOCK_SEA_PICKLE_WET_1: - lightColor = LightColor_SeaPickle; - lightRange = 6.0; - mixWeight = 1.0; - break; - case BLOCK_SEA_PICKLE_WET_2: - lightColor = LightColor_SeaPickle; - lightRange = 9.0; - mixWeight = 1.0; - break; - case BLOCK_SEA_PICKLE_WET_3: - lightColor = LightColor_SeaPickle; - lightRange = 12.0; - mixWeight = 1.0; - break; - case BLOCK_SEA_PICKLE_WET_4: - lightColor = LightColor_SeaPickle; - lightRange = 15.0; - mixWeight = 1.0; - break; - case BLOCK_SEA_LANTERN: - lightColor = vec3(0.553, 0.748, 0.859); - lightRange = 15.0; - break; - case BLOCK_SHROOMLIGHT: - lightColor = vec3(0.848, 0.469, 0.205); - lightRange = 15.0; - break; - case BLOCK_SOUL_FIRE: - lightColor = vec3(0.1, 0.6, 1.0); - lightRange = 10.0; - mixWeight = 1.0; - break; - case BLOCK_SOUL_LANTERN: - case BLOCK_SOUL_TORCH: - lightColor = vec3(0.1, 0.6, 1.0); - lightRange = 10.0; - mixWeight = 0.8; - break; - case BLOCK_TORCH: - lightColor = vec3(1.0, 0.6, 0.1); - lightRange = 14.0; - mixWeight = 0.8; - break; + case BLOCK_REPEATER_LIT: + lightColor = LightColor_RedstoneTorch; + lightRange = 4.0; + break; + #endif - // reflective translucents / glass + case BLOCK_RESPAWN_ANCHOR_4: + lightColor = vec3(1.0, 0.2, 1.0); + lightRange = 15.0; + break; + case BLOCK_SCULK_SENSOR_ACTIVE: + lightColor = vec3(0.1, 0.4, 1.0); + lightRange = 1.0; + break; + case BLOCK_SEA_PICKLE_WET_1: + lightColor = LightColor_SeaPickle; + lightRange = 6.0; + mixWeight = 1.0; + break; + case BLOCK_SEA_PICKLE_WET_2: + lightColor = LightColor_SeaPickle; + lightRange = 9.0; + mixWeight = 1.0; + break; + case BLOCK_SEA_PICKLE_WET_3: + lightColor = LightColor_SeaPickle; + lightRange = 12.0; + mixWeight = 1.0; + break; + case BLOCK_SEA_PICKLE_WET_4: + lightColor = LightColor_SeaPickle; + lightRange = 15.0; + mixWeight = 1.0; + break; + case BLOCK_SEA_LANTERN: + lightColor = vec3(0.553, 0.748, 0.859); + lightRange = 15.0; + break; + case BLOCK_SHROOMLIGHT: + lightColor = vec3(0.848, 0.469, 0.205); + lightRange = 15.0; + break; + case BLOCK_SOUL_FIRE: + lightColor = vec3(0.1, 0.6, 1.0); + lightRange = 10.0; + mixWeight = 1.0; + break; + case BLOCK_SOUL_LANTERN: + case BLOCK_SOUL_TORCH: + lightColor = vec3(0.1, 0.6, 1.0); + lightRange = 10.0; + mixWeight = 0.8; + break; + case BLOCK_TORCH: + lightColor = vec3(1.0, 0.6, 0.1); + lightRange = 14.0; + mixWeight = 0.8; + break; - case BLOCK_HONEY: - tintColor = vec3(0.984, 0.733, 0.251); - mixWeight = 1.0; - break; - case BLOCK_NETHER_PORTAL: - lightColor = vec3(0.502, 0.165, 0.831); - tintColor = vec3(0.502, 0.165, 0.831); - lightRange = 11.0; - mixWeight = 1.0; - break; - case BLOCK_SLIME: - tintColor = vec3(0.408, 0.725, 0.329); - mixWeight = 1.0; - break; - case BLOCK_GLASS_BLACK: - tintColor = vec3(0.3); - mixWeight = 1.0; - break; - case BLOCK_GLASS_BLUE: - tintColor = vec3(0.1, 0.1, 0.98); - mixWeight = 1.0; - break; - case BLOCK_GLASS_BROWN: - tintColor = vec3(0.566, 0.388, 0.148); - mixWeight = 1.0; - break; - case BLOCK_GLASS_CYAN: - tintColor = vec3(0.082, 0.533, 0.763); - mixWeight = 1.0; - break; - case BLOCK_GLASS_GRAY: - tintColor = vec3(0.4, 0.4, 0.4); - mixWeight = 1.0; - break; - case BLOCK_GLASS_GREEN: - tintColor = vec3(0.125, 0.808, 0.081); - mixWeight = 1.0; - break; - case BLOCK_GLASS_LIGHT_BLUE: - tintColor = vec3(0.320, 0.685, 0.955); - mixWeight = 1.0; - break; - case BLOCK_GLASS_LIGHT_GRAY: - tintColor = vec3(0.7); - mixWeight = 1.0; - break; - case BLOCK_GLASS_LIME: - tintColor = vec3(0.633, 0.924, 0.124); - mixWeight = 1.0; - break; - case BLOCK_GLASS_MAGENTA: - tintColor = vec3(0.698, 0.298, 0.847); - mixWeight = 1.0; - break; - case BLOCK_GLASS_ORANGE: - tintColor = vec3(0.919, 0.586, 0.185); - mixWeight = 1.0; - break; - case BLOCK_GLASS_PINK: - tintColor = vec3(0.949, 0.274, 0.497); - mixWeight = 1.0; - break; - case BLOCK_GLASS_PURPLE: - tintColor = vec3(0.578, 0.170, 0.904); - mixWeight = 1.0; - break; - case BLOCK_GLASS_RED: - tintColor = vec3(0.999, 0.188, 0.188); - mixWeight = 1.0; - break; - case BLOCK_GLASS_WHITE: - tintColor = vec3(0.96, 0.96, 0.96); - mixWeight = 1.0; - break; - case BLOCK_GLASS_YELLOW: - tintColor = vec3(0.965, 0.965, 0.123); - mixWeight = 1.0; - break; + // reflective translucents / glass - // LPV shapes + case BLOCK_HONEY: + tintColor = vec3(0.984, 0.733, 0.251); + mixWeight = 1.0; + break; + case BLOCK_NETHER_PORTAL: + lightColor = vec3(0.502, 0.165, 0.831); + tintColor = vec3(0.502, 0.165, 0.831); + lightRange = 11.0; + mixWeight = 1.0; + break; + case BLOCK_SLIME: + tintColor = vec3(0.408, 0.725, 0.329); + mixWeight = 1.0; + break; + case BLOCK_GLASS_BLACK: + tintColor = vec3(0.3); + mixWeight = 1.0; + break; + case BLOCK_GLASS_BLUE: + tintColor = vec3(0.1, 0.1, 0.98); + mixWeight = 1.0; + break; + case BLOCK_GLASS_BROWN: + tintColor = vec3(0.566, 0.388, 0.148); + mixWeight = 1.0; + break; + case BLOCK_GLASS_CYAN: + tintColor = vec3(0.082, 0.533, 0.763); + mixWeight = 1.0; + break; + case BLOCK_GLASS_GRAY: + tintColor = vec3(0.4, 0.4, 0.4); + mixWeight = 1.0; + break; + case BLOCK_GLASS_GREEN: + tintColor = vec3(0.125, 0.808, 0.081); + mixWeight = 1.0; + break; + case BLOCK_GLASS_LIGHT_BLUE: + tintColor = vec3(0.320, 0.685, 0.955); + mixWeight = 1.0; + break; + case BLOCK_GLASS_LIGHT_GRAY: + tintColor = vec3(0.7); + mixWeight = 1.0; + break; + case BLOCK_GLASS_LIME: + tintColor = vec3(0.633, 0.924, 0.124); + mixWeight = 1.0; + break; + case BLOCK_GLASS_MAGENTA: + tintColor = vec3(0.698, 0.298, 0.847); + mixWeight = 1.0; + break; + case BLOCK_GLASS_ORANGE: + tintColor = vec3(0.919, 0.586, 0.185); + mixWeight = 1.0; + break; + case BLOCK_GLASS_PINK: + tintColor = vec3(0.949, 0.274, 0.497); + mixWeight = 1.0; + break; + case BLOCK_GLASS_PURPLE: + tintColor = vec3(0.578, 0.170, 0.904); + mixWeight = 1.0; + break; + case BLOCK_GLASS_RED: + tintColor = vec3(0.999, 0.188, 0.188); + mixWeight = 1.0; + break; + case BLOCK_GLASS_WHITE: + tintColor = vec3(0.96, 0.96, 0.96); + mixWeight = 1.0; + break; + case BLOCK_GLASS_YELLOW: + tintColor = vec3(0.965, 0.965, 0.123); + mixWeight = 1.0; + break; - case BLOCK_LPV_IGNORE: - mixWeight = 1.0; - break; + // LPV shapes - case BLOCK_CARPET: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); - mixWeight = 0.9; - break; + case BLOCK_LPV_IGNORE: + mixWeight = 1.0; + break; - case BLOCK_DOOR_N: - mixMask = BuildLpvMask(0u, 1u, 1u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_DOOR_E: - mixMask = BuildLpvMask(1u, 0u, 1u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_DOOR_S: - mixMask = BuildLpvMask(1u, 1u, 0u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_DOOR_W: - mixMask = BuildLpvMask(1u, 1u, 1u, 0u, 1u, 1u); - mixWeight = 0.8; - break; + case BLOCK_CARPET: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); + mixWeight = 0.9; + break; - case BLOCK_FENCE: - case BLOCK_FENCE_GATE: - mixWeight = 0.7; - break; - case BLOCK_FLOWER_POT: - mixWeight = 0.7; - break; - case BLOCK_IRON_BARS: - mixWeight = 0.6; - break; - case BLOCK_PRESSURE_PLATE: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); - mixWeight = 0.9; - break; + case BLOCK_DOOR_N: + mixMask = BuildLpvMask(0u, 1u, 1u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_DOOR_E: + mixMask = BuildLpvMask(1u, 0u, 1u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_DOOR_S: + mixMask = BuildLpvMask(1u, 1u, 0u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_DOOR_W: + mixMask = BuildLpvMask(1u, 1u, 1u, 0u, 1u, 1u); + mixWeight = 0.8; + break; - case BLOCK_SLAB_TOP: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 0u, 1u); - mixWeight = 0.5; - break; - case BLOCK_SLAB_BOTTOM: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); - mixWeight = 0.5; - break; + case BLOCK_FENCE: + case BLOCK_FENCE_GATE: + mixWeight = 0.7; + break; + case BLOCK_FLOWER_POT: + mixWeight = 0.7; + break; + case BLOCK_IRON_BARS: + mixWeight = 0.6; + break; + case BLOCK_PRESSURE_PLATE: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); + mixWeight = 0.9; + break; - case BLOCK_TRAPDOOR_BOTTOM: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); - mixWeight = 0.8; - break; - case BLOCK_TRAPDOOR_TOP: - mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 0u, 1u); - mixWeight = 0.8; - break; - case BLOCK_TRAPDOOR_N: - mixMask = BuildLpvMask(0u, 1u, 1u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_TRAPDOOR_E: - mixMask = BuildLpvMask(1u, 0u, 1u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_TRAPDOOR_S: - mixMask = BuildLpvMask(1u, 1u, 0u, 1u, 1u, 1u); - mixWeight = 0.8; - break; - case BLOCK_TRAPDOOR_W: - mixMask = BuildLpvMask(1u, 1u, 1u, 0u, 1u, 1u); - mixWeight = 0.8; - break; + case BLOCK_SLAB_TOP: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 0u, 1u); + mixWeight = 0.5; + break; + case BLOCK_SLAB_BOTTOM: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); + mixWeight = 0.5; + break; - // Misc + case BLOCK_TRAPDOOR_BOTTOM: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 1u, 0u); + mixWeight = 0.8; + break; + case BLOCK_TRAPDOOR_TOP: + mixMask = BuildLpvMask(1u, 1u, 1u, 1u, 0u, 1u); + mixWeight = 0.8; + break; + case BLOCK_TRAPDOOR_N: + mixMask = BuildLpvMask(0u, 1u, 1u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_TRAPDOOR_E: + mixMask = BuildLpvMask(1u, 0u, 1u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_TRAPDOOR_S: + mixMask = BuildLpvMask(1u, 1u, 0u, 1u, 1u, 1u); + mixWeight = 0.8; + break; + case BLOCK_TRAPDOOR_W: + mixMask = BuildLpvMask(1u, 1u, 1u, 0u, 1u, 1u); + mixWeight = 0.8; + break; - case BLOCK_SIGN: - mixWeight = 0.9; - break; + // Misc + + case BLOCK_SIGN: + mixWeight = 0.9; + break; + } + } + + if (blockId >= 1000) { + // ITEMS + + switch (blockId) { + // TODO + case 1001: // torch + lightColor = vec3(1.0, 0.6, 0.1); + lightRange = 14.0; + mixWeight = 0.8; + break; + case 1002: // soul torch + lightColor = vec3(0.1, 0.6, 1.0); + lightRange = 10.0; + mixWeight = 0.8; + break; + } } // hack to increase light (if set) if (lightRange > 0.0) lightRange += 1.0; - LpvBlockData block; - block.ColorRange = packUnorm4x8(vec4(lightColor, lightRange/255.0)); - block.MaskWeight = BuildBlockLpvData(mixMask, mixWeight); - block.Tint = packUnorm4x8(vec4(tintColor, 0.0)); - LpvBlockMap[blockId] = block; + // lazy fix for migrating from mixWeight to tintColor + tintColor *= mixWeight; + + uint lightColorRange = packUnorm4x8(vec4(lightColor, lightRange/255.0)); + uint tintColorMask = packUnorm4x8(vec4(tintColor, 0.0)); + + tintColorMask |= mixMask << 24; + + imageStore(imgBlockData, blockId, uvec4(lightColorRange, tintColorMask, 0u, 0u)); #endif } diff --git a/shaders/dimensions/shadowcomp.csh b/shaders/dimensions/shadowcomp.csh index 043449c..bf4e615 100644 --- a/shaders/dimensions/shadowcomp.csh +++ b/shaders/dimensions/shadowcomp.csh @@ -17,9 +17,6 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 8) in; const vec2 LpvBlockSkyFalloff = vec2(0.96, 0.96); const ivec3 lpvFlatten = ivec3(1, 10, 100); - #define EPSILON 1e-6 - - uniform int frameCounter; uniform vec3 cameraPosition; uniform vec3 previousCameraPosition; @@ -61,13 +58,15 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 8) in; int shared_index = getSharedIndex(pos + 1); float mixWeight = 1.0; - uint mixMask = 0xFFFF; + uint mask = 0xFFFF; uint blockId = voxelSharedData[shared_index]; - if (blockId > 0 && blockId != BLOCK_EMPTY) - ParseBlockLpvData(LpvBlockMap[blockId].MaskWeight, mixMask, mixWeight); + if (blockId > 0 && blockId != BLOCK_EMPTY) { + uvec2 blockData = imageLoad(imgBlockData, int(blockId)).rg; + mask = (blockData.g >> 24) & 0xFFFF; + } - return lpvSharedData[shared_index] * ((mixMask >> mask_index) & 1u);// * mixWeight; + return lpvSharedData[shared_index] * ((mask >> mask_index) & 1u); } vec4 mixNeighbours(const in ivec3 fragCoord, const in uint mask) { @@ -122,29 +121,30 @@ void main() { uint blockId = voxelSharedData[getSharedIndex(ivec3(gl_LocalInvocationID) + 1)]; vec4 lightValue = vec4(0.0); vec3 tintColor = vec3(1.0); - float mixWeight = 1.0; uint mixMask = 0xFFFF; if (blockId > 0u) { - mixWeight = 0.0; - ParseBlockLpvData(LpvBlockMap[blockId].MaskWeight, mixMask, mixWeight); + tintColor = vec3(0.0); - uint tintData = LpvBlockMap[blockId].Tint; - tintColor = unpackUnorm4x8(tintData).rgb; - vec4 lightColorRange = unpackUnorm4x8(LpvBlockMap[blockId].ColorRange); + uvec2 blockData = imageLoad(imgBlockData, int(blockId)).rg; + vec4 lightColorRange = unpackUnorm4x8(blockData.r); + vec4 tintColorMask = unpackUnorm4x8(blockData.g); + tintColor = srgbToLinear(tintColorMask.rgb); + mixMask = (blockData.g >> 24) & 0xFFFF; + + vec3 lightColor = srgbToLinear(lightColorRange.rgb); float lightRange = lightColorRange.a * 255.0; - if (lightRange > EPSILON) { - vec3 lightColor = srgbToLinear(lightColorRange.rgb); + if (lightRange > 0.0) { lightValue.rgb = Lpv_RgbToHsv(lightColor, lightRange); lightValue.ba = exp2(lightValue.ba * LpvBlockSkyRange) - 1.0; lightValue.rgb = HsvToRgb(lightValue.rgb); } } - if (mixWeight > EPSILON) { + if (any(greaterThan(tintColor, vec3(0.0)))) { vec4 lightMixed = mixNeighbours(ivec3(gl_LocalInvocationID), mixMask); - lightMixed.rgb *= srgbToLinear(tintColor) * mixWeight; + lightMixed.rgb *= tintColor; lightValue += lightMixed; } diff --git a/shaders/item.properties b/shaders/item.properties index 76c1378..994d1fb 100644 --- a/shaders/item.properties +++ b/shaders/item.properties @@ -1 +1,4 @@ -item.1000 = glow_berries soul_lantern soul_torch conduit beacon sea_pickle sea_lantern glowstone torch redstone_torch jack_o_lantern magma_block lantern shroomlight end_rod lava_bucket conquest:white_paper_lantern conquest:yellow_paper_lantern conquest:small_red_paper_lantern conquest:chinese_palace_lantern conquest:campfire conquest:brazier conquest:hanging_brazier conquest:chandelier conquest:candelabra conquest:cross_chandelier conquest:conquest:iron_candelabrum_1 conquest:conquest:golden_candelabrum_1 conquest:candle conquest:hanging_candle_holder conquest:candle_in_a_lantern conquest:candles conquest:hand_candle conquest:torch_with_grille conquest:elven_hand_light conquest:ship_lantern conquest:victorian_lantern conquest:small_lantern conquest:big_lantern conquest:hanging_oil_lamp conquest:oil_lamp conquest:terracotta_oil_lamp conquest:invisible_light_low conquest:invisible_light_medium conquest:invisible_light +item.1000 = glow_berries soul_lantern conduit beacon sea_pickle sea_lantern glowstone redstone_torch jack_o_lantern magma_block lantern shroomlight end_rod lava_bucket conquest:white_paper_lantern conquest:yellow_paper_lantern conquest:small_red_paper_lantern conquest:chinese_palace_lantern conquest:campfire conquest:brazier conquest:hanging_brazier conquest:chandelier conquest:candelabra conquest:cross_chandelier conquest:conquest:iron_candelabrum_1 conquest:conquest:golden_candelabrum_1 conquest:candle conquest:hanging_candle_holder conquest:candle_in_a_lantern conquest:candles conquest:hand_candle conquest:torch_with_grille conquest:elven_hand_light conquest:ship_lantern conquest:victorian_lantern conquest:small_lantern conquest:big_lantern conquest:hanging_oil_lamp conquest:oil_lamp conquest:terracotta_oil_lamp conquest:invisible_light_low conquest:invisible_light_medium conquest:invisible_light + +item.1001 = torch +item.1002 = soul_torch diff --git a/shaders/lib/diffuse_lighting.glsl b/shaders/lib/diffuse_lighting.glsl index 53b9a7a..6e3da92 100644 --- a/shaders/lib/diffuse_lighting.glsl +++ b/shaders/lib/diffuse_lighting.glsl @@ -1,15 +1,26 @@ #ifdef IS_LPV_ENABLED - vec3 GetHandLight(const in int itemId) { - if (itemId < 1000) { - // TODO: block lights - } - else { - // TODO: item lights + vec3 GetHandLight(const in int itemId, const in vec3 playerPos) { + vec3 lightFinal = vec3(0.0); + vec3 lightColor = vec3(0.0); + float lightRange = 0.0; + + uvec2 blockData = texelFetch(texBlockData, itemId, 0).rg; + vec4 lightColorRange = unpackUnorm4x8(blockData.r); + lightColor = srgbToLinear(lightColorRange.rgb); + lightRange = lightColorRange.a * 255.0; + + if (lightRange > 0.0) { + float lightDist = length(playerPos); + float falloff = pow(1.0 - lightDist / lightRange, 3.0); + lightFinal = lightColor * max(falloff, 0.0); } + + return lightFinal; } #endif vec3 DoAmbientLightColor( + vec3 playerPos, vec3 lpvPos, vec3 SkyColor, vec3 MinimumColor, @@ -45,10 +56,10 @@ vec3 DoAmbientLightColor( TorchLight = mix(TorchLight,LpvTorchLight/5.0, LpvFadeF); if (heldItemId > 0) - TorchLight += GetHandLight(heldItemId); + TorchLight += GetHandLight(heldItemId, playerPos); if (heldItemId2 > 0) - TorchLight += GetHandLight(heldItemId2); + TorchLight += GetHandLight(heldItemId2, playerPos); #endif return IndirectLight + TorchLight * TorchBrightness_autoAdjust; diff --git a/shaders/lib/lpv_blocks.glsl b/shaders/lib/lpv_blocks.glsl index daa9577..954fd73 100644 --- a/shaders/lib/lpv_blocks.glsl +++ b/shaders/lib/lpv_blocks.glsl @@ -1,28 +1,12 @@ -struct LpvBlockData { // 12 x2000 =? - uint MaskWeight; // 4 - uint ColorRange; // 4 - uint Tint; // 4 -}; +/* + lightColor 3*8=24 + lightRange 8=8 + tintColor 3*8=24 + lightMask 6=8 +*/ #ifdef RENDER_SETUP - layout(binding = 0) writeonly buffer lpvBlockData + layout(rg32ui) uniform writeonly uimage1D imgBlockData; #else - layout(binding = 0) readonly buffer lpvBlockData + layout(rg32ui) uniform readonly uimage1D imgBlockData; #endif -{ - LpvBlockData LpvBlockMap[]; -}; - - -uint BuildBlockLpvData(uint mixMask, float mixWeight) { - uint data = uint(saturate(mixWeight) * 255.0); - - data = data | (mixMask << 8); - - return data; -} - -void ParseBlockLpvData(const in uint data, out uint mixMask, out float mixWeight) { - mixWeight = (data & 0xFF) / 255.0; - mixMask = (data >> 8) & 0xFF; -} diff --git a/shaders/shaders.properties b/shaders/shaders.properties index f43de0f..02b5194 100644 --- a/shaders/shaders.properties +++ b/shaders/shaders.properties @@ -8,7 +8,7 @@ separateAo = true rain.depth = false beacon.beam.depth = true -iris.features.optional = ENTITY_TRANSLUCENT REVERSED_CULLING COMPUTE_SHADERS CUSTOM_IMAGES SSBO +iris.features.optional = ENTITY_TRANSLUCENT REVERSED_CULLING COMPUTE_SHADERS CUSTOM_IMAGES #if RESOURCEPACK_SKY == 2 sun=true @@ -554,9 +554,8 @@ uniform.float.shadowMaxProj = 150.0/abs(sunPosY) ####### FLOODFILL STUFF ####### ############################### -# if defined LPV_ENABLED && defined IRIS_FEATURE_CUSTOM_IMAGES #ifdef LPV_ENABLED - bufferObject.0=32000 + image.imgBlockData = texBlockData RG_INTEGER RG32UI UNSIGNED_INT false false 2048 #if LPV_SIZE == 8 image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 256 256 256