Add shader grass, merge xonks latest commits, fix compile error in end/nether

This commit is contained in:
Merlin1809 committed 2025-10-06 01:52:57 +02:00
1 parent 5249bbdf58
commit ffb4058a35
49 files changed
+1461 -344

No files matched your search

+10 -5
View File
@@ -70,7 +70,7 @@ block.52=iron_bars pointed_dripstone \
vinery:dark_cherry_table
# Blocks that occlude 75% of light
block.53=bell \
block.53=bell mangrove_roots copper_grate exposed_copper_grate weathered_copper_grate oxidized_copper_grate waxed_copper_grate waxed_exposed_copper_grate waxed_weathered_copper_grate waxed_oxidized_copper_grate \
vinery:dark_cherry_big_table
@@ -91,7 +91,7 @@ block.54=minecraft:melon_stem minecraft:pumpkin_stem minecraft:flowering_azalea
## ground waving vertical models. this exists to brighten up the sides of grass and stuff in shaded places they blend in better with the world.
block.55=minecraft:closed_eyeblossom minecraft:open_eyeblossom minecraft:fern \
biomesoplenty:bush \
conquest:thick_fern conquest:tumbleweed conquest:nether_sprouts conquest:azure_bluet conquest:wild_daisy conquest:blue_orchid conquest:red_clover_flowers conquest:small_grape_vine conquest:acacia_sapling conquest:alder_tree_sapling conquest:apple_tree_sapling conquest:aspen_tree_sapling conquest:birch_sapling conquest:cherry_tree_sapling conquest:dark_oak_sapling conquest:downy_willow_tree_sapling conquest:gorse_tree_sapling conquest:grape_vine_sapling conquest:horse_chestnut_tree_sapling conquest:jungle_sapling conquest:larch_tree_sapling conquest:mallorn_tree_sapling conquest:oak_sapling conquest:orange_tree_sapling conquest:pear_tree_sapling conquest:pine_tree_sapling conquest:plum_tree_sapling conquest:rowan_tree_sapling conquest:spruce_sapling conquest:willow_tree_sapling conquest:black_knapweed conquest:buttercups conquest:cornflower conquest:dandelion conquest:elanor conquest:goldenrod conquest:harebell conquest:lily_of_the_valley conquest:lobelia_flowers conquest:marsh_ragwort conquest:meadow_saffron conquest:mediterranean_wild_tulip conquest:moorland_spotted_orchid conquest:niphredil conquest:orange_tulip conquest:orpine conquest:oxeye_daisy conquest:pasque_flower conquest:pink_tulip conquest:poppy conquest:red_tulip conquest:rock_rose conquest:sea_lavender conquest:simbelmyne conquest:white_tulip conquest:wild_dagga conquest:barley conquest:beetroots conquest:cabbage conquest:carrots conquest:common_beans conquest:flax conquest:lavender conquest:warped_fungus conquest:peas conquest:potatoes conquest:rice conquest:thyme conquest:tobacco conquest:turnips conquest:water_mint conquest:wheat conquest:wild_basil conquest:wild_parsley conquest:wild_wheat conquest:common_meadow_grass conquest:cotton_grass conquest:dead_grass conquest:deergrass conquest:grass conquest:kentucky_bluegrass conquest:lush_grass conquest:purple_moor_grass conquest:sea_arrowgrass conquest:seagrass conquest:timothy_grass conquest:beautyberry_bush conquest:bilberry_bush conquest:blackberry_bush conquest:bog_blueberry_bush conquest:broom_bush conquest:dead_bush conquest:lingonberry_bush conquest:raspberry_bush conquest:athelas conquest:autumnal_dwarf_birch conquest:birdsfoot_trefoil conquest:bog_asphodel conquest:bottle_sedge conquest:common_cow_wheat conquest:cross_leaved_heath conquest:dead_shrubs conquest:desert_shrub conquest:dogs_mercury conquest:greater_wood_rush conquest:green_spurge conquest:heather conquest:nightshade conquest:purple_wolfs_bane conquest:red_common_cow_wheat conquest:wild_shrub conquest:sedge conquest:thick_rushes conquest:greater_fen_sedges conquest:cattail_reeds conquest:summer_dead_reeds conquest:giant_wild_reeds conquest:sheeps_fescue conquest:small_fescue conquest:sparse_headed_feathergrass conquest:dense_headed_feathergrass conquest:white_yarrow conquest:yellow_yarrow conquest:small_scabious conquest:sweet_woodruff conquest:wild_overgrown_nettles conquest:light_wild_shrub conquest:dark_wild_shrub conquest:wild_shrub conquest:wood_horsetail conquest:woodland_sedge conquest:wormwood conquest:yellow_wolfs_bane conquest:autumnal_bracken conquest:bracken conquest:dark_autumnal_bracken conquest:dead_bracken conquest:fern conquest:fern_1 conquest:fern_2 conquest:harts_tongue_fern conquest:cross_leaved_heath
conquest:thick_fern conquest:tumbleweed conquest:nether_sprouts conquest:azure_bluet conquest:wild_daisy conquest:blue_orchid conquest:red_clover_flowers conquest:small_grape_vine conquest:acacia_sapling conquest:alder_tree_sapling conquest:apple_tree_sapling conquest:aspen_tree_sapling conquest:birch_sapling conquest:cherry_tree_sapling conquest:dark_oak_sapling conquest:downy_willow_tree_sapling conquest:gorse_tree_sapling conquest:grape_vine_sapling conquest:horse_chestnut_tree_sapling conquest:jungle_sapling conquest:larch_tree_sapling conquest:mallorn_tree_sapling conquest:oak_sapling conquest:orange_tree_sapling conquest:pear_tree_sapling conquest:pine_tree_sapling conquest:plum_tree_sapling conquest:rowan_tree_sapling conquest:spruce_sapling conquest:willow_tree_sapling conquest:black_knapweed conquest:buttercups conquest:cornflower conquest:dandelion conquest:elanor conquest:goldenrod conquest:harebell conquest:lily_of_the_valley conquest:lobelia_flowers conquest:marsh_ragwort conquest:meadow_saffron conquest:mediterranean_wild_tulip conquest:moorland_spotted_orchid conquest:niphredil conquest:orange_tulip conquest:orpine conquest:oxeye_daisy conquest:pasque_flower conquest:pink_tulip conquest:poppy conquest:red_tulip conquest:rock_rose conquest:sea_lavender conquest:simbelmyne conquest:white_tulip conquest:wild_dagga conquest:barley conquest:beetroots conquest:cabbage conquest:carrots conquest:common_beans conquest:flax conquest:lavender conquest:warped_fungus conquest:peas conquest:potatoes conquest:rice conquest:thyme conquest:tobacco conquest:turnips conquest:water_mint conquest:wheat conquest:wild_basil conquest:wild_parsley conquest:wild_wheat conquest:common_meadow_grass conquest:cotton_grass conquest:dead_grass conquest:deergrass conquest:grass conquest:kentucky_bluegrass conquest:lush_grass conquest:purple_moor_grass conquest:sea_arrowgrass conquest:seagrass conquest:timothy_grass conquest:beautyberry_bush conquest:bilberry_bush conquest:blackberry_bush conquest:bog_blueberry_bush conquest:broom_bush conquest:dead_bush conquest:lingonberry_bush conquest:raspberry_bush conquest:athelas conquest:autumnal_dwarf_birch conquest:birdsfoot_trefoil conquest:bog_asphodel conquest:bottle_sedge conquest:common_cow_wheat conquest:cross_leaved_heath conquest:dead_shrubs conquest:desert_shrub conquest:dogs_mercury conquest:greater_wood_rush conquest:green_spurge conquest:heather conquest:nightshade conquest:purple_wolfs_bane conquest:red_common_cow_wheat conquest:wild_shrub conquest:sedge conquest:thick_rushes conquest:greater_fen_sedges conquest:cattail_reeds conquest:summer_dead_reeds conquest:giant_wild_reeds conquest:sheeps_fescue conquest:small_fescue conquest:sparse_headed_feathergrass conquest:dense_headed_feathergrass conquest:white_yarrow conquest:yellow_yarrow conquest:small_scabious conquest:sweet_woodruff conquest:wild_overgrown_nettles conquest:light_wild_shrub conquest:dark_wild_shrub conquest:wild_shrub conquest:wood_horsetail conquest:woodland_sedge conquest:wormwood conquest:yellow_wolfs_bane conquest:autumnal_bracken conquest:bracken conquest:dark_autumnal_bracken conquest:dead_bracken conquest:fern conquest:fern_1 conquest:fern_2 conquest:harts_tongue_fern conquest:cross_leaved_heath \
flying_stuff:blow_flower flying_stuff:fiery_short_grass flying_stuff:fiery_grass flying_stuff:small_arid_bush flying_stuff:metallic_shorter_grass flying_stuff:firey_tree_sapling flying_stuff:abyss_grass flying_stuff:arid_grass flying_stuff:fiery_tree_sapling flying_stuff:lavic_tree_sapling flying_stuff:short_lavic_grass flying_stuff:warmth_radish_plant \
meadow:eriophorum meadow:pine_sapling meadow:alpine_poppy meadow:delphinium meadow:saxifrage meadow:enzian meadow:fire_lily
@@ -145,7 +145,7 @@ block.80=minecraft:kelp_plant minecraft:peony minecraft:rose_bush minecraft:lila
#define snow_layers_5_8_entry snow:layers=5 snow:layers=6 snow:layers=7 snow:layers=8
#endif
## weak sss
block.81=minecraft:amethyst_block minecraft:budding_amethyst minecraft:small_amethyst_bud minecraft:pitcher_plant minecraft:grass_block:snowy=true snow_layers_5_8_entry minecraft:snow_block powder_snow cobweb red_mushroom_block brown_mushroom_block weeping_vines weeping_vines_plant twisting_vines twisting_vines_plant tube_coral tube_coral_block tube_coral_fan tube_coral_wall_fan horn_coral horn_coral_block horn_coral_fan horn_coral_wall_fan fire_coral fire_coral_block fire_coral_fan fire_coral_wall_fan dead_brain_coral dead_brain_coral_block dead_brain_coral_fan dead_brain_coral_wall_fan dead_bubble_coral dead_bubble_coral_block dead_bubble_coral_fan dead_bubble_coral_wall_fan dead_bush dead_fire_coral dead_fire_coral_block dead_fire_coral_fan dead_fire_coral_wall_fan dead_horn_coral dead_horn_coral_block dead_horn_coral_fan dead_horn_coral_wall_fan dead_tube_coral dead_tube_coral_block dead_tube_coral_fan dead_tube_coral_wall_fan bubble_coral bubble_coral_block bubble_coral_fan bubble_coral_wall_fan brain_coral brain_coral_block brain_coral_fan brain_coral_wall_fan minecraft:spore_blossom minecraft:cave_vines_plant:berries=false minecraft:melon minecraft:pumpkin minecraft:big_dripleaf minecraft:big_dripleaf_stem minecraft:cactus minecraft:hay_block minecraft:brown_mushroom minecraft:mushroom_stem minecraft:sugar_cane minecraft:crimson_fungus minecraft:warped_fungus minecraft:sea_pickle:waterlogged=false minecraft:honeycomb_block \
block.81= minecraft:moss_block minecraft:bee_nest minecraft:amethyst_block minecraft:budding_amethyst minecraft:small_amethyst_bud minecraft:pitcher_plant minecraft:grass_block:snowy=true snow_layers_5_8_entry minecraft:snow_block powder_snow cobweb red_mushroom_block brown_mushroom_block weeping_vines weeping_vines_plant twisting_vines twisting_vines_plant tube_coral tube_coral_block tube_coral_fan tube_coral_wall_fan horn_coral horn_coral_block horn_coral_fan horn_coral_wall_fan fire_coral fire_coral_block fire_coral_fan fire_coral_wall_fan dead_brain_coral dead_brain_coral_block dead_brain_coral_fan dead_brain_coral_wall_fan dead_bubble_coral dead_bubble_coral_block dead_bubble_coral_fan dead_bubble_coral_wall_fan dead_bush dead_fire_coral dead_fire_coral_block dead_fire_coral_fan dead_fire_coral_wall_fan dead_horn_coral dead_horn_coral_block dead_horn_coral_fan dead_horn_coral_wall_fan dead_tube_coral dead_tube_coral_block dead_tube_coral_fan dead_tube_coral_wall_fan bubble_coral bubble_coral_block bubble_coral_fan bubble_coral_wall_fan brain_coral brain_coral_block brain_coral_fan brain_coral_wall_fan minecraft:spore_blossom minecraft:cave_vines_plant:berries=false minecraft:melon minecraft:pumpkin minecraft:carved_pumpkin minecraft:big_dripleaf minecraft:big_dripleaf_stem minecraft:cactus minecraft:hay_block minecraft:brown_mushroom minecraft:mushroom_stem minecraft:sugar_cane minecraft:crimson_fungus minecraft:warped_fungus minecraft:sea_pickle:waterlogged=false minecraft:honeycomb_block \
aquamirae:painting_anglerfish aquamirae:painting_oxygelium aquamirae:painting_tortured_soul aquamirae:painting_aurora \
beachparty:seashell_block beachparty:beach_parasol \
biomesoplenty:toadstool \
@@ -171,13 +171,14 @@ block.83=minecraft:white_wall_banner minecraft:orange_wall_banner minecraft:mage
westerosblocks:renly_banner westerosblocks:redwyne_banner westerosblocks:grafton_banner westerosblocks:grey_banner westerosblocks:red_banner westerosblocks:black_banner westerosblocks:the_faith_of_the_seven_banner westerosblocks:cream_banner westerosblocks:blue_banner westerosblocks:brown_banner westerosblocks:cyan_banner westerosblocks:green_banner westerosblocks:orange_banner westerosblocks:pink_banner westerosblocks:purple_banner westerosblocks:lord_of_light_rhllor_banner westerosblocks:yellow_banner westerosblocks:arryn_banner westerosblocks:baratheon_banner westerosblocks:bolton_banner westerosblocks:dayne_banner westerosblocks:frey_banner westerosblocks:greyjoy_banner westerosblocks:hightower_banner westerosblocks:lannister_banner westerosblocks:manderly_banner westerosblocks:martell_banner westerosblocks:stannis_banner westerosblocks:stark_banner westerosblocks:targaryen_banner westerosblocks:tarly_banner westerosblocks:tully_banner westerosblocks:tyrell_banner
## weird blocks
block.84=minecraft:sand minecraft:red_sand \
block.84=minecraft:sand minecraft:red_sand minecraft:suspicious_sand \
conquest:sand_stairs conquest:sand_layer conquest:wet_sand conquest:wet_sand_stairs conquest:wet_sand_layer conquest:sand_and_gravel conquest:sand_and_gravel_stairs conquest:sand_and_gravel_layer conquest:wet_sand_and_gravel conquest:wet_sand_and_gravel_stairs conquest:wet_sand_and_gravel_layer conquest:sand_and_vegetation conquest:sand_and_vegetation_stairs conquest:sand_and_vegetation_layer conquest:wet_sand_and_vegetation conquest:wet_sand_and_vegetation_stairs conquest:wet_sand_and_vegetation_layer conquest:tan_sand conquest:tan_sand_stairs conquest:tan_sand_layer conquest:wet_tan_sand conquest:wet_tan_sand_stairs conquest:wet_tan_sand_layer conquest:brown_sand conquest:brown_sand_stairs conquest:brown_sand_layer conquest:wet_brown_sand conquest:wet_brown_sand_stairs conquest:wet_brown_sand_layer conquest:red_sand_stairs conquest:red_sand_layer conquest:red_sand_and_gravel conquest:red_sand_and_gravel_stairs conquest:red_sand_and_gravel_layer conquest:red_sand_and_vegetation conquest:red_sand_and_vegetation_stairs conquest:red_sand_and_vegetation_layer conquest:wet_river_sand conquest:wet_river_sand_stairs conquest:wet_river_sand_layer conquest:dry_river_sand conquest:dry_river_sand_stairs conquest:dry_river_sand_layer \
# conquest dirt blocks test
conquest:light_cracked_dirt conquest:light_cracked_dirt_corner_slab conquest:light_cracked_dirt_eighth_slab conquest:light_cracked_dirt_quarter_slab conquest:light_cracked_dirt_slab conquest:light_cracked_dirt_stairs conquest:light_cracked_dirt_vertical_corner conquest:light_cracked_dirt_vertical_quarter conquest:light_cracked_dirt_vertical_slab conquest:brown_earth conquest:brown_earth_corner_slab conquest:brown_earth_eighth_slab conquest:brown_earth_quarter_slab conquest:brown_earth_slab conquest:brown_earth_stairs conquest:brown_earth_vertical_corner conquest:brown_earth_vertical_quarter conquest:brown_earth_vertical_slab conquest:ochre_soil conquest:ochre_soil_corner_slab conquest:ochre_soil_eighth_slab conquest:ochre_soil_quarter_slab conquest:ochre_soil_slab conquest:ochre_soil_stairs conquest:ochre_soil_vertical_corner conquest:ochre_soil_vertical_quarter conquest:ochre_soil_vertical_slab conquest:dark_sandy_soil conquest:dark_sandy_soil_corner_slab conquest:dark_sandy_soil_eighth_slab conquest:dark_sandy_soil_quarter_slab conquest:dark_sandy_soil_slab conquest:dark_sandy_soil_stairs conquest:dark_sandy_soil_vertical_corner conquest:dark_sandy_soil_vertical_quarter conquest:dark_sandy_soil_vertical_slab conquest:light_silt conquest:light_silt_corner_slab conquest:light_silt_eighth_slab conquest:light_silt_quarter_slab conquest:light_silt_slab conquest:light_silt_stairs conquest:light_silt_vertical_corner conquest:light_silt_vertical_quarter conquest:light_silt_vertical_slab conquest:dark_silt conquest:dark_silt_corner_slab conquest:dark_silt_eighth_slab conquest:dark_silt_quarter_slab conquest:dark_silt_slab conquest:dark_silt_stairs conquest:dark_silt_vertical_corner conquest:dark_silt_vertical_quarter conquest:dark_silt_vertical_slab conquest:silty_lorien_dirt conquest:silty_lorien_dirt_corner_slab conquest:silty_lorien_dirt_eighth_slab conquest:silty_lorien_dirt_quarter_slab conquest:silty_lorien_dirt_slab conquest:silty_lorien_dirt_stairs conquest:silty_lorien_dirt_vertical_corner conquest:silty_lorien_dirt_vertical_quarter conquest:silty_lorien_dirt_vertical_slab conquest:dark_fertile_soil conquest:dark_fertile_soil_corner_slab conquest:dark_fertile_soil_eighth_slab conquest:dark_fertile_soil_quarter_slab conquest:dark_fertile_soil_slab conquest:dark_fertile_soil_stairs conquest:dark_fertile_soil_vertical_corner conquest:dark_fertile_soil_vertical_quarter conquest:dark_fertile_soil_vertical_slab conquest:peat conquest:peat_corner_slab conquest:peat_eighth_slab conquest:peat_quarter_slab conquest:peat_slab conquest:peat_stairs conquest:peat_vertical_corner conquest:peat_vertical_quarter conquest:peat_vertical_slab conquest:mud conquest:mud_corner_slab conquest:mud_eighth_slab conquest:mud_quarter_slab conquest:mud_slab conquest:mud_stairs conquest:mud_vertical_corner conquest:mud_vertical_quarter conquest:mud_vertical_slab conquest:thick_mud conquest:thick_mud_corner_slab conquest:thick_mud_eighth_slab conquest:thick_mud_quarter_slab conquest:thick_mud_slab conquest:thick_mud_stairs conquest:thick_mud_vertical_corner conquest:thick_mud_vertical_quarter conquest:thick_mud_vertical_slab conquest:clay_rich_mud conquest:clay_rich_mud_corner_slab conquest:clay_rich_mud_eighth_slab conquest:clay_rich_mud_quarter_slab conquest:clay_rich_mud_slab conquest:clay_rich_mud_stairs conquest:clay_rich_mud_vertical_corner conquest:clay_rich_mud_vertical_quarter conquest:clay_rich_mud_vertical_slab conquest:coarse_chalky_soil conquest:coarse_chalky_soil_corner_slab conquest:coarse_chalky_soil_eighth_slab conquest:coarse_chalky_soil_quarter_slab conquest:coarse_chalky_soil_slab conquest:coarse_chalky_soil_stairs conquest:coarse_chalky_soil_vertical_corner conquest:coarse_chalky_soil_vertical_quarter conquest:coarse_chalky_soil_vertical_slab conquest:chalky_soil conquest:chalky_soil_corner_slab conquest:chalky_soil_eighth_slab conquest:chalky_soil_quarter_slab conquest:chalky_soil_slab conquest:chalky_soil_stairs conquest:chalky_soil_vertical_corner conquest:chalky_soil_vertical_quarter conquest:chalky_soil_vertical_slab conquest:blue_soil conquest:blue_soil_corner_slab conquest:blue_soil_eighth_slab conquest:blue_soil_quarter_slab conquest:blue_soil_slab conquest:blue_soil_stairs conquest:blue_soil_vertical_corner conquest:blue_soil_vertical_quarter conquest:blue_soil_vertical_slab conquest:coarse_white_dirt conquest:coarse_white_dirt_corner_slab conquest:coarse_white_dirt_eighth_slab conquest:coarse_white_dirt_quarter_slab conquest:coarse_white_dirt_slab conquest:coarse_white_dirt_stairs conquest:coarse_white_dirt_vertical_corner conquest:coarse_white_dirt_vertical_quarter conquest:coarse_white_dirt_vertical_slab conquest:medium_white_dirt conquest:medium_white_dirt_corner_slab conquest:medium_white_dirt_eighth_slab conquest:medium_white_dirt_quarter_slab conquest:medium_white_dirt_slab conquest:medium_white_dirt_stairs conquest:medium_white_dirt_vertical_corner conquest:medium_white_dirt_vertical_quarter conqueLine truncated
## grass uwu
block.85=minecraft:grass_block:snowy=false \
terrainslabs:grass_slab \
conquest:grass_block_corner_slab conquest:grass_block_eighth_slab conquest:grass_block_layer conquest:grass_block_quarter_slab conquest:grass_block_stairs conquest:grass_block_vertical_corner conquest:grass_block_vertical_corner_slab conquest:grass_block_vertical_quarter conquest:grass_block_vertical_slab conquest:grass_covered_limestone conquest:grass_covered_limestone_stairs conquest:grass_covered_limestone_vertical_corner conquest:grass_covered_limestone_vertical_quarter conquest:grass_covered_limestone_vertical_slab conquest:clover_covered_grass conquest:clover_covered_grass_corner_slab conquest:clover_covered_grass_eighth_slab conquest:clover_covered_grass_layer conquest:clover_covered_grass_quarter_slab conquest:clover_covered_grass_stairs conquest:clover_covered_grass_vertical_corner conquest:clover_covered_grass_vertical_corner_slab conquest:clover_covered_grass_vertical_quarter conquest:clover_covered_grass_vertical_slab conquest:taiga_grass conquest:taiga_grass_corner_slab conquest:taiga_grass_eighth_slab conquest:taiga_grass_layer conquest:taiga_grass_quarter_slab conquest:taiga_grass_stairs conquest:taiga_grass_vertical_corner conquest:taiga_grass_vertical_corner_slab conquest:taiga_grass_vertical_quarter conquest:taiga_grass_vertical_slab conquest:mossy_sandstone_debris conquest:mossy_sandstone_debris_stairs conquest:mossy_sandstone_debris_layer \
@@ -1103,5 +1104,9 @@ block.500=minecraft:end_portal
## all blocks here get exluded from POM.
block.501=minecraft:acacia_sign minecraft:bamboo_sign minecraft:birch_sign minecraft:cherry_sign minecraft:crimson_sign minecraft:dark_oak_sign minecraft:jungle_sign minecraft:mangrove_sign minecraft:oak_sign minecraft:pale_oak_sign minecraft:spruce_sign minecraft:warped_sign minecraft:acacia_wall_sign minecraft:bamboo_wall_sign minecraft:birch_wall_sign minecraft:cherry_wall_sign minecraft:crimson_wall_sign minecraft:dark_oak_wall_sign minecraft:jungle_wall_sign minecraft:mangrove_wall_sign minecraft:oak_wall_sign minecraft:pale_oak_wall_sign minecraft:spruce_wall_sign minecraft:warped_wall_sign
# glowing ores
block.502= emerald_ore deepslate_emerald_ore gold_ore deepslate_gold_ore iron_ore deepslate_iron_ore diamond_ore deepslate_diamond_ore redstone_ore deepslate_redstone_ore copper_ore deepslate_copper_ore lapis_ore deepslate_lapis_ore coal_ore deepslate_coal_ore nether_quartz_ore nether_gold_ore \
create:zinc_ore create:deepslate_zinc_ore
create:zinc_ore create:deepslate_zinc_ore
## blocks where shader grass should is taller around, basically just full building blocks
block.503= mycelium dirt_path clay mud farmland crimson_nylium warped_nylium dripstone_block calcite soul_soil soul_sand calcite obsidian bedrock beehive lodestone barrel respawn_anchor infested_deepslate infested_cobblestone infested_stone ancient_debris raw_iron_block raw_gold_block raw_copper_block muddy_mangrove_roots bone_block waxed_oxidized_cut_copper waxed_oxidized_chiseled_copper waxed_oxidized_copper waxed_weathered_cut_copper waxed_weathered_chiseled_copper waxed_weathered_copper waxed_exposed_cut_copper waxed_exposed_chiseled_copper waxed_exposed_copper waxed_chiseled_copper waxed_cut_copper waxed_copper_block oxidized_cut_copper oxidized_chiseled_copper oxidized_copper weathered_cut_copper weathered_chiseled_copper weathered_copper exposed_cut_copper exposed_chiseled_copper exposed_copper chiseled_copper cut_copper copper_block iron_block emerald_block gold_block diamond_block lapis_block netherite_block coal_block basalt smooth_basalt polished_basalt purpur_block purpur_pillar prismarine dark_prismarine blackstone gilded_blackstone polished_blackstone chiseled_polished_blackstone red_sandstone chiseled_sandstone chiseled_red_sandstone smooth_sandstone smooth_red_sandstone cut_sandstone cut_red_sandstone chiseled_tuff polished_tuff reinforced_deepslate chiseled_deepslate polished_deepslate deepslate_tiles cracked_deepslate_tiles tuff andesite polished_andesite diorite polished_diorite granite polished_granite quartz_block chiseled_quartz_block quartz_pillar smooth_quartz quartz_bricks infested_stone_bricks infested_cracked_stone_bricks infested_mossy_stone_bricks infested_chiseled_stone_bricks polished_blackstone_bricks cracked_polished_blackstone_bricks end_stone end_stone_bricks deepslate_bricks cracked_deepslate_bricks tuff_bricks chiseled_tuff_bricks mud_bricks prismarine_bricks nether_bricks cracked_nether_bricks chiseled_nether_bricks red_nether_bricks netherrack bricks smooth_stone stone_bricks cracked_stone_bricks mossy_stone_bricks chiseled_stone_bricks mossy_cobblestone rooted_dirt coarse_dirt podzol gravel suspicious_gravel stone cobblestone sandstone deepslate cobbled_deepslate dirt oak_planks oak_log stripped_oak_log oak_wood stripped_oak_wood acacia_planks acacia_log stripped_acacia_log acacia_wood stripped_acacia_wood birch_planks birch_log stripped_birch_log brich_wood stripped_brich_wood spruce_planks spruce_log stripped_spruce_log spruce_wood stripped_spruce_wood dark_oak_planks dark_oak_log stripped_dark_oak_log dark_oak_wood stripped_dark_oak_wood jungle_planks jungle_log stripped_jungle_log jungel_wood stripped_jungel_wood mangrove_planks mangrove_log stripped_mangrove_log mangrove_wood stripped_mangrove_wood cherry_planks cherry_log stripped_cherry_log cherry_wood stripped_cherry_wood warped_planks warped_stem stripped_warped_stem warped_hyphae stripped_warped_hyphae crimson_planks crimson_stem stripped_crimson_stem crimson_hyphae stripped_crimson_hyphae bamboo_planks bamboo_block stripped_bamboo_block bamboo_mosaic
+83 -55
View File
@@ -6,7 +6,7 @@
#include "/lib/items.glsl"
#include "/lib/hsv.glsl"
flat varying int NameTags;
in int NameTags;
#ifdef HAND
#undef POM
@@ -23,7 +23,7 @@ flat varying int NameTags;
#endif
varying float VanillaAO;
in float VanillaAO;
const float mincoord = 1.0/4096.0;
const float maxcoord = 1.0-mincoord;
@@ -36,31 +36,33 @@ uniform vec2 texelSize;
uniform int framemod8;
// #ifdef POM
varying vec4 vtexcoordam; // .st for add, .pq for mul
varying vec4 vtexcoord;
in vec4 texcoordam; // .st for add, .pq for mul
in vec4 texcoord;
vec2 dcdx = dFdx(vtexcoord.st*vtexcoordam.pq)*exp2(Texture_MipMap_Bias);
vec2 dcdy = dFdy(vtexcoord.st*vtexcoordam.pq)*exp2(Texture_MipMap_Bias);
vec2 dcdx = dFdx(texcoord.st*texcoordam.pq)*exp2(Texture_MipMap_Bias);
vec2 dcdy = dFdy(texcoord.st*texcoordam.pq)*exp2(Texture_MipMap_Bias);
// #endif
#include "/lib/res_params.glsl"
varying vec4 lmtexcoord;
in vec4 lmtexcoord;
varying vec4 color;
in vec4 color;
uniform float far;
uniform float wetness;
varying vec4 normalMat;
in vec4 normalMat;
#ifdef MC_NORMAL_MAP
uniform sampler2D normals;
varying vec4 tangent;
varying vec3 FlatNormals;
in vec4 tangent;
in vec3 FlatNormals;
#endif
in vec3 GrassNormals;
uniform sampler2D specular;
@@ -91,16 +93,19 @@ uniform vec4 entityColor;
// in vec3 velocity;
flat varying float blockID;
flat in float blockID;
flat varying float SSSAMOUNT;
flat varying float EMISSIVE;
flat varying int LIGHTNING;
flat varying int PORTAL;
flat varying int SIGN;
flat in float SSSAMOUNT;
flat in float EMISSIVE;
flat in int LIGHTNING;
flat in int PORTAL;
flat in int SIGN;
flat in int ISSHADERGRASS;
uniform int heldItemId;
uniform int heldItemId2;
flat varying float HELD_ITEM_BRIGHTNESS;
uniform float noPuddleAreas;
uniform float nightVision;
uniform vec3 relativeEyePosition;
@@ -131,13 +136,13 @@ float R2_dither(){
vec2 alpha = vec2(0.75487765, 0.56984026);
return fract(alpha.x * coord.x + alpha.y * coord.y ) ;
}
float blueNoise(){
#ifdef TAA
return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter);
#else
return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887);
#endif
}
#ifdef TAA
#define blueNoise fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter)
#else
#define blueNoise fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887)
#endif
mat3 inverseMatrix(mat3 m) {
float a00 = m[0][0], a01 = m[0][1], a02 = m[0][2];
@@ -210,11 +215,11 @@ vec3 toClipSpace3(vec3 viewSpacePosition) {
#ifdef POM
vec4 readNormal(in vec2 coord)
{
return texture2DGradARB(normals,fract(coord)*vtexcoordam.pq+vtexcoordam.st,dcdx,dcdy);
return texture2DGradARB(normals,fract(coord)*texcoordam.pq+texcoordam.st,dcdx,dcdy);
}
vec4 readTexture(in vec2 coord)
{
return texture2DGradARB(texture,fract(coord)*vtexcoordam.pq+vtexcoordam.st,dcdx,dcdy);
return texture2DGradARB(texture,fract(coord)*texcoordam.pq+texcoordam.st,dcdx,dcdy);
}
#endif
@@ -248,8 +253,8 @@ float ld(float dist) {
vec4 readNoise(in vec2 coord){
// return texture2D(noisetex,coord*vtexcoordam.pq+vtexcoord.st);
return texture2DGradARB(noisetex,coord*vtexcoordam.pq + vtexcoordam.st,dcdx,dcdy);
// return texture2D(noisetex,coord*texcoordam.pq+texcoord.st);
return texture2DGradARB(noisetex,coord*texcoordam.pq + texcoordam.st,dcdx,dcdy);
}
float EndPortalEffect(
inout vec4 ALBEDO,
@@ -265,7 +270,7 @@ float EndPortalEffect(
if ( viewVec.z < 0.0 && length(FragPos) < maxdist) {
float endportalGLow = 0.0;
float Depth = 0.3;
vec3 interval = (viewVec.xyz /-viewVec.z/quality*Depth) * (0.7 + (blueNoise()-0.5)*0.1);
vec3 interval = (viewVec.xyz /-viewVec.z/quality*Depth) * (0.7 + (blueNoise-0.5)*0.1);
vec3 coord = vec3(WorldPos.xz , 1.0);
coord += interval;
@@ -282,7 +287,7 @@ float EndPortalEffect(
}
float bias(){
// return (Texture_MipMap_Bias + (blueNoise()-0.5)*0.5) - (1.0-RENDER_SCALE.x) * 2.0;
// return (Texture_MipMap_Bias + (blueNoise-0.5)*0.5) - (1.0-RENDER_SCALE.x) * 2.0;
return Texture_MipMap_Bias - (1.0-RENDER_SCALE.x) * 2.0;
}
vec4 texture2D_POMSwitch(
@@ -309,7 +314,7 @@ void convertHandDepth(inout float depth) {
float getEmission(vec3 Albedo) {
vec3 hsv = RgbToHsv(Albedo);
float emissive = smoothstep(0.05, 0.35, hsv.y) * pow(hsv.z, 3.5);
float emissive = smoothstep(0.05, 0.15, hsv.y) * pow(hsv.z, 3.5);
return emissive * 0.5;
}
@@ -339,7 +344,7 @@ void main() {
ifPOM = true;
#endif
if(SIGN > 0) ifPOM = false;
if(SIGN > 0 || ISSHADERGRASS > 0) ifPOM = false;
vec3 normal = normalMat.xyz;
@@ -371,12 +376,15 @@ void main() {
}
#endif
float HELD_ITEM_BRIGHTNESS = 0.0;
if(heldItemId > 999 || heldItemId2 > 999 ) HELD_ITEM_BRIGHTNESS = 0.9;
// if(HELD_ITEM_BRIGHTNESS > 0.0) torchlightmap = max(torchlightmap, HELD_ITEM_BRIGHTNESS * clamp( pow(max(1.0-length(worldpos-playerCamPos)/HANDHELD_LIGHT_RANGE,0.0),1.5),0.0,1.0));
if(HELD_ITEM_BRIGHTNESS > 0.0){
float pointLight = clamp(1.0-(length(worldpos-playerCamPos)-1.)/HANDHELD_LIGHT_RANGE,0.0,1.0);
if (torchlightmap < 0.99) {
if (torchlightmap < 0.99) {
torchlightmap = mix(torchlightmap, HELD_ITEM_BRIGHTNESS, pointLight);
}
}
@@ -392,7 +400,7 @@ void main() {
#if defined POM && defined WORLD && !defined ENTITIES && !defined HAND
// vec2 tempOffset=offsets[framemod8];
adjustedTexCoord = fract(vtexcoord.st)*vtexcoordam.pq+vtexcoordam.st;
adjustedTexCoord = fract(texcoord.st)*texcoordam.pq+texcoordam.st;
// vec3 fragpos = toScreenSpace(gl_FragCoord.xyz*vec3(texelSize/RENDER_SCALE,1.0)-vec3(vec2(tempOffset)*texelSize*0.5,0.0));
vec3 viewVector = normalize(tbnMatrix*fragpos);
float dist = length(playerpos);
@@ -407,21 +415,21 @@ void main() {
if(!ifPOM) maxdist = 0.0;
gl_FragDepth = gl_FragCoord.z;
if (falloff > 0.0) {
if (falloff > 0.0 && ISSHADERGRASS == 0) {
float depthmap = readNormal(vtexcoord.st).a;
float depthmap = readNormal(texcoord.st).a;
float used_POM_DEPTH = 1.0;
float pomdepth = POM_DEPTH*falloff;
if ( viewVector.z < 0.0 && depthmap < 0.9999 && depthmap > 0.00001) {
float noise = blueNoise();
float noise = blueNoise;
#ifdef Adaptive_Step_length
vec3 interval = (viewVector.xyz /-viewVector.z/MAX_OCCLUSION_POINTS * pomdepth) * clamp(1.0-pow(depthmap,2),0.1,1.0);
used_POM_DEPTH = 1.0;
#else
vec3 interval = viewVector.xyz /-viewVector.z/MAX_OCCLUSION_POINTS*pomdepth;
#endif
vec3 coord = vec3(vtexcoord.st , 1.0);
vec3 coord = vec3(texcoord.st , 1.0);
coord += interval * noise * used_POM_DEPTH;
@@ -438,7 +446,7 @@ void main() {
}
}
adjustedTexCoord = mix(fract(coord.st)*vtexcoordam.pq+vtexcoordam.st, adjustedTexCoord, max(dist-MIX_OCCLUSION_DISTANCE,0.0)/(MAX_OCCLUSION_DISTANCE-MIX_OCCLUSION_DISTANCE));
adjustedTexCoord = mix(fract(coord.st)*texcoordam.pq+texcoordam.st, adjustedTexCoord, max(dist-MIX_OCCLUSION_DISTANCE,0.0)/(MAX_OCCLUSION_DISTANCE-MIX_OCCLUSION_DISTANCE));
vec3 truePos = fragpos + sumVec*inverseMatrix(tbnMatrix)*interval;
@@ -455,7 +463,14 @@ void main() {
float textureLOD = bias();
vec4 Albedo = texture2D_POMSwitch(texture, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM, textureLOD) * color;
vec4 Albedo = color;
if (ISSHADERGRASS < 1) Albedo *= texture2D_POMSwitch(texture, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM, textureLOD);
#if REPLACE_SHORT_GRASS < 2
// darken the top of grass blocks a bit
if(blockID == 85 && viewToWorld(FlatNormals).y > abs(0.9) && ISSHADERGRASS < 1) Albedo *= smoothstep(-30.0, 25.0, length(playerpos));
#endif
#if defined DISTANT_HORIZONS && DH_CHUNK_FADING > 0
float viewDist = length(playerpos);
@@ -499,14 +514,14 @@ void main() {
vec2 rayDir = ((correctedViewVec.xy) / -correctedViewVec.z) / steps * 5.0 ;
vec2 uv = correctedWorldPos + rayDir * blueNoise();
vec2 uv = correctedWorldPos + rayDir * blueNoise;
uv += rayDir * 10.0;
vec2 animation = vec2(frameTimeCounter, -frameTimeCounter)*0.01;
for (int i = 0; i < int(steps); i++) {
float verticalGradient = (i + blueNoise())/steps ;
float verticalGradient = (i + blueNoise)/steps ;
float verticalGradient2 = exp(-7*(1-verticalGradient*verticalGradient));
float density = max(max(verticalGradient - texture2D(noisetex, uv/256.0 + animation.xy).b*0.5,0.0) - (1.0-texture2D(noisetex, uv/32.0 + animation.xx).r) * (0.4 + 0.1 * (texture2D(noisetex, uv/10.0 - animation.yy).b)),0.0);
@@ -584,18 +599,20 @@ void main() {
//////////////////////////////// ////////////////////////////////
#if defined WORLD && defined MC_NORMAL_MAP
vec4 NormalTex = texture2D_POMSwitch(normals, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM,textureLOD).xyzw;
#ifdef MATERIAL_AO
Albedo.rgb *= NormalTex.b*0.5+0.5;
#endif
if(ISSHADERGRASS < 1) {
vec4 NormalTex = texture2D_POMSwitch(normals, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM,textureLOD).xyzw;
#ifdef MATERIAL_AO
Albedo.rgb *= NormalTex.b*0.5+0.5;
#endif
float Heightmap = 1.0 - NormalTex.w;
float Heightmap = 1.0 - NormalTex.w;
NormalTex.xy = NormalTex.xy * 2.0-1.0;
NormalTex.z = sqrt(max(1.0 - dot(NormalTex.xy, NormalTex.xy), 0.0));
NormalTex.xy = NormalTex.xy * 2.0-1.0;
NormalTex.z = sqrt(max(1.0 - dot(NormalTex.xy, NormalTex.xy), 0.0));
normal = applyBump(tbnMatrix, NormalTex.xyz);
normal = applyBump(tbnMatrix, NormalTex.xyz);
}
#endif
//////////////////////////////// ////////////////////////////////
@@ -603,7 +620,12 @@ void main() {
//////////////////////////////// ////////////////////////////////
#ifdef WORLD
vec4 SpecularTex = texture2D_POMSwitch(specular, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM,textureLOD);
vec4 SpecularTex = vec4(0.0);
if (ISSHADERGRASS > 0) {
SpecularTex = vec4(0.15, 0.025, 1.0, 0.0);
} else {
SpecularTex = texture2D_POMSwitch(specular, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM,textureLOD);
}
// SpecularTex.r = max(SpecularTex.r, rainfall);
// SpecularTex.g = max(SpecularTex.g, max(Puddle_shape*0.02,0.02));
@@ -661,11 +683,17 @@ void main() {
#ifdef WORLD
// apply noise to lightmaps to reduce banding.
vec2 PackLightmaps = vec2(torchlightmap, lmtexcoord.w);
vec4 data1 = clamp( encode(viewToWorld(normal), PackLightmaps), 0.0, 1.0);
normal = viewToWorld(normal);
vec3 flatNormals = viewToWorld(FlatNormals);
if (ISSHADERGRASS > 0) {flatNormals = FlatNormals; normal = GrassNormals;}
vec4 data1 = clamp( encode(normal, PackLightmaps), 0.0, 1.0);
gl_FragData[0] = vec4(encodeVec2(Albedo.x,data1.x), encodeVec2(Albedo.y,data1.y), encodeVec2(Albedo.z,data1.z), encodeVec2(data1.w,Albedo.w));
gl_FragData[2] = vec4(viewToWorld(FlatNormals) * 0.5 + 0.5, VanillaAO);
gl_FragData[2] = vec4(flatNormals * 0.5 + 0.5, VanillaAO);
#endif
}
+417
View File
@@ -0,0 +1,417 @@
layout(triangles) in;
#if !defined ENTITIES && !defined HAND
layout(triangle_strip, max_vertices = 24) out;
#else
layout(triangle_strip, max_vertices = 3) out;
#endif
in vec4 vcolor[];
in float vVanillaAO[];
in vec4 vlmtexcoord[];
in vec4 vnormalMat[];
in vec4 vtexcoordam[]; // .st for add, .pq for mul
in vec4 vtexcoord[];
#ifdef MC_NORMAL_MAP
in vec4 vtangent[];
in vec3 vFlatNormals[];
#endif
flat in float vblockID[];
in int vNameTags[];
flat in float vSSSAMOUNT[];
flat in float vEMISSIVE[];
flat in int vLIGHTNING[];
flat in int vPORTAL[];
flat in int vSIGN[];
in vec4 vgrassSideCheck[];
in vec3 vcenterPosition[];
out vec4 color;
out float VanillaAO;
out vec4 lmtexcoord;
out vec4 normalMat;
out vec4 texcoordam; // .st for add, .pq for mul
out vec4 texcoord;
#ifdef MC_NORMAL_MAP
out vec4 tangent;
out vec3 FlatNormals;
#endif
out vec3 GrassNormals;
flat out float blockID;
out int NameTags;
flat out float SSSAMOUNT;
flat out float EMISSIVE;
flat out int LIGHTNING;
flat out int PORTAL;
flat out int SIGN;
flat out int ISSHADERGRASS;
#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z)
#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz)
vec4 toClipSpace3(vec3 viewSpacePosition) {
return vec4(projMAD(gl_ProjectionMatrix, viewSpacePosition),-viewSpacePosition.z);
}
#include "/lib/settings.glsl"
#include "/lib/TAA_jitter.glsl"
uniform mat4 gbufferModelView;
uniform mat4 gbufferModelViewInverse;
uniform vec3 cameraPosition;
uniform int framemod8;
uniform vec2 texelSize;
uniform float frameTimeCounter;
uniform vec3 relativeEyePosition;
const float PI48 = 150.796447372*WAVY_SPEED;
float pi2wt = PI48*frameTimeCounter;
vec3 viewToWorld(vec3 viewPosition) {
vec4 pos;
pos.xyz = viewPosition;
pos.w = 0.0;
pos = gbufferModelViewInverse * pos;
return pos.xyz;
}
vec2 calcWave(in vec3 pos) {
float magnitude = abs(sin(dot(vec4(frameTimeCounter, pos),vec4(1.0,0.005,0.005,0.005)))*0.5+0.72)*0.013;
vec2 ret = (sin(pi2wt*vec2(0.0063,0.0015)*4. - pos.xz + pos.y*0.05)+0.1)*magnitude;
return ret;
}
vec3 calcMovePlants(in vec3 pos) {
vec2 move1 = calcWave(pos);
float move1y = -length(move1);
return vec3(move1.x,move1y,move1.y)*5.*GRASS_WAVY_STRENGTH;
}
vec3 calculateNormal(vec3 v0, vec3 v1, vec3 v2) {
vec3 edge1 = v1 - v0;
vec3 edge2 = v2 - v0;
vec3 normal = cross(edge1, edge2);
return normalize(vec3(normal.x, normal.y, normal.z));
}
mat3 rotateY(float theta) {
float c = cos(theta);
float s = sin(theta);
return mat3(
vec3(c, 0, s),
vec3(0, 1, 0),
vec3(-s, 0, c)
);
}
float rand(vec2 co) { return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453); }
void main() {
ISSHADERGRASS = 0;
vec2 TAA_offsets = offsets[framemod8];
int i;
for (i = 0; i < 3; i++)
{
vec4 vertex = gl_in[i].gl_Position;
#if !defined ENTITIES && !defined HAND
vertex = toClipSpace3(mat3(gbufferModelView) * (vec3(vertex) + vec3(0.0, 0.0, 0.0)) + gbufferModelView[3].xyz);
#endif
gl_Position = vertex;
#ifdef TAA_UPSCALING
gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w;
#endif
#ifdef TAA
// #ifdef HAND
// turn off jitter when camera moves.
// this is to hide the jitter when the same happens for TAA blend factor and the jitter becomes visible during camera movement
// gl_Position.xy += (offsets[framemod8] * gl_Position.w*texelSize) * detectCameraMovement();
// #else
gl_Position.xy += TAA_offsets * gl_Position.w*texelSize;
// #endif
#endif
#if DOF_QUALITY == 5
vec2 jitter = clamp(jitter_offsets[frameCounter % 64], -1.0, 1.0);
jitter = rotate(radians(float(frameCounter))) * jitter;
jitter.y *= aspectRatio;
jitter.x *= DOF_ANAMORPHIC_RATIO;
#if MANUAL_FOCUS == -2
float focusMul = 0;
#elif MANUAL_FOCUS == -1
float focusMul = gl_Position.z - mix(pow(512.0, screenBrightness), 512.0 * screenBrightness, 0.25);
#else
float focusMul = gl_Position.z - MANUAL_FOCUS;
#endif
vec2 totalOffset = (jitter * JITTER_STRENGTH) * focusMul * 1e-2;
gl_Position.xy += hideGUI >= 1 ? totalOffset : vec2(0);
#endif
color = vcolor[i];
VanillaAO = vVanillaAO[i];
lmtexcoord = vlmtexcoord[i];
normalMat = vnormalMat[i];
texcoordam = vtexcoordam[i];
texcoord = vtexcoord[i];
#ifdef MC_NORMAL_MAP
tangent = vtangent[i];
FlatNormals = vFlatNormals[i];
#endif
blockID = vblockID[i];
NameTags = vNameTags[i];
SSSAMOUNT = vSSSAMOUNT[i];
EMISSIVE = vEMISSIVE[i];
LIGHTNING = vLIGHTNING[i];
PORTAL = vPORTAL[i];
SIGN = vSIGN[i];
EmitVertex();
}
EndPrimitive();
#if !defined ENTITIES && !defined HAND && defined SHADER_GRASS
int j;
float vertexDist = length(gl_in[0].gl_Position);
#ifdef MC_NORMAL_MAP
vec3 normals = viewToWorld(vFlatNormals[1]);
#else
const vec3 normals = vec3(0.0, 1.0, 0.0);
#endif
#if REPLACE_SHORT_GRASS == 2
if (vblockID[1] == 85 && normals.y > 0.9 && vertexDist < GRASS_RANGE && vgrassSideCheck[0].x > 1.5)
#else
if (vblockID[1] == 85 && normals.y > 0.9 && vertexDist < GRASS_RANGE)
#endif
{
#if GRASS_QUALITY == 2
int triangle_count = 7;
float heightMult = 1.1;
if(vertexDist > 2.5) {triangle_count = 5; heightMult = 1.5;}
if(vertexDist > 5.5) {triangle_count = 3; heightMult = 2.25;}
if(vertexDist > 15.0) {triangle_count = 1; heightMult = 5.0;}
#elif GRASS_QUALITY == 1
int triangle_count = 5;
float heightMult = 1.5;
if(vertexDist > 7.5) {triangle_count = 3; heightMult = 2.25;}
if(vertexDist > 15.0) {triangle_count = 1; heightMult = 5.0;}
#else
int triangle_count = 3;
float heightMult = 2.25;
if(vertexDist > 10.0) {triangle_count = 1; heightMult = 5.0;}
#endif
vec3 vertex = (gl_in[0].gl_Position+gl_in[1].gl_Position+gl_in[2].gl_Position).xyz/3.0;
float eastHeightMult = pow(clamp(abs(vgrassSideCheck[0].x) * abs(vertex.x-(vcenterPosition[0].x-0.5)), 0.0, 1.0), 2.0);
float westHeightMult = pow(clamp(abs(vgrassSideCheck[0].y) * abs(vertex.x-(vcenterPosition[0].x+0.5)), 0.0, 1.0), 2.0);
float southHeightMult = pow(clamp(abs(vgrassSideCheck[0].z) * abs(vertex.z-(vcenterPosition[0].z-0.5)), 0.0, 1.0), 2.0);
float northHeightMult = pow(clamp(abs(vgrassSideCheck[0].w) * abs(vertex.z-(vcenterPosition[0].z+0.5)), 0.0, 1.0), 2.0);
eastHeightMult *= normalize(vgrassSideCheck[0].x);
westHeightMult *= normalize(vgrassSideCheck[0].y);
southHeightMult *= normalize(vgrassSideCheck[0].z);
northHeightMult *= normalize(vgrassSideCheck[0].w);
float totalHeightMult = 0.5*clamp(eastHeightMult + westHeightMult + southHeightMult + northHeightMult, -1.0*BASE_GRASS_HEIGHT*BASE_GRASS_HEIGHT, 1.0*SHORT_GRASS_HEIGHT) + 1.0*BASE_GRASS_HEIGHT;
heightMult *= totalHeightMult;
if(abs(vgrassSideCheck[0].x) > 1.5) {
eastHeightMult = 0.0;
westHeightMult = 0.0;
southHeightMult = 0.0;
northHeightMult = 0.0;
}
vec2 edgeBlend = eastHeightMult*vec2(-0.17,0.0) + westHeightMult*vec2(0.17,0.0) + southHeightMult*vec2(0.0,-0.17) + northHeightMult*vec2(0.0,0.17);
vec3 offsetPos = vertex+vec3(0.0, 1.0, 0.0)+relativeEyePosition;
float playerDist = smoothstep(0.5, 0.05, length(offsetPos.xz)) * smoothstep(1.0, 0.2, abs(offsetPos.y));
vec2 dir2 = normalize(vertex.xz+relativeEyePosition.xz);
vec2 Wvertex = gl_in[0].gl_Position.xz+cameraPosition.xz;
// otherwise it flickers... (but this gives a little clumping effect so it's nice too I guess)
Wvertex = floor(Wvertex * 20.0) / 20.0;
vec2 randomDir = 2.0*vec2(rand(vec2(Wvertex.x, 2.*Wvertex.y)), rand(2.125*vec2(-Wvertex.x, 2.*Wvertex.y)))-1.0;
// vertex.xz -= 0.05*randomDir;
vec3 dir = normalize(vertex);
vec3 originalVertex = vertex;
vec3 worldUp = vec3(0.0, 1.0, 0.0);
vec3 right = GRASS_BASE_THICKNESS*normalize(cross(worldUp, dir));
worldUp *= heightMult;
originalVertex -= right*0.25*GRASS_BASE_THICKNESS;
for (j = 0; j < triangle_count; j++) {
float jMod = j%2;
vec3 heightOffset = 0.5*vec3(0.0, j-jMod, 0.0)*heightMult;
vec3 worldOffset0 = heightOffset;
vec3 worldOffset1 = worldUp + heightOffset;
vec3 worldOffset2 = right + heightOffset;
if(jMod == 1) {
worldOffset0 = right + heightOffset;
right *= GRASS_THICKNESS_FALLOFF;
worldOffset2 = right + worldUp + heightOffset;
}
if(j == triangle_count-1) worldOffset1 = 0.5*right + worldUp + heightOffset;
vec3 worldOffsets[3] = vec3[](
worldOffset0,
worldOffset1,
worldOffset2
);
float grassHeight0 = abs(gl_in[0].gl_Position.y-originalVertex.y- 0.125 * worldOffset0.y);
float grassHeight1 = abs(gl_in[0].gl_Position.y-originalVertex.y- 0.125 * worldOffset1.y);
float grassHeight2 = abs(gl_in[0].gl_Position.y-originalVertex.y- 0.125 * worldOffset2.y);
float grassHeights[3] = float[](
grassHeight0,
grassHeight1,
grassHeight2
);
vec3 verticies[3];
vec2 totalRandBend = 0.35*randomDir + edgeBlend;
for (i = 0; i < 3; i++)
{
vec3 worldOffset = worldOffsets[i];
vertex = originalVertex;
float grassCurvature = smoothstep(0.0, 1.0, grassHeights[i]);
vertex.xz += 0.7*playerDist*vec2(dir2)*sqrt(grassCurvature);
vertex.xz += grassCurvature*totalRandBend;
vertex += 1.6*calcMovePlants(vertex + cameraPosition)*grassCurvature;
verticies[i] = vertex + 0.125 * worldOffset;
}
vec3 GrassNormal = calculateNormal(verticies[0], verticies[1], verticies[2]);
for (i = 0; i < 3; i++)
{
gl_Position = toClipSpace3(mat3(gbufferModelView) * (verticies[i]) + gbufferModelView[3].xyz);
#ifdef TAA_UPSCALING
gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w;
#endif
#ifdef TAA
// #ifdef HAND
// turn off jitter when camera moves.
// this is to hide the jitter when the same happens for TAA blend factor and the jitter becomes visible during camera movement
// gl_Position.xy += (offsets[framemod8] * gl_Position.w*texelSize) * detectCameraMovement();
// #else
gl_Position.xy += TAA_offsets * gl_Position.w*texelSize;
// #endif
#endif
#if DOF_QUALITY == 5
vec2 jitter = clamp(jitter_offsets[frameCounter % 64], -1.0, 1.0);
jitter = rotate(radians(float(frameCounter))) * jitter;
jitter.y *= aspectRatio;
jitter.x *= DOF_ANAMORPHIC_RATIO;
#if MANUAL_FOCUS == -2
float focusMul = 0;
#elif MANUAL_FOCUS == -1
float focusMul = gl_Position.z - mix(pow(512.0, screenBrightness), 512.0 * screenBrightness, 0.25);
#else
float focusMul = gl_Position.z - MANUAL_FOCUS;
#endif
vec2 totalOffset = (jitter * JITTER_STRENGTH) * focusMul * 1e-2;
gl_Position.xy += hideGUI >= 1 ? totalOffset : vec2(0);
#endif
float heightfade = smoothstep(-0.35, 1.0, grassHeights[i]);
// vec3 podzolColor = mix(vec3(0.15, 0.26, 0.01), vec3(168, 158, 91)/255., heightfade);
color = vcolor[i]*heightfade;
// if (vcolor[i].rgb == vec3(1.0)) color.rgb = podzolColor;
VanillaAO = vVanillaAO[i];
lmtexcoord = vlmtexcoord[i];
normalMat.xyz = vnormalMat[i].xyz;
normalMat.a = 0.4;
texcoordam = vtexcoordam[i];
texcoord = vtexcoord[i];
ISSHADERGRASS = 1;
#ifdef MC_NORMAL_MAP
tangent = vtangent[i];
FlatNormals = vFlatNormals[i];
FlatNormals = GrassNormal;
// TODO: MAKE SMOOTH NORMALS
GrassNormals = GrassNormal;
#endif
blockID = vblockID[i];
NameTags = vNameTags[i];
SSSAMOUNT = 1.0;
EMISSIVE = vEMISSIVE[i];
LIGHTNING = vLIGHTNING[i];
PORTAL = vPORTAL[i];
SIGN = vSIGN[i];
EmitVertex();
}
EndPrimitive();
}
}
#endif
}
+177
View File
@@ -0,0 +1,177 @@
layout (vertices=3) out;
#include "/lib/settings.glsl"
in vec4 vcolor[];
in float vVanillaAO[];
in vec4 vlmtexcoord[];
in vec4 vnormalMat[];
in vec4 vtexcoordam[]; // .st for add, .pq for mul
in vec4 vtexcoord[];
#ifdef MC_NORMAL_MAP
in vec4 vtangent[];
in vec3 vFlatNormals[];
#endif
flat in float vblockID[];
in int vNameTags[];
flat in float vSSSAMOUNT[];
flat in float vEMISSIVE[];
flat in int vLIGHTNING[];
flat in int vPORTAL[];
flat in int vSIGN[];
flat in int vdiscardGrass[];
in vec4 vgrassSideCheck[];
out vec4 grassSideCheck[];
in vec3 vcenterPosition[];
out vec3 centerPosition[];
out vec4 color[];
out float VanillaAO[];
out vec4 lmtexcoord[];
out vec4 normalMat[];
out vec4 texcoordam[]; // .st for add, .pq for mul
out vec4 texcoord[];
#ifdef MC_NORMAL_MAP
out vec4 tangent[];
out vec3 FlatNormals[];
#endif
flat out float blockID[];
out int NameTags[];
flat out float SSSAMOUNT[];
flat out float EMISSIVE[];
flat out int LIGHTNING[];
flat out int PORTAL[];
flat out int SIGN[];
uniform mat4 gbufferModelViewInverse;
uniform vec3 cameraPosition;
vec3 viewToWorld(vec3 viewPosition) {
vec4 pos;
pos.xyz = viewPosition;
pos.w = 0.0;
pos = gbufferModelViewInverse * pos;
return pos.xyz;
}
void main() {
gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
color[gl_InvocationID] = vcolor[gl_InvocationID];
VanillaAO[gl_InvocationID] = vVanillaAO[gl_InvocationID];
lmtexcoord[gl_InvocationID] = vlmtexcoord[gl_InvocationID];
normalMat[gl_InvocationID] = vnormalMat[gl_InvocationID];
texcoordam[gl_InvocationID] = vtexcoordam[gl_InvocationID];
texcoord[gl_InvocationID] = vtexcoord[gl_InvocationID];
grassSideCheck[gl_InvocationID] = vgrassSideCheck[gl_InvocationID];
centerPosition[gl_InvocationID] = vcenterPosition[gl_InvocationID];
#ifdef MC_NORMAL_MAP
tangent[gl_InvocationID] = vtangent[gl_InvocationID];
FlatNormals[gl_InvocationID] = vFlatNormals[gl_InvocationID];
#endif
blockID[gl_InvocationID] = vblockID[gl_InvocationID];
NameTags[gl_InvocationID] = vNameTags[gl_InvocationID];
SSSAMOUNT[gl_InvocationID] = vSSSAMOUNT[gl_InvocationID];
EMISSIVE[gl_InvocationID] = vEMISSIVE[gl_InvocationID];
LIGHTNING[gl_InvocationID] = vLIGHTNING[gl_InvocationID];
PORTAL[gl_InvocationID] = vPORTAL[gl_InvocationID];
SIGN[gl_InvocationID] = vSIGN[gl_InvocationID];
#if !defined ENTITIES && !defined HAND && defined SHADER_GRASS
#ifdef MC_NORMAL_MAP
vec3 normals = viewToWorld(vFlatNormals[0]);
#else
const vec3 normals = vec3(0.0, 1.0, 0.0);
#endif
float vDist = length(gl_out[gl_InvocationID].gl_Position.xyz);
#if REPLACE_SHORT_GRASS == 2
if (vblockID[0] == 85 && normals.y > 0.9 && vDist < GRASS_RANGE && vgrassSideCheck[gl_InvocationID].x > 1.5)
#else
if (vblockID[0] == 85 && normals.y > 0.9 && vDist < GRASS_RANGE)
#endif
{
// This removes the second layer of some texture packs like patrix, otherwise the grass is duplicated
float fractYPos = fract(gl_out[gl_InvocationID].gl_Position.y+cameraPosition.y);
if(fractYPos > 0.9999 || fractYPos < 0.0001 || abs(fractYPos - 0.5) < 0.0001)
{
#if GRASS_DENSITY == 3
int innerDivisions = 8;
int outerDivisions = 6;
if (vDist > 10) {innerDivisions = 7; outerDivisions = 5;}
if (vDist > 20) {innerDivisions = 5; outerDivisions = 3;}
if (vDist > 25) {innerDivisions = 4; outerDivisions = 2;}
#elif GRASS_DENSITY == 2
int innerDivisions = 7;
int outerDivisions = 5;
if (vDist > 13) {innerDivisions = 5; outerDivisions = 3;}
if (vDist > 22) {innerDivisions = 4; outerDivisions = 2;}
#elif GRASS_DENSITY == 1
int innerDivisions = 5;
int outerDivisions = 6;
if (vDist > 10) {innerDivisions = 5; outerDivisions = 3;}
if (vDist > 20) {innerDivisions = 4; outerDivisions = 2;}
#else
int innerDivisions = 5;
int outerDivisions = 4;
if (vDist > 10) {innerDivisions = 4; outerDivisions = 2;}
if (vDist > 20) {innerDivisions = 3; outerDivisions = 2;}
#endif
gl_TessLevelOuter[0] = outerDivisions;
gl_TessLevelOuter[1] = outerDivisions;
gl_TessLevelOuter[2] = outerDivisions;
gl_TessLevelInner[0] = innerDivisions;
} else {
gl_TessLevelOuter[0] = 0;
gl_TessLevelOuter[1] = 0;
gl_TessLevelOuter[2] = 0;
gl_TessLevelInner[0] = 0;
}
} else {
gl_TessLevelOuter[0] = 1;
gl_TessLevelOuter[1] = 1;
gl_TessLevelOuter[2] = 1;
gl_TessLevelInner[0] = 0;
}
#if REPLACE_SHORT_GRASS > 0
if(vdiscardGrass[gl_InvocationID] == 1){
gl_TessLevelOuter[0] = 0;
gl_TessLevelOuter[1] = 0;
gl_TessLevelOuter[2] = 0;
gl_TessLevelInner[0] = 0;
}
#endif
#else
gl_TessLevelOuter[0] = 1;
gl_TessLevelOuter[1] = 1;
gl_TessLevelOuter[2] = 1;
gl_TessLevelInner[0] = 0;
#endif
}
+86
View File
@@ -0,0 +1,86 @@
layout (triangles, fractional_odd_spacing, ccw) in;
in vec4 color[];
in float VanillaAO[];
in vec4 lmtexcoord[];
in vec4 normalMat[];
in vec4 texcoordam[]; // .st for add, .pq for mul
in vec4 texcoord[];
#ifdef MC_NORMAL_MAP
in vec4 tangent[];
in vec3 FlatNormals[];
#endif
flat in float blockID[];
in int NameTags[];
flat in float SSSAMOUNT[];
flat in float EMISSIVE[];
flat in int LIGHTNING[];
flat in int PORTAL[];
flat in int SIGN[];
in vec4 grassSideCheck[];
out vec4 vgrassSideCheck;
in vec3 centerPosition[];
out vec3 vcenterPosition;
out vec4 vcolor;
out float vVanillaAO;
out vec4 vlmtexcoord;
out vec4 vnormalMat;
out vec4 vtexcoordam; // .st for add, .pq for mul
out vec4 vtexcoord;
#ifdef MC_NORMAL_MAP
out vec4 vtangent;
out vec3 vFlatNormals;
#endif
flat out float vblockID;
out int vNameTags;
flat out float vSSSAMOUNT;
flat out float vEMISSIVE;
flat out int vLIGHTNING;
flat out int vPORTAL;
flat out int vSIGN;
#define calcTessellation(u, v, w) (gl_TessCoord.x * u + gl_TessCoord.y * v + gl_TessCoord.z * w)
void main() {
gl_Position = calcTessellation(gl_in[0].gl_Position, gl_in[1].gl_Position, gl_in[2].gl_Position);
vcolor = color[0];
vVanillaAO = VanillaAO[0];
vlmtexcoord = calcTessellation(lmtexcoord[0], lmtexcoord[1], lmtexcoord[2]);
vnormalMat = calcTessellation(normalMat[0], normalMat[1], normalMat[2]);
vtexcoordam = calcTessellation(texcoordam[0], texcoordam[1], texcoordam[2]);
vtexcoord = calcTessellation(texcoord[0], texcoord[1], texcoord[2]);
#ifdef MC_NORMAL_MAP
vtangent = calcTessellation(tangent[0], tangent[1], tangent[2]);
vFlatNormals = calcTessellation(FlatNormals[0], FlatNormals[1], FlatNormals[2]);
#endif
vblockID = blockID[0];
vNameTags = NameTags[0];
vSSSAMOUNT = SSSAMOUNT[0];
vEMISSIVE = EMISSIVE[0];
vLIGHTNING = LIGHTNING[0];
vPORTAL = PORTAL[0];
vSIGN = SIGN[0];
vgrassSideCheck = grassSideCheck[0];
vcenterPosition = centerPosition[0];
}
+185 -112
View File
@@ -28,22 +28,24 @@ Read the terms of modification and sharing before changing something below pleas
#define MC_NORMAL_MAP
#endif
out vec4 vgrassSideCheck;
out vec3 vcenterPosition;
varying vec4 color;
varying float VanillaAO;
out vec4 vcolor;
out float vVanillaAO;
varying vec4 lmtexcoord;
varying vec4 normalMat;
out vec4 vlmtexcoord;
out vec4 vnormalMat;
// #ifdef POM
varying vec4 vtexcoordam; // .st for add, .pq for mul
varying vec4 vtexcoord;
out vec4 vtexcoordam; // .st for add, .pq for mul
out vec4 vtexcoord;
// #endif
#ifdef MC_NORMAL_MAP
varying vec4 tangent;
out vec4 vtangent;
attribute vec4 at_tangent;
varying vec3 FlatNormals;
out vec3 vFlatNormals;
#endif
uniform float frameTimeCounter;
@@ -55,15 +57,18 @@ attribute vec4 mc_midTexCoord;
uniform int blockEntityId;
uniform int entityId;
flat varying float blockID;
flat out float vblockID;
uniform int heldItemId;
uniform int heldItemId2;
flat varying float HELD_ITEM_BRIGHTNESS;
#ifdef IRIS_FEATURE_BLOCK_EMISSION_ATTRIBUTE
attribute vec4 at_midBlock;
#else
attribute vec3 at_midBlock;
#endif
flat varying int NameTags;
out int vNameTags;
uniform int frameCounter;
uniform float far;
@@ -74,11 +79,12 @@ uniform int hideGUI;
uniform float screenBrightness;
uniform int isEyeInWater;
flat varying float SSSAMOUNT;
flat varying float EMISSIVE;
flat varying int LIGHTNING;
flat varying int PORTAL;
flat varying int SIGN;
flat out float vSSSAMOUNT;
flat out float vEMISSIVE;
flat out int vLIGHTNING;
flat out int vPORTAL;
flat out int vSIGN;
flat out int vdiscardGrass;
// in vec3 at_velocity;
// out vec3 velocity;
@@ -89,7 +95,6 @@ uniform mat4 gbufferModelView;
uniform mat4 gbufferModelViewInverse;
uniform vec3 cameraPosition;
uniform vec2 texelSize;
uniform int framemod8;
#if defined HAND
uniform mat4 gbufferPreviousModelView;
@@ -106,8 +111,24 @@ float detectCameraMovement(){
}
#endif
#include "/lib/TAA_jitter.glsl"
//#ifndef IS_LPV_ENABLED
uniform vec3 relativeEyePosition;
//#endif
#if !defined ENTITIES && !defined HAND && defined SHADER_GRASS && (defined GRASS_DETECT_FALLOFF || defined GRASS_DETECT_INV_FALLOFF || REPLACE_SHORT_GRASS > 0)
uniform usampler1D texBlockData;
#include "/lib/lpv_common.glsl"
#include "/lib/lpv_blocks.glsl"
#include "/lib/lpv_buffer.glsl"
#include "/lib/voxel_common.glsl"
uint GetVoxelBlock(const in ivec3 voxelPos) {
if (clamp(voxelPos, ivec3(0), ivec3(VoxelSize3-1u)) != voxelPos)
return BLOCK_EMPTY;
return imageLoad(imgVoxelMask, voxelPos).r;
}
#endif
#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z)
@@ -214,73 +235,73 @@ void main() {
vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz;
/////// ----- COLOR STUFF ----- ///////
color = gl_Color;
vcolor = gl_Color;
VanillaAO = 1.0 - clamp(color.a,0,1);
if (color.a < 0.3) color.a = 1.0; // fix vanilla ao on some custom block models.
vVanillaAO = 1.0 - clamp(vcolor.a,0,1);
if (vcolor.a < 0.3) vcolor.a = 1.0; // fix vanilla ao on some custom block models.
/////// ----- RANDOM STUFF ----- ///////
// gl_TextureMatrix[0] for animated things like charged creepers
lmtexcoord.xy = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy;
vlmtexcoord.xy = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy;
// #ifdef POM
vec2 midcoord = (gl_TextureMatrix[0] * mc_midTexCoord).st;
vec2 texcoordminusmid = lmtexcoord.xy-midcoord;
vtexcoordam.pq = abs(texcoordminusmid)*2;
vtexcoordam.st = min(lmtexcoord.xy,midcoord-texcoordminusmid);
vec2 texcoordminusmid = vlmtexcoord.xy-midcoord;
vtexcoordam.pq = abs(texcoordminusmid)*2.;
vtexcoordam.st = min(vlmtexcoord.xy,midcoord-texcoordminusmid);
vtexcoord.xy = sign(texcoordminusmid)*0.5+0.5;
// #endif
vec2 lmcoord = gl_MultiTexCoord1.xy / 240.0;
lmtexcoord.zw = lmcoord;
vlmtexcoord.zw = lmcoord;
#ifdef MC_NORMAL_MAP
vec3 alterTangent = at_tangent.rgb;
tangent = vec4(normalize(gl_NormalMatrix * alterTangent.rgb), at_tangent.w);
vtangent = vec4(normalize(gl_NormalMatrix * alterTangent.rgb), at_tangent.w);
#endif
normalMat = vec4(normalize(gl_NormalMatrix * gl_Normal), 1.0);
vnormalMat = vec4(normalize(gl_NormalMatrix * gl_Normal), 1.0);
FlatNormals = normalMat.xyz;
vFlatNormals = vnormalMat.xyz;
blockID = mc_Entity.x ;
vblockID = mc_Entity.x ;
if(blockID == BLOCK_GROUND_WAVING_VERTICAL || blockID == BLOCK_GRASS_SHORT || blockID == BLOCK_GRASS_TALL_LOWER || blockID == BLOCK_GRASS_TALL_UPPER ) normalMat.a = 0.60;
if(vblockID == BLOCK_GROUND_WAVING_VERTICAL || vblockID == BLOCK_GRASS_SHORT || vblockID == BLOCK_GRASS_TALL_LOWER || vblockID == BLOCK_GRASS_TALL_UPPER ) vnormalMat.a = 0.60;
PORTAL = 0;
SIGN = 0;
vPORTAL = 0;
vSIGN = 0;
#if defined WORLD && !defined HAND
if(blockEntityId == BLOCK_SIGN) SIGN = 1;
if(blockEntityId == BLOCK_SIGN) vSIGN = 1;
if(blockEntityId == BLOCK_END_PORTAL || blockEntityId == 187) {
PORTAL = 1;
lmtexcoord.w = 0.0;
vPORTAL = 1;
vlmtexcoord.w = 0.0;
}
#if PUDDLE_MODE > 0 || ShaderSnow > 0
if(blockID == 215) lmtexcoord.w = 0.0;
if(vblockID == 215) vlmtexcoord.w = 0.0;
#endif
#endif
NameTags = 0;
vNameTags = 0;
#ifdef ENTITIES
// disallow POM to work on item frames.
if(entityId == ENTITY_ITEM_FRAME) SIGN = 1;
if(entityId == ENTITY_ITEM_FRAME) vSIGN = 1;
// try and single out nametag text and then discard nametag background
// if( dot(gl_Color.rgb, vec3(1.0/3.0)) < 1.0) NameTags = 1;
// if(gl_Color.a < 1.0) NameTags = 1;
// if( dot(gl_Color.rgb, vec3(1.0/3.0)) < 1.0) vNameTags = 1;
// if(gl_Color.a < 1.0) vNameTags = 1;
// if(gl_Color.a >= 0.24 && gl_Color.a <= 0.25 ) gl_Position = vec4(10,10,10,1);
#ifdef INCLUDE_UNLISTED_ENTITIES
bool unlistedEntity = true;
@@ -288,59 +309,54 @@ void main() {
bool unlistedEntity = false;
#endif
if(entityId == ENTITY_BOAT || entityId == ENTITY_SMALLSHIPS || entityId == ENTITY_SSS_MEDIUM || entityId == ENTITY_SSS_WEAK || entityId == ENTITY_PLAYER || entityId == 2468 || unlistedEntity) normalMat.a = 0.45;
if(entityId == ENTITY_BOAT || entityId == ENTITY_SMALLSHIPS || entityId == ENTITY_SSS_MEDIUM || entityId == ENTITY_SSS_WEAK || entityId == ENTITY_PLAYER || entityId == 2468 || unlistedEntity) vnormalMat.a = 0.45;
#endif
if(mc_Entity.x == BLOCK_AIR_WAVING) normalMat.a = 0.55;
if(mc_Entity.x == BLOCK_AIR_WAVING) vnormalMat.a = 0.55;
/////// ----- EMISSIVE STUFF ----- ///////
EMISSIVE = 0.0;
LIGHTNING = 0;
// if(NameTags > 0) EMISSIVE = 0.9;
HELD_ITEM_BRIGHTNESS = 0.0;
#ifdef Hand_Held_lights
if(heldItemId > 999 || heldItemId2 > 999 ) HELD_ITEM_BRIGHTNESS = 0.9;
#endif
/////// ----- vEMISSIVE STUFF ----- ///////
vEMISSIVE = 0.0;
vLIGHTNING = 0;
// if(vNameTags > 0) vEMISSIVE = 0.9;
// normal block lightsources
if(mc_Entity.x >= 100 && mc_Entity.x < 300) EMISSIVE = 0.5;
if(mc_Entity.x >= 100 && mc_Entity.x < 300) vEMISSIVE = 0.5;
if(mc_Entity.x == 266 || mc_Entity.x == 497) EMISSIVE = 0.2; // sculk stuff
if(mc_Entity.x == 266 || mc_Entity.x == 497) vEMISSIVE = 0.2; // sculk stuff
if(mc_Entity.x == 195) EMISSIVE = 2.3; // glow lichen
if(mc_Entity.x == 195) vEMISSIVE = 2.3; // glow lichen
if(mc_Entity.x == 185) EMISSIVE = 1.5; // crying obsidian
if(mc_Entity.x == 185) vEMISSIVE = 1.5; // crying obsidian
if(mc_Entity.x == 105) EMISSIVE = 2.0; // brewing stand
if(mc_Entity.x == 105) vEMISSIVE = 2.0; // brewing stand
if(mc_Entity.x == 236) EMISSIVE = 1.0; // respawn anchor
if(mc_Entity.x == 236) vEMISSIVE = 1.0; // respawn anchor
if(mc_Entity.x == 101) EMISSIVE = 0.7; // large amethyst bud
if(mc_Entity.x == 101) vEMISSIVE = 0.7; // large amethyst bud
if(mc_Entity.x == 103) EMISSIVE = 1.0; // amethyst cluster
if(mc_Entity.x == 103) vEMISSIVE = 1.0; // amethyst cluster
if(mc_Entity.x == 244) EMISSIVE = 1.5; // soul fire
if(mc_Entity.x == 244) vEMISSIVE = 1.5; // soul fire
#if PUDDLE_MODE > 0 || ShaderSnow > 0
if (mc_Entity.x == 244 || mc_Entity.x == 189) lmtexcoord.w = 0.0;
if (mc_Entity.x == 244 || mc_Entity.x == 189) vlmtexcoord.w = 0.0;
#endif
#ifdef EMISSIVE_ORES
if(mc_Entity.x == 502) EMISSIVE = EMISSIVE_ORES_STRENGTH;
if(mc_Entity.x == 502) vEMISSIVE = EMISSIVE_ORES_STRENGTH;
#endif
// special cases light lightning and beacon beams...
#ifdef ENTITIES
if(entityId == ENTITY_LIGHTNING){
LIGHTNING = 1;
normalMat.a = 0.50;
vLIGHTNING = 1;
vnormalMat.a = 0.50;
}
#endif
/////// ----- SSS STUFF ----- ///////
SSSAMOUNT = 0.0;
vSSSAMOUNT = 0.0;
#ifdef WORLD
/////// ----- SSS ON BLOCKS ----- ///////
@@ -348,7 +364,7 @@ void main() {
if (
mc_Entity.x == BLOCK_SSS_STRONG || mc_Entity.x == BLOCK_SAPLING || mc_Entity.x == BLOCK_AIR_WAVING
) {
SSSAMOUNT = 1.0;
vSSSAMOUNT = 1.0;
}
// medium
@@ -356,7 +372,7 @@ void main() {
mc_Entity.x == BLOCK_GROUND_WAVING || mc_Entity.x == BLOCK_GROUND_WAVING_VERTICAL
|| mc_Entity.x == BLOCK_GRASS_SHORT || mc_Entity.x == BLOCK_GRASS_TALL_UPPER || mc_Entity.x == BLOCK_GRASS_TALL_LOWER
) {
SSSAMOUNT = 0.5;
vSSSAMOUNT = 0.5;
}
if (
mc_Entity.x == BLOCK_SSS_WEAK || mc_Entity.x == BLOCK_SSS_WEAK_2 ||
@@ -364,7 +380,7 @@ void main() {
mc_Entity.x == BLOCK_AMETHYST_BUD_MEDIUM || mc_Entity.x == BLOCK_AMETHYST_BUD_LARGE || mc_Entity.x == BLOCK_AMETHYST_CLUSTER ||
mc_Entity.x == BLOCK_BAMBOO || mc_Entity.x == BLOCK_SAPLING || mc_Entity.x == BLOCK_VINE
) {
SSSAMOUNT = 0.5;
vSSSAMOUNT = 0.5;
}
// low
@@ -372,7 +388,7 @@ void main() {
if(
mc_Entity.x == BLOCK_SSS_WEIRD || mc_Entity.x == BLOCK_GRASS
){
SSSAMOUNT = 0.5;
vSSSAMOUNT = 0.5;
}
#endif
@@ -380,12 +396,12 @@ void main() {
#ifdef MOB_SSS
/////// ----- SSS ON MOBS----- ///////
// strong
if(entityId == ENTITY_SSS_MEDIUM) SSSAMOUNT = 0.75;
if(entityId == ENTITY_SSS_MEDIUM) vSSSAMOUNT = 0.75;
// medium
// low
if(entityId == ENTITY_SSS_WEAK || entityId == ENTITY_PLAYER) SSSAMOUNT = 0.4;
if(entityId == ENTITY_SSS_WEAK || entityId == ENTITY_PLAYER) vSSSAMOUNT = 0.4;
#endif
#endif
@@ -394,7 +410,7 @@ void main() {
// strong
// medium
if(blockEntityId == BLOCK_SSS_WEAK_3) SSSAMOUNT = 0.4;
if(blockEntityId == BLOCK_SSS_WEAK_3) vSSSAMOUNT = 0.4;
// low
@@ -402,9 +418,93 @@ void main() {
vec3 worldpos = mat3(gbufferModelViewInverse) * position + gbufferModelViewInverse[3].xyz;
vec3 worldNormals = viewToWorld(vFlatNormals);
vgrassSideCheck = vec4(0.0);
#if !defined ENTITIES && !defined HAND && defined SHADER_GRASS && (defined GRASS_DETECT_FALLOFF || defined GRASS_DETECT_INV_FALLOFF || REPLACE_SHORT_GRASS > 0)
if(length(worldpos) < min(GRASS_RANGE, 0.5*float(LpvSize)) && vblockID == 85 && worldNormals.y > 0.9) {
float fractYPos = fract(worldpos.y+cameraPosition.y);
if(fractYPos > 0.9999 || fractYPos < 0.0001 || abs(fractYPos - 0.5) < 0.0001) {
vcenterPosition = worldpos + at_midBlock.xyz / 64.0;
vec3 LPVpos = GetLpvPosition(vcenterPosition);
#if REPLACE_SHORT_GRASS > 0
uint blockTop = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y + 0.6, LPVpos.z));
#else
uint blockTop = 0;
#endif
if(blockTop == 12 || blockTop > 2400) {
vgrassSideCheck = vec4(2.0);
}
#if REPLACE_SHORT_GRASS < 2
else {
uint blockEast = GetVoxelBlock(ivec3(LPVpos.x + 1.0, LPVpos.y + 0.6, LPVpos.z));
uint blockWest = GetVoxelBlock(ivec3(LPVpos.x - 1.0, LPVpos.y + 0.6, LPVpos.z));
uint blockSouth = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y + 0.6, LPVpos.z + 1.0));
uint blockNorth = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y + 0.6, LPVpos.z - 1.0));
if(blockEast > 2400 || blockEast == 12 || (blockEast > 80 && blockEast < 86) || blockEast == 503 || (blockEast > 406 && blockEast < 440)) {vgrassSideCheck.x = 1.0;} else {
#ifdef GRASS_DETECT_FALLOFF
blockEast = GetVoxelBlock(ivec3(LPVpos.x + 1.0, LPVpos.y, LPVpos.z));
if(blockEast != 85) {vgrassSideCheck.x = -1.0;}
#endif
}
if(blockWest > 2400 || blockWest == 12 || (blockWest > 80 && blockWest < 86) || blockWest == 503 || (blockWest > 406 && blockWest < 440)) {vgrassSideCheck.y = 1.0;} else {
#ifdef GRASS_DETECT_FALLOFF
blockWest = GetVoxelBlock(ivec3(LPVpos.x - 1.0, LPVpos.y, LPVpos.z));
if(blockWest != 85) {vgrassSideCheck.y = -1.0;}
#endif
}
if(blockSouth > 2400 || blockSouth == 12 || (blockSouth > 80 && blockSouth < 86) || blockSouth == 503 || (blockSouth > 406 && blockSouth < 440)) {vgrassSideCheck.z = 1.0;} else {
#ifdef GRASS_DETECT_FALLOFF
blockSouth = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y, LPVpos.z+ 1.0));
if(blockSouth != 85) {vgrassSideCheck.z = -1.0;}
#endif
}
if(blockNorth > 2400 || blockNorth == 12 || (blockNorth > 80 && blockNorth < 86) || blockNorth == 503 || (blockNorth > 406 && blockNorth < 440)) {vgrassSideCheck.w = 1.0;} else {
#ifdef GRASS_DETECT_FALLOFF
blockNorth = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y, LPVpos.z - 1.0));
if(blockNorth != 85) {vgrassSideCheck.w = -1.0;}
#endif
}
#ifndef GRASS_DETECT_INV_FALLOFF
vgrassSideCheck = clamp(vgrassSideCheck, -1.0, 0.0);
#endif
}
#endif
}
}
vdiscardGrass = 0;
#if REPLACE_SHORT_GRASS > 0
#if GRASS_DENSITY == 3
float maxShortGrassRange = 28.0;
#elif GRASS_DENSITY == 2
float maxShortGrassRange = 24.0;
#elif GRASS_DENSITY == 2
float maxShortGrassRange = 20.0;
#else
float maxShortGrassRange = 16.0;
#endif
if(length(worldpos) < maxShortGrassRange && vblockID == 12) {
vcenterPosition = worldpos + at_midBlock.xyz / 64.0;
vec3 LPVpos = GetLpvPosition(vcenterPosition);
uint blockBelow = GetVoxelBlock(ivec3(LPVpos.x, LPVpos.y - 0.6, LPVpos.z));
if(blockBelow == 85) vdiscardGrass = 1;
}
#endif
#endif
#ifdef WAVY_PLANTS
// also use normal, so up/down facing geometry does not get detatched from its model parts.
bool InterpolateFromBase = gl_MultiTexCoord0.t < max(mc_midTexCoord.t, abs(viewToWorld(FlatNormals).y));
bool InterpolateFromBase = gl_MultiTexCoord0.t < max(mc_midTexCoord.t, abs(worldNormals.y));
if(
(
@@ -421,12 +521,17 @@ void main() {
){
vec3 UnalteredWorldpos = worldpos;
// vec3 offsetPos = UnalteredWorldpos+vec3(0.0, 1.0, 0.0)+relativeEyePosition;
// float playerDist = smoothstep(0.5, 0.05, length(offsetPos.xz)) * smoothstep(1.0, 0.2, abs(offsetPos.y));
// vec2 dir2 = normalize(UnalteredWorldpos.xz+relativeEyePosition.xz);
// apply displacement for waving plant blocks
worldpos += calcMovePlants(worldpos + cameraPosition) * max(lmtexcoord.w,0.5);
worldpos += calcMovePlants(worldpos + cameraPosition) * max(vlmtexcoord.w,0.5);
// worldpos.xz += playerDist*dir2;
// apply displacement for waving leaf blocks specifically, overwriting the other waving mode. these wave off of the air. they wave uniformly
if(mc_Entity.x == BLOCK_AIR_WAVING) worldpos = UnalteredWorldpos + calcMoveLeaves(worldpos + cameraPosition, 0.0040, 0.0064, 0.0043, 0.0035, 0.0037, 0.0041, vec3(1.0,0.2,1.0), vec3(0.5,0.1,0.5))*lmtexcoord.w;
if(mc_Entity.x == BLOCK_AIR_WAVING) worldpos = UnalteredWorldpos + calcMoveLeaves(worldpos + cameraPosition, 0.0040, 0.0064, 0.0043, 0.0035, 0.0037, 0.0041, vec3(1.0,0.2,1.0), vec3(0.5,0.1,0.5))*vlmtexcoord.w;
}
#endif
@@ -436,47 +541,15 @@ void main() {
worldpos.y -= curvature*curvature * CURVATURE_AMOUNT;
#endif
position = mat3(gbufferModelView) * worldpos + gbufferModelView[3].xyz;
// position = mat3(gbufferModelView) * worldpos + gbufferModelView[3].xyz;
// ensure hand/entities have the same transformations as the spidereyes and enchant glint programs.
#if !defined ENTITIES && !defined HAND
gl_Position = toClipSpace3(position);
gl_Position = vec4(worldpos, 0.0);
#endif
#endif
#if defined Seasons && defined WORLD && !defined ENTITIES && !defined BLOCKENTITIES && !defined HAND
YearCycleColor(color.rgb, gl_Color.rgb, mc_Entity.x == BLOCK_AIR_WAVING, true);
#endif
#ifdef TAA_UPSCALING
gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w;
#endif
#ifdef TAA
// #ifdef HAND
// turn off jitter when camera moves.
// this is to hide the jitter when the same happens for TAA blend factor and the jitter becomes visible during camera movement
// gl_Position.xy += (offsets[framemod8] * gl_Position.w*texelSize) * detectCameraMovement();
// #else
gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize;
// #endif
#endif
#if DOF_QUALITY == 5
vec2 jitter = clamp(jitter_offsets[frameCounter % 64], -1.0, 1.0);
jitter = rotate(radians(float(frameCounter))) * jitter;
jitter.y *= aspectRatio;
jitter.x *= DOF_ANAMORPHIC_RATIO;
#if MANUAL_FOCUS == -2
float focusMul = 0;
#elif MANUAL_FOCUS == -1
float focusMul = gl_Position.z - mix(pow(512.0, screenBrightness), 512.0 * screenBrightness, 0.25);
#else
float focusMul = gl_Position.z - MANUAL_FOCUS;
#endif
vec2 totalOffset = (jitter * JITTER_STRENGTH) * focusMul * 1e-2;
gl_Position.xy += hideGUI >= 1 ? totalOffset : vec2(0);
YearCycleColor(vcolor.rgb, gl_Color.rgb, mc_Entity.x == BLOCK_AIR_WAVING, true);
#endif
}
+1 -1
View File
@@ -57,7 +57,7 @@ flat varying int glass;
attribute vec4 at_tangent;
attribute vec4 mc_Entity;
#if defined ENTITIES
#if defined ENTITIES || defined BLOCKENTITIES
uniform int entityId;
#endif
+5 -1
View File
@@ -265,6 +265,10 @@ vec2 SSAO(
float occlusion = 0.0;
float sss = 0.0;
#if indirect_effect == SSAO_HQ
samples = 21;
#endif
vec2 jitterOffsets = TAA_Offset*texelSize*0.5 * RENDER_SCALE - texelSize*0.5;
// scale the offset radius down as distance increases.
@@ -424,7 +428,7 @@ void main() {
vec3 FlatNormals = normalize(texture2D(colortex15,texcoord).rgb * 2.0 - 1.0);
#if defined DENOISE_SSS_AND_SSAO && indirect_effect == 1
#if defined DENOISE_SSS_AND_SSAO && SSAO_FILTERED || indirect_effect == SSAO_HQ
if(z >= 1.0) FlatNormals = normal;
+65 -46
View File
@@ -202,7 +202,6 @@ float convertHandDepth_2(in float depth, bool hand) {
#define CLOUDSHADOWSONLY
#include "/lib/volumetricClouds.glsl"
#define CLOUDS_INTERSECT_TERRAIN
#endif
#ifdef IS_LPV_ENABLED
@@ -284,11 +283,18 @@ vec3 fp10Dither(vec3 color,float dither){
}
float interleaved_gradientNoise_temporal(){
// #ifdef TAA
// return fract(52.9829189*fract(0.06711056*gl_FragCoord.x + 0.00583715*gl_FragCoord.y ) + 1.0/1.6180339887 * frameCounter);
// #else
// return fract(52.9829189*fract(0.06711056*gl_FragCoord.x + 0.00583715*gl_FragCoord.y ) + 1.0/1.6180339887);
// #endif
vec2 coord = gl_FragCoord.xy;
#ifdef TAA
return fract(52.9829189*fract(0.06711056*gl_FragCoord.x + 0.00583715*gl_FragCoord.y ) + 1.0/1.6180339887 * frameCounter);
#else
return fract(52.9829189*fract(0.06711056*gl_FragCoord.x + 0.00583715*gl_FragCoord.y ) + 1.0/1.6180339887);
coord += (frameCounter%40000) * 2.0;
#endif
return fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y ) + 1.0/1.6180339887);
}
float interleaved_gradientNoise(){
@@ -603,16 +609,21 @@ void doEdgeAwareBlur(
#ifdef Variable_Penumbra_Shadows
shadow_RESULT += texelFetch2D(tex1, UV + OFFSET[i] + UV_NOISE, 0).rgb*edgeDiff;
#endif
// #if indirect_effect == 1
#if indirect_effect == SSAO_FILTERED
ssao_RESULT += texelFetch2D(tex2, UV + OFFSET[i] + UV_NOISE, 0).rg*edgeDiff;
// #endif
#endif
edgeSum += edgeDiff;
}
// sample without an offset with texture filtering to get a slightly blurred sample. make sure to average without skewing the rest of the average.
filteredShadow = shadow_RESULT/edgeSum * 0.8 + 0.2 * texture2D(tex1, texelSize*gl_FragCoord.xy).rgb;
ambientEffects = ssao_RESULT/edgeSum * 0.8 + 0.2 * texture2D(tex2, texelSize*gl_FragCoord.xy).rg;
// ambientEffects.x = edgeSum / 4.0;
#if indirect_effect == SSAO_FILTERED
ambientEffects = ssao_RESULT/edgeSum * 0.8 + 0.2 * texture2D(tex2, texelSize*gl_FragCoord.xy).rg;
#endif
#if indirect_effect == SSAO_HQ
ambientEffects = texture2D(tex2, texelSize*gl_FragCoord.xy).rg;
#endif
}
@@ -790,7 +801,7 @@ uniform float wetness;
#ifdef OVERWORLD_SHADER
void applyPuddles(
in vec3 worldPos, in vec3 flatNormals, in vec2 lightmap, in bool isWater, in int isEyeInWater, inout vec3 albedo, inout vec3 normals, inout float roughness, inout float f0
in vec3 worldPos, in vec3 flatNormals, in vec2 lightmap, in bool isWater, in int isEyeInWater, inout vec3 albedo, inout vec3 normals, inout float roughness, inout float f0, in bool isShaderGrass
){
/* PUDDLE_MODE
0 = OFF, NO WETNESS
@@ -816,6 +827,8 @@ uniform float wetness;
vec2 UV = mix(worldPos.xz, worldPos.xy*vec2(2.0, 0.5)+driprate, abs(flatNormals.z));
UV = mix(UV, worldPos.zy*vec2(2.0, 0.5)+driprate, abs(flatNormals.x));
if(isShaderGrass) UV = worldPos.xz;
float noise = texture2D(noisetex, UV * 0.02).b;
@@ -837,21 +850,23 @@ uniform float wetness;
float wetnessStages = puddles * effectStrength;
if(isWater) wetnessStages = 0.0;
#ifdef RIPPLE_PUDDLES
float viewDist = length(worldPos - cameraPosition);
vec3 rippleNormal = flatNormals;
if(!isShaderGrass) {
#ifdef RIPPLE_PUDDLES
float viewDist = length(worldPos - cameraPosition);
vec3 rippleNormal = flatNormals;
if(viewDist < 35 && rainStrength > 0.0 && biome_precipitation == 1 && snowAmount < 0.01) {
vec3 ripple = ripples(1.2 * worldPos.xz);
ripple = ripple.xzy;
rippleNormal = mix(flatNormals, ripple, smoothstep(35, 10, viewDist) * rainStrength);
}
if(viewDist < 35 && rainStrength > 0.0 && biome_precipitation == 1 && snowAmount < 0.01) {
vec3 ripple = ripples(1.2 * worldPos.xz);
ripple = ripple.xzy;
rippleNormal = mix(flatNormals, ripple, smoothstep(35, 10, viewDist) * rainStrength);
}
normals = mix(normals, rippleNormal, effectStrength * clamp(flatNormals.y,0.0,1.0));
#else
normals = mix(normals, flatNormals, puddles * effectStrength * clamp(flatNormals.y,0.0,1.0));
#endif
normals = mix(normals, rippleNormal, effectStrength * clamp(flatNormals.y,0.0,1.0));
#else
normals = mix(normals, flatNormals, puddles * effectStrength * clamp(flatNormals.y,0.0,1.0));
#endif
}
roughness = mix(roughness, 0.5*(1+snowR), wetnessStages * Puddle_Reflection_Sharpness);
@@ -897,7 +912,7 @@ void main() {
vec2 bnoise = blueNoise(gl_FragCoord.xy).rg;
#ifdef TAA
int seed = (frameCounter*5)%40000;
int seed = frameCounter*8%40000;
#else
int seed = 600;
#endif
@@ -956,8 +971,14 @@ void main() {
lightmap.xy = min(max(lightmap.xy - 0.05,0.0)*1.06,1.0); // small offset to hide flickering from precision error in the encoding/decoding on values close to 1.0 or 0.0
#if !defined OVERWORLD_SHADER
lightmap.y = 1.0;
#if MC_VERSION < 12109
#if !defined OVERWORLD_SHADER
lightmap.y = 1.0;
#endif
#else
#if !defined OVERWORLD_SHADER && !defined END_SHADER
lightmap.y = 1.0;
#endif
#endif
////// --------------- UNPACK MISC --------------- //////
@@ -971,7 +992,7 @@ void main() {
vec3 slopednormal = normal;
float vanilla_AO = z < 1.0 ? clamp(normalAndAO.a,0,1) : 0.0;
normalAndAO.a = clamp(pow(normalAndAO.a*5,4),0,1);
// normalAndAO.a = clamp(pow(normalAndAO.a*5,4),0,1);
if(isDHrange){
FlatNormals = normal;
@@ -1003,6 +1024,7 @@ void main() {
bool entities = abs(opaqueMasks-0.45) < 0.01;
bool isGrass = abs(opaqueMasks-0.60) < 0.01;
bool hand = abs(opaqueMasks-0.75) < 0.01 && z < 1.0;
bool isShaderGrass = abs(opaqueMasks-0.4) < 0.01;
// bool handwater = abs(translucentMasks-0.3) < 0.01 ;
// bool blocklights = abs(opaqueMasks-0.8) <0.01;
@@ -1308,7 +1330,7 @@ void main() {
vec3 lightPos = LightSourcePosition(feetPlayerPos+cameraPosition, cameraPosition,vortexBounds);
float lightningflash = texelFetch2D(colortex4,ivec2(1,1),0).x/150.0;
vec3 lightColors = LightSourceColors(vortexBounds, lightningflash);
vec3 lightColors = pow(lightmap.y,8) * LightSourceColors(vortexBounds, lightningflash);
float end_NdotL = clamp(dot(slopednormal, normalize(-lightPos))*0.5+0.5,0.0,1.0);
end_NdotL *= end_NdotL;
@@ -1327,7 +1349,7 @@ void main() {
#if defined OVERWORLD_SHADER
float skylight = 1.0;
#if indirect_effect == 0 || indirect_effect == 1 || indirect_effect == 2
#if indirect_effect == VANILLA_AO || indirect_effect == SSAO_FILTERED || indirect_effect == SSAO_HQ || indirect_effect == GTAO
vec3 indirectNormal = slopednormal / dot(abs(slopednormal),vec3(1.0));
@@ -1342,7 +1364,7 @@ void main() {
// skylight = 1.0;
#endif
#if indirect_effect == 3 || indirect_effect == 4
#if indirect_effect == SSRT_AO || indirect_effect == SSRT_AO_GI
skylight = 1.0;
#endif
@@ -1354,7 +1376,7 @@ void main() {
Indirect_lighting = volumetricsFromTex(normalize(normal), colortex4, 6).rgb / 1200.0;
vec3 up = volumetricsFromTex(vec3(0.0,1.0,0.0), colortex4, 6).rgb / 1200.0;
#if indirect_effect == 1
#if indirect_effect == SSAO_FILTERED || indirect_effect == SSAO_HQ
Indirect_lighting = mix(up, Indirect_lighting, clamp(pow(1.0-pow(1.0-SSAO_SSS.x, 0.5),2.0),0.0,1.0));
#endif
@@ -1365,9 +1387,13 @@ void main() {
Indirect_lighting = vec3(AmbientLightEnd_R,AmbientLightEnd_G,AmbientLightEnd_B);
Indirect_lighting = Indirect_lighting + 0.7*mix(-Indirect_lighting, Indirect_lighting * dot(slopednormal, feetPlayerPos_normalized), clamp(pow(1.0-pow(1.0-SSAO_SSS.x, 0.5),2.0),0.0,1.0));
Indirect_lighting *= 0.1;
Indirect_lighting *= 0.05 * lightmap.y*lightmap.y;
Indirect_lighting += lightColors * (endPhase*endPhase) * (1.0-exp(vec3(0.6,2.0,2.0) * -(endPhase*0.01))) /1000.0;
// float minimumLightAmount = 0.02*nightVision + 0.005 * mix(MINIMUM_INDOOR_LIGHT, MINIMUM_OUTDOOR_LIGHT, clamp(eyeBrightnessSmooth.y/240.0 + lightmap.y,0.0,1.0));
// Indirect_lighting += MinimumLightColor * minimumLightAmount;
Indirect_lighting += MinimumLightColor * (MIN_LIGHT_AMOUNT * 0.02 * 0.2 + nightVision*0.02);
#endif
#ifdef IS_LPV_ENABLED
@@ -1413,7 +1439,7 @@ void main() {
Indirect_lighting *= AO;
#endif
#if indirect_effect == 1
#if indirect_effect == SSAO_FILTERED || indirect_effect == SSAO_HQ
SkySSS = SSAO_SSS.y;
float vanillaAO_curve = pow(1.0 - vanilla_AO*vanilla_AO,5.0);
@@ -1426,19 +1452,19 @@ void main() {
#endif
// // GTAO... this is so dumb but whatevverrr
#if indirect_effect == 2
#if indirect_effect == GTAO
float vanillaAO_curve = pow(1.0 - vanilla_AO*vanilla_AO,5.0);
vec2 r2 = fract(R2_samples((frameCounter%40000) + frameCounter*2) + bnoise);
float GTAO = !hand ? ambient_occlusion(vec3(texcoord/RENDER_SCALE-TAA_Offset*texelSize*0.5, z), viewPos, worldToView(slopednormal), r2) : 1.0;
float getGTAO = !hand ? ambient_occlusion(vec3(texcoord/RENDER_SCALE-TAA_Offset*texelSize*0.5, z), viewPos, worldToView(slopednormal), r2) : 1.0;
AO = vec3(min(vanillaAO_curve,GTAO));
AO = vec3(min(vanillaAO_curve,getGTAO));
Indirect_lighting *= AO;
#endif
// RTAO and/or SSGI
#if indirect_effect == 3 || indirect_effect == 4
#if indirect_effect == SSRT_AO || indirect_effect == SSRT_AO_GI
if(!hand) Indirect_lighting = ApplySSRT(Indirect_lighting, blockLightColor, MinimumLightColor, viewPos, normal, vec3(bnoise, noise_2), lightmap.y, isGrass, isDHrange);
#endif
@@ -1449,7 +1475,7 @@ void main() {
////////////////////////////////////////////////////////////////////////////////
///////////////////////////// SKY SSS /////////////////////////////
#if defined Ambient_SSS && defined OVERWORLD_SHADER // && indirect_effect == 1
#if defined Ambient_SSS && defined OVERWORLD_SHADER && (indirect_effect == SSAO_FILTERED || indirect_effect == SSAO_HQ)
vec3 ambientColor = AmbientLightColor * ambientsss_brightness * ambient_brightness * 2.0;
Indirect_SSS = SubsurfaceScattering_sky(albedo, SkySSS, LabSSS);
@@ -1459,14 +1485,7 @@ void main() {
thingy = pow(thingy,3.5);
thingy = 1-pow(1-thingy,5);
Indirect_lighting = Indirect_lighting + Indirect_SSS * ambientColor;
// float lightmapCurve = ((pow(lightmap.y,15.0)*2.0 + lightmap.y*lightmap.y)/3.0);
// Indirect_lighting = ambient_brightness * AmbientLightColor * mix(Indirect_SSS*lightmap.y*2.5, vec3(1.0), skylight * SSAO_curve * lightmapCurve);
// Indirect_lighting += blockLightColor * SSAO_curve;
// #ifdef OVERWORLD_SHADER
// if(LabSSS > 0.0) Indirect_lighting += (1.0-SkySSS) * LightningPhase * lightningEffect * pow(lightmap.y,10);
// #endif
Indirect_lighting += Indirect_SSS * ambientColor;
#endif
/////////////////////////////////////////////////////////////////////////
@@ -1497,7 +1516,7 @@ void main() {
#endif
#if defined OVERWORLD_SHADER && defined DEFERRED_SPECULAR && (PUDDLE_MODE > 0 || ShaderSnow > 0)
if(!hand && !entities && (wetnessAmount > 0.01 || snowAmount > 0.01)) applyPuddles(feetPlayerPos + cameraPosition, FlatNormals, lightmap, isWater, isEyeInWater, albedo, normal, SpecularTex.r, SpecularTex.g);
if(!hand && !entities && (wetnessAmount > 0.01 || snowAmount > 0.01)) applyPuddles(feetPlayerPos + cameraPosition, FlatNormals, lightmap, isWater, isEyeInWater, albedo, normal, SpecularTex.r, SpecularTex.g, isShaderGrass);
#endif
vec3 FINAL_COLOR = (Indirect_lighting + Direct_lighting) * albedo;
+1 -1
View File
@@ -92,7 +92,7 @@ void main() {
WmoonVec = customMoonVec2SSBO;
#endif
exposure = texelFetch2D(colortex4,ivec2(10,37),0).r;
// exposure = texelFetch2D(colortex4,ivec2(10,37),0).r;
readSceneControllerParameters(colortex4, parameters.smallCumulus, parameters.largeCumulus, parameters.altostratus, parameters.cirrus, parameters.fog);
+45 -21
View File
@@ -47,10 +47,6 @@ vec4 Weather_properties = Moon_Weather_properties;
// #include "/lib/biome_specifics.glsl"
#include "/lib/bokeh.glsl"
#if WHITE_BALANCE != 6500
#include "/lib/util.glsl"
#endif
float cdist(vec2 coord) {
return max(abs(coord.s-0.5),abs(coord.t-0.5))*2.0;
}
@@ -185,6 +181,29 @@ vec4 texture2D_bicubic(sampler2D tex, vec2 uv)
// return color;
// }
vec3 srgbToLinear(vec3 srgb){
return mix(
srgb / 12.92,
pow(.947867 * srgb + .0521327, vec3(2.4) ),
step( .04045, srgb )
);
}
vec3 blackbody(float Temp)
{
float t = pow(Temp, -1.5);
float lt = log(Temp);
vec3 WB_temp = vec3(0.0);
WB_temp.r = 220000.0 * t + 0.58039215686;
WB_temp.g = 0.39231372549 * lt - 2.44549019608;
WB_temp.g = Temp > 6500. ? 138039.215686 * t + 0.72156862745 : WB_temp.g;
WB_temp.b = 0.76078431372 * lt - 5.68078431373;
WB_temp = clamp(WB_temp,0,1);
WB_temp = Temp < 1000. ? WB_temp * Temp * 0.001 : WB_temp;
return srgbToLinear(WB_temp);
}
void main() {
/* DRAWBUFFERS:7 */
float vignette = (1.5-dot(texcoord-0.5,texcoord-0.5)*2.);
@@ -257,26 +276,31 @@ void main() {
float lightScat = clamp(BLOOM_STRENGTH * 0.3,0.0,1.0) * vignette;
#endif
#ifdef AUTO_EXPOSURE
float purkinje = clamp(exposure.a*exposure.a,0.0,1.0) * clamp(rodExposureDepth.x/(1.0+rodExposureDepth.x)*Purkinje_strength,0,1);
#else
float purkinje = clamp(rodExposureDepth.x/(1.0+rodExposureDepth.x)*Purkinje_strength,0,1);
#endif
float VL_abs = texture2D(colortex7, texcoord*RENDER_SCALE).r;
VL_abs = clamp((1.0-VL_abs)*BLOOMY_FOG*0.75*(1.0+rainStrength) * (1.0-purkinje*0.3),0.0,1.0)*clamp(1.0-pow(cdist(texcoord.xy),15.0),0.0,1.0);
#if Purkinje_strength > 0
float pstrength = float(Purkinje_strength) / 100.0;
#ifdef AUTO_EXPOSURE
float purkinje = clamp(exposure.a*exposure.a,0.0,1.0) * clamp(rodExposureDepth.x/(1.0+rodExposureDepth.x)*pstrength,0,1);
#else
float purkinje = clamp(rodExposureDepth.x/(1.0+rodExposureDepth.x)*pstrength,0,1);
#endif
VL_abs = clamp((1.0-VL_abs)*BLOOMY_FOG*0.75*(1.0+rainStrength) * (1.0-purkinje*0.3),0.0,1.0)*clamp(1.0-pow(cdist(texcoord.xy),15.0),0.0,1.0);
col = (mix(col, fogBloom, VL_abs) + bloom*lightScat) * exposure.rgb;
col = (mix(col, fogBloom, VL_abs) + bloom*lightScat) * exposure.rgb;
float lum = dot(col, vec3(0.15,0.3,0.55));
float lum2 = dot(col, vec3(0.85,0.7,0.45));
float rodLum = lum2*200.0;
float rodCurve = clamp(mix(1.0, rodLum/(2.5+rodLum), purkinje),0.0,1.0);
col = mix(lum * vec3(Purkinje_R, Purkinje_G, Purkinje_B) * Purkinje_Multiplier, col, rodCurve);
#else
VL_abs = clamp((1.0-VL_abs)*BLOOMY_FOG*0.75*(1.0+rainStrength),0.0,1.0)*clamp(1.0-pow(cdist(texcoord.xy),15.0),0.0,1.0);
col = (mix(col, fogBloom, VL_abs) + bloom*lightScat) * exposure.rgb;
#endif
float lum = dot(col, vec3(0.15,0.3,0.55));
float lum2 = dot(col, vec3(0.85,0.7,0.45));
float rodLum = lum2*200.0;
float rodCurve = clamp(mix(1.0, rodLum/(2.5+rodLum), purkinje),0.0,1.0);
col = mix(lum * vec3(Purkinje_R, Purkinje_G, Purkinje_B) * Purkinje_Multiplier, col, rodCurve);
#if WHITE_BALANCE != 6500
col *= blackbody(WHITE_BALANCE);
#endif
@@ -324,6 +348,6 @@ void main() {
#endif
// focus = gl_FragCoord.x * 0.1;
if (hideGUI < 1) gl_FragData[0].rgb += laserColor * pow( clamp( 1.0-abs(focus-abs(depth)) ,0,1),25) ;
if( hideGUI < 1) gl_FragData[0].rgb += laserColor * pow( clamp( 1.0-abs(focus-abs(depth)) ,0,1),25) ;
#endif
}
+4 -4
View File
@@ -104,7 +104,7 @@ vec3 colorGrading(vec3 color) {
}
vec3 contrastAdaptiveSharpening(vec3 color, vec2 texcoord){
float sharpen_strength = float(SHARPENING)/100.0;
//Weights : 1 in the center, 0.5 middle, 0.25 corners
vec3 albedoCurrent1 = texture2D(colortex7, texcoord + vec2(texelSize.x,texelSize.y)/MC_RENDER_QUALITY*0.5).rgb;
vec3 albedoCurrent2 = texture2D(colortex7, texcoord + vec2(texelSize.x,-texelSize.y)/MC_RENDER_QUALITY*0.5).rgb;
@@ -118,8 +118,8 @@ vec3 contrastAdaptiveSharpening(vec3 color, vec2 texcoord){
float contrast = 1.0 - luma(std)/5.0;
color = color*(1.0+(SHARPENING+UPSCALING_SHARPNENING)*contrast) -
(SHARPENING+UPSCALING_SHARPNENING)/(1.0-0.5/3.5)*contrast*(m1 - 0.5/3.5*color);
color = color*(1.0+(sharpen_strength+UPSCALING_SHARPNENING)*contrast) -
(sharpen_strength+UPSCALING_SHARPNENING)/(1.0-0.5/3.5)*contrast*(m1 - 0.5/3.5*color);
return color;
}
@@ -171,7 +171,7 @@ void main() {
vec3 color = texture2D(colortex7,texcoord).rgb;
#endif
#ifdef CONTRAST_ADAPTATIVE_SHARPENING
#if SHARPENING > 0
color = contrastAdaptiveSharpening(color, texcoord);
#endif
-1
View File
@@ -175,7 +175,6 @@ uniform float nightVision;
#define TIMEOFDAYFOG
#include "/lib/lightning_stuff.glsl"
// #define CLOUDS_INTERSECT_TERRAIN
#include "/lib/volumetricClouds.glsl"
#include "/lib/climate_settings.glsl"
@@ -14,7 +14,7 @@ flat varying vec3 sunlightCol;
flat varying vec3 moonlightCol;
flat varying vec3 averageSkyCol;
flat varying vec3 averageSkyCol_Clouds;
flat varying float exposure;
// flat varying float exposure;
// uniform int dhRenderDistance;
uniform sampler2D noisetex;
@@ -106,7 +106,6 @@ float linearizeDepthFast(const in float depth, const in float near, const in flo
#define TIMEOFDAYFOG
#include "/lib/lightning_stuff.glsl"
#define CLOUDS_INTERSECT_TERRAIN
// #define CLOUDSHADOWSONLY
#include "/lib/volumetricClouds.glsl"
#include "/lib/climate_settings.glsl"
@@ -260,7 +259,7 @@ vec2 decodeVec2(float a){
return fract( a * constant1 ) * constant2 ;
}
#if AURORA_LOCATION > 0
#if AURORA_LOCATION > 0 && defined OVERWORLD_SHADER
#define LUT
#include "/lib/aurora.glsl"
#endif
@@ -18,7 +18,7 @@ flat varying vec3 refractedSunVec;
// flat varying float tempOffsets;
uniform sampler2D colortex4;
flat varying float exposure;
// flat varying float exposure;
uniform float sunElevation;
uniform vec2 texelSize;
@@ -103,5 +103,5 @@ void main() {
refractedSunVec = refract(WsunVec, -vec3(0.0,1.0,0.0), 1.0/1.33333);
exposure = texelFetch2D(colortex4,ivec2(10,37),0).r;
// exposure = texelFetch2D(colortex4,ivec2(10,37),0).r;
}
+6 -2
View File
@@ -52,8 +52,12 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 8) in;
uint GetVoxelBlock(const in ivec3 voxelPos) {
if (clamp(voxelPos, ivec3(0), ivec3(VoxelSize3-1u)) != voxelPos)
return BLOCK_EMPTY;
return imageLoad(imgVoxelMask, voxelPos).r;
uint blockId = imageLoad(imgVoxelMask, voxelPos).r;
blockId = blockId % 1200;
return blockId;
}
void PopulateSharedIndex(const in ivec3 imgCoordOffset, const in ivec3 workGroupOffset, const in uint i) {
+93 -14
View File
@@ -1,6 +1,6 @@
option.SHADER_VERSION_LABEL = §d§lECLIPSE§r - A Bliss Edit
prefix.SHADER_VERSION_LABEL = V
value.SHADER_VERSION_LABEL.482 = 3.1.0
value.SHADER_VERSION_LABEL.482 = 4.0.0
# if you're here to translate, this is not a joke, these do what they say
profile.POTATO=§4Potato
@@ -10,6 +10,8 @@ profile.MEDIUM=§2Medium §6§l(Recommended)
profile.ALTERNATE_MEDIUM=§2Medium §7(Alternate Style)
profile.HIGH=§bHigh §6§l(Recommended)
profile.ALTERNATE_HIGH=§bHigh §7(Alternate Style)
profile.HIGH_GRASS=§bHigh + Shader Grass
profile.ALTERNATE_HIGH_GRASS=§bHigh + Shader Grass §7(Alt. Style)
profile.VERY_HIGH=§9Very High
profile.ULTRA=§dUltra
@@ -100,11 +102,41 @@ option.RESOURCEPACK_SKY = Resource Pack Sky §c(slightly bugged)
value.RESOURCEPACK_SKY.2 = Full sky
value.RESOURCEPACK_SKY.3 = Shader Sky + RP sun/moon
screen.Waving_Stuff = Waving Stuff
screen.Foliage = Foliage
option.WAVY_PLANTS = Waving Plants
option.WAVY_STRENGTH = Waving Strength
option.WAVY_SPEED = Waving Speed
option.SHADER_GRASS = Shader Grass
option.GRASS_BASE_THICKNESS = Grass Blade Base Thickness
option.GRASS_THICKNESS_FALLOFF = Grass Thickness Falloff
option.GRASS_THICKNESS_FALLOFF.comment = Controls how quickly each blade of grass becomes narrower. At 1.0 it will stay the same thickness until the tip
option.BASE_GRASS_HEIGHT = Grass Base Height
option.BASE_GRASS_HEIGHT.comment = The grass height of normal grass
option.SHORT_GRASS_HEIGHT = Short Grass Height
option.SHORT_GRASS_HEIGHT.comment = The grass height of the replaced vanilla short grass
option.REPLACE_SHORT_GRASS = Replace Vanilla Short Grass
option.REPLACE_SHORT_GRASS.comment = Control how vanilla short grass should be treated
value.REPLACE_SHORT_GRASS.0 = No
value.REPLACE_SHORT_GRASS.1 = Yes
value.REPLACE_SHORT_GRASS.2 = Short Grass only
option.GRASS_DETECT_FALLOFF = Grass Bottom Detection
option.GRASS_DETECT_FALLOFF.comment = This shortens the blade height of grass around grass edges
option.GRASS_DETECT_INV_FALLOFF = Grass Side Detection
option.GRASS_DETECT_INV_FALLOFF.comment = This increases the blade height if a block or short grass is next to it
option.GRASS_DENSITY = Grass Density
value.GRASS_DENSITY.0 = Low
value.GRASS_DENSITY.1 = Medium
value.GRASS_DENSITY.2 = High
value.GRASS_DENSITY.3 = Very High
option.GRASS_QUALITY = Grass Quality
option.GRASS_QUALITY.comment = Controls the maximum amount of triangles a blade can have. Low: 3 Triangles. Medium: 5 Triangles. High: 7 Triangles
value.GRASS_QUALITY.0 = Low
value.GRASS_QUALITY.1 = Medium
value.GRASS_QUALITY.2 = High
option.GRASS_RANGE = Grass Maximum Range
option.GRASS_WAVY_STRENGTH = Grass Waving Strength
screen.Direct_Light = Direct Light
screen.Shadows = Shadows
option.TRANSLUCENT_COLORED_SHADOWS = Colored Shadows
@@ -222,11 +254,12 @@ screen.Ambient_light = Ambient Light
option.MIN_LIGHT_AMOUNT = Minimum Light Brightness Outside
option.MIN_LIGHT_AMOUNT_INSIDE = Minimum Light Brightness Inside
option.indirect_effect = Indirect Lighting
value.indirect_effect.0 = Vanilla AO
value.indirect_effect.1 = SSAO
value.indirect_effect.2 = GTAO
value.indirect_effect.3 = SSRT (AO only) - §cVISUAL NOISE§r
value.indirect_effect.4 = SSRT (AO + GI) - §cVISUAL NOISE§r
value.indirect_effect.VANILLA_AO = Vanilla AO
value.indirect_effect.SSAO_FILTERED = SSAO
value.indirect_effect.SSAO_HQ = HQ SSAO
value.indirect_effect.GTAO = GTAO
value.indirect_effect.SSRT_AO = SSRT (AO only) - §cVISUAL NOISE§r
value.indirect_effect.SSRT_AO_GI = SSRT (AO + GI) - §cVISUAL NOISE§r
option.RAY_COUNT = Ray Count
option.RAY_COUNT.comment = Helps reduce visual noise of SSRT. §aPERFORMANCE COST:§r High
option.HANDHELD_LIGHT_RANGE = Handheld Light Range
@@ -262,7 +295,6 @@ screen.Fog = Fog Settings
option.BLOOMY_FOG = Bloomy Fog Multiplier
option.Haze_amount = Atmospheric Haze Density
option.RainFog_amount = Rain Fog Multiplier
option.RAYMARCH_CLOUDS_WITH_FOG = Render Clouds As Fog §c(READ DESCRIPTION)§r
option.BorderFog = Chunk Border Fog
screen.TOD_fog = Time Of Day Fog
@@ -317,6 +349,7 @@ screen.Clouds = Cloud Settings
option.Daily_Weather = Daily Weather
value.CLOUD_PHASE.0 = Henyey-Greenstein
value.CLOUD_PHASE.1 = Cornette-Shanks
value.CLOUD_PHASE.2 = Henyey-Greenstein-Draine
screen.CumulusClouds = Cumulus Clouds
option.CloudLayer0 = Small Cumulus Clouds
@@ -670,11 +703,20 @@ screen.World = World
screen.Post_Processing = Post Processing
screen.Tonemapping = Tone-Map/Color Settings
option.TONEMAP = Tone Mapping Operator
screen.Exposure = Exposure Settings
option.Manual_exposure_value = Manual Exposure Level §a(DISABLE AUTO EXPOSURE TO USE THIS)
option.EXPOSURE_MULTIPLIER = Exposure Multiplier
option.AUTO_EXPOSURE = Auto Exposure
option.Exposure_Speed = Auto Exposure Adjusting Speed
option.EXPOSURE_DARKENING = Darkening Strength
option.EXPOSURE_BRIGHTENING = Brightening Strength
screen.DepthOfField = Depth Of Field Settings
screen.Purkinje_effect = Purkinje Effect Settings
option.SHARPENING = Sharpening amount
option.FILM_GRAIN = Film Grain
option.SHARPENING = Sharpening Amount
suffix.SHARPENING = %
value.SHARPENING.0 = OFF
option.BLOOM_STRENGTH = Bloom Multiplier
screen.TAA_OPTIONS = Anti-Aliasing Settings
option.SCREENSHOT_MODE = Screenshot Mode
@@ -704,6 +746,34 @@ screen.Post_Processing = Post Processing
option.HIGHLIGHTS_GRADE_B = Highlights §9Blue
option.HIGHLIGHTS_GRADE_MUL = Highlights Brightness
screen.Color_Processing = Color Processing
option.SATURATION = Saturation
value.SATURATION.0.0 = 0.0 (Neutral)
option.CROSSTALK = Crosstalk
value.CROSSTALK.0.0 = 0.0 (Neutral)
option.WHITE_BALANCE = White Balance
value.WHITE_BALANCE.6500 = 6500 (Neutral)
screen.Camera_Settings = Camera Settings
option.CAMERA_GRIDLINES = Camera Grid Lines
option.MOTION_BLUR = Motion Blur
option.MOTION_BLUR_STRENGTH = Motion Blur Amount
option.CHROMATIC_ABERRATION = Chromatic Aberration
option.CHROMATIC_ABERRATION_STRENGTH = Chromatic Aberration Amount
option.VIGNETTE = Vignette
option.VIGNETTE_STRENGTH = Vignette Amount
screen.FLASHLIGHT_SETTING = Flashlight Settings
screen.GAMEPLAY_EFFECTS = Gameplay Screen Effects
option.MOTION_AMOUNT = The Motion Amount In All Gameplay Effects
option.WATER_ON_CAMERA_EFFECT = Enter/Exit Water Effect
option.DAMAGE_TAKEN_EFFECT = Damage Taken Effect
option.ON_FIRE_DISTORT_EFFECT = On-Fire effect
option.ON_FIRE_DISTORT_EFFECT_STRENGTH = On-Fire effect Amount
option.LOW_HEALTH_EFFECT = Low Health Effects
option.LOW_HEALTH_EFFECT_START = Minimum Health Needed For Low Health Effect
option.CRITICALLY_LOW_HEALTH_EFFECT_START = Minimum Health Needed For Critically Low Health Effect
option.DROWNING_EFFECT = Drowning Effect
screen.Resource_Pack_Support = Materials / Resource Pack Support
screen.SPECULAR = Specular Reflections
@@ -885,7 +955,7 @@ screen.Ambient_light.comment = Configure settings related to the lighting in sha
option.ambient_brightness.comment = Configure the brightnes of lighting in shaded places
option.MIN_LIGHT_AMOUNT.comment = Configure the minimum amount of light that can be in shaded places outside.
option.MIN_LIGHT_AMOUNT_INSIDE.comment = Configure the minimum amount of light that can be in shaded places inside.
option.indirect_effect.comment = Toggle different types of effects to make lighting in shaded places higher quality. §aPERFORMANCE COSTS:§r. Vanilla AO: very low. SSAO: low to medium. GTAO: medium to high. SSRT: high to very high - GI is slower
option.indirect_effect.comment = Toggle different types of effects to make lighting in shaded places higher quality. §aPERFORMANCE COSTS:§r. Vanilla AO: very low. SSAO: low to medium. HQ SSAO: medium. GTAO: medium to high. SSRT: high to very high - GI is slower
screen.Ambient_Colors.comment = Configure the color of light in shaded areas.
screen.Torch_Colors.comment = Configure the color of light from torches or other placed lightsources.
@@ -945,7 +1015,7 @@ screen.Porosity.comment = Configure settings related to wetness and puddles
option.Puddle_Size.comment = Configure the size of the puddles.
option.FAKE_REFRACTION_AMOUNT.comment = Configure the amount of distortion refraction will do. §bWhat is this?§r you could think of refraction as light bending when going through water or glass, making the things viewed through them look stretched, squished, distorted. §aPERFORMANCE COST:§r very low
option.FAKE_DISPERSION_AMOUNT.comment = Configure the amount of dispersion within the refraction. §bWhat is this?§r when refraction happens, the parts that get really distorted will get a "chromatic abberation", faking the look of a rainbow or light prism. §aPERFORMANCE COST:§r very low
option.FAKE_DISPERSION_AMOUNT.comment = Configure the amount of dispersion within the refraction. §bWhat is this?§r when refraction happens, the parts that get really distorted will get a "chromatic aberration", faking the look of a rainbow or light prism. §aPERFORMANCE COST:§r very low
option.REFRACTION_SMUDGE_AMOUNT.comment = Configure the amount of smudge within the refraction. §bWhat is this?§r when refraction happens, the parts that get really distorted will get smudged. §cWill cause visaul noise within refraction. §aPERFORMANCE COST:§r very low
screen.Fog.comment = Configure settings related to the raymarched volumetric fog, or distance based fog.
@@ -1023,7 +1093,7 @@ screen.Climate.comment = Configure settings related to the climate, like seasona
option.DARKFOREST_ENV.comment = Toggle the environment only for this biome type. The other biome environments remain active even if this one is disabled.
screen.Waving_Stuff.comment = Configure settings related to waving things.
screen.Foliage.comment = Configure settings related to foliage.
option.WAVY_PLANTS.comment = Toggle waving plants. §aPERFORMANCE COST:§r very low
option.WAVY_STRENGTH.comment = Configure the amount the plants wave.
option.WAVY_SPEED.comment = Configure the speed the plants wave.
@@ -1036,7 +1106,7 @@ screen.Post_Processing.comment = Configure settings for all post processing effe
option.SHARPENING.comment = Configure the amount of contrast adapitive sharpening that is applied to the image. This can really bring out lost details from anti-aliasing or upscaling.
option.BLOOM_STRENGTH.comment = Configure the amount of bloom that is applied to the image. §bWhat is this?§r Bloom is the soft glow on everything, to describe that something is bright or not.
screen.TAA_OPTIONS.comment = Configure settings related to anti-aliasing.
option.SCREENSHOT_MODE.comment = Toggle frame accumulation to get a low noise and high quality image. §bWhat is this?§r It stacks frames that happend onto the next frame that is generated, so it is like a long exposure photo.
option.SCREENSHOT_MODE.comment = §aTHIS DOES NOT CHANGE GRAPHICS QUALITY IN ANY WAY§r. Toggle frame accumulation to get a low noise image. §bWhat is this?§r It stacks frames that happend onto the next frame that is generated, so it is like a long exposure photo.
option.TAA.comment = Toggle temporal anti-aliasing. This removes all jagged edges on things, softens the image, and helps remove noise for many effects. This will cause ghosting or trailing because it uses past frames for extra information on the world. §aPERFORMANCE COST:§r low
option.BLEND_FACTOR.comment = Configure how much of frame history is used. high numbers means it relies less on frame history, so it may look flickery and noisy. low numbers rely more on frame history, so it may look less moisy, but more smudged with more trailing.
option.TAA_UPSCALING.comment = Toggle temporal upscaling. This retains a good amount of quality from a lower resolution image when it upscales. so you can still have a high looking resolution compared to typical upsampling and still have better performance.
@@ -1114,3 +1184,12 @@ option.TOGGLE_VL_FOG.comment = one big button to just turn all the fog off.
option.TRANSLUCENT_COLORED_SHADOWS.comment = §bWhat is this?§r This effect allows translucent things like stained glass to color the sunlight as it passes through it. §aPERFORMANCE COST:§r medium
option.MINIMUM_WATER_ABSORBANCE.comment = §bWhat is this?§r This controls how "clear" the water is in shallow areas. AUTO allows water to be clear outdoors, but adjust to be at a minimum value of 7 when indoors, to make it clearly visible. §dTHIS SETTING DOES NOT IMPACT UNDER-WATER VISUALS.
option.SATURATION.comment = §bWhat is this?§r This controls how "colorful" the image is. negative values take away colors - positive values make them more intense.
option.CROSSTALK.comment = §bWhat is this?§r This is a modifier of saturation - it offsets the saturation of the BRIGHT parts of the image.
option.WHITE_BALANCE.comment = §bWhat is this?§r This controls how warm or cool the image looks - it balances the blues and reds.
option.TAA_MODE.comment = §bStandard:§r has the best antialiasing ability - uses more jitter offsets, but needs more frame history (set blend factor lower), it will flicker more and have more motion artifacts. §bResponsive:§r has the worst antialiasing ability - uses fewer jitter offsets, needs less frame history (set blend factor higher), so it can have fewer motion artifacts. §bTemporal Upscaling:§r Render the shader at a lower window resolution, and then scale it back up to fit the screen for better performance - has MANY artifacts.
option.MOTION_BLUR.comment = §bWhat is this?§r This effect makes the entire screen blur in whatever direction you move the camera, or wherever you move within the world. §aPERFORMANCE COST:§r very low
option.CHROMATIC_ABERRATION.comment = §bWhat is this?§r This effect makes the edges of the screen have a color shift of red and blue. §aPERFORMANCE COST:§r very very low
option.VIGNETTE.comment = §bWhat is this?§r This effect makes the edges of the screen increasingly dark the closer to the edges it gets. §aPERFORMANCE COST:§r very very low
option.TONEMAP.comment = §bWhat is this?§r This fits the internal HDR or whatever range of color the shader is doing, to look nice on your SDR monitor. it will control general color processing - the contrast, saturation, white point, black point, hue shift, path to white, ect - each one has a different look
+1 -1
View File
@@ -274,7 +274,7 @@ vec3 ApplySSRT(
radiance2 += skycontribution2;
if (rayHit.z < 1.0){
#if indirect_effect == 4
#if indirect_effect == SSRT_AO_GI
vec3 previousPosition = mat3(gbufferModelViewInverse) * toScreenSpace(rayHit) + gbufferModelViewInverse[3].xyz + cameraPosition-previousCameraPosition;
previousPosition = mat3(gbufferPreviousModelView) * previousPosition + gbufferPreviousModelView[3].xyz;
previousPosition.xy = projMAD(gbufferPreviousProjection, previousPosition).xy / -previousPosition.z * 0.5 + 0.5;
+2 -2
View File
@@ -1,7 +1,7 @@
// How far light propagates (block, sky)
const vec2 LpvBlockSkyRange = vec2(15.0, 24.0);
#if defined IS_LPV_ENABLED
#if defined IS_LPV_ENABLED || defined SHADER_GRASS
const uint LpvSize = uint(exp2(LPV_SIZE));
const uvec3 LpvSize3 = uvec3(LpvSize);
#else
@@ -10,7 +10,7 @@ const vec2 LpvBlockSkyRange = vec2(15.0, 24.0);
#endif
vec3 GetLpvPosition(const in vec3 playerPos) {
#if !defined IS_LPV_ENABLED
#if !defined IS_LPV_ENABLED && !defined SHADER_GRASS
vec3 cameraOffset = fract(cameraPosition-relativeEyePosition);
#else
vec3 cameraOffset = fract(cameraPosition);
+31 -4
View File
@@ -110,7 +110,14 @@ const float WATER_SIM_FRAMETIME = 1.0/float(WATER_SIM_FRAMERATE);
#define Hand_Held_lights
#define HANDHELD_LIGHT_RANGE 16 // [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 155 160 165 170 175 180 185 190 195 200 205 210 215 220 225 230 235 240 245 250 255]
#define indirect_effect 1 // [0 1 2 3 4]
#define VANILLA_AO 0
#define SSAO_FILTERED 1
#define SSAO_HQ 2
#define GTAO 3
#define SSRT_AO 4
#define SSRT_AO_GI 5
#define indirect_effect SSAO_FILTERED // [VANILLA_AO SSAO_FILTERED SSAO_HQ GTAO SSRT_AO SSRT_AO_GI]
#define AO_in_sunlight
#define AO_Strength 1.0 // [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0]
@@ -452,7 +459,7 @@ uniform vec3 unsigned_WmoonVecSmooth;
#define CLOUD_SHADOW_STRENGTH 1.0 // [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
#define ALTERNATE_POWDER_EFFECT
#define CLOUD_PHASE 1 // [0 1]
#define CLOUD_PHASE 2 // [0 1 2]
#define CloudLayer0
#define CloudLayer0_coverage 0.9 // [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0]
@@ -683,8 +690,7 @@ const float aperture = focal/fstop;
//#define USE_ACES_COLORSPACE_APPROXIMATION
#define CONTRAST_ADAPTATIVE_SHARPENING
#define SHARPENING 0.45 // [0.0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.2 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 0.3 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.4 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.5 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.6 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.7 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.8 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.9 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1.0]
#define SHARPENING 45 // [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100]
#define SATURATION 0.0 // [-1.0 -0.99 -0.98 -0.96 -0.94 -0.92 -0.9 -0.88 -0.86 -0.84 -0.82 -0.8 -0.78 -0.76 -0.74 -0.72 -0.7 -0.68 -0.66 -0.64 -0.62 -0.6 -0.58 -0.56 -0.54 -0.52 -0.5 -0.48 -0.46 -0.44 -0.42 -0.4 -0.38 -0.36 -0.34 -0.32 -0.3 -0.28 -0.26 -0.24 -0.22 -0.2 -0.18 -0.16 -0.14 -0.12 -0.1 -0.08 -0.06 -0.04 -0.02 0.0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 0.22 0.24 0.26 0.28 0.3 0.32 0.34 0.36 0.38 0.4 0.42 0.44 0.46 0.48 0.5 0.52 0.54 0.56 0.58 0.6 0.62 0.64 0.66 0.68 0.7 0.72 0.74 0.76 0.78 0.8 0.82 0.84 0.86 0.88 0.9 0.92 0.94 0.96 0.98 0.99 1.0]
#define CROSSTALK 0.0 // [-1.0 -0.98 -0.96 -0.94 -0.92 -0.9 -0.88 -0.86 -0.84 -0.82 -0.8 -0.78 -0.76 -0.74 -0.72 -0.7 -0.68 -0.66 -0.64 -0.62 -0.6 -0.58 -0.56 -0.54 -0.52 -0.5 -0.48 -0.46 -0.44 -0.42 -0.4 -0.38 -0.36 -0.34 -0.32 -0.3 -0.28 -0.26 -0.24 -0.22 -0.2 -0.18 -0.16 -0.14 -0.12 -0.1 -0.08 -0.06 -0.04 -0.02 0.0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 0.22 0.24 0.26 0.28 0.3 0.32 0.34 0.36 0.38 0.4 0.42 0.44 0.46 0.48 0.5 0.52 0.54 0.56 0.58 0.6 0.62 0.64 0.66 0.68 0.7 0.72 0.74 0.76 0.78 0.8 0.82 0.84 0.86 0.88 0.9 0.92 0.94 0.96 0.98 1.0 ]
@@ -945,6 +951,27 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631)
// #define OLD_INDIRECT_SSS
// #define SHADER_GRASS
#ifdef SHADER_GRASS
#endif
#define GRASS_BASE_THICKNESS 0.3 // [0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1.0]
#define GRASS_THICKNESS_FALLOFF 0.8 // [0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1.0]
#define BASE_GRASS_HEIGHT 1.0 // [0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1.0]
#define SHORT_GRASS_HEIGHT 1.0 // [0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1.0]
#define REPLACE_SHORT_GRASS 1 // [0 1 2]
#define GRASS_DETECT_FALLOFF
#define GRASS_DETECT_INV_FALLOFF
#define GRASS_DENSITY 2 // [0 1 2 3]
#define GRASS_QUALITY 2 // [0 1 2]
#define GRASS_RANGE 40.0 // [10.0 12.5 15.0 17.5 20.0 22.5 25.0 27.5 30.0 32.5 35.0 37.5 40.0 42.5 45.0 47.5 50.0 60.0 70.0 80.0 90.0 100.0]
#define GRASS_WAVY_STRENGTH 1.0 // [0.1 0.25 0.5 0.75 1.0 1.25 1.5 1.75 2.0]
///////////////////////////////////////////
// ----- DISTANT HORIZONS SETTINGS ----- //
///////////////////////////////////////////
+4 -6
View File
@@ -365,11 +365,9 @@ vec3 specularReflections(
,in vec4 flashLight_stuff
){
#ifdef FORWARD_RENDERED_SPECULAR
lightmap = pow(min(max(lightmap-0.6,0.0)*2.5,1.0),2.0);
#else
lightmap = clamp((lightmap-0.8)*7.0, 0.0,1.0);
#endif
lightmap = min(max(lightmap-0.9,0.0)/0.1,1.0);
lightmap *= lightmap; lightmap = 1.0-lightmap;
lightmap *= lightmap; lightmap = 1.0-lightmap;
roughness = 1.0 - roughness;
roughness *= roughness;
@@ -428,7 +426,7 @@ vec3 specularReflections(
vec4 enviornmentReflection = vec4(0.0);
#if defined DEFERRED_BACKGROUND_REFLECTION || defined FORWARD_BACKGROUND_REFLECTION || DEFERRED_SSR_QUALITY > 0 || FORWARD_SSR_QUALITY > 0
#if (defined DEFERRED_BACKGROUND_REFLECTION || defined FORWARD_BACKGROUND_REFLECTION) || (DEFERRED_SSR_QUALITY > 0 || FORWARD_SSR_QUALITY > 0)
if(reflectionVisibilty < 1.0){
float backgroundReflectMask = lightmap;
+13 -3
View File
@@ -250,7 +250,7 @@ float getCloudShape(int LayerIndex, int LOD, in vec3 position, float minHeight,
erosion += (1.0-densityAtPos(samplePos * CloudLayer0_detail * CloudLayer0_scale / 3.0)) * sqrt(omShape);
float falloff = 1.0 - clamp(posToMax/(CloudLayer0_tallness/CloudLayer0_scale),0.0,1.0);
erosion += abs(densityAtPos(samplePos * CloudLayer0_detail * CloudLayer0_scale) - falloff) * 0.75 * (omShape) * (1.0-falloff*0.25);
erosion += abs(densityAtPos(samplePos * CloudLayer0_detail * CloudLayer0_scale) - falloff) * 0.75 * (omShape*omShape) * (1.0-falloff*0.25);
erosion = erosion*erosion*erosion*erosion;
break; }
@@ -258,7 +258,7 @@ float getCloudShape(int LayerIndex, int LOD, in vec3 position, float minHeight,
erosion += (1.0 - densityAtPos(samplePos * CloudLayer1_detail * CloudLayer1_scale / 4.5)) * sqrt(omShape);
float falloff = 1.0 - clamp(posToMax/(CloudLayer1_tallness/CloudLayer1_scale),0.0,1.0);
erosion += abs(densityAtPos(samplePos * CloudLayer1_detail * CloudLayer1_scale) - falloff) * 0.75 * (omShape) * (1.0-falloff*0.5);
erosion += abs(densityAtPos(samplePos * CloudLayer1_detail * CloudLayer1_scale) - falloff) * 0.75 * (omShape*omShape) * (1.0-falloff*0.5);
erosion = erosion*erosion*erosion*erosion;
break; }
@@ -454,13 +454,23 @@ uniform sampler2D colortex4;
float gg = g * g;
return (gg * -0.25 + 0.25) * pow(-2.0 * (g * x) + (gg + 1.0), -1.5) / 3.14;
}
#else
#elif CLOUD_PHASE == 1
// Cornette-Shanks
float phaseCloud(float x, float g){
return (3.0 * (1.0 - g * g) * (1.0 + x * x)) / (25.133 * (2.0 + g * g) * pow(1.0 + g * g - 2.0 * g * x, 1.5));
}
#else
// HG-Draine
float phaseCloud(in float x, in float g)
{
const float a = 0.9;
float gg = g * g;
return ((1 - gg)*(1 + a*x*x))/(4.*(1 + (a*(1 + 2*gg))/3.) * 3.1415926 * pow(1 + gg - 2*g*x,1.5));
}
#endif
float getCloudScattering(
int LayerIndex,
vec3 rayPosition,
+1 -1
View File
@@ -4,7 +4,7 @@
layout(r16ui) uniform readonly uimage3D imgVoxelMask;
#endif
#if defined IS_LPV_ENABLED
#if defined IS_LPV_ENABLED || defined SHADER_GRASS
const uint VoxelSize = uint(exp2(LPV_SIZE));
const uvec3 VoxelSize3 = uvec3(VoxelSize);
#else
+17 -12
View File
@@ -1,5 +1,5 @@
ivec3 GetVoxelIndex(const in vec3 playerPos) {
#if !defined IS_LPV_ENABLED
#if !defined IS_LPV_ENABLED && !defined SHADER_GRASS
vec3 cameraOffset = fract(cameraPosition-relativeEyePosition);
#else
vec3 cameraOffset = fract(cameraPosition);
@@ -7,8 +7,7 @@ ivec3 GetVoxelIndex(const in vec3 playerPos) {
return ivec3(floor(playerPos + cameraOffset) + VoxelSize3/2u);
}
void SetVoxelBlock(const in vec3 playerPos, const in uint blockId) {
ivec3 voxelPos = GetVoxelIndex(playerPos);
void SetVoxelBlock(const in ivec3 voxelPos, const in uint blockId) {
if (clamp(voxelPos, ivec3(0), ivec3(VoxelSize-1u)) != voxelPos) return;
imageStore(imgVoxelMask, voxelPos, uvec4(blockId));
@@ -32,6 +31,12 @@ void PopulateShadowVoxel(const in vec3 playerPos) {
originPos += at_midBlock.xyz/64.0;
}
#if !defined IS_LPV_ENABLED && !defined SHADER_GRASS
ivec3 voxelPos = GetVoxelIndex(originPos+relativeEyePosition);
#else
ivec3 voxelPos = GetVoxelIndex(originPos);
#endif
#ifdef LPV_ENTITY_LIGHTS
if (
@@ -42,8 +47,12 @@ void PopulateShadowVoxel(const in vec3 playerPos) {
voxelId = uint(blockEntityId);
}
else if (currentRenderedItemId > 0 && currentRenderedItemId < 1200) {
if (entityId != ENTITY_ITEM_FRAME && entityId != ENTITY_PLAYER)
voxelId = uint(currentRenderedItemId);
if (entityId != ENTITY_ITEM_FRAME && entityId != ENTITY_PLAYER) {
uint oldID = imageLoad(imgVoxelMask, voxelPos).r;
// offset by a random number that came into my head to make entities and items not interact with grass
voxelId = uint(currentRenderedItemId)+1200u;
if(oldID == 12u) voxelId += 1200u;
}
}
else {
switch (entityId) {
@@ -54,7 +63,7 @@ void PopulateShadowVoxel(const in vec3 playerPos) {
case ENTITY_MAGMA_CUBE:
case ENTITY_SPECTRAL_ARROW:
case ENTITY_TNT:
voxelId = uint(entityId);
voxelId = uint(entityId)+1200u;
break;
}
}
@@ -68,18 +77,14 @@ void PopulateShadowVoxel(const in vec3 playerPos) {
switch (entityId) {
case ENTITY_BOAT:
case ENTITY_SMALLSHIPS:
voxelId = uint(entityId);
voxelId = uint(entityId)+1200u;
break;
}
}
#endif
if (voxelId > 0u){
#if !defined IS_LPV_ENABLED
SetVoxelBlock(originPos+relativeEyePosition, voxelId);
#else
SetVoxelBlock(originPos, voxelId);
#endif
SetVoxelBlock(voxelPos, voxelId);
}
}
+65 -37
View File
@@ -4,15 +4,17 @@
#=============== EVERYTHING BELOW HERE IS NOT FOR CUSTOM SCENE CONTROLLER STUFF AND SHOULD NOT BE MODIFIED UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING ===============
#====================================================================================================================================================================
profile.POTATO = !HQ_CLOUD_UPSAMPLE WATER_INTERACTION:0 WATER_SIM_DISTANCE:1 WATER_SIM_SCALE:0 WATER_SIM_FRAMERATE:30 !MOON_NORMALS RAINBOW:0 !CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:0 !END_ISLAND_LIGHT CloudLayer0_distance:10000.0 CloudLayer1_distance:10000.0 !RIPPLE_PUDDLES !RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 !CloudLayer1 !CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.25 indirect_effect:0 RAY_COUNT:4 VL_SAMPLES:4 !REALMOON shadowMapResolution:512 shadowDistance:64.0 !DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED !SAND_STORMS !SNOW_STORMS TAA_UPSCALING SCALE_FACTOR:0.7 SHARPENING:0.55 !FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:1.0 CROSSTALK:0.0 BLOOM_STRENGTH:1.0 SATURATION:0.0 Dirt_Amount:0.1 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 AmbientLightRain_B:0.125
profile.VERY_LOW = !HQ_CLOUD_UPSAMPLE WATER_INTERACTION:1 WATER_SIM_DISTANCE:1 WATER_SIM_SCALE:0 WATER_SIM_FRAMERATE:30 !MOON_NORMALS RAINBOW:0 !CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:0 !END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 !RIPPLE_PUDDLES !RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 !CloudLayer1 !CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.25 indirect_effect:0 RAY_COUNT:4 VL_SAMPLES:4 REALMOON shadowMapResolution:1024 shadowDistance:96.0 !DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED !SAND_STORMS !SNOW_STORMS TAA_UPSCALING SCALE_FACTOR:0.8 SHARPENING:0.5 !FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:1.0 CROSSTALK:0.0 BLOOM_STRENGTH:1.0 SATURATION:0.0 Dirt_Amount:0.1 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 AmbientLightRain_B:0.125
profile.LOW = !HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:0 WATER_SIM_FRAMERATE:30 !MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:0 !END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 !RIPPLE_PUDDLES !RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 !CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.25 indirect_effect:1 RAY_COUNT:4 VL_SAMPLES:6 REALMOON shadowMapResolution:1536 shadowDistance:112.0 !DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED SAND_STORMS SNOW_STORMS TAA_UPSCALING SCALE_FACTOR:0.9 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:1.0 CROSSTALK:0.0 BLOOM_STRENGTH:1.0 SATURATION:0.0 Dirt_Amount:0.1 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 AmbientLightRain_B:0.125
profile.MEDIUM = HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:30 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:1 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 !RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.5 indirect_effect:1 RAY_COUNT:4 VL_SAMPLES:6 REALMOON shadowMapResolution:2048 shadowDistance:128.0 DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:1.0 CROSSTALK:0.0 BLOOM_STRENGTH:1.0 SATURATION:0.0 Dirt_Amount:0.1 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 AmbientLightRain_B:0.125
profile.ALTERNATE_MEDIUM = HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:30 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:1 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 !RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.5 indirect_effect:1 RAY_COUNT:4 VL_SAMPLES:6 REALMOON shadowMapResolution:2048 shadowDistance:128.0 DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.1 ambientsss_brightness:0.5 TONEMAP:ToneMap_Hejl2015 AO_Strength:0.4 SCREENSPACE_DIRECT_SSS_BLENDING:0.4 WATER_CAUSTICS_POWER:0.55 Sky_Brightness:1.5 TOD_Fog_mult:0.5 Water_Absorb_R:0.38 Water_Absorb_G:0.28 Water_Absorb_B:0.36 Dirt_Scatter_B:0.14 Dirt_Scatter_G:0.13 Dirt_Scatter_R:0.14 ambient_brightness:0.7 WHITE_BALANCE:7000 Sun_temp:6200 Haze_amount:0.6 CROSSTALK:0.14 BLOOM_STRENGTH:0.5 SATURATION:-0.16 Dirt_Amount:2.0 Dirt_Absorb_R:1.0 Dirt_Absorb_G:1.0 Dirt_Absorb_B:1.0 AmbientLightRain_B:0.1
profile.HIGH = HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:1 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.5 indirect_effect:1 RAY_COUNT:4 VL_SAMPLES:8 REALMOON shadowMapResolution:2560 shadowDistance:128.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:1.0 CROSSTALK:0.0 BLOOM_STRENGTH:1.0 SATURATION:0.0 Dirt_Amount:0.1 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 AmbientLightRain_B:0.125
profile.ALTERNATE_HIGH = HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:1 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.5 indirect_effect:1 RAY_COUNT:4 VL_SAMPLES:8 REALMOON shadowMapResolution:2560 shadowDistance:128.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.1 ambientsss_brightness:0.5 TONEMAP:ToneMap_Hejl2015 AO_Strength:0.4 SCREENSPACE_DIRECT_SSS_BLENDING:0.4 WATER_CAUSTICS_POWER:0.55 Sky_Brightness:1.5 TOD_Fog_mult:0.5 Water_Absorb_R:0.38 Water_Absorb_G:0.28 Water_Absorb_B:0.36 Dirt_Scatter_B:0.14 Dirt_Scatter_G:0.13 Dirt_Scatter_R:0.14 ambient_brightness:0.7 WHITE_BALANCE:7000 Sun_temp:6200 Haze_amount:0.6 CROSSTALK:0.14 BLOOM_STRENGTH:0.5 SATURATION:-0.16 Dirt_Amount:2.0 Dirt_Absorb_R:1.0 Dirt_Absorb_G:1.0 Dirt_Absorb_B:1.0 AmbientLightRain_B:0.1
profile.VERY_HIGH = HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:3 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:2 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 CloudLayer3 VL_RENDER_RESOLUTION:1.0 indirect_effect:3 RAY_COUNT:4 VL_SAMPLES:8 REALMOON shadowMapResolution:3172 shadowDistance:144.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:1.0 CROSSTALK:0.0 BLOOM_STRENGTH:1.0 SATURATION:0.0 Dirt_Amount:0.1 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 AmbientLightRain_B:0.125
profile.ULTRA = HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:3 WATER_SIM_SCALE:2 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:2 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:1 CloudLayer0 CloudLayer1 CloudLayer2 CloudLayer3 VL_RENDER_RESOLUTION:1.0 indirect_effect:4 RAY_COUNT:6 VL_SAMPLES:10 REALMOON shadowMapResolution:4096 shadowDistance:144.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:1.0 CROSSTALK:0.0 BLOOM_STRENGTH:1.0 SATURATION:0.0 Dirt_Amount:0.1 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 AmbientLightRain_B:0.125
profile.POTATO = !SHADER_GRASS !HQ_CLOUD_UPSAMPLE WATER_INTERACTION:0 WATER_SIM_DISTANCE:1 WATER_SIM_SCALE:0 WATER_SIM_FRAMERATE:30 !MOON_NORMALS RAINBOW:0 !CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:0 !END_ISLAND_LIGHT CloudLayer0_distance:10000.0 CloudLayer1_distance:10000.0 !RIPPLE_PUDDLES !RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 !CloudLayer1 !CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.25 indirect_effect:VANILLA_AO RAY_COUNT:4 VL_SAMPLES:4 !REALMOON shadowMapResolution:512 shadowDistance:64.0 !DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED !SAND_STORMS !SNOW_STORMS TAA_UPSCALING SCALE_FACTOR:0.7 SHARPENING:55 !FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:1.0 CROSSTALK:0.0 BLOOM_STRENGTH:1.0 SATURATION:0.0 Dirt_Amount:0.1 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 AmbientLightRain_B:0.125
profile.VERY_LOW = !SHADER_GRASS !HQ_CLOUD_UPSAMPLE WATER_INTERACTION:1 WATER_SIM_DISTANCE:1 WATER_SIM_SCALE:0 WATER_SIM_FRAMERATE:30 !MOON_NORMALS RAINBOW:0 !CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:0 !END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 !RIPPLE_PUDDLES !RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 !CloudLayer1 !CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.25 indirect_effect:VANILLA_AO RAY_COUNT:4 VL_SAMPLES:4 REALMOON shadowMapResolution:1024 shadowDistance:96.0 !DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED !SAND_STORMS !SNOW_STORMS TAA_UPSCALING SCALE_FACTOR:0.8 SHARPENING:50 !FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:1.0 CROSSTALK:0.0 BLOOM_STRENGTH:1.0 SATURATION:0.0 Dirt_Amount:0.1 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 AmbientLightRain_B:0.125
profile.LOW = !SHADER_GRASS !HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:0 WATER_SIM_FRAMERATE:30 !MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:0 !END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 !RIPPLE_PUDDLES !RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 !CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.25 indirect_effect:SSAO_FILTERED RAY_COUNT:4 VL_SAMPLES:6 REALMOON shadowMapResolution:1536 shadowDistance:112.0 !DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED SAND_STORMS SNOW_STORMS TAA_UPSCALING SCALE_FACTOR:0.9 SHARPENING:45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:1.0 CROSSTALK:0.0 BLOOM_STRENGTH:1.0 SATURATION:0.0 Dirt_Amount:0.1 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 AmbientLightRain_B:0.125
profile.MEDIUM = !SHADER_GRASS HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:30 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:1 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 !RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.5 indirect_effect:SSAO_FILTERED RAY_COUNT:4 VL_SAMPLES:6 REALMOON shadowMapResolution:2048 shadowDistance:128.0 DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:1.0 CROSSTALK:0.0 BLOOM_STRENGTH:1.0 SATURATION:0.0 Dirt_Amount:0.1 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 AmbientLightRain_B:0.125
profile.ALTERNATE_MEDIUM = !SHADER_GRASS HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:30 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:1 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 !RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.5 indirect_effect:SSAO_FILTERED RAY_COUNT:4 VL_SAMPLES:6 REALMOON shadowMapResolution:2048 shadowDistance:128.0 DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.1 ambientsss_brightness:0.5 TONEMAP:ToneMap_Hejl2015 AO_Strength:0.4 SCREENSPACE_DIRECT_SSS_BLENDING:0.4 WATER_CAUSTICS_POWER:0.55 Sky_Brightness:1.5 TOD_Fog_mult:0.5 Water_Absorb_R:0.38 Water_Absorb_G:0.28 Water_Absorb_B:0.36 Dirt_Scatter_B:0.14 Dirt_Scatter_G:0.13 Dirt_Scatter_R:0.14 ambient_brightness:0.7 WHITE_BALANCE:7000 Sun_temp:6200 Haze_amount:0.6 CROSSTALK:0.14 BLOOM_STRENGTH:0.5 SATURATION:-0.16 Dirt_Amount:2.0 Dirt_Absorb_R:1.0 Dirt_Absorb_G:1.0 Dirt_Absorb_B:1.0 AmbientLightRain_B:0.1
profile.HIGH = !SHADER_GRASS HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:1 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.5 indirect_effect:SSAO_FILTERED RAY_COUNT:4 VL_SAMPLES:8 REALMOON shadowMapResolution:2560 shadowDistance:128.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:1.0 CROSSTALK:0.0 BLOOM_STRENGTH:1.0 SATURATION:0.0 Dirt_Amount:0.1 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 AmbientLightRain_B:0.125
profile.ALTERNATE_HIGH = !SHADER_GRASS HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:1 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.5 indirect_effect:SSAO_FILTERED RAY_COUNT:4 VL_SAMPLES:8 REALMOON shadowMapResolution:2560 shadowDistance:128.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.1 ambientsss_brightness:0.5 TONEMAP:ToneMap_Hejl2015 AO_Strength:0.4 SCREENSPACE_DIRECT_SSS_BLENDING:0.4 WATER_CAUSTICS_POWER:0.55 Sky_Brightness:1.5 TOD_Fog_mult:0.5 Water_Absorb_R:0.38 Water_Absorb_G:0.28 Water_Absorb_B:0.36 Dirt_Scatter_B:0.14 Dirt_Scatter_G:0.13 Dirt_Scatter_R:0.14 ambient_brightness:0.7 WHITE_BALANCE:7000 Sun_temp:6200 Haze_amount:0.6 CROSSTALK:0.14 BLOOM_STRENGTH:0.5 SATURATION:-0.16 Dirt_Amount:2.0 Dirt_Absorb_R:1.0 Dirt_Absorb_G:1.0 Dirt_Absorb_B:1.0 AmbientLightRain_B:0.1
profile.HIGH_GRASS = SHADER_GRASS HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:1 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.5 indirect_effect:SSAO_FILTERED RAY_COUNT:4 VL_SAMPLES:8 REALMOON shadowMapResolution:2560 shadowDistance:128.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:1.0 CROSSTALK:0.0 BLOOM_STRENGTH:1.0 SATURATION:0.0 Dirt_Amount:0.1 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 AmbientLightRain_B:0.125
profile.ALTERNATE_HIGH_GRASS = SHADER_GRASS HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:1 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.5 indirect_effect:SSAO_FILTERED RAY_COUNT:4 VL_SAMPLES:8 REALMOON shadowMapResolution:2560 shadowDistance:128.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.1 ambientsss_brightness:0.5 TONEMAP:ToneMap_Hejl2015 AO_Strength:0.4 SCREENSPACE_DIRECT_SSS_BLENDING:0.4 WATER_CAUSTICS_POWER:0.55 Sky_Brightness:1.5 TOD_Fog_mult:0.5 Water_Absorb_R:0.38 Water_Absorb_G:0.28 Water_Absorb_B:0.36 Dirt_Scatter_B:0.14 Dirt_Scatter_G:0.13 Dirt_Scatter_R:0.14 ambient_brightness:0.7 WHITE_BALANCE:7000 Sun_temp:6200 Haze_amount:0.6 CROSSTALK:0.14 BLOOM_STRENGTH:0.5 SATURATION:-0.16 Dirt_Amount:2.0 Dirt_Absorb_R:1.0 Dirt_Absorb_G:1.0 Dirt_Absorb_B:1.0 AmbientLightRain_B:0.1
profile.VERY_HIGH = SHADER_GRASS HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:3 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:2 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 CloudLayer3 VL_RENDER_RESOLUTION:1.0 indirect_effect:SSAO_HQ RAY_COUNT:4 VL_SAMPLES:8 REALMOON shadowMapResolution:3172 shadowDistance:144.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:1.0 CROSSTALK:0.0 BLOOM_STRENGTH:1.0 SATURATION:0.0 Dirt_Amount:0.1 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 AmbientLightRain_B:0.125
profile.ULTRA = SHADER_GRASS HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:3 WATER_SIM_SCALE:2 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:2 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:1 CloudLayer0 CloudLayer1 CloudLayer2 CloudLayer3 VL_RENDER_RESOLUTION:1.0 indirect_effect:SSGI RAY_COUNT:6 VL_SAMPLES:10 REALMOON shadowMapResolution:4096 shadowDistance:144.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:45 FORWARD_ENVIORNMENT_REFLECTION EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:1.0 CROSSTALK:0.0 BLOOM_STRENGTH:1.0 SATURATION:0.0 Dirt_Amount:0.1 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 AmbientLightRain_B:0.125
clouds=off
@@ -25,7 +27,7 @@ separateAo = true
rain.depth = false
beacon.beam.depth = true
iris.features.optional = ENTITY_TRANSLUCENT REVERSED_CULLING COMPUTE_SHADERS CUSTOM_IMAGES BLOCK_EMISSION_ATTRIBUTE SSBO
iris.features.optional = ENTITY_TRANSLUCENT REVERSED_CULLING COMPUTE_SHADERS CUSTOM_IMAGES BLOCK_EMISSION_ATTRIBUTE SSBO TESSELLATION_SHADERS
#if RESOURCEPACK_SKY == 2 || RESOURCEPACK_SKY == 3
sun=true
@@ -148,17 +150,18 @@ program.world-1/composite5.enabled = TAA_UPSCALING
# terrible blending for shadows on purpose
blend.gbuffers_water = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_armor_glint = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_hand_water = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_textured = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_textured_lit = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_basic = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_weather = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_block_translucent = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_beaconbeam = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_entities_translucent = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_lightning = ONE ONE ONE ZERO
blend.gbuffers_spidereyes = ONE ONE ONE ONE
blend.gbuffers_armor_glint = ONE ONE ONE ZERO
blend.gbuffers_skytextured = SRC_ALPHA ONE ONE ONE
blend.shadow = ONE ZERO ONE ZERO
# Disable blending
@@ -167,6 +170,7 @@ blend.gbuffers_hand = off
blend.gbuffers_block = off
blend.gbuffers_entities = off
blend.gbuffers_damagedblock = off
blend.gbuffers_beaconbeam = off
# this is important for refraction and glass tint to work correctly
blend.gbuffers_water.colortex11 = off
@@ -187,8 +191,13 @@ alphaTest.gbuffers_weather = false
alphaTest.gbuffers_water = false
alphaTest.gbuffers_skybasic = false
alphaTest.gbuffers_skytextured = false
alphaTest.gbuffers_lightning = false
alphaTest.gbuffers_spidereyes = false
alphaTest.gbuffers_beaconbeam = false
alphaTest.gbuffers_armor_glint = false
alphaTest.gbuffers_damagedblock = false
sliders = FILM_GRAIN_STRENGTH PUDDLE_MODE FLASHLIGHT_SHADOWS_STRENGTH LPV_HANDHELD_SHADOWS_STRENGTH AURORA_R AURORA_G AURORA_B AURORA_LOCATION AURORA_MOON AURORA_BRIGHTNESS AURORA_CHANCE WATER_SIM_STRENGTH WATER_SIM_FRAMERATE WATER_SIM_SCALE WATER_SIM_DISTANCE dayStartTick nightStartTick daySpeed nightSpeed FAKE_REFRACTION_AMOUNT FAKE_DISPERSION_AMOUNT REFRACTION_SMUDGE_AMOUNT NORMAL_MAP_MULT DEFERRED_SSR_QUALITY FORWARD_SSR_QUALITY RAINBOW_TIME RAINBOW RAINBOW_DISTANCE RAINBOW_BRIGHTNESS VORTEX_LIGHT_COL_R VORTEX_LIGHT_COL_G VORTEX_LIGHT_COL_B END_LIGHTNING_COL_R END_LIGHTNING_COL_G END_LIGHTNING_COL_B END_HAZE_DENSTIY NETHER_CEILING_SMOKE_DENSITY NETHER_HAZE_DENSITY Max_Filter_Depth_END Min_Shadow_Filter_Radius_END MOON_TIME_OFFSET EARTH_ROTATION_TILT CUSTOM_SHADOWS_QUALITY MOON_LATITUDE MOON_SIZE_SETTING MONTH_LENGTH LIGHTNING_SHADOWS WHITE_BALANCE STARS_BRIGHTNESS STARS_AMOUNT AmbientLightEnd_R AmbientLightEnd_G AmbientLightEnd_B CloudLayer0_distance CloudLayer1_distance CloudLayer2_distance CloudLayer3_distance BLEND_FACTOR_DURING_MOVEMENT CloudLayer0_detail CloudLayer1_detail LPV_VL_FOG_ILLUMINATION MIN_LIGHT_AMOUNT_INSIDE CUMULONIMBUS_FADE_TIME CUMULONIMBUS NOISE_RESOLUTION NOISE_INTENSITY NOISE_DROPOFF WAVE_DETAIL DH_CHUNK_FADING CLOUD_MOVEMENT_TYPE LIGHTLEAKFIX_MODE EMISSIVE_ORES_STRENGTH RIPPLE_STRENGTH RIPPLE_INTENSITY CUSTOM_LIGHTNING_SCALE CUSTOM_LIGHTNING_R CUSTOM_LIGHTNING_G CUSTOM_LIGHTNING_B CUSTOM_LIGHTNING_TEX CUSTOM_LIGHTNING_POS_X CUSTOM_LIGHTNING_POS_Y CUSTOM_LIGHTNING_POS_Z CUMULONIMBUS_LIGHTNING_BRIGHTNESS CUMULONIMBUS_LIGHTNING_DELAY ShaderSnow ShaderSnowStrength BorderFogIntensity CAVE_DETECTION ON_FIRE_DISTORT_EFFECT_STRENGTH USE_CUSTOM_SKY_GROUND_LIGHTING_COLORS DIRECTLIGHT_DIFFUSE_R DIRECTLIGHT_DIFFUSE_G DIRECTLIGHT_DIFFUSE_B INDIRECTLIGHT_DIFFUSE_R INDIRECTLIGHT_DIFFUSE_G INDIRECTLIGHT_DIFFUSE_B DIRECTLIGHT_CLOUDS_R DIRECTLIGHT_CLOUDS_G DIRECTLIGHT_CLOUDS_B INDIRECTLIGHT_CLOUDS_R INDIRECTLIGHT_CLOUDS_G INDIRECTLIGHT_CLOUDS_B DIRECTLIGHT_FOG_R DIRECTLIGHT_FOG_G DIRECTLIGHT_FOG_B INDIRECTLIGHT_FOG_R INDIRECTLIGHT_FOG_G INDIRECTLIGHT_FOG_B SKY_GROUND_R SKY_GROUND_G SKY_GROUND_B DOF_DISPERSION_MULT FLASHLIGHT_BRIGHTNESS_MULT FLASHLIGHT_BRIGHTNESS_FALLOFF_MULT FLASHLIGHT_RANGE FLASHLIGHT_SIZE FLASHLIGHT_R FLASHLIGHT_G FLASHLIGHT_B LOW_HEALTH_EFFECT_START CRITICALLY_LOW_HEALTH_EFFECT_START CloudLayer2_scale CloudLayer0_scale CloudLayer1_scale CloudLayer3_scale CloudLayer0_tallness CloudLayer1_tallness EXPOSURE_DARKENING EXPOSURE_BRIGHTENING VIGNETTE_STRENGTH CURVATURE_AMOUNT MINIMUM_WATER_ABSORBANCE CHROMATIC_ABERRATION_STRENGTH SELECT_BOX_COL_R SELECT_BOX_COL_G SELECT_BOX_COL_B LPV_VL_FOG_ILLUMINATION_BRIGHTNESS minRayMarchSteps MOTION_BLUR_STRENGTH OVERDRAW_MAX_DISTANCE DAY0_l3_coverage DAY0_l3_density DAY1_l3_coverage DAY1_l3_density DAY2_l3_coverage DAY2_l3_density DAY3_l3_coverage DAY3_l3_density DAY4_l3_coverage DAY4_l3_density DAY5_l3_coverage DAY5_l3_density DAY6_l3_coverage DAY6_l3_density DAY7_l3_coverage DAY7_l3_density DAY8_l3_coverage DAY8_l3_density DAY9_l3_coverage DAY9_l3_density DAY0_l0_coverage DAY0_l1_coverage DAY0_l2_coverage DAY0_ufog_density DAY0_l0_density DAY0_l1_density DAY0_l2_density DAY0_cfog_density DAY1_l0_coverage DAY1_l1_coverage DAY1_l2_coverage DAY1_ufog_density DAY1_l0_density DAY1_l1_density DAY1_l2_density DAY1_cfog_density DAY2_l0_coverage DAY2_l1_coverage DAY2_l2_coverage DAY2_ufog_density DAY2_l0_density DAY2_l1_density DAY2_l2_density DAY2_cfog_density DAY3_l0_coverage DAY3_l1_coverage DAY3_l2_coverage DAY3_ufog_density DAY3_l0_density DAY3_l1_density DAY3_l2_density DAY3_cfog_density DAY4_l0_coverage DAY4_l1_coverage DAY4_l2_coverage DAY4_ufog_density DAY4_l0_density DAY4_l1_density DAY4_l2_density DAY4_cfog_density DAY5_l0_coverage DAY5_l1_coverage DAY5_l2_coverage DAY5_ufog_density DAY5_l0_density DAY5_l1_density DAY5_l2_density DAY5_cfog_density DAY6_l0_coverage DAY6_l1_coverage DAY6_l2_coverage DAY6_ufog_density DAY6_l0_density DAY6_l1_density DAY6_l2_density DAY6_cfog_density DAY7_l0_coverage DAY7_l1_coverage DAY7_l2_coverage DAY7_ufog_density DAY7_l0_density DAY7_l1_density DAY7_l2_density DAY7_cfog_density DAY8_l0_coverage DAY8_l1_coverage DAY8_l2_coverage DAY8_ufog_density DAY8_l0_density DAY8_l1_density DAY8_l2_density DAY8_cfog_density DAY9_l0_coverage DAY9_l1_coverage DAY9_l2_coverage DAY9_ufog_density DAY9_l0_density DAY9_l1_density DAY9_l2_density DAY9_cfog_density sss_density_multiplier sss_absorbance_multiplier MOTION_AMOUNT TONEMAP WATER_WAVE_SPEED WATER_CAUSTICS_BRIGHTNESS WATER_CAUSTICS_POWER DEBUG_VIEW entityShadowDistanceMul HANDHELD_LIGHT_RANGE CLOUD_SHADOW_STRENGTH CloudLayer0_coverage CloudLayer0_density CloudLayer0_height CloudLayer1_coverage CloudLayer1_density CloudLayer1_height CloudLayer2_coverage CloudLayer2_density CloudLayer2_height CloudLayer3_coverage CloudLayer3_density CloudLayer3_height PLANET_GROUND_BRIGHTNESS FOG_START_HEIGHT WATER_WAVE_STRENGTH SWAMP_UNIFORM_DENSITY SWAMP_CLOUDY_DENSITY SWAMP_R SWAMP_G Line truncated
sliders = GRASS_WAVY_STRENGTH GRASS_RANGE GRASS_QUALITY GRASS_DENSITY REPLACE_SHORT_GRASS GRASS_THICKNESS_FALLOFF SHORT_GRASS_HEIGHT BASE_GRASS_HEIGHT GRASS_BASE_THICKNESS FILM_GRAIN_STRENGTH PUDDLE_MODE FLASHLIGHT_SHADOWS_STRENGTH LPV_HANDHELD_SHADOWS_STRENGTH AURORA_R AURORA_G AURORA_B AURORA_LOCATION AURORA_MOON AURORA_BRIGHTNESS AURORA_CHANCE WATER_SIM_STRENGTH WATER_SIM_FRAMERATE WATER_SIM_SCALE WATER_SIM_DISTANCE dayStartTick nightStartTick daySpeed nightSpeed FAKE_REFRACTION_AMOUNT FAKE_DISPERSION_AMOUNT REFRACTION_SMUDGE_AMOUNT NORMAL_MAP_MULT DEFERRED_SSR_QUALITY FORWARD_SSR_QUALITY RAINBOW_TIME RAINBOW RAINBOW_DISTANCE RAINBOW_BRIGHTNESS VORTEX_LIGHT_COL_R VORTEX_LIGHT_COL_G VORTEX_LIGHT_COL_B END_LIGHTNING_COL_R END_LIGHTNING_COL_G END_LIGHTNING_COL_B END_HAZE_DENSTIY NETHER_CEILING_SMOKE_DENSITY NETHER_HAZE_DENSITY Max_Filter_Depth_END Min_Shadow_Filter_Radius_END MOON_TIME_OFFSET EARTH_ROTATION_TILT CUSTOM_SHADOWS_QUALITY MOON_LATITUDE MOON_SIZE_SETTING MONTH_LENGTH LIGHTNING_SHADOWS WHITE_BALANCE STARS_BRIGHTNESS STARS_AMOUNT AmbientLightEnd_R AmbientLightEnd_G AmbientLightEnd_B CloudLayer0_distance CloudLayer1_distance CloudLayer2_distance CloudLayer3_distance BLEND_FACTOR_DURING_MOVEMENT CloudLayer0_detail CloudLayer1_detail LPV_VL_FOG_ILLUMINATION MIN_LIGHT_AMOUNT_INSIDE CUMULONIMBUS_FADE_TIME CUMULONIMBUS NOISE_RESOLUTION NOISE_INTENSITY NOISE_DROPOFF WAVE_DETAIL DH_CHUNK_FADING CLOUD_MOVEMENT_TYPE LIGHTLEAKFIX_MODE EMISSIVE_ORES_STRENGTH RIPPLE_STRENGTH RIPPLE_INTENSITY CUSTOM_LIGHTNING_SCALE CUSTOM_LIGHTNING_R CUSTOM_LIGHTNING_G CUSTOM_LIGHTNING_B CUSTOM_LIGHTNING_TEX CUSTOM_LIGHTNING_POS_X CUSTOM_LIGHTNING_POS_Y CUSTOM_LIGHTNING_POS_Z CUMULONIMBUS_LIGHTNING_BRIGHTNESS CUMULONIMBUS_LIGHTNING_DELAY ShaderSnow ShaderSnowStrength BorderFogIntensity CAVE_DETECTION ON_FIRE_DISTORT_EFFECT_STRENGTH USE_CUSTOM_SKY_GROUND_LIGHTING_COLORS DIRECTLIGHT_DIFFUSE_R DIRECTLIGHT_DIFFUSE_G DIRECTLIGHT_DIFFUSE_B INDIRECTLIGHT_DIFFUSE_R INDIRECTLIGHT_DIFFUSE_G INDIRECTLIGHT_DIFFUSE_B DIRECTLIGHT_CLOUDS_R DIRECTLIGHT_CLOUDS_G DIRECTLIGHT_CLOUDS_B INDIRECTLIGHT_CLOUDS_R INDIRECTLIGHT_CLOUDS_G INDIRECTLIGHT_CLOUDS_B DIRECTLIGHT_FOG_R DIRECTLIGHT_FOG_G DIRECTLIGHT_FOG_B INDIRECTLIGHT_FOG_R INDIRECTLIGHT_FOG_G INDIRECTLIGHT_FOG_B SKY_GROUND_R SKY_GROUND_G SKY_GROUND_B DOF_DISPERSION_MULT FLASHLIGHT_BRIGHTNESS_MULT FLASHLIGHT_BRIGHTNESS_FALLOFF_MULT FLASHLIGHT_RANGE FLASHLIGHT_SIZE FLASHLIGHT_R FLASHLIGHT_G FLASHLIGHT_B LOW_HEALTH_EFFECT_START CRITICALLY_LOW_HEALTH_EFFECT_START CloudLayer2_scale CloudLayer0_scale CloudLayer1_scale CloudLayer3_scale CloudLayer0_tallness CloudLayer1_tallness EXPOSURE_DARKENING EXPOSURE_BRIGHTENING VIGNETTE_STRENGTH CURVATURE_AMOUNT MINIMUM_WATER_ABSORBANCE CHROMATIC_ABERRATION_STRENGTH SELECT_BOX_COL_R SELECT_BOX_COL_G SELECT_BOX_COL_B LPV_VL_FOG_ILLUMINATION_BRIGHTNESS minRayMarchSteps MOTION_BLUR_STRENGTH OVERDRAW_MAX_DISTANCE DAY0_l3_coverage DAY0_l3_density DAY1_l3_coverage DAY1_l3_density DAY2_l3_coverage DAY2_l3_density DAY3_l3_coverage DAY3_l3_density DAY4_l3_coverage DAY4_l3_density DAY5_l3_coverage DAY5_l3_density DAY6_l3_coverage DAY6_l3_density DAY7_l3_coverage DAY7_l3_density DAY8_l3_coverage DAY8_l3_density DAY9_l3_coverage DAY9_l3_density DAY0_l0_coverage DAY0_l1_coverage DAY0_l2_coverage DAY0_ufog_density DAY0_l0_density DAY0_l1_density DAY0_l2_density DAY0_cfog_density DAY1_l0_coverage DAY1_l1_coverage DAY1_l2_coverage DAY1_ufog_density DAY1_l0_density DAY1_l1_density DAY1_l2_density DAY1_cfog_density DAY2_l0_coverage DAY2_l1_coverage DAY2_l2_coverage DAY2_ufog_density DAY2_l0_density DAY2_l1_density DAY2_l2_density DAY2_cfog_density DAY3_l0_coverage DAY3_l1_coverage DAY3_l2_coverage DAY3_ufog_density DAY3_l0_density DAY3_l1_density DAY3_l2_density DAY3_cfog_density DAY4_l0_coverage DAY4_l1_coverage DAY4_l2_coverage DAY4_ufog_density DAY4_l0_density DAY4_l1_density DAY4_l2_density DAY4_cfog_density DAY5_l0_coverage DAY5_l1_coverage DAY5_l2_coverage DAY5_ufog_density DAY5_l0_density DAY5_l1_density DAY5_l2_density DAY5_cfog_density DAY6_l0_coverage DAY6_l1_coverage DAY6_l2_coverage DAY6_ufog_density DAY6_l0_density DAY6_l1_density DAY6_l2_density DAY6_cfog_density DAY7_l0_coverage DAY7_l1_coverage DAY7_l2_coverage DAY7_ufog_density DAY7_l0_density DAY7_l1_density DAY7_l2_density DAY7_cfog_density DAY8_l0_coverage DAY8_l1_coverage DAY8_l2_coverage DAY8_ufog_density DAY8_l0_density DAY8_l1_density DAY8_l2_density DAY8_cfog_density DAY9_l0_coverage DAY9_l1_coverage DAY9_l2_coverage DAY9_ufog_density DAY9_l0_density DAY9_l1_density DAY9_l2_density DAY9_cfog_density sss_density_multiplier sss_absorbance_multiplier MOTION_AMOUNT TONEMAP WATER_WAVE_SPEED WATER_CAUSTICS_BRIGHTNESS WATER_CAUSTICS_POWER DEBUG_VIEW entityShadowDistanceMul HANDHELD_LIGHT_RANGE CLOUD_SHADOW_STRENGTH CloudLayer0_coverage CloudLayer0_density CloudLayer0_height CloudLayer1_coverage CloudLayer1_density CloudLayer1_height CloudLayer2_coverage CloudLayer2_density CloudLayer2_height CloudLayer3_coveragLine truncated
screen.columns=2
screen = \
@@ -198,6 +207,7 @@ SHADER_VERSION_LABEL <profile> \
[Ambient_light] [Fog] \
[Post_Processing] [Clouds] \
[Resource_Pack_Support] [Climate] \
[Color_Processing] [Camera_Settings] \
<empty> <empty> \
[Misc_Settings] [Mod_support] \
@@ -291,11 +301,20 @@ SHADER_VERSION_LABEL <profile> \
######## WORLD
screen.World.columns=1
screen.World = [Water] [Waving_Stuff] [World_Effects] [AURORA_SETTINGS] PLANET_CURVATURE CURVATURE_AMOUNT <empty> [Sky_coefficients] SKY_GROUND STARS_AMOUNT STARS_BRIGHTNESS <empty> EMISSIVE_ORES EMISSIVE_ORES_STRENGTH
screen.World = [Water] [Foliage] [World_Effects] [AURORA_SETTINGS] PLANET_CURVATURE CURVATURE_AMOUNT <empty> [Sky_coefficients] SKY_GROUND STARS_AMOUNT STARS_BRIGHTNESS <empty> EMISSIVE_ORES EMISSIVE_ORES_STRENGTH
### WAVING STUFF
screen.Waving_Stuff.columns=1
screen.Waving_Stuff = WAVY_PLANTS WAVY_STRENGTH WAVY_SPEED
screen.Foliage.columns=2
screen.Foliage = WAVY_PLANTS WAVY_STRENGTH \
WAVY_SPEED <empty> \
<empty> <empty> \
SHADER_GRASS GRASS_QUALITY \
GRASS_DENSITY GRASS_RANGE \
REPLACE_SHORT_GRASS GRASS_WAVY_STRENGTH \
GRASS_BASE_THICKNESS GRASS_THICKNESS_FALLOFF \
BASE_GRASS_HEIGHT SHORT_GRASS_HEIGHT \
<empty> <empty> \
GRASS_DETECT_FALLOFF GRASS_DETECT_INV_FALLOFF
screen.AURORA_SETTINGS.columns=1
screen.AURORA_SETTINGS = AURORA_LOCATION AURORA_MOON AURORA_BRIGHTNESS AURORA_CHANCE AURORA_R AURORA_G AURORA_B
@@ -421,28 +440,27 @@ SHADER_VERSION_LABEL <profile> \
######## POST
screen.Post_Processing.columns=2
screen.Post_Processing = [TAA_OPTIONS] [Tonemapping] [Exposure] [DepthOfField] [Purkinje_effect] [COLOR_GRADING] [GAMEPLAY_EFFECTS] CAMERA_GRIDLINES BLOOM_STRENGTH SHARPENING <empty> <empty> MOTION_BLUR MOTION_BLUR_STRENGTH CHROMATIC_ABERRATION CHROMATIC_ABERRATION_STRENGTH VIGNETTE VIGNETTE_STRENGTH FILM_GRAIN FILM_GRAIN_STRENGTH
screen.Post_Processing = [TAA_OPTIONS] [GAMEPLAY_EFFECTS] [Purkinje_effect] [FLASHLIGHT_SETTING] <empty> <empty> BLOOM_STRENGTH SHARPENING <empty> <empty> MOTION_BLUR MOTION_BLUR_STRENGTH CHROMATIC_ABERRATION CHROMATIC_ABERRATION_STRENGTH VIGNETTE VIGNETTE_STRENGTH FILM_GRAIN FILM_GRAIN_STRENGTH
### TAA
screen.TAA_OPTIONS.columns = 1
screen.TAA_OPTIONS= SCREENSHOT_MODE <empty> TAA RESPONSIVE_TAA BLEND_FACTOR BLEND_FACTOR_DURING_MOVEMENT <empty> TAA_UPSCALING SCALE_FACTOR
### DOF
screen.DepthOfField.columns = 1
screen.DepthOfField = DOF_QUALITY DOF_ANAMORPHIC_RATIO focal fstop MANUAL_FOCUS DoF_Adaptation_Speed FAR_BLUR_ONLY REMOVE_HAND_BLUR [JITTER_DOF] DOF_DISPERSION_MULT
screen.JITTER_DOF.columns=1
screen.JITTER_DOF = JITTER_STRENGTH FOCUS_LASER_COLOR SCREENSHOT_MODE
### EXPOSURE
screen.Exposure.columns = 1
screen.Exposure = AUTO_EXPOSURE EXPOSURE_MULTIPLIER Exposure_Speed Manual_exposure_value EXPOSURE_DARKENING EXPOSURE_BRIGHTENING
### TONEMAPS
screen.Tonemapping.columns = 1
screen.Tonemapping = TONEMAP USE_ACES_COLORSPACE_APPROXIMATION SATURATION CROSSTALK
### PURKINJE
screen.Purkinje_effect.columns = 1
screen.Purkinje_effect = Purkinje_strength Purkinje_R Purkinje_G Purkinje_B Purkinje_Multiplier
######## CAMERA AND COLOR
screen.Camera_Settings.columns = 1
screen.Camera_Settings = SCREENSHOT_MODE CAMERA_GRIDLINES WHITE_BALANCE [Exposure] [DepthOfField]
screen.Color_Processing.columns = 1
screen.Color_Processing = TONEMAP <empty> [Exposure] [COLOR_GRADING] SATURATION CROSSTALK WHITE_BALANCE
### TONEMAPS
screen.Tonemapping.columns = 1
screen.Tonemapping = TONEMAP USE_ACES_COLORSPACE_APPROXIMATION SATURATION CROSSTALK
### COLOR GRADING
screen.COLOR_GRADING.columns = 3
screen.COLOR_GRADING = \
WHITE_BALANCE SATURATION [Exposure] \
LUMINANCE_CURVE LOWER_CURVE UPPER_CURVE \
<empty> <empty> <empty> \
COLOR_GRADING_ENABLED <empty> <empty> \
@@ -451,8 +469,17 @@ SHADER_VERSION_LABEL <profile> \
SHADOWS_GRADE_B MIDS_GRADE_B HIGHLIGHTS_GRADE_B \
SHADOWS_GRADE_MUL MIDS_GRADE_MUL HIGHLIGHTS_GRADE_MUL
### EXPOSURE
screen.Exposure.columns = 1
screen.Exposure = Manual_exposure_value EXPOSURE_MULTIPLIER <empty> AUTO_EXPOSURE Exposure_Speed EXPOSURE_DARKENING EXPOSURE_BRIGHTENING
### DOF
screen.DepthOfField.columns = 1
screen.DepthOfField = DOF_QUALITY DOF_ANAMORPHIC_RATIO focal fstop MANUAL_FOCUS DoF_Adaptation_Speed FAR_BLUR_ONLY REMOVE_HAND_BLUR [JITTER_DOF] DOF_DISPERSION_MULT
screen.JITTER_DOF.columns=1
screen.JITTER_DOF = JITTER_STRENGTH FOCUS_LASER_COLOR SCREENSHOT_MODE
### COOL GAMEPLAY EFFECTS
screen.GAMEPLAY_EFFECTS = FLASHLIGHT [FLASHLIGHT_SETTING] MOTION_AMOUNT WATER_ON_CAMERA_EFFECT DAMAGE_TAKEN_EFFECT ON_FIRE_DISTORT_EFFECT ON_FIRE_DISTORT_EFFECT_STRENGTH LOW_HEALTH_EFFECT LOW_HEALTH_EFFECT_START CRITICALLY_LOW_HEALTH_EFFECT_START DROWNING_EFFECT
screen.GAMEPLAY_EFFECTS = MOTION_AMOUNT WATER_ON_CAMERA_EFFECT DAMAGE_TAKEN_EFFECT ON_FIRE_DISTORT_EFFECT ON_FIRE_DISTORT_EFFECT_STRENGTH LOW_HEALTH_EFFECT LOW_HEALTH_EFFECT_START CRITICALLY_LOW_HEALTH_EFFECT_START DROWNING_EFFECT
screen.FLASHLIGHT_SETTING.columns = 2
screen.FLASHLIGHT_SETTING = FLASHLIGHT FLASHLIGHT_R \
FLASHLIGHT_SPECULAR FLASHLIGHT_G \
@@ -702,7 +729,7 @@ uniform.bool.isInJungleBiomes = in(biome_category, CAT_JUNGLE)
# using the smooth() function to interpolate to the newest value of eyeAltitude over time, i can make it take a very long time to interpolate. essentially freezing/unfreezing the value in place at any time i need to.
# force water surface level to a fixed height if you entered the water from an area in low light levels (caves). if youre above the hardcoded y level, allow it use the current height
variable.float.waterEnteredLowLight = if(eyeBrightness.y < 0.004, max(eyeAltitude+16.0, SEA_LEVEL), eyeAltitude)
variable.float.waterEnteredLowLight = if(eyeBrightness.y < 0.004, max(eyeAltitude, SEA_LEVEL), eyeAltitude)
variable.float.freezeTranstion = if(isEyeInWater == 1, 100000000000000.0, 0.0)
uniform.float.waterEnteredAltitude = smooth(waterEnteredLowLight, freezeTranstion, freezeTranstion)
@@ -881,23 +908,26 @@ uniform.float.worldTimeSmooth = if(worldTime > 200 || worldDayTime > 0, worldTim
####### FLOODFILL STUFF #######
###############################
#if defined LPV_ENABLED || WATER_INTERACTION == 2
#if defined LPV_ENABLED || WATER_INTERACTION == 2 || (defined SHADER_GRASS && (defined GRASS_DETECT_FALLOFF || defined GRASS_DETECT_INV_FALLOFF || REPLACE_SHORT_GRASS > 0))
image.imgBlockData = texBlockData RG_INTEGER RG32UI UNSIGNED_INT false false 2048
#if LPV_SIZE == 8
#if LPV_SIZE == 8 && (defined LPV_ENABLED || (defined SHADER_GRASS && (defined GRASS_DETECT_FALLOFF || defined GRASS_DETECT_INV_FALLOFF || REPLACE_SHORT_GRASS > 0)))
image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 256 256 256
image.imgLpv1 = texLpv1 RGB RGBA8 BYTE false false 256 256 256
image.imgLpv2 = texLpv2 RGB RGBA8 BYTE false false 256 256 256
#elif LPV_SIZE == 7
#elif LPV_SIZE == 7 && (defined LPV_ENABLED || (defined SHADER_GRASS && (defined GRASS_DETECT_FALLOFF || defined GRASS_DETECT_INV_FALLOFF || REPLACE_SHORT_GRASS > 0)))
image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 128 128 128
image.imgLpv1 = texLpv1 RGB RGBA8 BYTE false false 128 128 128
image.imgLpv2 = texLpv2 RGB RGBA8 BYTE false false 128 128 128
#elif LPV_SIZE == 6
#elif LPV_SIZE == 6 && (defined LPV_ENABLED || (defined SHADER_GRASS && (defined GRASS_DETECT_FALLOFF || defined GRASS_DETECT_INV_FALLOFF || REPLACE_SHORT_GRASS > 0)))
image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 64 64 64
image.imgLpv1 = texLpv1 RGB RGBA8 BYTE false false 64 64 64
image.imgLpv2 = texLpv2 RGB RGBA8 BYTE false false 64 64 64
#elif WATER_INTERACTION == 2
image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 5 5 5
program.world1/shadowcomp.enabled = false
program.world0/shadowcomp.enabled = false
program.world-1/shadowcomp.enabled = false
#endif
#else
program.world1/setup.enabled = false
@@ -996,5 +1026,3 @@ uniform.vec4.combined_projection_matrix_3 = vec4(0.0, 0.0, -((2.0 * dhFarPlane *
image.waveSim2 = waveSim2Sampler rgba rgba16f float false false 8192 8192
#endif
#endif
bufferObject.1 = 1028
+1 -1
View File
@@ -4,6 +4,6 @@
#version 120
#endif
#define OVERWORLD_SHADER
#define NETHER_SHADER
#include "/dimensions/composite12.fsh"
+1 -1
View File
@@ -4,6 +4,6 @@
#version 120
#endif
#define OVERWORLD_SHADER
#define NETHER_SHADER
#include "/dimensions/composite12.vsh"
+8
View File
@@ -0,0 +1,8 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#define BLOCKENTITIES
#include "/dimensions/all_solid.gsh"
+8
View File
@@ -0,0 +1,8 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#define ENTITIES
#include "/dimensions/all_solid.gsh"
+8
View File
@@ -0,0 +1,8 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#define HAND
#include "/dimensions/all_solid.gsh"
+7
View File
@@ -0,0 +1,7 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#include "/dimensions/all_solid.gsh"
+7
View File
@@ -0,0 +1,7 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#include "/dimensions/all_solid.tcs"
+7
View File
@@ -0,0 +1,7 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#include "/dimensions/all_solid.tes"
+8
View File
@@ -0,0 +1,8 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#define BLOCKENTITIES
#include "/dimensions/all_solid.gsh"
+8
View File
@@ -0,0 +1,8 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#define ENTITIES
#include "/dimensions/all_solid.gsh"
+8
View File
@@ -0,0 +1,8 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#define HAND
#include "/dimensions/all_solid.gsh"
+7
View File
@@ -0,0 +1,7 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#include "/dimensions/all_solid.gsh"
+7
View File
@@ -0,0 +1,7 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#include "/dimensions/all_solid.tcs"
+7
View File
@@ -0,0 +1,7 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#include "/dimensions/all_solid.tes"
+3 -3
View File
@@ -6,7 +6,7 @@
#endif
#include "/lib/settings.glsl"
#if defined IS_LPV_ENABLED || WATER_INTERACTION == 2
#if defined IS_LPV_ENABLED || WATER_INTERACTION == 2 || defined SHADER_GRASS
#extension GL_ARB_explicit_attrib_location: enable
#extension GL_ARB_shader_image_load_store: enable
#endif
@@ -61,7 +61,7 @@ uniform int entityId;
#include "/lib/blocks.glsl"
#include "/lib/entities.glsl"
#if defined IS_LPV_ENABLED || WATER_INTERACTION == 2
#if defined IS_LPV_ENABLED || WATER_INTERACTION == 2 || defined SHADER_GRASS
#ifdef IRIS_FEATURE_BLOCK_EMISSION_ATTRIBUTE
attribute vec4 at_midBlock;
#else
@@ -214,7 +214,7 @@ void main() {
playerpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz;
// #endif
#if defined IS_LPV_ENABLED && defined MC_GL_EXT_shader_image_load_store || WATER_INTERACTION == 2
#if defined IS_LPV_ENABLED && defined MC_GL_EXT_shader_image_load_store || WATER_INTERACTION == 2 || defined SHADER_GRASS
PopulateShadowVoxel(playerpos);
#endif
+1 -1
View File
@@ -4,6 +4,6 @@
#version 120
#endif
#define OVERWORLD_SHADER
#define END_SHADER
#include "/dimensions/composite12.fsh"
+1 -1
View File
@@ -4,6 +4,6 @@
#version 120
#endif
#define OVERWORLD_SHADER
#define END_SHADER
#include "/dimensions/composite12.vsh"
+8
View File
@@ -0,0 +1,8 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#define BLOCKENTITIES
#include "/dimensions/all_solid.gsh"
+8
View File
@@ -0,0 +1,8 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#define ENTITIES
#include "/dimensions/all_solid.gsh"
+8
View File
@@ -0,0 +1,8 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#define HAND
#include "/dimensions/all_solid.gsh"
+7
View File
@@ -0,0 +1,7 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#include "/dimensions/all_solid.gsh"
+7
View File
@@ -0,0 +1,7 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#include "/dimensions/all_solid.tcs"
+7
View File
@@ -0,0 +1,7 @@
#version 430 compatibility
#define OVERWORLD_SHADER
#define WORLD
#include "/dimensions/all_solid.tes"
+3 -3
View File
@@ -18,7 +18,7 @@ This code is from Chocapic13' shaders
Read the terms of modification and sharing before changing something below please !
!! DO NOT REMOVE !!
*/
#if defined IS_LPV_ENABLED || defined END_ISLAND_LIGHT || WATER_INTERACTION == 2
#if defined IS_LPV_ENABLED || defined END_ISLAND_LIGHT || WATER_INTERACTION == 2 || defined SHADER_GRASS
uniform int renderStage;
uniform mat4 shadowModelViewInverse;
uniform int entityId;
@@ -26,7 +26,7 @@ Read the terms of modification and sharing before changing something below pleas
#include "/lib/entities.glsl"
#endif
#if defined IS_LPV_ENABLED || WATER_INTERACTION == 2
#if defined IS_LPV_ENABLED || WATER_INTERACTION == 2 || defined SHADER_GRASS
attribute vec4 mc_Entity;
#ifdef IRIS_FEATURE_BLOCK_EMISSION_ATTRIBUTE
attribute vec4 at_midBlock;
@@ -64,7 +64,7 @@ void main() {
vec3 feetPlayerPos = mat3(shadowModelViewInverse) * shadowViewPos + shadowModelViewInverse[3].xyz;
#endif
#if defined IS_LPV_ENABLED && defined MC_GL_EXT_shader_image_load_store || WATER_INTERACTION == 2
#if defined IS_LPV_ENABLED && defined MC_GL_EXT_shader_image_load_store || WATER_INTERACTION == 2 || defined SHADER_GRASS
#ifdef LPV_NOSHADOW_HACK
vec3 playerpos = gl_Vertex.xyz;
#else