diff --git a/README.md b/README.md index be33073..d4e8aaf 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Github: https://github.com/hotsu0p/beyond-vanilla - Enjoy an immersive gaming experience with carefully crafted details. ### Compatibility: - +- highly recomennd https://modrinth.com/resourcepack/embrace-pixels for better visuals - Tested on iris and sodium 1.1.6. - Optimized for mid to low-tier devices. - Not tested on Optifine. diff --git a/assets/after-fix.png b/assets/after-fix.png new file mode 100644 index 0000000..e85d2fb Binary files /dev/null and b/assets/after-fix.png differ diff --git a/assets/before-fix.png b/assets/before-fix.png new file mode 100644 index 0000000..f011e70 Binary files /dev/null and b/assets/before-fix.png differ diff --git a/changelog.md b/changelog.md index c05453a..91bfa89 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,12 @@ +v2.1 - 3/11/24\ +Minor bug fixes/features + - Fixed color when you cant see the light source \ +         - [?] See `./assets/before-fix` And `./asset/after-fix` + - Improved perfomance a little bit + - Added small pulsing affect to warden + + + v2 - 3/10/24 - Improve the end portal - Fix the puddels diff --git a/misc/size.js b/misc/size.js index 45f6933..6c9319c 100644 --- a/misc/size.js +++ b/misc/size.js @@ -1 +1,51 @@ -// will code here soon \ No newline at end of file +const getCodeStats = require('@hotsuop/codestats'); +const chalk = require('chalk'); +// Define the folder path to analyze +const folderPath = '../shaders'; + +// Define the configuration object +const config = { + languages: ['js', 'html', 'glsl'], // Add more languages if needed + exclude: ['node_modules'], // Add folders to exclude + fileTypes: ['xml', 'css'], // Add more file types if needed + depthLimit: 5, +}; + + +// Call getCodeStats with the folder path and configuration +getCodeStats(folderPath, config) + .then(projectStats => { + // Display the calculated project stats + console.log('Project Statistics:'); + console.log(`Total Files: ${projectStats.totalFiles}`); + console.log(`Total Lines: ${projectStats.totalLines}`); + console.log(`Total Characters: ${projectStats.totalCharacters}`); + console.log(`Total Functions: ${projectStats.totalFunctions}`); + console.log(`Total Classes: ${projectStats.totalClasses}`); + console.log(`Total Comments: ${projectStats.totalComments}`); + + // Display detailed stats for each file + console.log('\nFile Statistics:'); + projectStats.files.forEach(fileStats => { + console.log(`\nFile: ${fileStats.filePath}`); + console.log(`Lines: ${fileStats.lines}`); + console.log(`Characters: ${fileStats.characters}`); + console.log(`Functions: ${fileStats.functionsCount}`); + console.log(`Classes: ${fileStats.classesCount}`); + console.log(`Comments: ${fileStats.commentsCount}`); + }); + + // Display file types summary + console.log('\nFile Types Summary:'); + console.log('Type\t| Files\t| Lines'); + console.log('--------|-------|----------'); + for (const fileType in projectStats.fileTypesStats) { + const fileTypeStats = projectStats.fileTypesStats[fileType]; + console.log(`${fileType}\t| ${fileTypeStats.files}\t| ${fileTypeStats.lines} (${((fileTypeStats.lines / projectStats.totalLines) * 100).toFixed(2)}%)`); + } + console.log('--------|-------|----------'); + console.log(`All\t| ${projectStats.totalFiles}\t| ${projectStats.totalLines}`); + }) + .catch(error => { + console.error(chalk.red(`Error: ${error.message}`)); + }); \ No newline at end of file diff --git a/shaders/block.properties b/shaders/block.properties index 39913df..dcd2ee3 100644 --- a/shaders/block.properties +++ b/shaders/block.properties @@ -37,15 +37,16 @@ #if MC_VERSION >= 11300 #1.13+ Mapping - -block.10044=smithing_table -block.10045=cauldron -block.10046=hopper -block.10048=end_portal_frame -block.10052=powder_snow_cauldron -block.10056=lava_cauldron +block.10000= \ minecraft:spawner +block.10044=\ minecraft:bell +block.10045=\ lava_cauldron +block.10046=\ minecraft:anvil +block.10048=\ minecraft:chipped_anvil +block.10052=\ minecraft:damaged_anvil +block.10056=\ minecraft:powered_rail:powered=true +block.10057=\ minecraft:note_block:powered=true block.10100= \ -minecraft:grass minecraft:fern minecraft:seagrass \ +minecraft:grass minecraft:fern minecraft:seagrass minecraft:dead_bush\ minecraft:crimson_roots minecraft:warped_roots minecraft:nether_sprouts block.10101= \ minecraft:poppy minecraft:dandelion minecraft:blue_orchid minecraft:allium minecraft:azure_bluet minecraft:red_tulip minecraft:orange_tulip minecraft:white_tulip minecraft:pink_tulip minecraft:oxeye_daisy minecraft:cornflower minecraft:lily_of_the_valley minecraft:wither_rose minecraft:sweet_berry_bush minecraft:pink_petals \ @@ -59,35 +60,41 @@ minecraft:wheat minecraft:carrots minecraft:potatoes minecraft:beetroots minecra block.10105= \ minecraft:oak_leaves minecraft:spruce_leaves minecraft:birch_leaves minecraft:jungle_leaves minecraft:acacia_leaves minecraft:dark_oak_leaves minecraft:azalea_leaves minecraft:flowering_azalea_leaves minecraft:mangrove_leaves minecraft:cherry_leaves block.10106= \ -minecraft:vine minecraft:weeping_vines_plant minecraft:weeping_vines minecraft:twisting_vines_plant minecraft:twisting_vines +minecraft:vine minecraft:weeping_vines_plant minecraft:weeping_vines minecraft:twisting_vines_plant minecraft:twisting_vines block.10107= \ minecraft:kelp minecraft:kelp_plant \ minecraft:azalea minecraft:flowering_azalea minecraft:big_dripleaf minecraft:big_dripleaf_stem minecraft:small_dripleaf minecraft:spore_blossom \ minecraft:cave_vines_plant:berries=false minecraft:cave_vines:berries=false block.10108= \ minecraft:lily_pad +block.10465= \ minecraft:brown_mushroom_block block.10109= \ minecraft:oak_sapling minecraft:spruce_sapling minecraft:birch_sapling minecraft:jungle_sapling minecraft:acacia_sapling minecraft:dark_oak_sapling minecraft:mangrove_propagule minecraft:cherry_sapling \ -minecraft:dead_bush minecraft:sugar_cane minecraft:red_mushroom minecraft:brown_mushroom minecraft:cobweb minecraft:nether_wart minecraft:crimson_fungus minecraft:warped_fungus \ +minecraft:dead_bush minecraft:cactus minecraft:red_mushroom minecraft:brown_mushroom minecraft:cobweb minecraft:nether_wart minecraft:crimson_fungus minecraft:warped_fungus \ minecraft:pitcher_plant minecraft:pitcher_crop block.10200= \ minecraft:redstone_wire:power=1 minecraft:redstone_wire:power=2 minecraft:redstone_wire:power=3 minecraft:redstone_wire:power=4 minecraft:redstone_wire:power=5 minecraft:redstone_wire:power=6 minecraft:redstone_wire:power=7 minecraft:redstone_wire:power=8 minecraft:redstone_wire:power=9 minecraft:redstone_wire:power=10 minecraft:redstone_wire:power=11 minecraft:redstone_wire:power=12 minecraft:redstone_wire:power=13 minecraft:redstone_wire:power=14 minecraft:redstone_wire:power=15 \ minecraft:repeater:powered=true minecraft:comparator:powered=true \ minecraft:redstone_torch:lit=true minecraft:redstone_wall_torch:lit=true \ minecraft:soul_torch minecraft:soul_wall_torch minecraft:soul_campfire:lit=true \ -minecraft:torch minecraft:wall_torch minecraft:end_rod \ +minecraft:torch minecraft:wall_torch minecraft:end_rod \ minecraft:jack_o_lantern minecraft:campfire:lit=true \ minecraft:sea_pickle minecraft:glow_lichen \ minecraft:small_amethyst_bud minecraft:medium_amethyst_bud minecraft:large_amethyst_bud minecraft:amethyst_cluster \ minecraft:ochre_froglight minecraft:verdant_froglight minecraft:pearlescent_froglight \ minecraft:sculk minecraft:sculk_vein minecraft:sculk_sensor minecraft:calibrated_sculk_sensor minecraft:sculk_catalyst minecraft:sculk_shrieker \ -minecraft:respawn_anchor:charges=1 minecraft:respawn_anchor:charges=2 minecraft:respawn_anchor:charges=3 minecraft:respawn_anchor:charges=4 +minecraft:respawn_anchor:charges=1 minecraft:respawn_anchor:charges=2 minecraft:respawn_anchor:charges=3 minecraft:respawn_anchor block.10201= \ minecraft:glowstone minecraft:shroomlight minecraft:redstone_lamp:lit=true minecraft:sea_lantern minecraft:lantern:hanging=false \ minecraft:magma_block\ minecraft:soul_lantern:hanging=false block.10202= \ minecraft:furnace:lit=true minecraft:blast_furnace:lit=true minecraft:smoker:lit=true +block.10210=\ minecraft:brewing_stand:has_bottle_0=true +block.10211= \ minecraft:brewing_stand:has_bottle_1=true +block.10212= \ minecraft:brewing_stand:has_bottle_2=true +block.10219=\ minecraft:redstone_ore minecraft:deepslate_redstone_ore +block.10220=\ minecraft:redstone_ore:lit=true minecraft:deepslate_redstone_ore:lit=true block.10203= \ minecraft:lava minecraft:flowing_lava block.10204= \ @@ -123,14 +130,14 @@ minecraft:sign minecraft:oak_sign minecraft:spruce_sign minecraft:birch_sign min minecraft:wall_sign minecraft:oak_wall_sign minecraft:spruce_wall_sign minecraft:birch_wall_sign minecraft:jungle_wall_sign minecraft:acacia_wall_sign minecraft:dark_oak_wall_sign minecraft:mangrove_wall_sign minecraft:cherry_wall_sign minecraft:bamboo_wall_sign minecraft:crimson_wall_sign minecraft:warped_wall_sign \ minecraft:oak_hanging_sign minecraft:spruce_hanging_sign minecraft:birch_hanging_sign minecraft:jungle_hanging_sign minecraft:acacia_hanging_sign minecraft:dark_oak_hanging_sign minecraft:mangrove_hanging_sign minecraft:cherry_hanging_sign minecraft:bamboo_hanging_sign minecraft:crimson_hanging_sign minecraft:warped_hanging_sign block.10401= \ -minecraft:end_portal minecraft:end_gateway +minecraft:end_portal minecraft:end_gateway minecraft:command_block #elif MC_VERSION >= 10800 #1.8-1.12 Mapping block.10999=chain -block.10044=smithing_table -block.10045=cauldron +block.10044=\ minecraft:bell +block.10045=\ minecraft:cactus block.10046=hopper block.10048=water_cauldron block.10052=powder_snow_cauldron @@ -153,8 +160,7 @@ minecraft:vine block.10108= \ minecraft:waterlily block.10109= \ -minecraft:sapling \ -minecraft:deadbush minecraft:reeds minecraft:red_mushroom minecraft:brown_mushroom minecraft:cobweb minecraft:nether_wart +minecraft:sapling \ minecraft:reeds minecraft:red_mushroom minecraft:brown_mushroom minecraft:cobweb minecraft:nether_wart block.10200= \ minecraft:redstone_wire minecraft:repeater:powered=true minecraft:comparator:powered=true \ @@ -173,7 +179,7 @@ block.10204= \ minecraft:fire block.10205= \ minecraft:beacon - +block.10465= \ minecraft:coal_ore block.10300= \ minecraft:water minecraft:flowing_water nether_portal block.10301= \ @@ -190,8 +196,8 @@ minecraft:end_portal minecraft:end_gateway #else #1.7 Mapping -block.10044=smithing_table -block.10045=cauldron +block.10044=\ minecraft:bell +block.10045=\ minecraft:cactus block.10046=hopper block.10048=water_cauldron block.10052=powder_snow_cauldron @@ -231,7 +237,7 @@ block.10204= \ minecraft:fire block.10205= \ minecraft:beacon - +block.10465= \ minecraft:coal_ore block.10300= \ minecraft:water minecraft:flowing_water block.10301= \ diff --git a/shaders/entity.properties b/shaders/entity.properties index d362ae9..46fd77a 100644 --- a/shaders/entity.properties +++ b/shaders/entity.properties @@ -7,7 +7,8 @@ #1.13+ Mapping -entity.10100=minecraft:item_frame minecraft:painting minecraft:glow_item_frame +entity.10100=minecraft:item_frame minecraft:painting minecraft:glow_item_frame +entity.10301=minecraft:warden entity.10101=minecraft:lightning_bolt #endif \ No newline at end of file diff --git a/shaders/item.properties b/shaders/item.properties index 3aa4e64..489284a 100644 --- a/shaders/item.properties +++ b/shaders/item.properties @@ -10,12 +10,13 @@ #1.13+ Mapping -item.89=minecraft:glowstone minecraft:beacon minecraft:sea_lantern minecraft:lantern minecraft:soul_lantern +item.89=minecraft:glowstone minecraft:beacon minecraft:sea_lantern minecraft:lantern minecraft:soul_lantern -item.50=minecraft:torch minecraft:end_rod minecraft:redstone_torch minecraft:jack_o_lantern minecraft:shroomlight minecraft:lava_bucket minecraft:glow_lichen minecraft:small_amethyst_bud minecraft:medium_amethyst_bud minecraft:large_amethyst_bud minecraft:amethyst_cluster minecraft:glow_berries minecraft:ochre_froglight minecraft:verdant_froglight minecraft:pearlescent_froglight +item.50=minecraft:torch minecraft:cake minecraft:red_mushroom minecraft:sculk_catalyst minecraft:end_rod minecraft:redstone_torch minecraft:jack_o_lantern minecraft:shroomlight minecraft:lava_bucket minecraft:glow_lichen minecraft:small_amethyst_bud minecraft:medium_amethyst_bud minecraft:large_amethyst_bud minecraft:amethyst_cluster minecraft:glow_berries minecraft:ochre_froglight minecraft:verdant_froglight minecraft:pearlescent_froglight item.213=minecraft:magma_block item.358=minecraft:filled_map +item.169= #endif \ No newline at end of file diff --git a/shaders/lang/en_US.lang b/shaders/lang/en_US.lang index 5a528c7..717a922 100644 --- a/shaders/lang/en_US.lang +++ b/shaders/lang/en_US.lang @@ -157,7 +157,7 @@ option.MCBL_LEGACY_COLOR=Legacy Color option.MCBL_LEGACY_COLOR.comment=Use the old method of calculating blocklight color. #Material -option.ADVANCED_MATERIALS=ADVANCED_MATERIALS +option.ADVANCED_MATERIALS=Advanced Materials option.ADVANCED_MATERIALS.comment=Enables the use of specular and normal mapping which allows for more detail on various things. §e[*]§rThis option requires a resource pack which contains specular and/or normal maps, disable if none is currently used. §e[*]§rOptions which requires advanced materials are indicated by *, changing these options won't affect the visuals or performance while advanced materials is disabled. option.MATERIAL_FORMAT=Material Format* diff --git a/shaders/lib/atmospherics/clouds.glsl b/shaders/lib/atmospherics/clouds.glsl index 9093ce6..a867f5d 100644 --- a/shaders/lib/atmospherics/clouds.glsl +++ b/shaders/lib/atmospherics/clouds.glsl @@ -348,4 +348,4 @@ vec3 DrawAurora(vec3 viewPos, float dither, int samples) { return aurora * visibility; } #endif -#endif \ No newline at end of file +#endif diff --git a/shaders/lib/atmospherics/fog.glsl b/shaders/lib/atmospherics/fog.glsl index d73007a..6c6c364 100644 --- a/shaders/lib/atmospherics/fog.glsl +++ b/shaders/lib/atmospherics/fog.glsl @@ -106,27 +106,27 @@ void NormalFog(inout vec3 color, vec3 viewPos) { #endif #ifdef NETHER - float viewLength = length(viewPos); - float fog = 2.0 * pow(viewLength * FOG_DENSITY / 256.0, 1.5); - #if DISTANT_FADE == 2 || DISTANT_FADE == 3 - fog += 6.0 * pow(fogFactor * 1.5 / far, 4.0); - #endif - fog = 1.0 - exp(-fog); - vec3 fogColor = netherCol.rgb * 0.0425; + float viewLength = length(viewPos); + float fog = 2.0 * pow(viewLength * FOG_DENSITY / 256.0, 1.5); + #if DISTANT_FADE == 2 || DISTANT_FADE == 3 + fog += 6.0 * pow(fogFactor * 1.5 / far, 4.0); + #endif + fog = 1.0 - exp(-fog); + vec3 fogColor = netherCol.rgb * 0.0425; #endif - + #ifdef END - float fog = length(viewPos) * FOG_DENSITY / 128.0; - #if DISTANT_FADE == 2 || DISTANT_FADE == 3 - fog += 6.0 * pow(fogFactor * 1 / far, 6.0); - #endif - fog = 1.0 - exp(-0.8 * fog * fog); - vec3 fogColor = endCol.rgb * 0.00625; - #ifndef LIGHT_SHAFT - fogColor *= 2.5; - #endif + // No fog effect + float fog = length(viewPos) * FOG_DENSITY / 12800.0; // Removed fog calculation + #if DISTANT_FADE == 2 || DISTANT_FADE == 3 + fog += 6.0 * pow(fogFactor * 1 / far, 6.0); + #endif + fog = 1.0 - exp(-0.8 * fog * fog); + vec3 fogColor = endCol.rgb * 0.000625; // Reduced fogColor intensity to make fog less visible + #ifndef LIGHT_SHAFT + fogColor *= 1.0; // Reduced fogColor multiplier to make fog less intense + #endif #endif - color = mix(color, fogColor, fog); } diff --git a/shaders/lib/color/endColor.glsl b/shaders/lib/color/endColor.glsl index 96f03ca..5c9c65b 100644 --- a/shaders/lib/color/endColor.glsl +++ b/shaders/lib/color/endColor.glsl @@ -1,2 +1,2 @@ -vec4 endColSqrt = vec4(vec3(END_R, END_G, END_B) / 145.0, 1.0) * END_I; +vec4 endColSqrt = vec4(vec3(END_R, END_G, END_B) / 150.0, 1.0) * END_I; vec4 endCol = endColSqrt * endColSqrt; \ No newline at end of file diff --git a/shaders/lib/lighting/coloredBlocklight.glsl b/shaders/lib/lighting/coloredBlocklight.glsl index 8278985..360c2d0 100644 --- a/shaders/lib/lighting/coloredBlocklight.glsl +++ b/shaders/lib/lighting/coloredBlocklight.glsl @@ -1,35 +1,37 @@ vec2 Reprojection(vec3 pos) { - pos = pos * 2.0 - 1.0; + pos = pos * 2.0 - 1.0; - vec4 viewPosPrev = gbufferProjectionInverse * vec4(pos, 1.0); - viewPosPrev /= viewPosPrev.w; - viewPosPrev = gbufferModelViewInverse * viewPosPrev; + vec4 viewPosPrev = gbufferProjectionInverse * vec4(pos, 1.0); + viewPosPrev /= viewPosPrev.w; + viewPosPrev = gbufferModelViewInverse * viewPosPrev; - vec3 cameraOffset = cameraPosition - previousCameraPosition; - cameraOffset *= float(pos.z > 0.56); + vec3 cameraOffset = cameraPosition - previousCameraPosition; + cameraOffset *= float(pos.z > 0.56); - vec4 previousPosition = viewPosPrev + vec4(cameraOffset, 0.0); - previousPosition = gbufferPreviousModelView * previousPosition; - previousPosition = gbufferPreviousProjection * previousPosition; - return previousPosition.xy / previousPosition.w * 0.5 + 0.5; + vec4 previousPosition = viewPosPrev + vec4(cameraOffset, 0.0); + previousPosition = gbufferPreviousModelView * previousPosition; + previousPosition = gbufferPreviousProjection * previousPosition; + + return previousPosition.xy / previousPosition.w * 0.5 + 0.5; } vec3 ApplyMultiColoredBlocklight(vec3 blocklightCol, vec3 screenPos) { - if (screenPos.z > 0.56) { - screenPos.xy = Reprojection(screenPos); - } - vec3 coloredLight = texture2DLod(colortex9, screenPos.xy, 2).rgb; - - #ifndef MCBL_LEGACY_COLOR - vec3 coloredLightNormalized = coloredLight + 0.000001; - coloredLightNormalized = normalize(coloredLightNormalized * coloredLightNormalized) * 0.875 + 0.125; - coloredLightNormalized *= GetLuminance(blocklightCol) * 1.7; - float coloredLightMix = min((coloredLight.r + coloredLight.g + coloredLight.b) * 2048.0, 1.0); - #else - vec3 coloredLightNormalized = normalize(coloredLight + 0.00001); - coloredLightNormalized *= GetLuminance(blocklightCol) / GetLuminance(coloredLightNormalized); - float coloredLightMix = min((coloredLight.r + coloredLight.g + coloredLight.b) * 256.0, 1.0); - #endif - - return mix(blocklightCol, coloredLightNormalized, coloredLightMix); + if (screenPos.z > 0.56) { + screenPos.xy = Reprojection(screenPos); + } + vec3 coloredLight = texture2DLod(colortex9, screenPos.xy, 2).rgb; + + vec3 coloredLightNormalized; + float coloredLightMix; + + coloredLightNormalized = normalize(coloredLight + 1e-6); + coloredLightNormalized = mix(coloredLightNormalized * coloredLightNormalized, vec3(1.0), 0.1); + coloredLightNormalized *= GetLuminance(blocklightCol) * 1.2; // Adjust the multiplier here + coloredLightNormalized = mix(coloredLightNormalized, vec3(0.5, 0.6, 1.0), 0.5); // Introduce a colder tone + coloredLightMix = min(dot(coloredLightNormalized, vec3(1.0)), 1.0); + + // Adjust the mix factor based on distance or other criteria if needed + float mixFactor = clamp(length(screenPos.xy - vec2(0.5)) * 2.0, 0.0, 1.0); + + return mix(blocklightCol, coloredLightNormalized, coloredLightMix * mixFactor); } \ No newline at end of file diff --git a/shaders/lib/lighting/forwardLighting.glsl b/shaders/lib/lighting/forwardLighting.glsl index 15810f2..41e708c 100644 --- a/shaders/lib/lighting/forwardLighting.glsl +++ b/shaders/lib/lighting/forwardLighting.glsl @@ -2,9 +2,7 @@ #include "/lib/lighting/shadows.glsl" #endif -void GetLighting(inout vec3 albedo, out vec3 shadow, vec3 viewPos, vec3 worldPos, - vec2 lightmap, float smoothLighting, float NoL, float vanillaDiffuse, - float parallaxShadow, float emission, float subsurface, float basicSubsurface) { +void GetLighting(inout vec3 albedo, out vec3 shadow, vec3 viewPos, vec3 worldPos, vec2 lightmap, float smoothLighting, float NoL, float vanillaDiffuse, float parallaxShadow, float emission, float subsurface, float basicSubsurface) { #if EMISSIVE == 0 || (!defined ADVANCED_MATERIALS && EMISSIVE == 1) emission = 0.0; #endif @@ -66,7 +64,7 @@ void GetLighting(inout vec3 albedo, out vec3 shadow, vec3 viewPos, vec3 worldPos #endif #ifdef OVERWORLD - float shadowMult = (1.0 - 0.95 * rainStrength) * shadowFade; + float shadowMult = (1.0 * rainStrength) * shadowFade; vec3 sceneLighting = mix(ambientCol * lightmap.y, lightCol, fullShadow * shadowMult); sceneLighting *= lightmap.y * lightmap.y * (1.0 + scattering * shadow); @@ -129,11 +127,11 @@ void GetLighting(inout vec3 albedo, out vec3 shadow, vec3 viewPos, vec3 worldPos desatColor = mix(vec3(0.4), desatColor, sqrt(lightmap.y)) * 1.7; #endif - #ifdef NETHER - float desatAmount = 1.0 - smoothstep(0.25,1.0,(1.0 - lightmap.x) * (1.0 - lightmap.x)) * (1.0 - lightFlatten); + #ifdef NETHER +float desatAmount = 0.9 - smoothstep(0.25,1.0,(1.0 - lightmap.x) * (1.0 - lightmap.x)) * (1.0 - lightFlatten) * 1.5; - vec3 desatColor = normalize(netherColSqrt.rgb + 0.000001) * 1.7; - #endif +vec3 desatColor = normalize(netherColSqrt.rgb + 0.000001) * 2.0; +#endif #ifdef END float desatAmount = 1.0 - smoothstep(0.25,1.0,(1.0 - lightmap.x) * (1.0 - lightmap.x)) * (1.0 - lightFlatten); diff --git a/shaders/lib/settings.glsl b/shaders/lib/settings.glsl index 622dfb8..14b1d55 100644 --- a/shaders/lib/settings.glsl +++ b/shaders/lib/settings.glsl @@ -49,9 +49,9 @@ Please don't edit anything from Undefine section and onwards. //#define MCBL_LEGACY_COLOR //Material// -//#define ADVANCED_MATERIALS + #define ADVANCED_MATERIALS #define MATERIAL_FORMAT 1 //[0 1] - + #define GLOWING_ORES #define REFLECTION 2 //[0 1 2] #define REFLECTION_TRANSLUCENT #define REFLECTION_SPECULAR @@ -373,7 +373,7 @@ Please don't edit anything from Undefine section and onwards. #define WAVING_FIRE #define WAVING_LANTERN #define WAVING_CHAIN - + #define WAVING_BELL //Undefine// #ifdef NETHER #undef LIGHT_SHAFT diff --git a/shaders/lib/vertex/waving.glsl b/shaders/lib/vertex/waving.glsl index 6885d04..34a5735 100644 --- a/shaders/lib/vertex/waving.glsl +++ b/shaders/lib/vertex/waving.glsl @@ -29,8 +29,6 @@ vec3 CalcMove(vec3 pos, float density, float speed, vec2 mult) { return wave * vec3(mult, mult.x); } - - float CalcLilypadMove(vec3 worldpos) { worldpos.z -= 0.125; float wave = sin(2 * pi * (constantTime * 0.7 + worldpos.x * 0.14 + worldpos.z * 0.07)) + @@ -84,6 +82,7 @@ vec3 WavingBlocks(vec3 position, float istopv) { #ifdef WAVING_GRASS if (mc_Entity.x == 10100 && istopv > 0.9) wave += CalcMove(worldpos, 0.35, 1.0, vec2(0.25, 0.06)); + #endif #ifdef WAVING_CROP @@ -109,11 +108,12 @@ vec3 WavingBlocks(vec3 position, float istopv) { #ifdef WAVING_LEAF if (mc_Entity.x == 10105) wave += CalcMove(worldpos, 0.25, .80, vec2(0.04, 0.04)); + #endif - #ifdef WAVING_VINE + #ifdef WAVING_VINE if (mc_Entity.x == 10106) - wave += CalcMove(worldpos, 0.35, 1.25, vec2(0.06, 0.06)); + wave += CalcMove(worldpos, 0.5, 1.0, vec2(0.04, 0.04)); #endif #ifdef WAVING_LAVA @@ -136,12 +136,20 @@ vec3 WavingBlocks(vec3 position, float istopv) { vec2 lateralMovement = vec2(1 * sin(worldpos.y * 10), 0.0); vec3 adjustedWorldPos = worldpos + vec3(lateralMovement, 0.0); wave += CalcMove(adjustedWorldPos, 0.005, 0.05, vec2(.07, 0.05)); - } - - -#endif - - + } + #endif + #ifdef WAVING_BELL + if (mc_Entity.x == 10044 && istopv > 0.9) { + float swingSpeed = 0.05; + float swingAmplitude = 0.01; + float swingDirection = 1.0; + wave.x += sin(worldpos.y * swingSpeed + frametime) * swingAmplitude * swingDirection; + wave.z += cos(worldpos.y * swingSpeed + frametime) * swingAmplitude * swingDirection; + } + #endif + if (mc_Entity.x == 10109 && istopv > 0.9) { + wave += CalcMove(worldpos, 0.35, 1.15, vec2(0.15, 0.06)); + } position += wave; return position; diff --git a/shaders/program/composite4.glsl b/shaders/program/composite4.glsl index b8a6953..ebb9b22 100644 --- a/shaders/program/composite4.glsl +++ b/shaders/program/composite4.glsl @@ -26,23 +26,23 @@ float weight[6] = float[6](0.0556, 0.1667, 0.2777, 0.2777, 0.1667, 0.0556); //Common Functions// vec3 BloomTile(float lod, vec2 coord, vec2 offset) { - vec3 bloom = vec3(0.0), temp = vec3(0.0); - float scale = exp2(lod); - coord = (coord - offset) * scale; - vec2 padding = vec2(0.5) + 2.0 * view * scale; - - if (abs(coord.x - 0.5) < padding.x && abs(coord.y - 0.5) < padding.y) { - for(int i = 0; i < 6; i++) { - for(int j = 0; j < 6; j++) { - float wg = weight[i] * weight[j]; - vec2 pixelOffset = vec2((float(i) - 2.5) * pw, (float(j) - 2.5) * ph); - vec2 sampleCoord = coord + pixelOffset * scale; - bloom += texture2D(colortex0, sampleCoord).rgb * wg; - } - } - } - - return pow(bloom / 32.0, vec3(0.25)); + vec3 bloom = vec3(0.0); + float scale = exp2(lod); + coord = (coord - offset) * scale; + vec2 padding = vec2(0.5) + 2.0 * view * scale; + + if (abs(coord.x - 0.5) < padding.x && abs(coord.y - 0.5) < padding.y) { + for (int i = -2; i <= 2; i++) { + for (int j = -2; j <= 2; j++) { + float wg = weight[i + 2] * weight[j + 2]; + vec2 pixelOffset = vec2(float(i) * pw, float(j) * ph); + vec2 sampleCoord = coord + pixelOffset * scale; + bloom += texture2D(colortex0, sampleCoord).rgb * wg; + } + } + } + + return pow(bloom / 32.0, vec3(0.25)); } #include "/lib/util/dither.glsl" diff --git a/shaders/program/gbuffers_block.glsl b/shaders/program/gbuffers_block.glsl index 2e47868..9ed62ab 100644 --- a/shaders/program/gbuffers_block.glsl +++ b/shaders/program/gbuffers_block.glsl @@ -354,44 +354,6 @@ void main() { if(blockEntityId == 10205) albedo.a = sqrt(albedo.a); #endif } -// from bsl - - -/* if (blockEntityId == 10401) { - vec2 portalCoord = gl_FragCoord.xy / vec2(viewWidth, viewHeight); - portalCoord = (portalCoord - 0.5) * vec2(aspectRatio, 1.0); - - vec3 portColSqrt = vec3(END_R, END_G, END_B) / 255.0 * END_I; - vec3 portCol = portColSqrt * portColSqrt * 0.05; - vec2 wind = vec2(0, frametime * 0.025); - // add floatinng cubes - portCol += texture2D(noisetex, portalCoord * 0.1 + wind * 0.05).rgb * 0.05 * portColSqrt * portColSqrt * 0.05; - // Add portal shimmer effect - float portal = texture2D(noisetex, portalCoord * 0.1 + wind * 0.05).r * 0.25 + 0.375; - - // Add intermittent glow effect - float glowFactor = step(mod(frameTimeCounter, 200), 1.0); // Glows every 2 seconds - portal += glowFactor * (sin(frameCounter * 0.1) * 0.2 + 0.2); // Intermittent glow - - #ifdef END - portal *= 0.05; - #endif - - portal += texture2D(texture, portalCoord * 0.5 + wind).r * 1.4; - portal += texture2D(texture, portalCoord + wind + 0.15).r; - portal += texture2D(texture, portalCoord * 2.0 + wind + 0.30).r * 0.7; - portal += texture2D(texture, portalCoord * 4.0 + wind + 0.45).r * 0.5; - - albedo.rgb = portal * portal * portCol.rgb; - albedo.a = 100.0; - - lightAlbedo = normalize(albedo.rgb * 20.0 + 0.00001); - - #if ALPHA_BLEND == 0 - albedo.rgb = sqrt(max(albedo.rgb, vec3(0.0))); - #endif -} - */ if (blockEntityId == 10401) { vec2 portalCoord = gl_FragCoord.xy / vec2(viewWidth, viewHeight); portalCoord = (portalCoord - 0.5) * vec2(aspectRatio, 1.0); @@ -442,13 +404,9 @@ if (blockEntityId == 10401) { albedo.rgb = sqrt(max(albedo.rgb, vec3(0.0))); #endif } - - - - - - - +if (blockEntityId == 10109){ + albedo.rgb = vec3(0.5,0.5,1.0); +} /* DRAWBUFFERS:0 */ diff --git a/shaders/program/gbuffers_entities.glsl b/shaders/program/gbuffers_entities.glsl index 894f3a3..b4971c6 100644 --- a/shaders/program/gbuffers_entities.glsl +++ b/shaders/program/gbuffers_entities.glsl @@ -38,7 +38,7 @@ uniform float timeAngle, timeBrightness; uniform float viewWidth, viewHeight; uniform ivec2 eyeBrightnessSmooth; - +uniform float time; uniform vec3 cameraPosition; uniform vec4 entityColor; @@ -152,7 +152,10 @@ void main() { vec3 darkerRed = entityColor.rgb * vec3(2.5, 0.0, 0.0); albedo.rgb = mix(albedo.rgb, darkerRed, entityColor.a); #endif - + if (entityId == 10301) { + float pulse = 0.0005 * (1.0 + sin(frameTimeCounter * 1 * 3.14159265358979)); + albedo.rgb = mix(albedo.rgb, vec3(94.0,223.0,255.0), pulse); + } float lightningBolt = float(entityId == 10101); if(lightningBolt > 0.5) { #ifdef OVERWORLD @@ -167,7 +170,6 @@ void main() { #endif albedo.a = 1.0; } - if (albedo.a > 0.001 && lightningBolt < 0.5) { vec2 lightmap = clamp(lmCoord, vec2(0.0), vec2(1.0)); @@ -304,8 +306,9 @@ void main() { albedo.rgb = sqrt(max(albedo.rgb, vec3(0.0))); #endif } - + /* DRAWBUFFERS:0 */ + gl_FragData[0] = albedo; #ifdef MULTICOLORED_BLOCKLIGHT /* DRAWBUFFERS:08 */ diff --git a/shaders/program/gbuffers_hand.glsl b/shaders/program/gbuffers_hand.glsl index 9ec1e6f..edaecc5 100644 --- a/shaders/program/gbuffers_hand.glsl +++ b/shaders/program/gbuffers_hand.glsl @@ -159,9 +159,9 @@ void main() { float emissive = (GetHandItem(50) + GetHandItem(89) + GetHandItem(213)); - float metalness = 0.0; - float emission = emissive * 0.25; - float subsurface = 0.0; + float metalness = 0.0; + float emission = emissive * 0.25; + float subsurface = 0.0; vec3 baseReflectance = vec3(0.04); emission *= dot(albedo.rgb, albedo.rgb) * 0.333; @@ -178,8 +178,7 @@ void main() { float f0 = 0.0, porosity = 0.5, ao = 1.0; vec3 normalMap = vec3(0.0, 0.0, 1.0); - GetMaterials(smoothness, metalness, f0, emission, subsurface, porosity, ao, normalMap, - newCoord, dcdx, dcdy); + GetMaterials(smoothness, metalness, f0, emission, subsurface, porosity, ao, normalMap, newCoord, dcdx, dcdy); #ifdef NORMAL_SKIP normalMap = vec3(0.0, 0.0, 1.0); @@ -289,8 +288,7 @@ void main() { #if (defined OVERWORLD || defined END) && (defined ADVANCED_MATERIALS || defined SPECULAR_HIGHLIGHT_ROUGH) vec3 specularColor = GetSpecularColor(lightmap.y, metalness, baseReflectance); - albedo.rgb += GetSpecularHighlight(newNormal, viewPos, smoothness, baseReflectance, - specularColor, shadow * vanillaDiffuse, 1.0); + albedo.rgb += GetSpecularHighlight(newNormal, viewPos, smoothness, baseReflectance, specularColor, shadow * vanillaDiffuse, 1.0); #endif #if defined ADVANCED_MATERIALS && defined REFLECTION_SPECULAR && defined REFLECTION_ROUGH @@ -384,7 +382,7 @@ attribute vec4 mc_Entity; attribute vec4 mc_midTexCoord; attribute vec4 at_tangent; #endif - +uniform int heldItemId; //Common Variables// #ifdef WORLD_TIME_ANIMATION @@ -404,6 +402,7 @@ float frametime = frameTimeCounter * ANIMATION_SPEED; //Program// void main() { + float emission = 0.0; // Initialize emission variable texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; lmCoord = (gl_TextureMatrix[1] * gl_MultiTexCoord1).xy; @@ -433,7 +432,6 @@ void main() { #endif color = gl_Color; - isMainHand = float(gl_ModelViewMatrix[3][0] > 0.0); const vec2 sunRotationData = vec2(cos(sunPathRotation * 0.01745329251994), -sin(sunPathRotation * 0.01745329251994)); diff --git a/shaders/program/gbuffers_skybasic.glsl b/shaders/program/gbuffers_skybasic.glsl index 356f05b..c6615ae 100644 --- a/shaders/program/gbuffers_skybasic.glsl +++ b/shaders/program/gbuffers_skybasic.glsl @@ -59,7 +59,7 @@ void RoundSunMoon(inout vec3 color, vec3 viewPos, vec3 sunColor, vec3 moonColor) vec3 sunMoonCol = mix(moonColor * moonVisibility, sunColor * sunVisibility, float(VoL > 0.0)); color += sun * sunMoonCol * 16.0; } - +// Function to draw star void SunGlare(inout vec3 color, vec3 viewPos, vec3 lightCol) { float VoL = dot(normalize(viewPos), lightVec); float visfactor = 0.05 * (-0.8 * timeBrightness + 1.0) * (3.0 * rainStrength + 1.0); @@ -131,7 +131,7 @@ void main() { #endif #ifdef END - vec3 albedo = vec3(0.0); + vec3 albedo = vec3(1.0); #endif /* DRAWBUFFERS:0 */ diff --git a/shaders/program/gbuffers_skytextured.glsl b/shaders/program/gbuffers_skytextured.glsl index b2d8e80..55aa2d3 100644 --- a/shaders/program/gbuffers_skytextured.glsl +++ b/shaders/program/gbuffers_skytextured.glsl @@ -76,7 +76,9 @@ void main() { #endif #ifdef END - albedo.rgb = pow(albedo.rgb,vec3(2.2)); + + albedo.rgb *= 0.02; // Apply fog factor to brightness + #ifdef SKY_DESATURATION albedo.rgb = GetLuminance(albedo.rgb) * endCol.rgb; @@ -110,7 +112,7 @@ uniform float timeAngle; uniform mat4 gbufferModelView; -#ifdef TAA +#ifdef TAA uniform int frameCounter; uniform float viewWidth; diff --git a/shaders/program/gbuffers_terrain.glsl b/shaders/program/gbuffers_terrain.glsl index cb09c90..afc3c7c 100644 --- a/shaders/program/gbuffers_terrain.glsl +++ b/shaders/program/gbuffers_terrain.glsl @@ -460,6 +460,8 @@ float reflectionScale = 0.7; #endif + +float emission = 10.0; #ifdef WORLD_CURVATURE #include "/lib/vertex/worldCurvature.glsl" #endif @@ -527,16 +529,92 @@ void main() { if (mc_Entity.x == 10301) // make it red recolor = 100; + if (mc_Entity.x == 10056) { + color.rgb *= 1.5; + emission = 1.0; + } + if (mc_Entity.x == 10057){ + color.rgb *= 1.22; + } + if (mc_Entity.x == 10045){ + float pulse = sin(frameTimeCounter * .5 * 3.14159265358979); + pulse = (pulse + 1.0) * 0.5; + + vec3 baseColor = vec3(1.0, 1.0, 1.0); + vec3 lightColor = vec3(1.0, 0.5, 0.0); + + vec3 finalColor = mix(baseColor, lightColor, pulse * 0.3); + + color.rgb = finalColor; + } + if(mc_Entity.x == 10000){ + float pulse = sin(frameTimeCounter * 0.1 * 3.14159265358979); + pulse = (pulse + 1.0) * 0.5; + + vec3 baseColor = vec3(1.0, 1.0, 1.0); + vec3 lightColor = vec3(1.0, 0.5, 0.0); + + vec3 finalColor = mix(baseColor, lightColor, pulse * 0.3); + + color.rgb = finalColor; + } + if (mc_Entity.x == 10210) { + color.rgb *= 1.15; + } + if (mc_Entity.x == 10211) { + color.rgb *= 1.25; + } + if (mc_Entity.x == 10212) { + color.rgb *= 1.35; + } + + if (mc_Entity.x == 10219){ + vec3 oreColor = vec3(1.0, 1.0 , 1.0); + float lightIntensity = 0.000001; + color.rgb += oreColor * lightIntensity; + } + if (mc_Entity.x == 10220){ + vec3 oreColor = vec3(1.0, 1.0 , 1.0); + float lightIntensity = .5; + color.rgb += oreColor * lightIntensity; + } + if (mc_Entity.x == 10213 || mc_Entity.x == 10212 || mc_Entity.x == 10214 || mc_Entity.x == 10215 || mc_Entity.x == 10216 || mc_Entity.x == 10217 || mc_Entity.x == 10218 ) { + float lightIntensity = texture2D(lightmap, lmCoord).r; + float reflectionScale = 0.7; + float baseBrightness = 0.2; + float adjustedLightIntensity = max(lightIntensity * reflectionScale, baseBrightness); - if (mc_Entity.x == 10213 || mc_Entity.x == 10212 || mc_Entity.x == 10214 || mc_Entity.x == 10215 || mc_Entity.x == 10216 || mc_Entity.x == 10217 || mc_Entity.x == 10218 ) { - float lightIntensity = texture2D(lightmap, lmCoord).r; - float reflectionScale = 0.7; - float baseBrightness = 0.2; - float adjustedLightIntensity = max(lightIntensity * reflectionScale, baseBrightness); - - color.rgb *= vec3(adjustedLightIntensity); - color.rgb = max(color.rgb, vec3(0.1)); -} + color.rgb *= vec3(adjustedLightIntensity); + color.rgb = max(color.rgb, vec3(0.1)); + } + if ( mc_Entity.x == 10046){ + color.rgb *= 1.2; + } + + if ( mc_Entity.x == 10048){ + float pulse = sin(frameTimeCounter * 1.25 * 3.14159265358979); + pulse = (pulse + 1.0) * 0.5; + + vec3 baseColor = vec3(1.0, 1.0, 1.0); + vec3 lightColor = vec3(1.0, 0.5, 0.0); + + vec3 finalColor = mix(baseColor, lightColor, pulse * 0.3); + + color.rgb = finalColor; + + } + if (mc_Entity.x == 10052){ + float pulse = sin(frameTimeCounter * 1.7 * 3.14159265358979); + pulse = (pulse + 1.0) * 0.5; + + vec3 baseColor = vec3(1.0, 1.0, 1.0); + vec3 lightColor = vec3(1.0, 0.5, 0.0); + + vec3 finalColor = mix(baseColor, lightColor, pulse * 0.3); + + color.rgb = finalColor; + } + if (color.a < 0.1) color.a = 1.0; diff --git a/shaders/program/gbuffers_water.glsl b/shaders/program/gbuffers_water.glsl index 22a3ccb..3c58c18 100644 --- a/shaders/program/gbuffers_water.glsl +++ b/shaders/program/gbuffers_water.glsl @@ -161,7 +161,6 @@ vec3 GetWaterNormal(vec3 worldPos, vec3 viewPos, vec3 viewVector) { vec3 normalMap = vec3(xDelta, yDelta, 1.0 - (xDelta * xDelta + yDelta * yDelta)); return normalMap * normalStrength + vec3(0.0, 0.0, 1.0 - normalStrength); } -// Check if the water is in a cauldron //Includes// #include "/lib/color/blocklightColor.glsl" @@ -233,7 +232,7 @@ void main() { float metalness = 0.0; float emission = portal * 0.4; - float subsurface = 0.0; + float subsurface = 10.0; float basicSubsurface = water; vec3 baseReflectance = vec3(0.04); @@ -734,12 +733,10 @@ void main() { mat = 0.0; - if (mc_Entity.x == 10300 || mc_Entity.x == 10304) mat = 1.0; + if (mc_Entity.x == 10300 || mc_Entity.x == 10304 || mc_Entity.x == 10048) mat = 1.0; if (mc_Entity.x == 10301) mat = 0.0; if (mc_Entity.x == 10302) mat = 3.0; - // Add a custom texture sampler for the Nether portal -// In the main function, sample the texture and apply it to the portal const vec2 sunRotationData = vec2( cos(sunPathRotation * 0.01745329251994), diff --git a/shaders/shaders.properties b/shaders/shaders.properties index 3854e8c..3b2a2e4 100644 --- a/shaders/shaders.properties +++ b/shaders/shaders.properties @@ -24,7 +24,7 @@ screen.LIGHTING= SHADOW [SHADOW_CONFIG] shadowMapResolution shado screen.SHADOW_CONFIG= SHADOW_ENTITY SHADOW_BLOCK_ENTITY SHADOW_VEGETATION sunPathRotation SHADOW_PIXEL screen.MCBL= MCBL_ANTI_BLEED MCBL_LEGACY_COLOR -screen.MATERIAL= ADVANCED_MATERIALS MATERIAL_FORMAT [SPECULAR] [NORMALS] SSS BASIC_SSS EMISSIVE REFRACTION ALBEDO_BALANCING ALPHA_BLEND ENTITY_FLASH +screen.MATERIAL= ADVANCED_MATERIALS MATERIAL_FORMAT [SPECULAR] [NORMALS] SSS BASIC_SSS EMISSIVE REFRACTION ALBEDO_BALANCING ALPHA_BLEND ENTITY_FLASH GLOWING_ORES screen.SPECULAR= REFLECTION REFLECTION_TRANSLUCENT REFLECTION_SPECULAR REFLECTION_RAIN REFLECTION_ROUGH REFLECTION_PREVIOUS SPECULAR_HIGHLIGHT_ROUGH ALBEDO_METAL REFLECTION_MODE REFLECTION_SKY_FALLOFF REFLECTION_SKYBOX screen.NORMALS= PARALLAX PARALLAX_DEPTH PARALLAX_QUALITY PARALLAX_DISTANCE SELF_SHADOW SELF_SHADOW_ANGLE SELF_SHADOW_QUALITY SELF_SHADOW_STRENGTH DIRECTIONAL_LIGHTMAP DIRECTIONAL_LIGHTMAP_STRENGTH NORMAL_DAMPENING NORMAL_PLANTS @@ -81,7 +81,7 @@ screen.CG_T= CG_TR CG_TG CG_TB CG_TI CG_TM screen.EXTRAS= OUTLINE TOON_LIGHTMAP RETRO_FILTER WORLD_CURVATURE WORLD_CURVATURE_SIZE HIGHLIGHT -screen.ANIMATION= WORLD_TIME_ANIMATION ANIMATION_SPEED WAVING_GRASS WAVING_CROP WAVING_PLANT WAVING_TALL_PLANT WAVING_LEAF WAVING_VINE WAVING_WATER WAVING_LAVA WAVING_FIRE WAVING_LANTERN WAVING_CHAIN +screen.ANIMATION= WORLD_TIME_ANIMATION ANIMATION_SPEED WAVING_GRASS WAVING_CROP WAVING_PLANT WAVING_TALL_PLANT WAVING_LEAF WAVING_VINE WAVING_WATER WAVING_LAVA WAVING_FIRE WAVING_LANTERN WAVING_CHAIN WAVING_BELL #Set Sliders sliders=shadowMapResolution shadowDistance sunPathRotation SHADOW_PIXEL AO_STRENGTH LIGHT_SHAFT_STRENGTH DESATURATION_FACTOR REFLECTION_SKY_FALLOFF PARALLAX_DEPTH PARALLAX_QUALITY PARALLAX_DISTANCE SELF_SHADOW_ANGLE SELF_SHADOW_QUALITY SELF_SHADOW_STRENGTH DIRECTIONAL_LIGHTMAP_STRENGTH DOF_STRENGTH MOTION_BLUR_STRENGTH BLOOM_STRENGTH BLOOM_CONTRAST BLOOM_RADIUS LENS_FLARE_STRENGTH VIGNETTE_STRENGTH EXPOSURE AUTO_EXPOSURE_RADIUS AUTO_EXPOSURE_SPEED TONEMAP_LOWER_CURVE TONEMAP_UPPER_CURVE TONEMAP_WHITE_CURVE SATURATION VIBRANCE CG_RR CG_RG CG_RB CG_RI CG_RM CG_RC CG_GR CG_GG CG_GB CG_GI CG_GM CG_GC CG_BR CG_BG CG_BB CG_BI CG_BM CG_BC CG_TR CG_TG CG_TB CG_TI CG_TM FXAA_SUBPIXEL FXAA_EDGE_SENSITIVITY LIGHT_MR LIGHT_MG LIGHT_MB LIGHT_MI LIGHT_DR LIGHT_DG LIGHT_DB LIGHT_DI LIGHT_ER LIGHT_EG LIGHT_EB LIGHT_EI LIGHT_NR LIGHT_NG LIGHT_NB LIGHT_NI AMBIENT_MR AMBIENT_MG AMBIENT_MB AMBIENT_MI AMBIENT_DR AMBIENT_DG AMBIENT_DB AMBIENT_DI AMBIENT_ER AMBIENT_EG AMBIENT_EB AMBIENT_EI AMBIENT_NR AMBIENT_NG AMBIENT_NB AMBIENT_NI MINLIGHT_R MINLIGHT_G MINLIGHT_B MINLIGHT_I BLOCKLIGHT_R BLOCKLIGHT_G BLOCKLIGHT_B BLOCKLIGHT_I SKY_R SKY_G SKY_B SKY_I WATER_R WATER_G WATER_B WATER_I WATER_A WEATHER_RR WEATHER_RG WEATHER_RB WEATHER_RI WEATHER_CR WEATHER_CG WEATHER_CB WEATHER_CI WEATHER_DR WEATHER_DG WEATHER_DB WEATHER_DI WEATHER_BR WEATHER_BG WEATHER_BB WEATHER_BI WEATHER_SR WEATHER_SG WEATHER_SB WEATHER_SI WEATHER_MR WEATHER_MG WEATHER_MB WEATHER_MI WEATHER_VR WEATHER_VG WEATHER_VB WEATHER_VI AURORA_LR AURORA_LG AURORA_LB AURORA_LI AURORA_HR AURORA_HG AURORA_HB AURORA_HI NETHER_NR NETHER_NG NETHER_NB NETHER_NI NETHER_VR NETHER_VG NETHER_VB NETHER_VI NETHER_CR NETHER_CG NETHER_CB NETHER_CI NETHER_WR NETHER_WG NETHER_WB NETHER_WI NETHER_BR NETHER_BG NETHER_BB NETHER_BI END_R END_G END_B END_I CLOUD_DENSITY CLOUD_AMOUNT CLOUD_HEIGHT CLOUD_THICKNESS CLOUD_DETAIL CLOUD_OPACITY CLOUD_SPEED CLOUD_BRIGHTNESS CLOUD_VOLUMETRIC_SCALE SKY_DENSITY_D SKY_EXPOSURE_D SKY_DENSITY_N SKY_EXPOSURE_N SKY_DENSITY_W SKY_EXPOSURE_W SKY_HORIZON_N SKY_HORIZON_F SKYBOX_BRIGHTNESS WATER_SHARPNESS WATER_DETAIL WATER_BUMP WATER_SPEED WATER_FOG_DENSITY WATER_CAUSTICS_STRENGTH WATER_PIXEL WEATHER_OPACITY FOG_DENSITY WORLD_CURVATURE_SIZE ANIMATION_SPEED