mirror of
https://github.com/Merlin1809/Eclipse-Shader.git
synced 2026-10-11 01:38:20 +08:00
Add shader grass, merge xonks latest commits, fix compile error in end/nether
This commit is contained in:
1 parent
5249bbdf58
commit
ffb4058a35
49 files changed
+1461
-344
No files matched your search
@@ -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
|
||||
@@ -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
|
||||
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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
@@ -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
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 ----- //
|
||||
///////////////////////////////////////////
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
@@ -4,6 +4,6 @@
|
||||
#version 120
|
||||
#endif
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
#define NETHER_SHADER
|
||||
|
||||
#include "/dimensions/composite12.fsh"
|
||||
@@ -4,6 +4,6 @@
|
||||
#version 120
|
||||
#endif
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
#define NETHER_SHADER
|
||||
|
||||
#include "/dimensions/composite12.vsh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
#define BLOCKENTITIES
|
||||
|
||||
#include "/dimensions/all_solid.gsh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
#define ENTITIES
|
||||
|
||||
#include "/dimensions/all_solid.gsh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
#define HAND
|
||||
|
||||
#include "/dimensions/all_solid.gsh"
|
||||
@@ -0,0 +1,7 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
|
||||
#include "/dimensions/all_solid.gsh"
|
||||
@@ -0,0 +1,7 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
|
||||
#include "/dimensions/all_solid.tcs"
|
||||
@@ -0,0 +1,7 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
|
||||
#include "/dimensions/all_solid.tes"
|
||||
@@ -0,0 +1,8 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
#define BLOCKENTITIES
|
||||
|
||||
#include "/dimensions/all_solid.gsh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
#define ENTITIES
|
||||
|
||||
#include "/dimensions/all_solid.gsh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
#define HAND
|
||||
|
||||
#include "/dimensions/all_solid.gsh"
|
||||
@@ -0,0 +1,7 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
|
||||
#include "/dimensions/all_solid.gsh"
|
||||
@@ -0,0 +1,7 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
|
||||
#include "/dimensions/all_solid.tcs"
|
||||
@@ -0,0 +1,7 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
|
||||
#include "/dimensions/all_solid.tes"
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
#version 120
|
||||
#endif
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
#define END_SHADER
|
||||
|
||||
#include "/dimensions/composite12.fsh"
|
||||
@@ -4,6 +4,6 @@
|
||||
#version 120
|
||||
#endif
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
#define END_SHADER
|
||||
|
||||
#include "/dimensions/composite12.vsh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
#define BLOCKENTITIES
|
||||
|
||||
#include "/dimensions/all_solid.gsh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
#define ENTITIES
|
||||
|
||||
#include "/dimensions/all_solid.gsh"
|
||||
@@ -0,0 +1,8 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
#define HAND
|
||||
|
||||
#include "/dimensions/all_solid.gsh"
|
||||
@@ -0,0 +1,7 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
|
||||
#include "/dimensions/all_solid.gsh"
|
||||
@@ -0,0 +1,7 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
|
||||
#include "/dimensions/all_solid.tcs"
|
||||
@@ -0,0 +1,7 @@
|
||||
#version 430 compatibility
|
||||
|
||||
#define OVERWORLD_SHADER
|
||||
|
||||
#define WORLD
|
||||
|
||||
#include "/dimensions/all_solid.tes"
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user