From a2fc114c4f152f926b961ab400cbbc7b50ff2fe7 Mon Sep 17 00:00:00 2001 From: Xonk Date: Sat, 7 Oct 2023 22:18:20 -0400 Subject: [PATCH] INTERNAL REWORK. testers are needed. --- shaders/block.properties | 119 +- shaders/composite.fsh | 272 ---- shaders/composite.vsh | 37 - shaders/composite1.fsh | 1297 ----------------- shaders/composite1.vsh | 101 -- shaders/composite10.vsh | 18 - shaders/composite11.vsh | 38 - shaders/composite2.fsh | 406 ------ shaders/composite2.vsh | 88 -- shaders/composite3.fsh | 348 ----- shaders/composite3.vsh | 55 - shaders/composite4.fsh | 46 - shaders/composite4.vsh | 18 - shaders/composite5.fsh | 491 ------- shaders/composite5.vsh | 18 - shaders/composite6.fsh | 50 - shaders/composite6.vsh | 18 - shaders/composite7.fsh | 44 - shaders/composite8.fsh | 62 - shaders/composite8.vsh | 21 - shaders/composite9.fsh | 62 - shaders/composite9.vsh | 23 - shaders/deferred.fsh | 189 --- shaders/deferred.vsh | 187 --- shaders/deferred2.fsh | 29 - shaders/deferred2.vsh | 11 - shaders/dimensions/all_particles.fsh | 135 +- shaders/dimensions/all_particles.vsh | 33 +- shaders/dimensions/all_solid.fsh | 430 ++++-- shaders/dimensions/all_solid.vsh | 104 +- shaders/dimensions/all_translucent.fsh | 251 +++- shaders/dimensions/all_translucent.vsh | 35 +- .../all_vanilla_emissives.fsh} | 35 +- .../all_vanilla_emissives.vsh} | 16 +- shaders/dimensions/composite.fsh | 836 +++-------- shaders/dimensions/composite.vsh | 40 +- shaders/dimensions/composite1.fsh | 1127 +++++++++++++- shaders/dimensions/composite1.vsh | 57 +- shaders/{ => dimensions}/composite10.fsh | 8 +- .../composite10.vsh} | 5 +- shaders/{ => dimensions}/composite11.fsh | 6 +- .../{final.vsh => dimensions/composite11.vsh} | 4 +- shaders/dimensions/composite2.fsh | 499 +++---- shaders/dimensions/composite2.vsh | 40 +- shaders/dimensions/composite3.fsh | 637 ++++---- shaders/dimensions/composite3.vsh | 20 +- shaders/dimensions/composite4.fsh | 70 +- shaders/dimensions/composite4.vsh | 13 +- shaders/dimensions/composite5.fsh | 312 +++- shaders/dimensions/composite5.vsh | 36 +- shaders/dimensions/composite6.fsh | 64 +- shaders/dimensions/composite6.vsh | 11 +- shaders/dimensions/composite7.fsh | 60 +- shaders/dimensions/composite7.vsh | 12 +- shaders/dimensions/composite8.fsh | 113 +- shaders/dimensions/composite8.vsh | 11 +- shaders/dimensions/composite9.fsh | 499 +------ shaders/dimensions/composite9.vsh | 19 +- shaders/dimensions/deferred.fsh | 222 ++- shaders/dimensions/deferred.vsh | 91 +- shaders/dimensions/deferred1.fsh | 2 +- .../deferred2.fsh} | 39 +- .../deferred2.vsh} | 17 +- shaders/dimensions/final.fsh | 55 +- shaders/dimensions/final.vsh | 4 - shaders/entity.properties | 19 +- shaders/final.fsh | 143 -- shaders/gbuffers_all_particles.fsh | 177 --- shaders/gbuffers_all_particles.vsh | 110 -- shaders/gbuffers_all_solid.fsh | 582 -------- shaders/gbuffers_all_solid.vsh | 402 ----- shaders/gbuffers_all_translucent.fsh | 521 ------- shaders/gbuffers_all_translucent.vsh | 183 --- shaders/gbuffers_armor_glint.fsh | 25 - shaders/gbuffers_armor_glint.vsh | 47 - shaders/gbuffers_basic.fsh | 5 - shaders/gbuffers_basic.vsh | 5 - shaders/gbuffers_beaconbeam.fsh | 47 - shaders/gbuffers_beaconbeam.vsh | 48 - shaders/gbuffers_block.fsh | 5 - shaders/gbuffers_block.vsh | 5 - shaders/gbuffers_clouds.vsh | 5 - shaders/gbuffers_damagedblock.fsh | 4 - shaders/gbuffers_damagedblock.vsh | 4 - shaders/gbuffers_entities.fsh | 8 - shaders/gbuffers_entities.vsh | 7 - shaders/gbuffers_hand.fsh | 9 - shaders/gbuffers_hand.vsh | 6 - shaders/gbuffers_hand_water.fsh | 5 - shaders/gbuffers_hand_water.vsh | 5 - shaders/gbuffers_skytextured.vsh | 5 - shaders/gbuffers_terrain.fsh | 4 - shaders/gbuffers_terrain.vsh | 4 - shaders/gbuffers_textured.fsh | 5 - shaders/gbuffers_textured.vsh | 5 - shaders/gbuffers_textured_lit.fsh | 6 - shaders/gbuffers_textured_lit.vsh | 5 - shaders/gbuffers_water.fsh | 4 - shaders/gbuffers_water.vsh | 4 - shaders/gbuffers_weather.fsh | 5 - shaders/gbuffers_weather.vsh | 5 - shaders/lang/en_us.lang | 43 +- shaders/lang/pt_br.lang | 8 +- shaders/lang/zh_cn.lang | 8 +- shaders/lib/DailyWeatherSettings.glsl | 3 + shaders/lib/PhotonGTAO.glsl | 11 +- shaders/lib/ROBOBO_sky.glsl | 8 +- shaders/lib/Shadow_Params.glsl | 60 +- shaders/lib/Shadows.glsl | 23 + shaders/lib/climate_settings.glsl | 57 +- shaders/lib/clouds.glsl | 6 +- shaders/lib/diffuse_lighting.glsl | 11 +- shaders/lib/end_fog.glsl | 475 +++--- shaders/lib/indirect_lighting_effects.glsl | 323 ++++ shaders/lib/lightning_stuff.glsl | 62 + shaders/lib/nether_fog.glsl | 10 +- shaders/lib/settings.glsl | 73 +- shaders/lib/sky_gradient.glsl | 62 +- shaders/lib/specular.glsl | 39 +- shaders/lib/stars.glsl | 8 +- shaders/lib/volumetricClouds.glsl | 248 ++-- shaders/lib/volumetricFog.glsl | 162 +- shaders/shaders.properties | 201 ++- shaders/world-1/composite.vsh | 5 - shaders/world-1/composite10.fsh | 5 + shaders/world-1/composite10.vsh | 5 + shaders/world-1/composite11.fsh | 5 + shaders/world-1/composite11.vsh | 5 + shaders/world-1/gbuffers_armor_glint.fsh | 24 +- shaders/world-1/gbuffers_armor_glint.vsh | 46 +- shaders/world-1/gbuffers_basic.fsh | 6 +- shaders/world-1/gbuffers_basic.vsh | 7 +- shaders/world-1/gbuffers_beaconbeam.fsh | 28 +- shaders/world-1/gbuffers_beaconbeam.vsh | 43 +- shaders/world-1/gbuffers_damagedblock.fsh | 116 +- shaders/world-1/gbuffers_damagedblock.vsh | 54 +- shaders/world-1/gbuffers_entities_glowing.fsh | 5 + shaders/world-1/gbuffers_entities_glowing.vsh | 5 + shaders/world-1/gbuffers_hand_water.fsh | 3 +- shaders/world-1/gbuffers_hand_water.vsh | 3 +- shaders/world-1/gbuffers_spidereyes.fsh | 28 +- shaders/world-1/gbuffers_spidereyes.vsh | 42 +- shaders/world-1/gbuffers_terrain.fsh | 3 +- shaders/world-1/gbuffers_terrain.vsh | 2 +- shaders/world-1/gbuffers_textured.fsh | 2 +- shaders/world-1/gbuffers_textured.vsh | 1 + shaders/world-1/gbuffers_textured_lit.fsh | 4 +- shaders/world-1/gbuffers_textured_lit.vsh | 3 +- shaders/world-1/gbuffers_weather.fsh | 49 +- shaders/world-1/gbuffers_weather.vsh | 44 +- shaders/{world-1 => world0}/composite.fsh | 2 +- shaders/{world1 => world0}/composite.vsh | 2 +- shaders/world0/composite1.fsh | 5 + shaders/world0/composite1.vsh | 5 + shaders/world0/composite10.fsh | 5 + shaders/world0/composite10.vsh | 5 + shaders/world0/composite11.fsh | 5 + shaders/world0/composite11.vsh | 5 + shaders/world0/composite2.fsh | 5 + shaders/world0/composite2.vsh | 5 + shaders/world0/composite3.fsh | 5 + shaders/world0/composite3.vsh | 5 + shaders/world0/composite4.fsh | 5 + shaders/world0/composite4.vsh | 5 + shaders/world0/composite5.fsh | 5 + shaders/world0/composite5.vsh | 5 + shaders/world0/composite6.fsh | 5 + shaders/world0/composite6.vsh | 5 + shaders/world0/composite7.fsh | 5 + shaders/world0/composite7.vsh | 5 + shaders/world0/composite8.fsh | 5 + shaders/world0/composite8.vsh | 5 + shaders/world0/composite9.fsh | 5 + shaders/world0/composite9.vsh | 5 + shaders/world0/deferred.fsh | 5 + shaders/world0/deferred.vsh | 5 + shaders/world0/deferred1.fsh | 5 + shaders/world0/deferred1.vsh | 5 + shaders/world0/deferred2.fsh | 5 + shaders/world0/deferred2.vsh | 5 + shaders/world0/final.fsh | 5 + shaders/world0/final.vsh | 5 + shaders/world0/gbuffers_armor_glint.fsh | 5 + shaders/world0/gbuffers_armor_glint.vsh | 5 + shaders/world0/gbuffers_basic.fsh | 7 + shaders/world0/gbuffers_basic.vsh | 7 + shaders/world0/gbuffers_beaconbeam.fsh | 5 + shaders/world0/gbuffers_beaconbeam.vsh | 5 + shaders/world0/gbuffers_block.fsh | 8 + shaders/world0/gbuffers_block.vsh | 8 + shaders/world0/gbuffers_damagedblock.fsh | 6 + shaders/world0/gbuffers_damagedblock.vsh | 6 + shaders/world0/gbuffers_entities.fsh | 8 + shaders/world0/gbuffers_entities.vsh | 9 + shaders/world0/gbuffers_entities_glowing.fsh | 5 + shaders/world0/gbuffers_entities_glowing.vsh | 5 + shaders/world0/gbuffers_hand.fsh | 8 + shaders/world0/gbuffers_hand.vsh | 8 + shaders/world0/gbuffers_hand_water.fsh | 6 + shaders/world0/gbuffers_hand_water.vsh | 6 + .../gbuffers_skybasic.fsh} | 2 +- shaders/world0/gbuffers_skybasic.vsh | 5 + shaders/{ => world0}/gbuffers_skytextured.fsh | 2 +- shaders/world0/gbuffers_skytextured.vsh | 5 + shaders/world0/gbuffers_spidereyes.fsh | 5 + shaders/world0/gbuffers_spidereyes.vsh | 5 + shaders/world0/gbuffers_terrain.fsh | 7 + shaders/world0/gbuffers_terrain.vsh | 7 + shaders/world0/gbuffers_textured.fsh | 7 + shaders/world0/gbuffers_textured.vsh | 7 + shaders/world0/gbuffers_textured_lit.fsh | 7 + shaders/world0/gbuffers_textured_lit.vsh | 7 + shaders/world0/gbuffers_water.fsh | 5 + shaders/world0/gbuffers_water.vsh | 5 + shaders/world0/gbuffers_weather.fsh | 6 + shaders/world0/gbuffers_weather.vsh | 6 + shaders/{ => world0}/shadow.fsh | 2 +- shaders/{ => world0}/shadow.vsh | 52 +- shaders/world1/composite.fsh | 5 - shaders/world1/composite10.fsh | 5 + shaders/world1/composite10.vsh | 5 + shaders/world1/composite11.fsh | 5 + shaders/world1/composite11.vsh | 5 + shaders/world1/gbuffers_armor_glint.fsh | 24 +- shaders/world1/gbuffers_armor_glint.vsh | 46 +- shaders/world1/gbuffers_beaconbeam.fsh | 28 +- shaders/world1/gbuffers_beaconbeam.vsh | 43 +- shaders/world1/gbuffers_damagedblock.fsh | 116 +- shaders/world1/gbuffers_damagedblock.vsh | 54 +- shaders/world1/gbuffers_entities_glowing.fsh | 5 + shaders/world1/gbuffers_entities_glowing.vsh | 5 + shaders/world1/gbuffers_hand_water.fsh | 1 + shaders/world1/gbuffers_hand_water.vsh | 1 + shaders/world1/gbuffers_spidereyes.fsh | 28 +- shaders/world1/gbuffers_spidereyes.vsh | 42 +- yarhar.zip | Bin 0 -> 1622244 bytes 236 files changed, 5437 insertions(+), 10283 deletions(-) delete mode 100644 shaders/composite.fsh delete mode 100644 shaders/composite.vsh delete mode 100644 shaders/composite1.fsh delete mode 100644 shaders/composite1.vsh delete mode 100644 shaders/composite10.vsh delete mode 100644 shaders/composite11.vsh delete mode 100644 shaders/composite2.fsh delete mode 100644 shaders/composite2.vsh delete mode 100644 shaders/composite3.fsh delete mode 100644 shaders/composite3.vsh delete mode 100644 shaders/composite4.fsh delete mode 100644 shaders/composite4.vsh delete mode 100644 shaders/composite5.fsh delete mode 100644 shaders/composite5.vsh delete mode 100644 shaders/composite6.fsh delete mode 100644 shaders/composite6.vsh delete mode 100644 shaders/composite7.fsh delete mode 100644 shaders/composite8.fsh delete mode 100644 shaders/composite8.vsh delete mode 100644 shaders/composite9.fsh delete mode 100644 shaders/composite9.vsh delete mode 100644 shaders/deferred.fsh delete mode 100644 shaders/deferred.vsh delete mode 100644 shaders/deferred2.fsh delete mode 100644 shaders/deferred2.vsh rename shaders/{gbuffers_spidereyes.fsh => dimensions/all_vanilla_emissives.fsh} (56%) rename shaders/{gbuffers_spidereyes.vsh => dimensions/all_vanilla_emissives.vsh} (83%) rename shaders/{ => dimensions}/composite10.fsh (92%) rename shaders/{composite7.vsh => dimensions/composite10.vsh} (79%) rename shaders/{ => dimensions}/composite11.fsh (96%) rename shaders/{final.vsh => dimensions/composite11.vsh} (88%) rename shaders/{deferred1.fsh => dimensions/deferred2.fsh} (81%) rename shaders/{deferred1.vsh => dimensions/deferred2.vsh} (93%) delete mode 100644 shaders/final.fsh delete mode 100644 shaders/gbuffers_all_particles.fsh delete mode 100644 shaders/gbuffers_all_particles.vsh delete mode 100644 shaders/gbuffers_all_solid.fsh delete mode 100644 shaders/gbuffers_all_solid.vsh delete mode 100644 shaders/gbuffers_all_translucent.fsh delete mode 100644 shaders/gbuffers_all_translucent.vsh delete mode 100644 shaders/gbuffers_armor_glint.fsh delete mode 100644 shaders/gbuffers_armor_glint.vsh delete mode 100644 shaders/gbuffers_basic.fsh delete mode 100644 shaders/gbuffers_basic.vsh delete mode 100644 shaders/gbuffers_beaconbeam.fsh delete mode 100644 shaders/gbuffers_beaconbeam.vsh delete mode 100644 shaders/gbuffers_block.fsh delete mode 100644 shaders/gbuffers_block.vsh delete mode 100644 shaders/gbuffers_clouds.vsh delete mode 100644 shaders/gbuffers_damagedblock.fsh delete mode 100644 shaders/gbuffers_damagedblock.vsh delete mode 100644 shaders/gbuffers_entities.fsh delete mode 100644 shaders/gbuffers_entities.vsh delete mode 100644 shaders/gbuffers_hand.fsh delete mode 100644 shaders/gbuffers_hand.vsh delete mode 100644 shaders/gbuffers_hand_water.fsh delete mode 100644 shaders/gbuffers_hand_water.vsh delete mode 100644 shaders/gbuffers_skytextured.vsh delete mode 100644 shaders/gbuffers_terrain.fsh delete mode 100644 shaders/gbuffers_terrain.vsh delete mode 100644 shaders/gbuffers_textured.fsh delete mode 100644 shaders/gbuffers_textured.vsh delete mode 100644 shaders/gbuffers_textured_lit.fsh delete mode 100644 shaders/gbuffers_textured_lit.vsh delete mode 100644 shaders/gbuffers_water.fsh delete mode 100644 shaders/gbuffers_water.vsh delete mode 100644 shaders/gbuffers_weather.fsh delete mode 100644 shaders/gbuffers_weather.vsh create mode 100644 shaders/lib/DailyWeatherSettings.glsl create mode 100644 shaders/lib/Shadows.glsl create mode 100644 shaders/lib/indirect_lighting_effects.glsl create mode 100644 shaders/lib/lightning_stuff.glsl delete mode 100644 shaders/world-1/composite.vsh create mode 100644 shaders/world-1/composite10.fsh create mode 100644 shaders/world-1/composite10.vsh create mode 100644 shaders/world-1/composite11.fsh create mode 100644 shaders/world-1/composite11.vsh create mode 100644 shaders/world-1/gbuffers_entities_glowing.fsh create mode 100644 shaders/world-1/gbuffers_entities_glowing.vsh rename shaders/{world-1 => world0}/composite.fsh (67%) rename shaders/{world1 => world0}/composite.vsh (67%) create mode 100644 shaders/world0/composite1.fsh create mode 100644 shaders/world0/composite1.vsh create mode 100644 shaders/world0/composite10.fsh create mode 100644 shaders/world0/composite10.vsh create mode 100644 shaders/world0/composite11.fsh create mode 100644 shaders/world0/composite11.vsh create mode 100644 shaders/world0/composite2.fsh create mode 100644 shaders/world0/composite2.vsh create mode 100644 shaders/world0/composite3.fsh create mode 100644 shaders/world0/composite3.vsh create mode 100644 shaders/world0/composite4.fsh create mode 100644 shaders/world0/composite4.vsh create mode 100644 shaders/world0/composite5.fsh create mode 100644 shaders/world0/composite5.vsh create mode 100644 shaders/world0/composite6.fsh create mode 100644 shaders/world0/composite6.vsh create mode 100644 shaders/world0/composite7.fsh create mode 100644 shaders/world0/composite7.vsh create mode 100644 shaders/world0/composite8.fsh create mode 100644 shaders/world0/composite8.vsh create mode 100644 shaders/world0/composite9.fsh create mode 100644 shaders/world0/composite9.vsh create mode 100644 shaders/world0/deferred.fsh create mode 100644 shaders/world0/deferred.vsh create mode 100644 shaders/world0/deferred1.fsh create mode 100644 shaders/world0/deferred1.vsh create mode 100644 shaders/world0/deferred2.fsh create mode 100644 shaders/world0/deferred2.vsh create mode 100644 shaders/world0/final.fsh create mode 100644 shaders/world0/final.vsh create mode 100644 shaders/world0/gbuffers_armor_glint.fsh create mode 100644 shaders/world0/gbuffers_armor_glint.vsh create mode 100644 shaders/world0/gbuffers_basic.fsh create mode 100644 shaders/world0/gbuffers_basic.vsh create mode 100644 shaders/world0/gbuffers_beaconbeam.fsh create mode 100644 shaders/world0/gbuffers_beaconbeam.vsh create mode 100644 shaders/world0/gbuffers_block.fsh create mode 100644 shaders/world0/gbuffers_block.vsh create mode 100644 shaders/world0/gbuffers_damagedblock.fsh create mode 100644 shaders/world0/gbuffers_damagedblock.vsh create mode 100644 shaders/world0/gbuffers_entities.fsh create mode 100644 shaders/world0/gbuffers_entities.vsh create mode 100644 shaders/world0/gbuffers_entities_glowing.fsh create mode 100644 shaders/world0/gbuffers_entities_glowing.vsh create mode 100644 shaders/world0/gbuffers_hand.fsh create mode 100644 shaders/world0/gbuffers_hand.vsh create mode 100644 shaders/world0/gbuffers_hand_water.fsh create mode 100644 shaders/world0/gbuffers_hand_water.vsh rename shaders/{gbuffers_clouds.fsh => world0/gbuffers_skybasic.fsh} (95%) create mode 100644 shaders/world0/gbuffers_skybasic.vsh rename shaders/{ => world0}/gbuffers_skytextured.fsh (95%) create mode 100644 shaders/world0/gbuffers_skytextured.vsh create mode 100644 shaders/world0/gbuffers_spidereyes.fsh create mode 100644 shaders/world0/gbuffers_spidereyes.vsh create mode 100644 shaders/world0/gbuffers_terrain.fsh create mode 100644 shaders/world0/gbuffers_terrain.vsh create mode 100644 shaders/world0/gbuffers_textured.fsh create mode 100644 shaders/world0/gbuffers_textured.vsh create mode 100644 shaders/world0/gbuffers_textured_lit.fsh create mode 100644 shaders/world0/gbuffers_textured_lit.vsh create mode 100644 shaders/world0/gbuffers_water.fsh create mode 100644 shaders/world0/gbuffers_water.vsh create mode 100644 shaders/world0/gbuffers_weather.fsh create mode 100644 shaders/world0/gbuffers_weather.vsh rename shaders/{ => world0}/shadow.fsh (95%) rename shaders/{ => world0}/shadow.vsh (85%) delete mode 100644 shaders/world1/composite.fsh create mode 100644 shaders/world1/composite10.fsh create mode 100644 shaders/world1/composite10.vsh create mode 100644 shaders/world1/composite11.fsh create mode 100644 shaders/world1/composite11.vsh create mode 100644 shaders/world1/gbuffers_entities_glowing.fsh create mode 100644 shaders/world1/gbuffers_entities_glowing.vsh create mode 100644 yarhar.zip diff --git a/shaders/block.properties b/shaders/block.properties index 3e36652..a3d829f 100644 --- a/shaders/block.properties +++ b/shaders/block.properties @@ -1,76 +1,51 @@ - -#if MC_VERSION >= 11300 - - block.2200 = minecraft:oak_sign minecraft:spruce_sign minecraft:birch_sign minecraft:jungle_sign minecraft:acacia_sign minecraft:dark_oak_sign minecraft:mangrove_sign minecraft:crimson_sign minecraft:warped_sign minecraft:oak_wall_sign minecraft:spruce_wall_sign minecraft:birch_wall_sign minecraft:jungle_wall_sign minecraft:acacia_wall_sign minecraft:dark_oak_wall_sign minecraft:mangrove_wall_sign minecraft:crimson_wall_sign minecraft:warped_wall_sign +####### ----- waving blocks with SSS ----- ####### + ##ground waving + # add a newline to organize for modded blocks + block.10001 = minecraft:sunflower:half=upper minecraft:beetroots minecraft:potatoes minecraft:carrots minecraft:wheat minecraft:nether_wart minecraft:kelp minecraft:large_fern:half=upper minecraft:peony:half=upper minecraft:rose_bush:half=upper minecraft:lilac:half=upper minecraft:crimson_roots minecraft:nether_sprouts minecraft:warped_roots minecraft:seagrass minecraft:tall_seagrass:half=upper minecraft:tall_grass:half=upper minecraft:wither_rose minecraft:lily_of_the_valley minecraft:cornflower minecraft:sweet_berry_bush minecraft:oxeye_daisy minecraft:pink_tulip minecraft:white_tulip minecraft:orange_tulip minecraft:red_tulip minecraft:azure_bluet minecraft:allium minecraft:blue_orchid minecraft:poppy minecraft:dandelion minecraft:dead_bush minecraft:oak_sapling minecraft:spruce_sapling minecraft:birch_sapling minecraft:jungle_sapling minecraft:acacia_sapling minecraft:dark_oak_sapling + + block.10009 = minecraft:grass minecraft:fern + ##air waving + # add a newline to organize for modded blocks + block.10003 = minecraft:azalea_leaves minecraft:flowering_azalea_leaves minecraft:cherry_leaves minecraft:mangrove_leaves minecraft:vine minecraft:oak_leaves minecraft:spruce_leaves minecraft:birch_leaves minecraft:jungle_leaves minecraft:acacia_leaves minecraft:dark_oak_leaves \ + westerosblocks:vine_jasmine westerosblocks:apple_fruit_leaves westerosblocks:apricot_fruit_leaves westerosblocks:cherry_fruit_leaves westerosblocks:purple_grape_fruit_leaves westerosblocks:lemon_fruit_leaves westerosblocks:lime_fruit_leaves westerosblocks:orange_fruit_leaves westerosblocks:peach_fruit_leaves westerosblocks:plum_fruit_leaves westerosblocks:pomegranate_fruit_leaves westerosblocks:weirwood_leaves westerosblocks:hop_fruit_leaves westerosblocks:olive_fruit_leaves westerosblocks:palm_leaves westerosblocks:white_grape_fruit_leaves +####### ----- blocks with SSS ----- ####### + ## strong sss + block.10004 =minecraft:tall_seagrass minecraft:seagrass minecraft:kelp minecraft:large_fern:half=lower minecraft:tall_grass minecraft:tall_seagrass minecraft:kelp_plant minecraft:peony minecraft:rose_bush minecraft:lilac minecraft:sunflower:half=lower minecraft:packed_ice minecraft:blue_ice minecraft:melon_stem minecraft:pumpkin_stem minecraft:attached_melon_stem minecraft:attached_pumpkin_stem minecraft:lily_pad \ + westerosblocks:blackberry_bush westerosblocks:blueberry_bush westerosblocks:raspberry_bush westerosblocks:juniper_bush westerosblocks:red_rose_bush westerosblocks:pink_rose_bush westerosblocks:white_rose_bush westerosblocks:yellow_rose_bush westerosblocks:yellow_wildflowers westerosblocks:green_spiny_herb westerosblocks:green_leafy_herb westerosblocks:orange_marigolds westerosblocks:orange_trollius westerosblocks:blue_forgetmenots westerosblocks:pink_wildflowers westerosblocks:yellow_tansy westerosblocks:blue_flax westerosblocks:white_daisies westerosblocks:yellow_daisies westerosblocks:green_scrub_grass westerosblocks:dead_scrub_grass westerosblocks:yellow_bedstraw westerosblocks:orange_bells westerosblocks:blue_bells westerosblocks:blue_swamp_bells westerosblocks:yellow_buttercups westerosblocks:orange_bog_asphodel westerosblocks:yellow_lupine westerosblocks:blue_hyacinth westerosblocks:pink_thistle westerosblocks:yellow_dandelions westerosblocks:yellow_daffodils westerosblocks:yellow_roses westerosblocks:strawberry_bush westerosblocks:white_lilyofthevalley westerosblocks:yellow_bells westerosblocks:yellow_sunflower westerosblocks:white_roses westerosblocks:red_dark_roses westerosblocks:yellow_hellebore westerosblocks:meadow_fescue westerosblocks:red_poppies westerosblocks:red_roses westerosblocks:purple_pansies westerosblocks:purple_roses westerosblocks:orange_sun_star westerosblocks:pink_primrose westerosblocks:red_aster westerosblocks:blue_chicory westerosblocks:red_flowering_spiny_herb westerosblocks:purple_foxglove westerosblocks:pink_allium westerosblocks:purple_violets westerosblocks:white_chamomile westerosblocks:red_tulips westerosblocks:white_peony westerosblocks:purple_alpine_sowthistle westerosblocks:red_carnations westerosblocks:magenta_roses westerosblocks:red_chrysanthemum westerosblocks:blue_orchid westerosblocks:yellow_rudbeckia westerosblocks:pink_tulips westerosblocks:cranberry_bush westerosblocks:purple_lavender westerosblocks:red_sourleaf_bush westerosblocks:pink_sweet_peas westerosblocks:red_sorrel westerosblocks:pink_roses westerosblocks:unshaded_grass westerosblocks:cow_parsely westerosblocks:bracken westerosblocks:lady_fern westerosblocks:nettle westerosblocks:dead_bracken westerosblocks:fireweed westerosblocks:heather westerosblocks:red_fern westerosblocks:dock_leaf westerosblocks:jasmine_vines westerosblocks:dappled_moss westerosblocks:cushion_moss_wall westerosblocks:hemp_short westerosblocks:hemp_tall westerosblocks:hemp_dense westerosblocks:crop_carrots westerosblocks:crop_wheat westerosblocks:crop_turnips westerosblocks:crop_peas westerosblocks:cattails westerosblocks:jungle_tall_fern westerosblocks:jungle_tall_grass westerosblocks:savanna_tall_grass + + ## weak sss + block.10006 = minecraft:grass_block:snowy=true minecraft:snow_block minecraft:snow powder_snow cobweb red_mushroom_block brown_mushroom_block weeping_vines weeping_vines_plant twisting_vines twisting_vines_plant vine 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 bamboo bamboo_sapling minecraft:spore_blossom minecraft:cave_vines minecraft:cave_vines_plant minecraft:glow_lichen 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 minecraft:honeycomb_block + ## weak sss + block.200 = minecraft:white_wool minecraft:orange_wool minecraft:magenta_wool minecraft:light_blue_wool minecraft:yellow_wool minecraft:lime_wool minecraft:pink_wool minecraft:gray_wool minecraft:light_gray_wool minecraft:cyan_wool minecraft:purple_wool minecraft:blue_wool minecraft:brown_wool minecraft:green_wool minecraft:red_wool minecraft:black_wool minecraft:orange_carpet minecraft:magenta_carpet minecraft:light_blue_carpet minecraft:yellow_carpet minecraft:lime_carpet minecraft:pink_carpet minecraft:gray_carpet minecraft:light_gray_carpet minecraft:cyan_carpet minecraft:purple_carpet minecraft:blue_carpet minecraft:brown_carpet minecraft:green_carpet minecraft:red_carpet minecraft:black_carpet \ + westerosblocks:clothesline westerosblocks:smoke westerosblocks:brown_mushroom_1 westerosblocks:brown_mushroom_2 westerosblocks:brown_mushroom_3 westerosblocks:brown_mushroom_4 westerosblocks:brown_mushroom_5 westerosblocks:brown_mushroom_6 westerosblocks:brown_mushroom_7 westerosblocks:brown_mushroom_8 westerosblocks:brown_mushroom_9 westerosblocks:brown_mushroom_10 westerosblocks:brown_mushroom_11 westerosblocks:brown_mushroom_12 westerosblocks:brown_mushroom_13 westerosblocks:red_mushroom_1 westerosblocks:red_mushroom_2 westerosblocks:red_mushroom_3 westerosblocks:red_mushroom_4 westerosblocks:red_mushroom_5 westerosblocks:red_mushroom_6 westerosblocks:red_mushroom_7 westerosblocks:red_mushroom_8 westerosblocks:red_mushroom_9 westerosblocks:white_wool_slab westerosblocks:orange_wool_slab westerosblocks:light_brown_wool_slab westerosblocks:light_blue_wool_slab westerosblocks:yellow_wool_slab westerosblocks:dirty_white_wool_slab westerosblocks:pink_wool_slab westerosblocks:grey_wool_slab westerosblocks:light_grey_wool_slab westerosblocks:cyan_wool_slab westerosblocks:purple_wool_slab westerosblocks:blue_wool_slab westerosblocks:brown_wool_slab westerosblocks:green_wool_slab westerosblocks:red_wool_slab westerosblocks:black_wool_slab westerosblocks:white_wool_carpet westerosblocks:orange_wool_carpet westerosblocks:light_brown_wool_carpet westerosblocks:light_blue_wool_carpet westerosblocks:yellow_wool_carpet westerosblocks:dirty_white_wool_carpet westerosblocks:pink_wool_carpet westerosblocks:grey_wool_carpet westerosblocks:light_grey_wool_carpet westerosblocks:cyan_wool_carpet westerosblocks:purple_wool_carpet westerosblocks:blue_wool_carpet westerosblocks:brown_wool_carpet westerosblocks:green_wool_carpet westerosblocks:red_wool_carpet westerosblocks:black_wool_carpet westerosblocks:thatch_light_fur_carpet westerosblocks:thatch_dark_fur_carpet + + ## weak sss + block.10010 = minecraft:white_wall_banner minecraft:orange_wall_banner minecraft:magenta_wall_banner minecraft:light_blue_wall_banner minecraft:yellow_wall_banner minecraft:lime_wall_banner minecraft:pink_wall_banner minecraft:gray_wall_banner minecraft:light_gray_wall_banner minecraft:cyan_wall_banner minecraft:purple_wall_banner minecraft:blue_wall_banner minecraft:brown_wall_banner minecraft:green_wall_banner minecraft:red_wall_banner minecraft:black_wall_banner minecraft:white_banner minecraft:orange_banner minecraft:magenta_banner minecraft:light_blue_banner minecraft:yellow_banner minecraft:lime_banner minecraft:pink_banner minecraft:gray_banner minecraft:light_gray_banner minecraft:cyan_banner minecraft:purple_banner minecraft:blue_banner minecraft:brown_banner minecraft:green_banner minecraft:red_banner minecraft:black_banner \ + 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.10007 = minecraft:sand minecraft:red_sand + + ## grass uwu + block.10008 = minecraft:grass_block:snowy=false + +####### ----- lightsources ----- ####### + block.10005 = minecraft:sculk_sensor:sculk_sensor_phase=active minecraft:soul_fire minecraft:soul_campfire:lit=true minecraft:cave_vines_plant:berries=true minecraft:soul_lantern minecraft:soul_torch minecraft:soul_wall_torch minecraft:conduit minecraft:beacon minecraft:sea_pickle minecraft:respawn_anchor:charges=4 minecraft:smoker:lit=true minecraft:blast_furnace:lit=true minecraft:furnace:lit=true minecraft:lava_cauldron minecraft:sea_lantern minecraft:cave_vines:berries=true minecraft:glowstone minecraft:torch minecraft:wall_torch minecraft:lava minecraft:fire minecraft:redstone_torch minecraft:redstone_wall_torch minecraft:jack_o_lantern minecraft:magma_block minecraft:redstone_lamp:lit=true minecraft:lantern minecraft:campfire:lit=true minecraft:shroomlight minecraft:end_rod minecraft:end_gateway minecraft:lava minecraft:fire \ + westerosblocks:safe_fire + +####### ----- reflective translucents / glass ----- ####### + block.10002 = minecraft:slime_block minecraft:nether_portal minecraft:honey_block ice minecraft:frosted_ice minecraft:black_stained_glass minecraft:black_stained_glass_pane minecraft:blue_stained_glass minecraft:blue_stained_glass_pane minecraft:brown_stained_glass minecraft:brown_stained_glass_pane minecraft:cyan_stained_glass minecraft:cyan_stained_glass_pane minecraft:gray_stained_glass minecraft:gray_stained_glass_pane minecraft:green_stained_glass minecraft:green_stained_glass_pane minecraft:light_blue_stained_glass minecraft:light_blue_stained_glass_pane minecraft:light_gray_stained_glass minecraft:light_gray_stained_glass_pane minecraft:lime_stained_glass minecraft:lime_stained_glass_pane minecraft:magenta_stained_glass minecraft:magenta_stained_glass_pane minecraft:orange_stained_glass minecraft:orange_stained_glass_pane minecraft:pink_stained_glass minecraft:pink_stained_glass_pane minecraft:purple_stained_glass minecraft:purple_stained_glass_pane minecraft:red_stained_glass minecraft:red_stained_glass_pane minecraft:white_stained_glass minecraft:white_stained_glass_pane minecraft:yellow_stained_glass minecraft:yellow_stained_glass_pane minecraft:glass_pane minecraft:glass + +####### ----- misc ----- ####### + ## all blocks here get exluded from POM. + block.2200 = minecraft:oak_sign minecraft:spruce_sign minecraft:birch_sign minecraft:jungle_sign minecraft:acacia_sign minecraft:dark_oak_sign minecraft:mangrove_sign minecraft:crimson_sign minecraft:warped_sign minecraft:oak_wall_sign minecraft:spruce_wall_sign minecraft:birch_wall_sign minecraft:jungle_wall_sign minecraft:acacia_wall_sign minecraft:dark_oak_wall_sign minecraft:mangrove_wall_sign minecraft:crimson_wall_sign minecraft:warped_wall_sign + + ## stuff block.2100 = minecraft:end_portal - - ####### ----- SSS and waving ----- ####### + + block.8 = minecraft:water minecraft:flowing_water - ##ground waving - block.10001 = minecraft:sunflower:half=upper minecraft:beetroots minecraft:potatoes minecraft:carrots minecraft:wheat minecraft:nether_wart minecraft:kelp minecraft:large_fern:half=upper minecraft:peony:half=upper minecraft:rose_bush:half=upper minecraft:lilac:half=upper minecraft:crimson_roots minecraft:nether_sprouts minecraft:warped_roots minecraft:seagrass minecraft:tall_seagrass:half=upper minecraft:tall_grass:half=upper minecraft:wither_rose minecraft:lily_of_the_valley minecraft:cornflower minecraft:sweet_berry_bush minecraft:oxeye_daisy minecraft:pink_tulip minecraft:white_tulip minecraft:orange_tulip minecraft:red_tulip minecraft:azure_bluet minecraft:allium minecraft:blue_orchid minecraft:poppy minecraft:dandelion minecraft:dead_bush minecraft:oak_sapling minecraft:spruce_sapling minecraft:birch_sapling minecraft:jungle_sapling minecraft:acacia_sapling minecraft:dark_oak_sapling minecraft:fern - - block.10009 = minecraft:grass - - ##air waving - block.10003 = minecraft:azalea_leaves minecraft:flowering_azalea_leaves minecraft:cherry_leaves minecraft:mangrove_leaves minecraft:vine minecraft:oak_leaves minecraft:spruce_leaves minecraft:birch_leaves minecraft:jungle_leaves minecraft:acacia_leaves minecraft:dark_oak_leaves - - ####### ----- SSS ----- ####### - - ## strong - block.10004 = minecraft:fern minecraft:packed_ice minecraft:blue_ice minecraft:melon_stem minecraft:pumpkin_stem minecraft:attached_melon_stem minecraft:attached_pumpkin_stem minecraft:lily_pad - - ## weak - block.10006 = minecraft:grass_block:snowy=true minecraft:snow_block minecraft:snow powder_snow cobweb red_mushroom_block brown_mushroom_block weeping_vines weeping_vines_plant twisting_vines twisting_vines_plant vine 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 bamboo bamboo_sapling minecraft:tall_seagrass minecraft:seagrass minecraft:kelp minecraft:large_fern minecraft:tall_grass minecraft:tall_seagrass minecraft:kelp_plant minecraft:peony minecraft:rose_bush minecraft:lilac minecraft:sunflower:half=lower minecraft:spore_blossom minecraft:cave_vines minecraft:cave_vines_plant minecraft:glow_lichen 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 minecraft:honeycomb_block - - - block.200 = minecraft:white_wool minecraft:orange_wool minecraft:magenta_wool minecraft:light_blue_wool minecraft:yellow_wool minecraft:lime_wool minecraft:pink_wool minecraft:gray_wool minecraft:light_gray_wool minecraft:cyan_wool minecraft:purple_wool minecraft:blue_wool minecraft:brown_wool minecraft:green_wool minecraft:red_wool minecraft:black_wool minecraft:orange_carpet minecraft:magenta_carpet minecraft:light_blue_carpet minecraft:yellow_carpet minecraft:lime_carpet minecraft:pink_carpet minecraft:gray_carpet minecraft:light_gray_carpet minecraft:cyan_carpet minecraft:purple_carpet minecraft:blue_carpet minecraft:brown_carpet minecraft:green_carpet minecraft:red_carpet minecraft:black_carpet - - - block.10010 = minecraft:white_wall_banner minecraft:orange_wall_banner minecraft:magenta_wall_banner minecraft:light_blue_wall_banner minecraft:yellow_wall_banner minecraft:lime_wall_banner minecraft:pink_wall_banner minecraft:gray_wall_banner minecraft:light_gray_wall_banner minecraft:cyan_wall_banner minecraft:purple_wall_banner minecraft:blue_wall_banner minecraft:brown_wall_banner minecraft:green_wall_banner minecraft:red_wall_banner minecraft:black_wall_banner minecraft:white_banner minecraft:orange_banner minecraft:magenta_banner minecraft:light_blue_banner minecraft:yellow_banner minecraft:lime_banner minecraft:pink_banner minecraft:gray_banner minecraft:light_gray_banner minecraft:cyan_banner minecraft:purple_banner minecraft:blue_banner minecraft:brown_banner minecraft:green_banner minecraft:red_banner minecraft:black_banner - - - ## weird blocks - block.10007 = minecraft:sand minecraft:red_sand - - ## grass uwu - block.10008 = minecraft:grass_block:snowy=false - - - - ####### ----- lightsources ----- ####### - - block.10005 = minecraft:sculk_sensor:sculk_sensor_phase=active minecraft:soul_fire minecraft:soul_campfire:lit=true minecraft:cave_vines_plant:berries=true minecraft:soul_lantern minecraft:soul_torch minecraft:soul_wall_torch minecraft:conduit minecraft:beacon minecraft:sea_pickle minecraft:respawn_anchor:charges=4 minecraft:smoker:lit=true minecraft:blast_furnace:lit=true minecraft:furnace:lit=true minecraft:lava_cauldron minecraft:sea_lantern minecraft:cave_vines:berries=true minecraft:glowstone minecraft:torch minecraft:wall_torch minecraft:lava minecraft:fire minecraft:redstone_torch minecraft:redstone_wall_torch minecraft:jack_o_lantern minecraft:magma_block minecraft:redstone_lamp:lit=true minecraft:lantern minecraft:campfire:lit=true minecraft:shroomlight minecraft:end_rod minecraft:end_gateway minecraft:lava minecraft:fire - - ####### ----- reflective translucents / glass ----- ####### - - block.10002 = minecraft:slime_block minecraft:nether_portal minecraft:honey_block ice minecraft:frosted_ice minecraft:black_stained_glass minecraft:black_stained_glass_pane minecraft:blue_stained_glass minecraft:blue_stained_glass_pane minecraft:brown_stained_glass minecraft:brown_stained_glass_pane minecraft:cyan_stained_glass minecraft:cyan_stained_glass_pane minecraft:gray_stained_glass minecraft:gray_stained_glass_pane minecraft:green_stained_glass minecraft:green_stained_glass_pane minecraft:light_blue_stained_glass minecraft:light_blue_stained_glass_pane minecraft:light_gray_stained_glass minecraft:light_gray_stained_glass_pane minecraft:lime_stained_glass minecraft:lime_stained_glass_pane minecraft:magenta_stained_glass minecraft:magenta_stained_glass_pane minecraft:orange_stained_glass minecraft:orange_stained_glass_pane minecraft:pink_stained_glass minecraft:pink_stained_glass_pane minecraft:purple_stained_glass minecraft:purple_stained_glass_pane minecraft:red_stained_glass minecraft:red_stained_glass_pane minecraft:white_stained_glass minecraft:white_stained_glass_pane minecraft:yellow_stained_glass minecraft:yellow_stained_glass_pane minecraft:glass_pane minecraft:glass - - ####### ----- misc ----- ####### - - - block.8 = minecraft:water minecraft:flowing_water - - #else - - #wavy plants, translucent, bottom vertices not moving - - block.10001= 6 31 32 37 38 39 40 59 115 141 142 207 - - #wavy plants (blocks) - - block.10003 = 18 106 161 - - #translucent - - block.10004 = 30 83 104 105 111 175 176 177 - - #reflective surfaces (not including water and ice) - - block.10002=95 160 - -#endif - -layer.translucent=minecraft:glass_pane minecraft:glass -# layer.solid = minecraft:tripwire minecraft:slime_block minecraft:nether_portal minecraft:honey_block minecraft:ice minecraft:black_stained_glass minecraft:black_stained_glass_pane minecraft:blue_stained_glass minecraft:blue_stained_glass_pane minecraft:brown_stained_glass minecraft:brown_stained_glass_pane minecraft:cyan_stained_glass minecraft:cyan_stained_glass_pane minecraft:gray_stained_glass minecraft:gray_stained_glass_pane minecraft:green_stained_glass minecraft:green_stained_glass_pane minecraft:light_blue_stained_glass minecraft:light_blue_stained_glass_pane minecraft:light_gray_stained_glass minecraft:light_gray_stained_glass_pane minecraft:lime_stained_glass minecraft:lime_stained_glass_pane minecraft:magenta_stained_glass minecraft:magenta_stained_glass_pane minecraft:orange_stained_glass minecraft:orange_stained_glass_pane minecraft:pink_stained_glass minecraft:pink_stained_glass_pane minecraft:purple_stained_glass minecraft:purple_stained_glass_pane minecraft:red_stained_glass minecraft:red_stained_glass_pane minecraft:white_stained_glass minecraft:white_stained_glass_pane minecraft:yellow_stained_glass minecraft:yellow_stained_glass_pane minecraft:glass_pane minecraft:glass \ No newline at end of file + layer.translucent = minecraft:glass_pane minecraft:glass + # layer.cutout = minecraft:tripwire minecraft:slime_block minecraft:nether_portal minecraft:honey_block minecraft:ice minecraft:black_stained_glass minecraft:black_stained_glass_pane minecraft:blue_stained_glass minecraft:blue_stained_glass_pane minecraft:brown_stained_glass minecraft:brown_stained_glass_pane minecraft:cyan_stained_glass minecraft:cyan_stained_glass_pane minecraft:gray_stained_glass minecraft:gray_stained_glass_pane minecraft:green_stained_glass minecraft:green_stained_glass_pane minecraft:light_blue_stained_glass minecraft:light_blue_stained_glass_pane minecraft:light_gray_stained_glass minecraft:light_gray_stained_glass_pane minecraft:lime_stained_glass minecraft:lime_stained_glass_pane minecraft:magenta_stained_glass minecraft:magenta_stained_glass_pane minecraft:orange_stained_glass minecraft:orange_stained_glass_pane minecraft:pink_stained_glass minecraft:pink_stained_glass_pane minecraft:purple_stained_glass minecraft:purple_stained_glass_pane minecraft:red_stained_glass minecraft:red_stained_glass_pane minecraft:white_stained_glass minecraft:white_stained_glass_pane minecraft:yellow_stained_glass minecraft:yellow_stained_glass_pane minecraft:glass_pane minecraft:glass \ No newline at end of file diff --git a/shaders/composite.fsh b/shaders/composite.fsh deleted file mode 100644 index e327b58..0000000 --- a/shaders/composite.fsh +++ /dev/null @@ -1,272 +0,0 @@ -#version 120 -//#extension GL_EXT_gpu_shader4 : disable - -#include "/lib/settings.glsl" - - -flat varying vec3 WsunVec; -flat varying vec2 TAA_Offset; -#include "/lib/res_params.glsl" -#include "/lib/Shadow_Params.glsl" - -uniform sampler2D depthtex1; -uniform sampler2D colortex1; -uniform sampler2D colortex6; // Noise -uniform sampler2D colortex8; // Noise -uniform sampler2D colortex15; // Noise -uniform sampler2D shadow; -uniform sampler2D noisetex; -uniform vec3 sunVec; -uniform vec2 texelSize; -uniform float frameTimeCounter; -uniform float rainStrength; -uniform int frameCounter; -uniform mat4 gbufferProjection; -uniform mat4 gbufferProjectionInverse; -uniform mat4 gbufferModelViewInverse; -uniform mat4 gbufferModelView; - -uniform mat4 shadowModelView; -uniform mat4 shadowProjection; -uniform vec3 cameraPosition; -uniform float viewWidth; -uniform float aspectRatio; -uniform float viewHeight; -uniform float far; -uniform float near; - -#define ffstep(x,y) clamp((y - x) * 1e35,0.0,1.0) -#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) -#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) -vec3 toScreenSpace(vec3 p) { - vec4 iProjDiag = vec4(gbufferProjectionInverse[0].x, gbufferProjectionInverse[1].y, gbufferProjectionInverse[2].zw); - vec3 p3 = p * 2. - 1.; - vec4 fragposition = iProjDiag * p3.xyzz + gbufferProjectionInverse[3]; - return fragposition.xyz / fragposition.w; -} -vec3 worldToView(vec3 worldPos) { - vec4 pos = vec4(worldPos, 0.0); - pos = gbufferModelView * pos; - return pos.xyz; -} - -vec2 tapLocation(int sampleNumber,int nb, float nbRot,float jitter,float distort) -{ - float alpha = (sampleNumber+jitter)/nb; - float angle = jitter*6.28+alpha * nbRot * 6.28; - float sin_v, cos_v; - - sin_v = sin(angle); - cos_v = cos(angle); - - return vec2(cos_v, sin_v)*alpha; -} -// float interleaved_gradientNoise(){ -// vec2 coord = gl_FragCoord.xy; -// float noise = fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y)+ 1.0/1.6180339887 * frameCounter) ; -// return noise; -// } -// float interleaved_gradientNoise2(){ -// vec2 alpha = vec2(0.75487765, 0.56984026); -// vec2 coord = vec2(alpha.x * gl_FragCoord.x,alpha.y * gl_FragCoord.y)+ 1.0/1.6180339887 * frameCounter; -// float noise = fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y)); -// return noise; -// } -float interleaved_gradientNoise(){ - vec2 coord = gl_FragCoord.xy + (frameCounter%40000); - // vec2 coord = gl_FragCoord.xy + frameTimeCounter; - // vec2 coord = gl_FragCoord.xy; - float noise = fract( 52.9829189 * fract( (coord.x * 0.06711056) + (coord.y * 0.00583715)) ); - return noise ; -} -vec3 decode (vec2 encn){ - vec3 n = vec3(0.0); - encn = encn * 2.0 - 1.0; - n.xy = abs(encn); - n.z = 1.0 - n.x - n.y; - n.xy = n.z <= 0.0 ? (1.0 - n.yx) * sign(encn) : encn; - return clamp(normalize(n.xyz),-1.0,1.0); -} -vec2 decodeVec2(float a){ - const vec2 constant1 = 65535. / vec2( 256., 65536.); - const float constant2 = 256. / 255.; - return fract( a * constant1 ) * constant2 ; -} -float R2_dither(){ - vec2 alpha = vec2(0.75487765, 0.56984026); - return fract(alpha.x * gl_FragCoord.x + alpha.y * gl_FragCoord.y + 1.0/1.6180339887 * frameCounter); -} -float blueNoise(){ - return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter); -} -vec4 blueNoise(vec2 coord){ - return texelFetch2D(colortex6, ivec2(coord )%512 , 0); -} - -vec2 R2_samples(int n){ - vec2 alpha = vec2(0.75487765, 0.56984026); - return fract(alpha * n); -} -vec2 tapLocation_alternate( - int sampleNumber, - float spinAngle, - int nb, - float nbRot, - float r0 -){ - float alpha = (float(sampleNumber*1.0f + r0) * (1.0 / (nb))); - float angle = alpha * (nbRot * 3.14) ; - - float ssR = alpha + spinAngle*3.14; - float sin_v, cos_v; - - sin_v = sin(angle); - cos_v = cos(angle); - return vec2(cos_v, sin_v)*ssR; -} -vec3 viewToWorld(vec3 viewPosition) { - vec4 pos; - pos.xyz = viewPosition; - pos.w = 0.0; - pos = gbufferModelViewInverse * pos; - return pos.xyz; -} - - -// Emin's and Gri's combined ideas to stop peter panning and light leaking, also has little shadowacne so thats nice -// https://www.complementary.dev/reimagined -// https://github.com/gri573 -void GriAndEminShadowFix( - inout vec3 WorldPos, - vec3 FlatNormal, - float VanillaAO, - float SkyLightmap, - bool Entities -){ - float DistanceOffset = clamp(0.1 + length(WorldPos) / (shadowMapResolution*0.20), 0.0,1.0) ; - vec3 Bias = FlatNormal * DistanceOffset; // adjust the bias thingy's strength as it gets farther away. - - // stop lightleaking - if(SkyLightmap < 0.1 && !Entities) { - WorldPos += mix(Bias, 0.5 * (0.5 - fract(WorldPos + cameraPosition + FlatNormal*0.01 ) ), VanillaAO) ; - }else{ - WorldPos += Bias; - } -} - -void main() { -/* DRAWBUFFERS:3 */ - vec2 texcoord = gl_FragCoord.xy*texelSize; - - float z = texture2D(depthtex1,texcoord).x; - - vec2 tempOffset=TAA_Offset; - - vec4 data = texture2D(colortex1,texcoord); - vec4 dataUnpacked0 = vec4(decodeVec2(data.x),decodeVec2(data.y)); - vec4 dataUnpacked1 = vec4(decodeVec2(data.z),decodeVec2(data.w)); - vec3 normal = mat3(gbufferModelViewInverse) * clamp(worldToView( decode(dataUnpacked0.yw) ),-1.,1.); - vec2 lightmap = dataUnpacked1.yz; - - - // bool lightningBolt = abs(dataUnpacked1.w-0.5) <0.01; - // bool isLeaf = abs(dataUnpacked1.w-0.55) <0.01; - // bool translucent2 = abs(dataUnpacked1.w-0.6) <0.01; // Weak translucency - // bool translucent4 = abs(dataUnpacked1.w-0.65) <0.01; // Weak translucency - bool entities = abs(dataUnpacked1.w-0.45) < 0.01; - bool hand = abs(dataUnpacked1.w-0.75) < 0.01; - // bool blocklights = abs(dataUnpacked1.w-0.8) <0.01; - - - float minshadowfilt = Min_Shadow_Filter_Radius; - float maxshadowfilt = Max_Shadow_Filter_Radius; - - float NdotL = clamp(dot(normal,WsunVec),0.0,1.0); - - // vec4 normalAndAO = texture2D(colortex15,texcoord); - // vec3 FlatNormals = normalAndAO.rgb * 2.0 - 1.0; - // float vanillAO = clamp(normalAndAO.a,0.0,1.0) ; - - float vanillAO = clamp(texture2D(colortex15,texcoord).a,0.0,1.0) ; - - if(lightmap.y < 0.1 && !entities){ - // minshadowfilt *= vanillAO; - maxshadowfilt = mix(minshadowfilt, maxshadowfilt, vanillAO); - } - - - float SpecularTex = texture2D(colortex8,texcoord).z; - float LabSSS = clamp((-64.0 + SpecularTex * 255.0) / 191.0 ,0.0,1.0); - - #ifndef Variable_Penumbra_Shadows - if (LabSSS > 0.0 && !hand && NdotL < 0.001) minshadowfilt += 50; - #endif - - gl_FragData[0] = vec4(minshadowfilt, 0.1, 0.0, 0.0); - - if (z < 1.0 && !hand){ - - vec3 fragpos = toScreenSpace(vec3(texcoord/RENDER_SCALE-vec2(tempOffset)*texelSize*0.5,z)); - - #ifdef Variable_Penumbra_Shadows - - if (NdotL > 0.001 || LabSSS > 0.0) { - - vec3 p3 = mat3(gbufferModelViewInverse) * fragpos + gbufferModelViewInverse[3].xyz; - - // GriAndEminShadowFix(p3, viewToWorld(FlatNormals), vanillAO, lightmap.y, entities); - - vec3 projectedShadowPosition = mat3(shadowModelView) * p3 + shadowModelView[3].xyz; - projectedShadowPosition = diagonal3(shadowProjection) * projectedShadowPosition + shadowProjection[3].xyz; - - //apply distortion - float distortFactor = calcDistort(projectedShadowPosition.xy); - projectedShadowPosition.xy *= distortFactor; - //do shadows only if on shadow map - if (abs(projectedShadowPosition.x) < 1.0-1.5/shadowMapResolution && abs(projectedShadowPosition.y) < 1.0-1.5/shadowMapResolution && abs(projectedShadowPosition.z) < 6.0){ - const float threshMul = max(2048.0/shadowMapResolution*shadowDistance/128.0,0.95); - float distortThresh = (sqrt(1.0-NdotL*NdotL)/NdotL+0.7)/distortFactor; - float diffthresh = distortThresh/6000.0*threshMul; - projectedShadowPosition = projectedShadowPosition * vec3(0.5,0.5,0.5/6.0) + vec3(0.5,0.5,0.5); - - float mult = maxshadowfilt; - float avgBlockerDepth = 0.0; - vec2 scales = vec2(0.0, 120.0 - Max_Filter_Depth); - float blockerCount = 0.0; - float rdMul = distortFactor*(1.0+mult)*d0*k/shadowMapResolution; - float diffthreshM = diffthresh*mult*d0*k/20.; - float avgDepth = 0.0; - - int seed = (frameCounter%40000) + (1+frameCounter); - float randomDir = fract(R2_samples(seed).y + blueNoise(gl_FragCoord.xy).g) * 1.61803398874 ; - - for(int i = 0; i < VPS_Search_Samples; i++){ - - // vec2 offsetS = tapLocation(i,VPS_Search_Samples,1.61803398874 , blueNoise(),0.0); - - vec2 offsetS = tapLocation_alternate(i, 0.0, 7, 20, randomDir); - - float weight = 3.0 + (i+blueNoise() ) *rdMul/SHADOW_FILTER_SAMPLE_COUNT*shadowMapResolution*distortFactor/2.7; - // float d = texelFetch2D( shadow, ivec2((projectedShadowPosition.xy+offsetS*rdMul)*shadowMapResolution),0).x; - float d = texelFetch2D( shadow, ivec2((projectedShadowPosition.xy+offsetS*rdMul)*shadowMapResolution),0).x; - - - float b = smoothstep(weight*diffthresh/2.0, weight*diffthresh, projectedShadowPosition.z - d); - - blockerCount += b; - avgDepth += max(projectedShadowPosition.z - d, 0.0)*1000.; - avgBlockerDepth += d * b; - } - - gl_FragData[0].g = avgDepth / VPS_Search_Samples; - gl_FragData[0].b = blockerCount / VPS_Search_Samples; - if (blockerCount >= 0.9){ - avgBlockerDepth /= blockerCount; - float ssample = max(projectedShadowPosition.z - avgBlockerDepth,0.0)*1500.0; - gl_FragData[0].r = clamp(ssample, scales.x, scales.y)/(scales.y)*(mult-minshadowfilt)+minshadowfilt; - } - } - } - #endif - } -} \ No newline at end of file diff --git a/shaders/composite.vsh b/shaders/composite.vsh deleted file mode 100644 index 667fd18..0000000 --- a/shaders/composite.vsh +++ /dev/null @@ -1,37 +0,0 @@ -#version 120 -//#extension GL_EXT_gpu_shader4 : disable - -#include "/lib/settings.glsl" - -flat varying vec2 TAA_Offset; -flat varying vec3 WsunVec; - -uniform sampler2D colortex4; - -uniform int frameCounter; -uniform float sunElevation; -uniform vec3 sunPosition; -uniform mat4 gbufferModelViewInverse; -#include "/lib/util.glsl" -#include "/lib/res_params.glsl" - -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); -void main() { - TAA_Offset = offsets[frameCounter%8]; - #ifndef TAA - TAA_Offset = vec2(0.0); - #endif - gl_Position = ftransform(); - #ifdef TAA_UPSCALING - gl_Position.xy = (gl_Position.xy*0.5+0.5)*RENDER_SCALE*2.0-1.0; - #endif - - WsunVec = (float(sunElevation > 1e-5)*2-1.)*normalize(mat3(gbufferModelViewInverse) * sunPosition); -} diff --git a/shaders/composite1.fsh b/shaders/composite1.fsh deleted file mode 100644 index bf9082e..0000000 --- a/shaders/composite1.fsh +++ /dev/null @@ -1,1297 +0,0 @@ -#version 120 -//Render sky, volumetric clouds, direct lighting -//#extension GL_EXT_gpu_shader4 : disable - -#include "/lib/settings.glsl" - -const bool colortex5MipmapEnabled = true; -const bool colortex12MipmapEnabled = true; - -// #ifndef Rough_reflections - // const bool colortex4MipmapEnabled = true; -// #endif - -const bool shadowHardwareFiltering = true; - -flat varying vec3 averageSkyCol_Clouds; -flat varying vec4 lightCol; - -flat varying vec3 WsunVec; -flat varying vec2 TAA_Offset; - - -uniform float eyeAltitude; - -flat varying vec3 zMults; -uniform sampler2D colortex0;//clouds -uniform sampler2D colortex1;//albedo(rgb),material(alpha) RGBA16 -// uniform sampler2D colortex4;//Skybox -uniform sampler2D colortex3; -uniform sampler2D colortex5; -uniform sampler2D colortex7; // normal -uniform sampler2D colortex6; // Noise -uniform sampler2D colortex8; // specular -// uniform sampler2D colortex9; // specular -uniform sampler2D colortex11; // specular -uniform sampler2D colortex10; // specular -uniform sampler2D colortex12; // specular -uniform sampler2D colortex13; // specular -uniform sampler2D colortex14; -uniform sampler2D colortex15; // specular -uniform sampler2D colortex16; // specular -uniform sampler2D depthtex1;//depth -uniform sampler2D depthtex0;//depth -uniform sampler2D noisetex;//depth -uniform sampler2DShadow shadow; -varying vec4 normalMat; -uniform int heldBlockLightValue; -uniform int frameCounter; -uniform int isEyeInWater; -uniform float far; -uniform float near; -uniform float frameTimeCounter; -uniform float rainStrength; -uniform mat4 gbufferProjection; -uniform mat4 gbufferProjectionInverse; -uniform mat4 gbufferModelViewInverse; -uniform mat4 gbufferPreviousModelView; -uniform mat4 gbufferPreviousProjection; -uniform vec3 previousCameraPosition; -uniform mat4 shadowModelView; -uniform mat4 shadowProjection; -uniform mat4 gbufferModelView; -// uniform float viewWidth; -// uniform float viewHeight; -uniform int hideGUI; -uniform float aspectRatio; -uniform vec2 texelSize; -uniform vec3 cameraPosition; -uniform vec3 sunVec; -uniform ivec2 eyeBrightnessSmooth; -uniform ivec2 eyeBrightness; - -uniform float screenBrightness; -flat varying vec2 rodExposureDepth; - -flat varying float WinterTimeForSnow; - -// uniform int worldTime; - -#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) - -#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) - - -vec3 toScreenSpace(vec3 p) { - vec4 iProjDiag = vec4(gbufferProjectionInverse[0].x, gbufferProjectionInverse[1].y, gbufferProjectionInverse[2].zw); - vec3 p3 = p * 2. - 1.; - vec4 fragposition = iProjDiag * p3.xyzz + gbufferProjectionInverse[3]; - return fragposition.xyz / fragposition.w; -} - -vec3 toScreenSpacePrev(vec3 p) { - vec4 iProjDiag = vec4(gbufferProjectionInverse[0].x, gbufferProjectionInverse[1].y, gbufferProjectionInverse[2].zw); - vec3 p3 = p * 2. - 1.; - vec4 fragposition = iProjDiag * p3.xyzz + gbufferProjectionInverse[3]; - return fragposition.xyz / fragposition.w; -} -vec3 worldToView(vec3 p3) { - vec4 pos = vec4(p3, 0.0); - pos = gbufferModelView * pos; - return pos.xyz; -} - - -float ld(float dist) { - return (2.0 * near) / (far + near - dist * (far - near)); -} -vec3 ld(vec3 dist) { - return (2.0 * near) / (far + near - dist * (far - near)); -} -vec3 srgbToLinear2(vec3 srgb){ - return mix( - srgb / 12.92, - pow(.947867 * srgb + .0521327, vec3(2.4) ), - step( .04045, srgb ) - ); -} -vec3 blackbody2(float Temp) -{ - float t = pow(Temp, -1.5); - float lt = log(Temp); - - vec3 col = vec3(0.0); - col.x = 220000.0 * t + 0.58039215686; - col.y = 0.39231372549 * lt - 2.44549019608; - col.y = Temp > 6500. ? 138039.215686 * t + 0.72156862745 : col.y; - col.z = 0.76078431372 * lt - 5.68078431373; - col = clamp(col,0.0,1.0); - col = Temp < 1000. ? col * Temp * 0.001 : col; - - return srgbToLinear2(col); -} - -vec3 normVec (vec3 vec){ - return vec*inversesqrt(dot(vec,vec)); -} -vec3 viewToWorld(vec3 viewPosition) { - vec4 pos; - pos.xyz = viewPosition; - pos.w = 0.0; - pos = gbufferModelViewInverse * pos; - return pos.xyz; -} - - -#include "/lib/res_params.glsl" -#include "/lib/Shadow_Params.glsl" -#include "/lib/color_transforms.glsl" -#include "/lib/sky_gradient.glsl" -#include "/lib/stars.glsl" -#include "/lib/volumetricClouds.glsl" -#include "/lib/waterBump.glsl" - -#define OVERWORLD_SHADER -#include "/lib/specular.glsl" -#include "/lib/diffuse_lighting.glsl" - -float lengthVec (vec3 vec){ - return sqrt(dot(vec,vec)); -} -#define fsign(a) (clamp((a)*1e35,0.,1.)*2.-1.) -float triangularize(float dither) -{ - float center = dither*2.0-1.0; - dither = center*inversesqrt(abs(center)); - return clamp(dither-fsign(center),0.0,1.0); -} - - -float interleaved_gradientNoise(){ - // vec2 coord = gl_FragCoord.xy + (frameCounter%40000); - vec2 coord = gl_FragCoord.xy + (frameCounter%40000); - // vec2 coord = gl_FragCoord.xy; - float noise = fract( 52.9829189 * fract( (coord.x * 0.06711056) + (coord.y * 0.00583715)) ); - return noise ; -} - -vec2 R2_dither(){ - vec2 alpha = vec2(0.75487765, 0.56984026); - return vec2(fract(alpha.x * gl_FragCoord.x + alpha.y * gl_FragCoord.y + 1.0/1.6180339887 * (frameCounter%40000)), fract((1.0-alpha.x) * gl_FragCoord.x + (1.0-alpha.y) * gl_FragCoord.y + 1.0/1.6180339887 * frameCounter)); -} -float blueNoise(){ - return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * (frameCounter%40000) ); -} -vec4 blueNoise(vec2 coord){ - return texelFetch2D(colortex6, ivec2(coord)%512, 0) ; -} -vec3 fp10Dither(vec3 color,float dither){ - const vec3 mantissaBits = vec3(6.,6.,5.); - vec3 exponent = floor(log2(color)); - return color + dither*exp2(-mantissaBits)*exp2(exponent); -} - -vec3 decode (vec2 encn){ - vec3 n = vec3(0.0); - encn = encn * 2.0 - 1.0; - n.xy = abs(encn); - n.z = 1.0 - n.x - n.y; - n.xy = n.z <= 0.0 ? (1.0 - n.yx) * sign(encn) : encn; - return clamp(normalize(n.xyz),-1.0,1.0); -} - - -vec2 decodeVec2(float a){ - const vec2 constant1 = 65535. / vec2( 256., 65536.); - const float constant2 = 256. / 255.; - return fract( a * constant1 ) * constant2 ; -} - - -vec2 tapLocation(int sampleNumber,int nb, float nbRot,float jitter,float distort){ - float alpha0 = sampleNumber/nb; - float alpha = (sampleNumber+jitter)/nb; - float angle = jitter*6.28 + alpha * 84.0 * 6.28; - - float sin_v, cos_v; - - sin_v = sin(angle); - cos_v = cos(angle); - - return vec2(cos_v, sin_v)*sqrt(alpha); -} -vec3 toShadowSpaceProjected(vec3 p3){ - p3 = mat3(gbufferModelViewInverse) * p3 + gbufferModelViewInverse[3].xyz; - p3 = mat3(shadowModelView) * p3 + shadowModelView[3].xyz; - p3 = diagonal3(shadowProjection) * p3 + shadowProjection[3].xyz; - return p3; -} - -vec2 R2_samples(int n){ - vec2 alpha = vec2(0.75487765, 0.56984026); - return fract(alpha * n); -} - -vec2 tapLocation(int sampleNumber, float spinAngle,int nb, float nbRot,float r0){ - float alpha = (float(sampleNumber*1.0f + r0) * (1.0 / (nb))); - float angle = alpha * (nbRot * 3.14) + spinAngle*3.14; - - float ssR = alpha; - float sin_v, cos_v; - - sin_v = sin(angle); - cos_v = cos(angle); - - return vec2(cos_v, sin_v)*ssR; -} - - -void waterVolumetrics(inout vec3 inColor, vec3 rayStart, vec3 rayEnd, float estEndDepth, float estSunDepth, float rayLength, float dither, vec3 waterCoefs, vec3 scatterCoef, vec3 ambient, vec3 lightSource, float VdotL){ - inColor *= exp(-rayLength * waterCoefs); //No need to take the integrated value - int spCount = rayMarchSampleCount; - vec3 start = toShadowSpaceProjected(rayStart); - vec3 end = toShadowSpaceProjected(rayEnd); - vec3 dV = (end-start); - //limit ray length at 32 blocks for performance and reducing integration error - //you can't see above this anyway - float maxZ = min(rayLength,12.0)/(1e-8+rayLength); - dV *= maxZ; - - - rayLength *= maxZ; - - float dY = normalize(mat3(gbufferModelViewInverse) * rayEnd).y * rayLength; - estEndDepth *= maxZ; - estSunDepth *= maxZ; - - vec3 wpos = mat3(gbufferModelViewInverse) * rayStart + gbufferModelViewInverse[3].xyz; - vec3 dVWorld = (wpos-gbufferModelViewInverse[3].xyz); - - // float phase = (phaseg(VdotL,0.5) + phaseg(VdotL,0.8)) ; - float phase = (phaseg(VdotL,0.6) + phaseg(VdotL,0.8)) * 0.5; - // float phase = phaseg(VdotL, 0.7); - - vec3 absorbance = vec3(1.0); - vec3 vL = vec3(0.0); - - float expFactor = 11.0; - for (int i=0;i -near) ? - (-near -position.z) / dir.z : far*sqrt(3.) ; - vec3 direction = toClipSpace3(position+dir*rayLength)-clipPosition; //convert to clip space - direction.xyz = direction.xyz/max(abs(direction.x)/texelSize.x,abs(direction.y)/texelSize.y); //fixed step size - vec3 stepv = direction * 3.0 * clamp(MC_RENDER_QUALITY,1.,2.0)*vec3(RENDER_SCALE,1.0); - - vec3 spos = clipPosition*vec3(RENDER_SCALE,1.0); - - // this is to remove the "peterpanning" on things outside the shadowmap with SSS - if(outsideShadowMap){ - spos += stepv*dither - stepv*0.9; - }else{ - spos += stepv*dither ; - } - - - for (int i = 0; i < int(quality); i++) { - spos += stepv; - - float sp = texture2D(depthtex1,spos.xy).x; - - if( sp < spos.z) { - float dist = abs(linZ(sp)-linZ(spos.z))/linZ(spos.z); - if (dist < 0.015 ) return i / quality; - } - } - return 1.0; -} - -vec2 tapLocation_alternate( - int sampleNumber, - float spinAngle, - int nb, - float nbRot, - float r0 -){ - float alpha = (float(sampleNumber*1.0f + r0) * (1.0 / (nb))); - float angle = alpha * (nbRot * 3.14) ; - - float ssR = alpha + spinAngle*3.14; - float sin_v, cos_v; - - sin_v = sin(angle); - cos_v = cos(angle); - - return vec2(cos_v, sin_v)*ssR; -} - - -void ssAO(inout vec3 lighting, inout float sss, vec3 fragpos,float mulfov, vec2 noise, vec3 normal, vec2 texcoord, vec3 ambientCoefs, vec2 lightmap, bool isleaves){ - - ivec2 pos = ivec2(gl_FragCoord.xy); - const float tan70 = tan(70.*3.14/180.); - - float dist = 1.0 + clamp(fragpos.z*fragpos.z/50.0,0,2); // shrink sample size as distance increases - float mulfov2 = gbufferProjection[1][1]/(tan70 * dist); - float maxR2 = fragpos.z*fragpos.z*mulfov2*2.*5/50.0; - - #ifdef Ambient_SSS - // float dist3 = clamp(1.0 - exp( fragpos.z*fragpos.z / -50),0,1); - // float maxR2_2 = mix(10.0, fragpos.z*fragpos.z*mulfov2*2./50.0, dist3); - - float maxR2_2 = fragpos.z*fragpos.z*mulfov2*2./50.0; - float dist3 = clamp(1-exp( fragpos.z*fragpos.z / -50),0,1); - if(isleaves) maxR2_2 = mix(10, maxR2_2, dist3); - #endif - - float rd = mulfov2 * 0.1 ; - - vec2 acc = -(TAA_Offset*(texelSize/2))*RENDER_SCALE ; - - int seed = (frameCounter%40000)*2 + (1+frameCounter); - float randomDir = fract(R2_samples(seed).y + noise.x ) * 1.61803398874 ; - - float n = 0.0; - float occlusion = 0.0; - for (int j = 0; j < 7; j++) { - - vec2 sp = tapLocation_alternate(j, 0.0, 7, 20, randomDir); - - vec2 sampleOffset = sp*rd; - ivec2 offset = ivec2(gl_FragCoord.xy + sampleOffset*vec2(viewWidth,viewHeight*aspectRatio)*RENDER_SCALE); - - if (offset.x >= 0 && offset.y >= 0 && offset.x < viewWidth*RENDER_SCALE.x && offset.y < viewHeight*RENDER_SCALE.y ) { - vec3 t0 = toScreenSpace(vec3(offset*texelSize+acc+0.5*texelSize,texelFetch2D(depthtex1,offset,0).x) * vec3(1.0/RENDER_SCALE, 1.0) ); - vec3 vec = (t0.xyz - fragpos); - float dsquared = dot(vec,vec) ; - - - if (dsquared > 1e-5){ - if (dsquared < maxR2){ - float NdotV = clamp(dot(vec*inversesqrt(dsquared), normalize(normal)),0.,1.); - occlusion += NdotV * clamp(1.0-dsquared/maxR2,0.0,1.0); - } - - #ifdef Ambient_SSS - if(dsquared > maxR2_2){ - float NdotV = 1.0 - clamp(dot(vec*dsquared, normalize(normal)),0.,1.); - sss += max((NdotV - (1.0-NdotV)) * clamp(1.0-maxR2_2/dsquared,0.0,1.0) ,0.0); - } - #endif - - n += 1; - } - } - } - - #ifdef Ambient_SSS - sss = max(1.0 - sss/n, 0.0) ; - #endif - occlusion *= AO_Strength; - occlusion *= 2.0; - occlusion = max(1.0 - occlusion/n, 0.0); - - - lighting = lighting*max(occlusion,pow(lightmap.x,4)); -} - -vec3 rayTrace_GI(vec3 dir,vec3 position,float dither, float quality){ - - vec3 clipPosition = toClipSpace3(position); - float rayLength = ((position.z + dir.z * far*sqrt(3.)) > -near) ? - (-near -position.z) / dir.z : far*sqrt(3.); - vec3 direction = normalize(toClipSpace3(position+dir*rayLength)-clipPosition); //convert to clip space - direction.xy = normalize(direction.xy); - - //get at which length the ray intersects with the edge of the screen - vec3 maxLengths = (step(0.,direction)-clipPosition) / direction; - float mult = maxLengths.y; - - vec3 stepv = direction * mult / quality*vec3(RENDER_SCALE,1.0) * dither; - vec3 spos = clipPosition*vec3(RENDER_SCALE,1.0) ; - - spos.xy += TAA_Offset*texelSize*0.5/RENDER_SCALE; - - float biasdist = clamp(position.z*position.z/50.0,1,2); // shrink sample size as distance increases - - for(int i = 0; i < int(quality); i++){ - spos += stepv; - float sp = sqrt(texelFetch2D(colortex4,ivec2(spos.xy/texelSize/4),0).w/65000.0); - float currZ = linZ(spos.z); - - if( sp < currZ) { - float dist = abs(sp-currZ)/currZ; - if (abs(dist) < biasdist*0.05) return vec3(spos.xy, invLinZ(sp))/vec3(RENDER_SCALE,1.0); - } - spos += stepv; - } - return vec3(1.1); -} -vec3 RT(vec3 dir, vec3 position, float noise, float stepsizes){ - float dist = 1.0 + clamp(position.z*position.z/50.0,0,2); // shrink sample size as distance increases - - float stepSize = stepsizes / dist; - int maxSteps = STEPS; - vec3 clipPosition = toClipSpace3(position); - float rayLength = ((position.z + dir.z * sqrt(3.0)*far) > -sqrt(3.0)*near) ? - (-sqrt(3.0)*near -position.z) / dir.z : sqrt(3.0)*far; - vec3 end = toClipSpace3(position+dir*rayLength) ; - vec3 direction = end-clipPosition ; //convert to clip space - - float len = max(abs(direction.x)/texelSize.x,abs(direction.y)/texelSize.y)/stepSize; - //get at which length the ray intersects with the edge of the screen - vec3 maxLengths = (step(0.,direction)-clipPosition) / direction; - - float mult = min(min(maxLengths.x,maxLengths.y),maxLengths.z)*2000.0; - - vec3 stepv = direction/len; - - int iterations = min(int(min(len, mult*len)-2), maxSteps); - - //Do one iteration for closest texel (good contact shadows) - vec3 spos = clipPosition*vec3(RENDER_SCALE,1.0) ; - spos.xy += TAA_Offset*texelSize*0.5*RENDER_SCALE; - spos += stepv/(stepSize/2); - - float distancered = 1.0 + clamp(position.z*position.z/50.0,0,2); // shrink sample size as distance increases - - for(int i = 0; i < iterations; i++){ - if (spos.x < 0.0 || spos.y < 0.0 || spos.z < 0.0 || spos.x > 1.0 || spos.y > 1.0 || spos.z > 1.0) return vec3(1.1); - spos += stepv*noise; - - float sp = sqrt(texelFetch2D(colortex4,ivec2(spos.xy/ texelSize/4),0).w/65000.0); - float currZ = linZ(spos.z); - - if( sp < currZ) { - float dist = abs(sp-currZ)/currZ; - if (dist <= 0.1) return vec3(spos.xy, invLinZ(sp))/vec3(RENDER_SCALE,1.0); - } - } - return vec3(1.1); -} - -vec3 cosineHemisphereSample(vec2 Xi, float roughness){ - float r = sqrt(Xi.x); - float theta = 2.0 * 3.14159265359 * Xi.y; - - float x = r * cos(theta); - float y = r * sin(theta); - - return vec3(x, y, sqrt(clamp(1.0 - Xi.x,0.,1.))); -} - -vec3 TangentToWorld(vec3 N, vec3 H, float roughness){ - vec3 UpVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); - vec3 T = normalize(cross(UpVector, N)); - vec3 B = cross(N, T); - - return vec3((T * H.x) + (B * H.y) + (N * H.z)); -} - -void ApplySSRT(inout vec3 lighting, vec3 normal,vec2 noise,vec3 fragpos, vec2 lightmaps, vec3 skylightcolor, vec3 torchcolor, bool isGrass){ - int nrays = RAY_COUNT; - - vec3 radiance = vec3(0.0); - - vec3 occlusion = vec3(0.0); - vec3 skycontribution = vec3(0.0); - - vec3 occlusion2 = vec3(0.0); - vec3 skycontribution2 = vec3(0.0); - - float skyLM = 0.0; - vec3 torchlight = vec3(0.0); - DoRTAmbientLighting(torchcolor, lightmaps, skyLM, torchlight, skylightcolor); - - for (int i = 0; i < nrays; i++){ - int seed = (frameCounter%40000)*nrays+i; - vec2 ij = fract(R2_samples(seed) + noise ); - - vec3 rayDir = TangentToWorld(normal, normalize(cosineHemisphereSample(ij,1.0)) ,1.0); - - #ifdef HQ_SSGI - vec3 rayHit = rayTrace_GI( mat3(gbufferModelView) * rayDir, fragpos, blueNoise(), 50.); // ssr rt - #else - vec3 rayHit = RT(mat3(gbufferModelView)*rayDir, fragpos, blueNoise(), 30.); // choc sspt - #endif - - #ifdef SKY_CONTRIBUTION_IN_SSRT - if(isGrass) rayDir.y = clamp(rayDir.y + 0.5,-1,1); - skycontribution = (skyCloudsFromTex(rayDir, colortex4).rgb / 15.0) * skyLM + torchlight; - #else - if(isGrass) rayDir.y = clamp(rayDir.y + 0.25,-1,1); - - skycontribution = skylightcolor * 2 * (max(rayDir.y,0.0)*0.9+0.1) + torchlight; - - #if indirect_effect == 4 - skycontribution2 = skylightcolor + torchlight; - #endif - - #endif - - if (rayHit.z < 1.){ - - #if indirect_effect == 4 - 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; - - if (previousPosition.x > 0.0 && previousPosition.y > 0.0 && previousPosition.x < 1.0 && previousPosition.x < 1.0){ - radiance += (texture2D(colortex5,previousPosition.xy).rgb + skycontribution) * GI_Strength; - } else{ - radiance += skycontribution; - } - - #else - radiance += skycontribution; - #endif - - occlusion += skycontribution * GI_Strength; - - #if indirect_effect == 4 - occlusion2 += skycontribution2 * GI_Strength; - #endif - - } else { - radiance += skycontribution; - } - } - - occlusion *= AO_Strength; - - #if indirect_effect == 4 - lighting = max(radiance/nrays - max(occlusion, occlusion2*0.5)/nrays, 0.0); - #else - lighting = max(radiance/nrays - occlusion/nrays, 0.0); - #endif - -} - - -vec3 SubsurfaceScattering_sun(vec3 albedo, float Scattering, float Density, float lightPos){ - - float labcurve = pow(Density,LabSSS_Curve); - float density = sqrt(30 - labcurve*15); - - vec3 absorbed = max(1.0 - albedo,0.0); - vec3 scatter = exp(absorbed * -sqrt(Scattering * 5)) * exp(Scattering * -density); - - scatter *= labcurve; - scatter *= 0.5 + CustomPhase(lightPos, 1.0,30.0)*20; - - return scatter; - -} - -vec3 SubsurfaceScattering_sky(vec3 albedo, float Scattering, float Density){ - - vec3 absorbed = max(luma(albedo) - albedo,0.0); - vec3 scatter = sqrt(exp(-(absorbed * Scattering * 15))) * (1.0 - Scattering); - - // scatter *= pow(Density,LabSSS_Curve); - scatter *= clamp(1 - exp(Density * -10),0,1); - - return scatter; -} - -void ScreenSpace_SSS(inout float sss, vec3 fragpos, vec2 noise, vec3 normal, bool isleaves){ - ivec2 pos = ivec2(gl_FragCoord.xy); - const float tan70 = tan(70.*3.14/180.); - - float dist = 1.0 + (clamp(fragpos.z*fragpos.z/50.0,0,2)); // shrink sample size as distance increases - float mulfov2 = gbufferProjection[1][1]/(tan70 * dist); - - float maxR2_2 = fragpos.z*fragpos.z*mulfov2*2./50.0; - - float dist3 = clamp(1-exp( fragpos.z*fragpos.z / -50),0,1); - if(isleaves) maxR2_2 = mix(10, maxR2_2, dist3); - - float rd = mulfov2 * 0.1; - - - vec2 acc = -(TAA_Offset*(texelSize/2))*RENDER_SCALE ; - - int seed = (frameCounter%40000)*2 + (1+frameCounter); - float randomDir = fract(R2_samples(seed).y + noise.x ) * 1.61803398874 ; - - float n = 0.0; - for (int j = 0; j < 7 ;j++) { - - vec2 sp = tapLocation_alternate(j, 0.0, 7, 20, randomDir); - vec2 sampleOffset = sp*rd; - ivec2 offset = ivec2(gl_FragCoord.xy + sampleOffset*vec2(viewWidth,viewHeight*aspectRatio)*RENDER_SCALE); - - if (offset.x >= 0 && offset.y >= 0 && offset.x < viewWidth*RENDER_SCALE.x && offset.y < viewHeight*RENDER_SCALE.y ) { - vec3 t0 = toScreenSpace(vec3(offset*texelSize+acc+0.5*texelSize,texelFetch2D(depthtex1,offset,0).x) * vec3(1.0/RENDER_SCALE, 1.0) ); - vec3 vec = t0.xyz - fragpos; - float dsquared = dot(vec,vec); - - if (dsquared > 1e-5){ - if(dsquared > maxR2_2){ - float NdotV = 1.0 - clamp(dot(vec*dsquared, normalize(normal)),0.,1.); - sss += max((NdotV - (1.0-NdotV)) * clamp(1.0-maxR2_2/dsquared,0.0,1.0) ,0.0); - } - n += 1; - } - } - } - sss = max(1.0 - sss/n, 0.0); -} - - -float densityAtPosSNOW(in vec3 pos){ - pos /= 18.; - pos.xz *= 0.5; - vec3 p = floor(pos); - vec3 f = fract(pos); - f = (f*f) * (3.-2.*f); - vec2 uv = p.xz + f.xz + p.y * vec2(0.0,193.0); - vec2 coord = uv / 512.0; - vec2 xy = texture2D(noisetex, coord).yx; - return mix(xy.r,xy.g, f.y); -} - -// Emin's and Gri's combined ideas to stop peter panning and light leaking, also has little shadowacne so thats nice -// https://www.complementary.dev/reimagined -// https://github.com/gri573 -void GriAndEminShadowFix( - inout vec3 WorldPos, - vec3 FlatNormal, - float VanillaAO, - float SkyLightmap, - bool Entities -){ - - float DistanceOffset = clamp(0.1 + length(WorldPos) / (shadowMapResolution*0.20), 0.0,1.0) ; - vec3 Bias = FlatNormal * DistanceOffset; // adjust the bias thingy's strength as it gets farther away. - - vec3 finalBias = Bias; - - // stop lightleaking - vec2 scale = vec2(0.5); scale.y *= 0.5; - vec3 zoomShadow = scale.y - scale.x * fract(WorldPos + cameraPosition + Bias*scale.y); - if(SkyLightmap < 0.1 && !Entities) finalBias = mix(Bias, zoomShadow, clamp(VanillaAO*5,0,1)); - - WorldPos += finalBias; -} - -void Emission( - inout vec3 Lighting, - vec3 Albedo, - float Emission -){ - // if( Emission < 255.0/255.0 ) Lighting = mix(Lighting, Albedo * Emissive_Brightness, pow(Emission, Emissive_Curve)); // old method.... idk why - if( Emission < 255.0/255.0 ) Lighting += (Albedo * Emissive_Brightness) * pow(Emission, Emissive_Curve); -} - -vec3 Moon(vec3 PlayerPos, vec3 WorldSunVec, vec3 Color, inout vec3 occludeStars){ - - float Shape = clamp((exp(1 + -1000 * dot(WorldSunVec+PlayerPos,PlayerPos)) - 1.5),0.0,25.0); - occludeStars *= max(1.0-Shape*5,0.0); - - float shape2 = pow(exp(Shape * -10),0.15) * 255.0; - - vec3 sunNormal = vec3(dot(WorldSunVec+PlayerPos, vec3(shape2,0,0)), dot(PlayerPos+WorldSunVec, vec3(0,shape2,0)), -dot(WorldSunVec, PlayerPos) * 15.0); - - - // even has a little tilt approximation haha.... yeah.... - vec3[8] phase = vec3[8](vec3( -1.0, -0.5, 1.0 ), - vec3( -1.0, -0.5, 0.35 ), - vec3( -1.0, -0.5, 0.2 ), - vec3( -1.0, -0.5, 0.1 ), - vec3( 1.0, 0.25, -1.0 ), - vec3( 1.0, 0.25, 0.1 ), - vec3( 1.0, 0.25, 0.2 ), - vec3( 1.0, 0.25, 0.35 ) - ); - - vec3 LightDir = phase[moonPhase]; - - return Shape * pow(clamp(dot(sunNormal,LightDir)/5,0.0,1.5),5) * Color + clamp(Shape * 4.0 * pow(shape2/200,2.0),0.0,1.0)*0.004; -} - -vec3 applyContrast(vec3 color, float contrast){ - return (color - 0.5) * contrast + 0.5; -} - - -#include "/lib/PhotonGTAO.glsl" - -uniform float detectThunderStorm; -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -void main() { - - vec2 texcoord = gl_FragCoord.xy*texelSize; - - float z0 = texture2D(depthtex0,texcoord).x; - float z = texture2D(depthtex1,texcoord).x; - float TranslucentDepth = clamp( ld(z0)-ld(z0),0.0,1.0); - - vec2 tempOffset=TAA_Offset; - vec3 fragpos = toScreenSpace(vec3(texcoord/RENDER_SCALE-TAA_Offset*texelSize*0.5,z)); - vec3 fragpos_rtshadow = toScreenSpace(vec3(texcoord/RENDER_SCALE,z)); - vec3 fragpos_handfix = fragpos; - - if ( z < 0.56) fragpos_handfix.z /= MC_HAND_DEPTH; // fix lighting on hand - - vec3 p3 = mat3(gbufferModelViewInverse) * fragpos; - vec3 np3 = normVec(p3); - - p3 += gbufferModelViewInverse[3].xyz; - - - float dirtAmount = Dirt_Amount; - vec3 waterEpsilon = vec3(Water_Absorb_R, Water_Absorb_G, Water_Absorb_B); - - vec3 dirtEpsilon = vec3(Dirt_Absorb_R, Dirt_Absorb_G, Dirt_Absorb_B); - vec3 totEpsilon = dirtEpsilon*dirtAmount + waterEpsilon; - vec3 scatterCoef = dirtAmount * vec3(Dirt_Scatter_R, Dirt_Scatter_G, Dirt_Scatter_B) / pi; - - #ifdef AEROCHROME_MODE - totEpsilon *= 10.0; - scatterCoef *= 0.1; - #endif - - float noise = blueNoise(); - - float iswaterstuff = texture2D(colortex7,texcoord).a ; - bool iswater = iswaterstuff > 0.99; - - ////// --------------- UNPACK OPAQUE GBUFFERS --------------- ////// - vec4 data = texture2D(colortex1,texcoord); - vec4 dataUnpacked0 = vec4(decodeVec2(data.x),decodeVec2(data.y)); // albedo, masks - vec4 dataUnpacked1 = vec4(decodeVec2(data.z),decodeVec2(data.w)); // normals, lightmaps - // vec4 dataUnpacked2 = vec4(decodeVec2(data.z),decodeVec2(data.w)); - - vec3 albedo = toLinear(vec3(dataUnpacked0.xz,dataUnpacked1.x)); - vec2 lightmap = dataUnpacked1.yz; - vec3 normal = decode(dataUnpacked0.yw); - - - ////// --------------- UNPACK TRANSLUCENT GBUFFERS --------------- ////// - // vec4 dataTranslucent = texture2D(colortex11,texcoord); - // vec4 dataT_Unpacked0 = vec4(decodeVec2(dataTranslucent.x),decodeVec2(dataTranslucent.y)); - // vec4 dataT_Unpacked1 = vec4(decodeVec2(dataTranslucent.z),decodeVec2(dataTranslucent.w)); - // vec4 dataT_Unpacked2 = vec4(decodeVec2(dataTranslucent.z),decodeVec2(dataTranslucent.w)); - - ////// --------------- UNPACK MISC --------------- ////// - vec4 SpecularTex = texture2D(colortex8,texcoord); - float LabSSS = clamp((-64.0 + SpecularTex.z * 255.0) / 191.0 ,0.0,1.0); - - vec4 normalAndAO = texture2D(colortex15,texcoord); - vec3 FlatNormals = normalAndAO.rgb * 2.0 - 1.0; - vec3 slopednormal = normal; - - #ifdef POM - #ifdef Horrible_slope_normals - - vec3 ApproximatedFlatNormal = normalize(cross(dFdx(p3), dFdy(p3))); // it uses depth that has POM written to it. - - slopednormal = normalize(clamp(normal, ApproximatedFlatNormal*2.0 - 1.0, ApproximatedFlatNormal*2.0 + 1.0) ); - #endif - #endif - - // masks - bool isLeaf = abs(dataUnpacked1.w-0.55) <0.01; - bool lightningBolt = abs(dataUnpacked1.w-0.50) <0.01; - bool entities = abs(dataUnpacked1.w-0.45) < 0.01; - bool hand = abs(dataUnpacked1.w-0.75) < 0.01; - // bool blocklights = abs(dataUnpacked1.w-0.8) <0.01; - bool isGrass = abs(dataUnpacked1.w-0.60) < 0.01; - - float vanilla_AO = normalAndAO.a; - - vec3 filtered = vec3(1.412,1.0,0.0); - if (!hand) filtered = texture2D(colortex3,texcoord).rgb; - - vec3 ambientCoefs = slopednormal/dot(abs(slopednormal),vec3(1.)); - - vec3 DirectLightColor = lightCol.rgb/80.0; - vec3 Direct_SSS = vec3(0.0); - - #ifdef ambientLight_only - DirectLightColor = vec3(0.0); - #endif - - #ifdef OLD_LIGHTLEAK_FIX - DirectLightColor *= pow(clamp(eyeBrightnessSmooth.y/240. + lightmap.y,0.0,1.0),2.0); - #else - if(hand) DirectLightColor *= pow(clamp(eyeBrightnessSmooth.y/240. + lightmap.y,0.0,1.0),2.0); - #endif - - int shadowmapindicator = 0; - float cloudShadow = 1.0; - - vec3 AmbientLightColor = averageSkyCol_Clouds; - vec3 Indirect_SSS = vec3(0.0); - - vec3 debug = vec3(0.0); - - if ( z >= 1.) {//sky - - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////// SKY STUFF //////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - - #ifdef Compositing_Sky - - gl_FragData[0].rgb = vec3(CompSky_R, CompSky_G, CompSky_B); - - #else - - vec3 background = vec3(0.0); - vec3 orbitstar = vec3(np3.x,abs(np3.y),np3.z); - orbitstar.x -= WsunVec.x*0.2; - background += stars(orbitstar) * 10.0 ; - - #ifndef ambientLight_only - background += Moon(np3, -WsunVec, DirectLightColor*20, background); // moon - background += drawSun(dot(lightCol.a * WsunVec, np3),0, DirectLightColor,vec3(0.0)) ; // sun - // vec3 moon = drawSun(dot(lightCol.a * -WsunVec, np3),0, DirectLightColor/5,vec3(0.0)) ; // moon - #endif - - background *= clamp( (np3.y+ 0.02)*5.0 + (eyeAltitude - 319)/800000 ,0.0,1.0); - - vec3 skyTEX = skyFromTex(np3,colortex4)/150.0 * 5.0; - background += skyTEX; - - vec4 cloud = texture2D_bicubic(colortex0,texcoord*CLOUDS_QUALITY); - if(eyeAltitude < 25000) background = background*cloud.a + cloud.rgb; - - gl_FragData[0].rgb = clamp(fp10Dither(background ,triangularize(noise)),0.0,65000.); - - #endif - - }else{//land - - //////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////// DIRECT LIGHTING //////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////// - - vec3 Direct_lighting = vec3(1.0); - - float Shadows = clamp(1.0 - filtered.b,0.0,1.0); - float SHADOWBLOCKERDEPTBH = filtered.y; - - float NdotL = dot(slopednormal,WsunVec); - NdotL = clamp((-15 + NdotL*255.0) / 240.0 ,0.0,1.0); - - - float shadowNDOTL = NdotL; - #ifndef Variable_Penumbra_Shadows - shadowNDOTL += LabSSS; - #endif - - vec3 p3_shadow = mat3(gbufferModelViewInverse) * fragpos_handfix + gbufferModelViewInverse[3].xyz; - - if(!hand) GriAndEminShadowFix(p3_shadow, viewToWorld(FlatNormals), vanilla_AO, lightmap.y, entities); - - vec3 projectedShadowPosition = mat3(shadowModelView) * p3_shadow + shadowModelView[3].xyz; - projectedShadowPosition = diagonal3(shadowProjection) * projectedShadowPosition + shadowProjection[3].xyz; - - //apply distortion - float distortFactor = calcDistort(projectedShadowPosition.xy); - projectedShadowPosition.xy *= distortFactor; - - - bool ShadowBounds = false; - if(shadowDistanceRenderMul > 0.0) ShadowBounds = length(p3_shadow) < max(shadowDistance - 20,0.0); - - if(shadowDistanceRenderMul < 0.0) ShadowBounds = abs(projectedShadowPosition.x) < 1.0-1.5/shadowMapResolution && abs(projectedShadowPosition.y) < 1.0-1.5/shadowMapResolution && abs(projectedShadowPosition.z) < 6.0; - - //do shadows only if on shadow map - if(ShadowBounds){ - if (shadowNDOTL >= -0.001){ - Shadows = 0.0; - projectedShadowPosition = projectedShadowPosition * vec3(0.5,0.5,0.5/6.0) + vec3(0.5); - - #ifdef BASIC_SHADOW_FILTER - float rdMul = filtered.x*distortFactor*d0*k/shadowMapResolution; - - for(int i = 0; i < SHADOW_FILTER_SAMPLE_COUNT; i++){ - vec2 offsetS = tapLocation(i,SHADOW_FILTER_SAMPLE_COUNT,1.618,noise,0.0); - - float isShadow = shadow2D(shadow,projectedShadowPosition + vec3(rdMul*offsetS, 0.0) ).x; - Shadows += isShadow/SHADOW_FILTER_SAMPLE_COUNT; - } - #else - Shadows = shadow2D(shadow, projectedShadowPosition).x; - #endif - } - shadowmapindicator = 1; - } - - bool outsideShadowMap = shadowmapindicator < 1; - - if(outsideShadowMap && !iswater) Shadows = min(max(lightmap.y-0.8, 0.0) * 25,1.0); - - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////// SUN SSS //////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - - #if SSS_TYPE != 0 - #ifndef Variable_Penumbra_Shadows - if(LabSSS > 0 ) { - SHADOWBLOCKERDEPTBH = pow(1.0 - Shadows,2); - } - #endif - - if (outsideShadowMap) SHADOWBLOCKERDEPTBH = 0.0; - - float sunSSS_density = LabSSS; - - #ifndef RENDER_ENTITY_SHADOWS - if(entities) sunSSS_density = 0.0; - #endif - - - Direct_SSS = SubsurfaceScattering_sun(albedo, SHADOWBLOCKERDEPTBH, sunSSS_density, clamp(dot(np3, WsunVec),0.0,1.0)) ; - - if (isEyeInWater == 0) Direct_SSS *= clamp(pow(eyeBrightnessSmooth.y/240. + lightmap.y,2.0) ,0.0,1.0); // light leak fix - #endif - - if (!hand){ - #ifdef SCREENSPACE_CONTACT_SHADOWS - bool dodistantSSS = outsideShadowMap && LabSSS > 0.0; - float screenShadow = rayTraceShadow(lightCol.a*sunVec, fragpos_rtshadow, interleaved_gradientNoise(), dodistantSSS); - screenShadow *= screenShadow; - - Shadows = min(screenShadow, Shadows); - - if (outsideShadowMap) Direct_SSS *= Shadows; - - #else - - if (outsideShadowMap) Direct_SSS = vec3(0.0); - #endif - } - - #if SSS_TYPE != 0 - Direct_SSS *= 1.0-clamp(NdotL*Shadows,0,1); - #endif - - #ifdef VOLUMETRIC_CLOUDS - #ifdef CLOUDS_SHADOWS - cloudShadow = GetCloudShadow(p3); - Shadows *= cloudShadow; - Direct_SSS *= cloudShadow; - #endif - #endif - - //////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////// INDIRECT LIGHTING //////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////// - - vec3 Indirect_lighting = vec3(1.0); - - if(isGrass) ambientCoefs.y = 0.75; - float skylight = clamp(ambientCoefs.y + 0.5,0.25,2.0) * 1.35; - - AmbientLightColor += (lightningEffect * 10) * skylight * pow(lightmap.y,2); - - #ifndef ambientSSS_view - - #if indirect_effect == 2 - skylight = 1.0; - #endif - - #if indirect_effect != 3 || indirect_effect != 4 - Indirect_lighting = DoAmbientLighting(AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.xy, skylight); - #endif - - #else - Indirect_lighting = vec3(0.0); - #endif - - //////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////// UNDER WATER SHADING //////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - - if ((isEyeInWater == 0 && iswater) || (isEyeInWater == 1 && !iswater)){ - - vec3 fragpos0 = toScreenSpace(vec3(texcoord/RENDER_SCALE-TAA_Offset*texelSize*0.5,z0)); - float Vdiff = distance(fragpos,fragpos0); - float VdotU = np3.y; - float estimatedDepth = Vdiff * abs(VdotU); //assuming water plane - estimatedDepth = estimatedDepth; - // make it such that the estimated depth flips to be correct when entering water. - - if (isEyeInWater == 1) estimatedDepth = (1.0-lightmap.y)*16.0; - - float estimatedSunDepth = Vdiff; //assuming water plane - vec3 Absorbtion = exp2(-totEpsilon*estimatedDepth); - - // caustics... - float Direct_caustics = waterCaustics(p3 + cameraPosition, WsunVec) * cloudShadow; - // float Ambient_Caustics = waterCaustics(p3 + cameraPosition, vec3(0.5, 1, 0.5)); - - // apply caustics to the lighting - DirectLightColor *= 1.0 + max(pow(Direct_caustics * 3.0, 2.0),0.0); - // Indirect_lighting *= 0.5 + max(pow(Ambient_Caustics, 2.0),0.0); - - DirectLightColor *= Absorbtion; - if(isEyeInWater == 1 ) Indirect_lighting = (Indirect_lighting/exp2(-estimatedDepth*0.5)) * Absorbtion; - - if(isEyeInWater == 0) DirectLightColor *= max(eyeBrightnessSmooth.y/240., 0.0); - DirectLightColor *= cloudShadow; - } - - //////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////// EFFECTS FOR INDIRECT //////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - - vec3 AO = vec3(1.0); - float SkySSS = 0.0; - - // vanilla AO - #if indirect_effect == 0 - AO = vec3( exp( (vanilla_AO*vanilla_AO) * -5) ) ; - #endif - - // SSAO + vanilla AO - #if indirect_effect == 1 - AO = vec3( exp( (vanilla_AO*vanilla_AO) * -3) ) ; - if (!hand) ssAO(AO, SkySSS, fragpos, 1.0, blueNoise(gl_FragCoord.xy).rg, FlatNormals , texcoord, ambientCoefs, lightmap.xy, isLeaf); - #endif - - // GTAO - #if indirect_effect == 2 - int seed = (frameCounter%40000); - vec2 r2 = fract(R2_samples(seed) + blueNoise(gl_FragCoord.xy).rg); - if (!hand) AO = ambient_occlusion(vec3(texcoord/RENDER_SCALE-TAA_Offset*texelSize*0.5,z), fragpos, worldToView(slopednormal), r2, debug) * vec3(1.0); - #endif - - // RTAO and/or SSGI - #if indirect_effect == 3 || indirect_effect == 4 - AO = vec3(1.0); - if (!hand) ApplySSRT(Indirect_lighting, normal, blueNoise(gl_FragCoord.xy).rg, fragpos, lightmap.xy, AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), isGrass); - #endif - - #ifndef AO_in_sunlight - AO = mix(AO,vec3(1.0), min(NdotL*Shadows,1.0)); - #endif - - Indirect_lighting *= AO; - - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////// SKY SSS //////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - - #ifdef Ambient_SSS - if (!hand){ - - vec3 SSS_forSky = vec3(0.0); - - #if indirect_effect != 1 - ScreenSpace_SSS(SkySSS, fragpos, blueNoise(gl_FragCoord.xy).rg, FlatNormals, isLeaf); - #endif - - vec3 ambientColor = ((AmbientLightColor * ambient_brightness) / 30.0 ) * 1.5; - float skylightmap = pow(lightmap.y,3); - float uplimit = clamp(1.0-pow(clamp(ambientCoefs.y + 0.5,0.0,1.0),2),0,1); - - SSS_forSky = SubsurfaceScattering_sky(albedo, SkySSS, LabSSS); - SSS_forSky *= ambientColor; - SSS_forSky *= skylightmap; - SSS_forSky *= uplimit; - - // Combine with the other SSS - Indirect_SSS += SSS_forSky; - - SSS_forSky = vec3((1.0 - SkySSS) * LabSSS); - SSS_forSky *= ambientColor; - SSS_forSky *= skylightmap; - - ////light up dark parts so its more visible - Indirect_lighting = max(Indirect_lighting, SSS_forSky); - } - #endif - - //////////////////////////////// //////////////////////////////// - //////////////////////////////// FINALIZE //////////////////////////////// - //////////////////////////////// //////////////////////////////// - - #ifdef Seasons - #ifdef Snowy_Winter - - vec3 snow_p3 = p3 + cameraPosition ; - - snow_p3 /= 75.0; - - // float resolution = 1000.; - // snow_p3 = (fract(snow_p3 * resolution) / resolution) - snow_p3; - - float SnowPatches = texture2D(noisetex, snow_p3.xz).r; - // float SnowPatches = densityAtPosSNOW(snow_p3); - - SnowPatches = 1.0 - clamp( exp(pow(SnowPatches,3.5) * -100.0) ,0,1); - SnowPatches *= clamp(sqrt(normal.y),0,1) * clamp(pow(lightmap.y,25)*25,0,1); - - SnowPatches = mix(0.0, SnowPatches, WinterTimeForSnow); - - if(!hand && !iswater && !entities && isEyeInWater == 0){ - albedo = mix(albedo, vec3(0.8,0.9,1.0), SnowPatches); - SpecularTex.rg = mix(SpecularTex.rg, vec2(1,0.05), SnowPatches); - } - #endif - #endif - - Direct_lighting = DoDirectLighting(DirectLightColor, Shadows, NdotL, 0.0); - Direct_SSS *= DirectLightColor; // do this here so it gets underwater absorbtion. - - vec3 FINAL_COLOR = Indirect_lighting + Indirect_SSS + Direct_lighting + Direct_SSS ; - - #ifndef ambientSSS_view - FINAL_COLOR *= albedo; - #endif - - #ifdef Specular_Reflections - // MaterialReflections(FINAL_COLOR, SpecularTex.r, SpecularTex.ggg, albedo, WsunVec, (Shadows*NdotL)*DirectLightColor, lightmap.y, slopednormal, np3, fragpos, vec3(blueNoise(gl_FragCoord.xy).rg, interleaved_gradientNoise()), hand, entities); - - vec3 specNoise = vec3(blueNoise(gl_FragCoord.xy).rg, interleaved_gradientNoise()); - - DoSpecularReflections(FINAL_COLOR, fragpos, np3, WsunVec, specNoise, slopednormal, SpecularTex.r, SpecularTex.g, albedo, DirectLightColor*NdotL*Shadows, lightmap.y, hand); - #endif - - Emission(FINAL_COLOR, albedo, SpecularTex.a); - - if(lightningBolt) FINAL_COLOR.rgb += vec3(77.0, 153.0, 255.0); - - gl_FragData[0].rgb = FINAL_COLOR; - - } - - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////// UNDERWATER FOG //////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - - if (iswater && isEyeInWater == 0){ - vec3 fragpos0 = toScreenSpace(vec3(texcoord/RENDER_SCALE-TAA_Offset*texelSize*0.5,z0)); - float Vdiff = distance(fragpos,fragpos0); - float VdotU = np3.y; - float estimatedDepth = Vdiff * abs(VdotU) ; //assuming water plane - float estimatedSunDepth = estimatedDepth/abs(WsunVec.y); //assuming water plane - - float custom_lightmap_T = clamp(pow(texture2D(colortex14, texcoord).a,3.0),0.0,1.0); - - vec3 lightColVol = lightCol.rgb / 80.; - // if(shadowmapindicator < 1) lightColVol *= clamp((custom_lightmap_T-0.8) * 15,0,1) - - vec3 lightningColor = (lightningEffect / 3) * (max(eyeBrightnessSmooth.y,0)/240.); - vec3 ambientColVol = max((averageSkyCol_Clouds / 30.0) * custom_lightmap_T, vec3(0.2,0.4,1.0) * (MIN_LIGHT_AMOUNT*0.01 + nightVision)) + lightningColor; - - waterVolumetrics(gl_FragData[0].rgb, fragpos0, fragpos, estimatedDepth , estimatedSunDepth, Vdiff, noise, totEpsilon, scatterCoef, ambientColVol, lightColVol, dot(np3, WsunVec)); - } - - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////// MISC EFFECTS //////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - - - #if DOF_QUALITY == 5 - vec3 laserColor; - #if FOCUS_LASER_COLOR == 0 // Red - laserColor = vec3(25, 0, 0); - #elif FOCUS_LASER_COLOR == 1 // Green - laserColor = vec3(0, 25, 0); - #elif FOCUS_LASER_COLOR == 2 // Blue - laserColor = vec3(0, 0, 25); - #elif FOCUS_LASER_COLOR == 3 // Pink - laserColor = vec3(25, 10, 15); - #elif FOCUS_LASER_COLOR == 4 // Yellow - laserColor = vec3(25, 25, 0); - #elif FOCUS_LASER_COLOR == 5 // White - laserColor = vec3(25); - #endif - - #if MANUAL_FOCUS == -2 - float focusDist = rodExposureDepth.y*far; - #elif MANUAL_FOCUS == -1 - float focusDist = mix(pow(512.0, screenBrightness), 512.0 * screenBrightness, 0.25); - #else - float focusDist = MANUAL_FOCUS; - #endif - - if( hideGUI < 1.0) gl_FragData[0].rgb += laserColor * pow( clamp( 1.0-abs(focusDist-abs(fragpos.z)) ,0,1),25) ; - #endif - -/* DRAWBUFFERS:3 */ -} \ No newline at end of file diff --git a/shaders/composite1.vsh b/shaders/composite1.vsh deleted file mode 100644 index 9c984cd..0000000 --- a/shaders/composite1.vsh +++ /dev/null @@ -1,101 +0,0 @@ -#version 120 -//#extension GL_EXT_gpu_shader4 : disable -#include "/lib/settings.glsl" - -flat varying vec3 averageSkyCol_Clouds; -flat varying vec4 lightCol; - -flat varying vec2 rodExposureDepth; - -flat varying vec3 WsunVec; -flat varying float tempOffsets; -flat varying vec2 TAA_Offset; -flat varying vec3 zMults; - -attribute vec4 mc_Entity; -uniform sampler2D colortex4; -varying vec4 lmtexcoord; -// varying float vanilla_ao; - -uniform float far; -uniform float near; -uniform mat4 gbufferModelViewInverse; -uniform vec3 sunPosition; -uniform float sunElevation; -uniform int frameCounter; - -// uniform float sandStorm; - -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); -float luma(vec3 color) { - return dot(color,vec3(0.299, 0.587, 0.114)); -} - -#include "/lib/util.glsl" -#include "/lib/res_params.glsl" - - - - - -#define SEASONS_VSH -#include "/lib/climate_settings.glsl" - -flat varying float WinterTimeForSnow; - - - - -void main() { - gl_Position = ftransform(); - - -// if (gl_FragCoord.x < 1. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 ) - - averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(0,37),0).rgb; - - // averageSkyCol = texelFetch2D(colortex4,ivec2(1,37),0).rgb; - // averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(1,37),0).rgb;; - // sunColor = texelFetch2D(colortex4,ivec2(6,37),0).rgb; - - // moonColor = texelFetch2D(colortex4,ivec2(13,37),0).rgb; - - - vec3 sc = texelFetch2D(colortex4,ivec2(6,37),0).rgb; - lightCol.a = float(sunElevation > 1e-5)*2-1.; - lightCol.rgb = sc; - - WsunVec = lightCol.a*normalize(mat3(gbufferModelViewInverse) *sunPosition); - zMults = vec3((far * near)*2.0,far+near,far-near); - - rodExposureDepth = texelFetch2D(colortex4,ivec2(14,37),0).rg; - rodExposureDepth.y = sqrt(rodExposureDepth.y/65000.0); - - WinterTimeForSnow = 0.0; - - #ifdef Seasons - #ifdef Snowy_Winter - vec3 color1 = vec3(0.0); - vec3 color2 = color1; - YearCycleColor(color1, color2, WinterTimeForSnow); - #endif - #endif - - - TAA_Offset = offsets[frameCounter%8]; - - #ifndef TAA - TAA_Offset = vec2(0.0); - #endif - - #ifdef TAA_UPSCALING - gl_Position.xy = (gl_Position.xy*0.5+0.5)*RENDER_SCALE*2.0-1.0; - #endif -} diff --git a/shaders/composite10.vsh b/shaders/composite10.vsh deleted file mode 100644 index 86ba64b..0000000 --- a/shaders/composite10.vsh +++ /dev/null @@ -1,18 +0,0 @@ -#version 120 -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" -uniform float viewWidth; -uniform float viewHeight; -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - //Improves performances and makes sure bloom radius stays the same at high resolution (>1080p) - vec2 clampedRes = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.)); - gl_Position = ftransform(); - //*0.51 to avoid errors when sampling outside since clearing is disabled - gl_Position.xy = (gl_Position.xy*0.5+0.5)*0.51*BLOOM_QUALITY/clampedRes*vec2(1920.0,1080.)*2.0-1.0; -} diff --git a/shaders/composite11.vsh b/shaders/composite11.vsh deleted file mode 100644 index e5dec68..0000000 --- a/shaders/composite11.vsh +++ /dev/null @@ -1,38 +0,0 @@ -#version 120 -//#extension GL_EXT_gpu_shader4 : disable -#include "/lib/settings.glsl" - - -varying vec2 texcoord; -flat varying vec4 exposure; -flat varying vec2 rodExposureDepth; -uniform sampler2D colortex4; - -uniform vec2 texelSize; -uniform int framemod8; -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - - - gl_Position = ftransform(); - - - texcoord = gl_MultiTexCoord0.xy; - exposure=vec4(texelFetch2D(colortex4,ivec2(10,37),0).r*vec3(FinalR,FinalG,FinalB),texelFetch2D(colortex4,ivec2(10,37),0).r); - rodExposureDepth = texelFetch2D(colortex4,ivec2(14,37),0).rg; - rodExposureDepth.y = sqrt(rodExposureDepth.y/65000.0); -} diff --git a/shaders/composite2.fsh b/shaders/composite2.fsh deleted file mode 100644 index b9610d1..0000000 --- a/shaders/composite2.fsh +++ /dev/null @@ -1,406 +0,0 @@ -#version 120 -//Volumetric fog rendering -//#extension GL_EXT_gpu_shader4 : disable - -#include "/lib/settings.glsl" - -flat varying vec4 lightCol; -flat varying vec3 sunColor; -flat varying vec3 moonColor; - -flat varying vec3 averageSkyCol_Clouds; -flat varying vec3 averageSkyCol; - -flat varying float tempOffsets; -uniform sampler2D noisetex; -uniform sampler2D depthtex0; -uniform sampler2D depthtex1; -uniform sampler2DShadow shadow; -flat varying vec3 refractedSunVec; -flat varying vec3 WsunVec; - -// uniform sampler2D colortex1; -// uniform sampler2D colortex3; -// // uniform sampler2D colortex0; -// uniform sampler2D colortex7; -// uniform sampler2D colortex13; -// uniform sampler2D colortex4; - -uniform vec3 sunVec; -uniform float far; -uniform float near; -uniform int frameCounter; -uniform float aspectRatio; -uniform float rainStrength; -uniform float sunElevation; -uniform ivec2 eyeBrightnessSmooth; -uniform ivec2 eyeBrightness; -uniform float frameTimeCounter; -uniform int isEyeInWater; -uniform vec2 texelSize; - - -// uniform int worldTime; - -#include "/lib/Shadow_Params.glsl" -#include "/lib/color_transforms.glsl" -#include "/lib/color_dither.glsl" -#include "/lib/projections.glsl" -#include "/lib/sky_gradient.glsl" -#include "/lib/res_params.glsl" - - -#define TIMEOFDAYFOG -#include "/lib/volumetricClouds.glsl" -#include "/lib/bokeh.glsl" - - -float blueNoise(){ - return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter); -} -float R2_dither(){ - vec2 alpha = vec2(0.75487765, 0.56984026); - return fract(alpha.x * gl_FragCoord.x + alpha.y * gl_FragCoord.y + 1.0/1.6180339887 * frameCounter) ; -} -float R2_dither2(){ - vec2 alpha = vec2(0.75487765, 0.56984026); - return fract(alpha.x *(1- gl_FragCoord.x) + alpha.y * (1-gl_FragCoord.y) + 1.0/1.6180339887 * frameCounter) ; -} -float interleaved_gradientNoise(){ - vec2 alpha = vec2(0.75487765, 0.56984026); - vec2 coord = vec2(alpha.x * gl_FragCoord.x,alpha.y * gl_FragCoord.y)+ 1.0/1.6180339887 * frameCounter; - float noise = fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y)); - return noise; -} - - - -float waterCaustics(vec3 wPos, vec3 lightSource) { // water waves - - vec2 pos = wPos.xz + (lightSource.xz/lightSource.y*wPos.y); - if(isEyeInWater==1) pos = wPos.xz - (lightSource.xz/lightSource.y*wPos.y); // fix the fucky - vec2 movement = vec2(-0.035*frameTimeCounter); - float caustic = 0.0; - float weightSum = 0.0; - float radiance = 2.39996; - mat2 rotationMatrix = mat2(vec2(cos(radiance), -sin(radiance)), vec2(sin(radiance), cos(radiance))); - - const vec2 wave_size[4] = vec2[]( - vec2(64.), - vec2(32.,16.), - vec2(16.,32.), - vec2(48.) - ); - - for (int i = 0; i < 4; i++){ - pos = rotationMatrix * pos; - - vec2 speed = movement; - float waveStrength = 1.0; - - if( i == 0) { - speed *= 0.15; - waveStrength = 2.0; - } - - float small_wave = texture2D(noisetex, pos / wave_size[i] + speed ).b * waveStrength; - - caustic += max( 1.0-sin( 1.0-pow( 0.5+sin( small_wave*3.0 )*0.5, 25.0) ), 0); - - weightSum -= exp2(caustic*0.1); - } - return caustic / weightSum; -} - -// vec3 normVec (vec3 vec){ -// return vec*inversesqrt(dot(vec,vec)); -// } - -#include "/lib/volumetricFog.glsl" - -void waterVolumetrics(inout vec3 inColor, vec3 rayStart, vec3 rayEnd, float estEyeDepth, float estSunDepth, float rayLength, float dither, vec3 waterCoefs, vec3 scatterCoef, vec3 ambient, vec3 lightSource, float VdotL){ - int spCount = 8; - - vec3 start = toShadowSpaceProjected(rayStart); - vec3 end = toShadowSpaceProjected(rayEnd); - vec3 dV = (end-start); - - //limit ray length at 32 blocks for performance and reducing integration error - //you can't see above this anyway - float maxZ = min(rayLength,32.0)/(1e-8+rayLength); - dV *= maxZ; - vec3 dVWorld = mat3(gbufferModelViewInverse) * (rayEnd - rayStart) * maxZ; - rayLength *= maxZ; - float dY = normalize(mat3(gbufferModelViewInverse) * rayEnd).y * rayLength; - - vec3 progressW = gbufferModelViewInverse[3].xyz+cameraPosition; - vec3 WsunVec = mat3(gbufferModelViewInverse) * sunVec * lightCol.a; - - float phase = (phaseg(VdotL,0.6) + phaseg(VdotL,0.8)) * 0.5; - - vec3 absorbance = vec3(1.0); - vec3 vL = vec3(0.0); - float expFactor = 11.0; - - for (int i=0;i 0.0){ - // rays = RainRays(vec3(0.0), fragpos, length(fragpos), R2_dither(), (avgAmbient*2.0) * 8./150./3., lightCol.rgb, dot(normalize(fragpos), normalize(sunVec) )); - // VL_CLOUDFOG += rays * rainStrength; - // } - - gl_FragData[0] = clamp(VL_CLOUDFOG, 0.0,65000.); - #else - - vec4 VL_Fog = getVolumetricRays(fragpos, blueNoise(), averageSkyCol); - gl_FragData[0] = clamp(VL_Fog,0.0,65000.); - - #endif - - #else - - vec4 VL_Fog = getVolumetricRays(fragpos, blueNoise(), averageSkyCol); - gl_FragData[0] = clamp(VL_Fog,0.0,65000.); - - #endif - } - - if (isEyeInWater == 1){ - - float dirtAmount = Dirt_Amount; - vec3 waterEpsilon = vec3(Water_Absorb_R, Water_Absorb_G, Water_Absorb_B); - vec3 dirtEpsilon = vec3(Dirt_Absorb_R, Dirt_Absorb_G, Dirt_Absorb_B); - vec3 totEpsilon = dirtEpsilon*dirtAmount + waterEpsilon; - vec3 scatterCoef = dirtAmount * vec3(Dirt_Scatter_R, Dirt_Scatter_G, Dirt_Scatter_B); - - #ifdef AEROCHROME_MODE - totEpsilon *= 2.0; - scatterCoef *= 10.0; - #endif - - vec3 fragpos = toScreenSpace(vec3(tc/RENDER_SCALE,z)); - float noise = blueNoise(); - - float estEyeDepth = 1.0-clamp(eyeBrightnessSmooth.y/240.0,0.,1.0); - estEyeDepth = pow(estEyeDepth,3.0) * 32.0; - - vec3 lightColVol = lightCol.rgb / 80.; - - vec3 lightningColor = (lightningEffect / 3) * (max(eyeBrightnessSmooth.y,0)/240.); - vec3 ambientColVol = (averageSkyCol_Clouds/30.0); - - // estEyeDepth = max(Water_Top_Layer - cameraPosition.y,0.0); - - vec3 vl = vec3(0.0); - waterVolumetrics(vl, vec3(0.0), fragpos, estEyeDepth, estEyeDepth, length(fragpos), noise, totEpsilon, scatterCoef, ambientColVol, lightColVol*(1.0-pow(1.0-sunElevation*lightCol.a,5.0)) , dot(normalize(fragpos), normalize(sunVec* lightCol.a ) )); - - gl_FragData[0] = clamp(vec4(vl,1.0),0.000001,65000.); - } -} diff --git a/shaders/composite2.vsh b/shaders/composite2.vsh deleted file mode 100644 index 6fde17c..0000000 --- a/shaders/composite2.vsh +++ /dev/null @@ -1,88 +0,0 @@ -#version 120 -//#extension GL_EXT_gpu_shader4 : disable - -#include "/lib/settings.glsl" - -flat varying vec3 averageSkyCol_Clouds; -flat varying vec3 averageSkyCol; - -flat varying vec4 lightCol; -flat varying vec3 sunColor; -flat varying vec3 moonColor; - -flat varying vec2 TAA_Offset; -flat varying float tempOffsets; - -flat varying vec3 WsunVec; -flat varying vec3 refractedSunVec; - -uniform sampler2D colortex4; -uniform vec3 sunPosition; -uniform float sunElevation; -uniform float rainStrength; -uniform int isEyeInWater; -uniform int frameCounter; -// uniform int worldTime; -uniform mat4 gbufferModelViewInverse; - - -#include "/lib/util.glsl" -#include "/lib/res_params.glsl" -// #include "/lib/biome_specifics.glsl" - - -// uniform float sandStorm; -float luma(vec3 color) { - return dot(color,vec3(0.21, 0.72, 0.07)); -} -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - tempOffsets = HaltonSeq2(frameCounter%10000); - gl_Position = ftransform(); - gl_Position.xy = (gl_Position.xy*0.5+0.5)*(0.01+VL_RENDER_RESOLUTION)*2.0-1.0; - #ifdef TAA_UPSCALING - gl_Position.xy = (gl_Position.xy*0.5+0.5)*RENDER_SCALE*2.0-1.0; - #endif - vec3 sc = texelFetch2D(colortex4,ivec2(6,37),0).rgb; - - - averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(0,37),0).rgb; - averageSkyCol = texelFetch2D(colortex4,ivec2(1,37),0).rgb; - - sunColor = texelFetch2D(colortex4,ivec2(6,37),0).rgb; - moonColor = texelFetch2D(colortex4,ivec2(13,37),0).rgb; - - lightCol.a = float(sunElevation > 1e-5)*2-1.; - lightCol.rgb = sc; - - // lightCol.rgb = mix(lightCol.rgb, luma(lightCol.rgb) * vec3(1.0, 0.01, 0.1) , sandStorm); - - // #ifdef VOLUMETRIC_CLOUDS - // #ifndef VL_Clouds_Shadows - // lightCol.rgb *= (1.0-rainStrength*0.9); - // #endif - // #endif - - - - TAA_Offset = offsets[frameCounter%8]; - #ifndef TAA - TAA_Offset = vec2(0.0); - #endif - - WsunVec = lightCol.a*normalize(mat3(gbufferModelViewInverse) *sunPosition); - refractedSunVec = refract(WsunVec, -vec3(0.0,1.0,0.0), 1.0/1.33333); -} diff --git a/shaders/composite3.fsh b/shaders/composite3.fsh deleted file mode 100644 index 9ac05ec..0000000 --- a/shaders/composite3.fsh +++ /dev/null @@ -1,348 +0,0 @@ -#version 120 -//Horizontal bilateral blur for volumetric fog + Forward rendered objects + Draw volumetric fog -//#extension GL_EXT_gpu_shader4 : disable -#include "/lib/settings.glsl" - -flat varying vec3 zMults; -flat varying vec2 TAA_Offset; - - -uniform sampler2D noisetex; -uniform sampler2D depthtex0; -uniform sampler2D depthtex1; -uniform sampler2D colortex0; -uniform sampler2D colortex1; -uniform sampler2D colortex2; -uniform sampler2D colortex3; -// uniform sampler2D colortex4; -uniform sampler2D colortex5; -uniform sampler2D colortex6; -uniform sampler2D colortex7; -uniform sampler2D colortex8; -uniform sampler2D colortex9; -uniform sampler2D colortex11; -uniform sampler2D colortex13; -uniform sampler2D colortex15; -uniform vec2 texelSize; - -flat varying vec3 noooormal; -flat varying vec4 lightCol; //main light source color (rgb),used light source(1=sun,-1=moon) -flat varying vec3 WsunVec; - -uniform vec3 sunVec; -uniform float frameTimeCounter; -uniform int frameCounter; -uniform float far; -uniform float near; -uniform mat4 gbufferModelViewInverse; -uniform mat4 gbufferModelView; -uniform mat4 gbufferPreviousModelView; -uniform mat4 gbufferProjectionInverse; -uniform mat4 gbufferProjection; -uniform mat4 gbufferPreviousProjection; -uniform vec3 cameraPosition; -uniform vec3 previousCameraPosition; - -uniform int isEyeInWater; -uniform ivec2 eyeBrightnessSmooth; -uniform float rainStrength; -uniform float blindness; -uniform float darknessFactor; -uniform float darknessLightFactor; - - -#include "/lib/waterBump.glsl" -#include "/lib/res_params.glsl" - -#include "/lib/sky_gradient.glsl" -#include "/lib/volumetricClouds.glsl" -// #include "/lib/biome_specifics.glsl" - - - - -#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) -#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) - -float ld(float depth) { - return 1.0 / (zMults.y - depth * zMults.z); // (-depth * (far - near)) = (2.0 * near)/ld - far - near -} -float luma(vec3 color) { - return dot(color,vec3(0.21, 0.72, 0.07)); -} -vec3 toLinear(vec3 sRGB){ - return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); -} -vec3 toScreenSpace(vec3 p) { - vec4 iProjDiag = vec4(gbufferProjectionInverse[0].x, gbufferProjectionInverse[1].y, gbufferProjectionInverse[2].zw); - vec3 p3 = p * 2. - 1.; - vec4 fragposition = iProjDiag * p3.xyzz + gbufferProjectionInverse[3]; - return fragposition.xyz / fragposition.w; -} - - -// #include "/lib/specular.glsl" - - - - -vec4 BilateralUpscale(sampler2D tex, sampler2D depth,vec2 coord,float frDepth, vec2 distort){ - coord = coord; - vec4 vl = vec4(0.0); - float sum = 0.0; - mat3x3 weights; - const ivec2 scaling = ivec2(1.0/VL_RENDER_RESOLUTION); - ivec2 posD = ivec2(coord*VL_RENDER_RESOLUTION + distort)*scaling; - ivec2 posVl = ivec2(coord*VL_RENDER_RESOLUTION + distort); - float dz = zMults.x; - ivec2 pos = (ivec2(gl_FragCoord.xy+frameCounter) % 2 )*2; - - ivec2 tcDepth = posD + ivec2(-2,-2) * scaling + pos * scaling; - float dsample = ld(texelFetch2D(depth,tcDepth,0).r); - float w = abs(dsample-frDepth) < dz ? 1.0 : 1e-5; - vl += texelFetch2D(tex,posVl+ivec2(-2)+pos,0)*w; - sum += w; - - tcDepth = posD + ivec2(-2,0) * scaling + pos * scaling; - dsample = ld(texelFetch2D(depth,tcDepth,0).r); - w = abs(dsample-frDepth) < dz ? 1.0 : 1e-5; - vl += texelFetch2D(tex,posVl+ivec2(-2,0)+pos,0)*w; - sum += w; - - tcDepth = posD + ivec2(0) + pos * scaling; - dsample = ld(texelFetch2D(depth,tcDepth,0).r); - w = abs(dsample-frDepth) < dz ? 1.0 : 1e-5; - vl += texelFetch2D(tex,posVl+ivec2(0)+pos,0)*w; - sum += w; - - tcDepth = posD + ivec2(0,-2) * scaling + pos * scaling; - dsample = ld(texelFetch2D(depth,tcDepth,0).r); - w = abs(dsample-frDepth) < dz ? 1.0 : 1e-5; - vl += texelFetch2D(tex,posVl+ivec2(0,-2)+pos,0)*w; - sum += w; - - return vl/sum; -} - -vec3 decode (vec2 encn){ - vec3 n = vec3(0.0); - encn = encn * 2.0 - 1.0; - n.xy = abs(encn); - n.z = 1.0 - n.x - n.y; - n.xy = n.z <= 0.0 ? (1.0 - n.yx) * sign(encn) : encn; - return clamp(normalize(n.xyz),-1.0,1.0); -} -vec2 decodeVec2(float a){ - const vec2 constant1 = 65535. / vec2( 256., 65536.); - const float constant2 = 256. / 255.; - return fract( a * constant1 ) * constant2 ; -} - -vec3 worldToView(vec3 worldPos) { - vec4 pos = vec4(worldPos, 0.0); - pos = gbufferModelView * pos; - return pos.xyz; -} -float blueNoise(){ - return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter); -} -vec4 blueNoise(vec2 coord){ - return texelFetch2D(colortex6, ivec2(coord )%512 , 0); -} -vec3 normVec (vec3 vec){ - return vec*inversesqrt(dot(vec,vec)); -} - -float interleaved_gradientNoise(){ - vec2 coord = gl_FragCoord.xy; - float noise = fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y)); - return noise; -} -vec3 viewToWorld(vec3 viewPosition) { - vec4 pos; - pos.xyz = viewPosition; - pos.w = 0.0; - pos = gbufferModelViewInverse * pos; - return pos.xyz; -} - -/// thanks stackoverflow https://stackoverflow.com/questions/944713/help-with-pixel-shader-effect-for-brightness-and-contrast#3027595 -void applyContrast(inout vec3 color, float contrast){ - color = ((color - 0.5) * max(contrast, 0.0)) + 0.5; -} -void main() { - /* DRAWBUFFERS:73 */ - - vec2 texcoord = gl_FragCoord.xy*texelSize; - - vec4 trpData = texture2D(colortex7,texcoord); - - bool iswater = trpData.a > 0.99; - float translucentAlpha = trpData.a; - - // vec4 speculartex = texture2D(colortex8,texcoord); // translucents - // float sunlight = speculartex.b; - - //3x3 bilateral upscale from half resolution - float z = texture2D(depthtex0,texcoord).x; - float z2 = texture2D(depthtex1,texcoord).x; - float frDepth = ld(z2); - - // vec4 vl = texture2D(colortex0,texcoord * 0.5); - - ////// --------------- UNPACK OPAQUE GBUFFERS --------------- ////// - vec4 data_opaque = texture2D(colortex1,texcoord); - vec4 dataUnpacked1 = vec4(decodeVec2(data_opaque.z),decodeVec2(data_opaque.w)); // normals, lightmaps - // vec4 dataUnpacked2 = vec4(decodeVec2(data.z),decodeVec2(data.w)); - - bool hand = abs(dataUnpacked1.w-0.75) < 0.01; - vec2 lightmap = dataUnpacked1.yz; - - ////// --------------- UNPACK TRANSLUCENT GBUFFERS --------------- ////// - - vec3 data = texture2D(colortex11,texcoord).rgb; - - vec4 unpack0 = vec4(decodeVec2(data.r),decodeVec2(data.g)) ; - vec4 unpack1 = vec4(decodeVec2(data.b),0,0) ; - - - - vec4 albedo = vec4(unpack0.ba,unpack1.rg); - - vec2 tangentNormals = unpack0.xy*2.0-1.0; - - if(albedo.a <= 0.0) tangentNormals = vec2(0.0); - - vec4 TranslucentShader = texture2D(colortex2,texcoord); - - float lightleakfix = clamp(pow(eyeBrightnessSmooth.y/240.,2) ,0.0,1.0); - - - vec2 tempOffset = TAA_Offset; - vec3 fragpos = toScreenSpace(vec3(texcoord/RENDER_SCALE-vec2(tempOffset)*texelSize*0.5,z)); - vec3 fragpos2 = toScreenSpace(vec3(texcoord/RENDER_SCALE-vec2(tempOffset)*texelSize*0.5,z2)); - - - vec3 p3 = mat3(gbufferModelViewInverse) * fragpos; - vec3 np3 = normVec(p3); - - - vec2 refractedCoord = texcoord; - - /// --- REFRACTION --- /// - #ifdef Refraction - refractedCoord += (tangentNormals * clamp((ld(z2) - ld(z)) * 0.5,0.0,0.15)) * RENDER_SCALE; - // refractedCoord += tangentNormals * 0.1 * RENDER_SCALE; - - float refractedalpha = decodeVec2(texture2D(colortex11,refractedCoord).b).g; - float refractedalpha2 = texture2D(colortex7,refractedCoord).a; - if( refractedalpha <= 0.001 ||z < 0.56) refractedCoord = texcoord; // remove refracted coords on solids - #endif - - /// --- MAIN COLOR BUFFER --- /// - // it is sampled with distorted texcoords - vec3 color = texture2D(colortex3,refractedCoord).rgb; - - #ifdef BorderFog - vec3 sky = skyFromTex(np3,colortex4) / 150. * 5.0; - float fog = 1.0 - clamp(exp(-pow(length(fragpos / far),10.)*4.0) ,0.0,1.0); - float heightFalloff = clamp( pow(abs(np3.y-1.01),5) ,0,1) ; - - if(z < 1.0 && isEyeInWater == 0) color.rgb = mix(color.rgb, sky, fog * heightFalloff* lightleakfix); - #endif - - vec4 vl = BilateralUpscale(colortex0, depthtex1, gl_FragCoord.xy, frDepth, vec2(0.0)); - float bloomyFogMult = 1.0; - - if (TranslucentShader.a > 0.0){ - #ifdef Glass_Tint - if(albedo.a > 0.2) color = color*albedo.rgb + color * clamp(pow(1.0-luma(albedo.rgb),20.),0.0,1.0); - #endif - - color = color*(1.0-TranslucentShader.a) + TranslucentShader.rgb; - - #ifdef BorderFog - if(z < 1.0 && isEyeInWater == 0) color.rgb = mix(color.rgb, sky, fog * heightFalloff * lightleakfix); - #endif - } - - - //cave fog - #ifdef Cave_fog - if (isEyeInWater == 0){ - - // float fogdistfade = clamp( pow(length(fragpos) / far, CaveFogFallOff) ,0.0,1.0); - // float fogfade = clamp( exp(clamp(np3.y * 0.5 + 0.5,0,1) * -3.0) ,0.0,1.0); - - float fogdistfade = clamp( pow(length(fragpos) / far, CaveFogFallOff) ,0.0,1.0); - - fogdistfade = fogdistfade*0.95 + clamp( pow(1.0 - exp((length(fragpos) / far) * -5), 2.0) ,0.0,1.0)*0.05; - float fogfade = clamp( exp(clamp(np3.y * 0.5 + 0.5,0,1) * -3.0) ,0.0,1.0); - - // vl.a *= 1-fogdistfade ; - // float fogdistfade = clamp( pow(1.0 - exp((length(fragpos) / far) * -5), 2.0) ,0.0,1.0); - // // float fogfade = clamp( exp(clamp(np3.y * 0.35 + 0.35,0,1) * -5.0) ,0.0,1.0) * 0.1; - - vec3 cavefogCol = vec3(CaveFogColor_R,CaveFogColor_G,CaveFogColor_B); - - #ifdef Biome_specific_environment - BiomeFogColor(cavefogCol); - #endif - - color.rgb = mix(color.rgb, cavefogCol*fogfade, fogdistfade * (1.0-lightleakfix) * (1.0-darknessFactor) * clamp( 1.5 - np3.y,0.,1)) ; - // color.rgb = vec3(CaveFogColor_R,CaveFogColor_G,CaveFogColor_B)*fogfade ; - } - #endif - - // underwater fog - if (isEyeInWater == 1){ - float dirtAmount = Dirt_Amount; - vec3 waterEpsilon = vec3(Water_Absorb_R, Water_Absorb_G, Water_Absorb_B); - vec3 dirtEpsilon = vec3(Dirt_Absorb_R, Dirt_Absorb_G, Dirt_Absorb_B); - vec3 totEpsilon = dirtEpsilon*dirtAmount + waterEpsilon; - - // float fogfade = clamp( exp(length(fragpos) / -20) ,0.0,1.0); - // vec3 fogfade = clamp( exp( (length(fragpos) / -4) * totEpsilon ) ,0.0,1.0); - vec3 fogfade = clamp( exp( (length(fragpos) / -4) * totEpsilon ) ,0.0,1.0); - fogfade *= 1.0 - clamp( length(fragpos) / far,0.0,1.0); - - color.rgb *= fogfade ; - bloomyFogMult *= 0.4; - } - - // apply VL fog to the scene - color *= vl.a; - color += vl.rgb; - -// bloomy rain effect - float rainDrops = clamp(texture2D(colortex9,texcoord).a, 0.0,1.0); - if(rainDrops > 0.0) bloomyFogMult *= clamp(1.0 - pow(rainDrops*5.0,2),0.0,1.0); - - /// lava. - if (isEyeInWater == 2){ - color.rgb = vec3(4.0,0.5,0.1); - } - - /// powdered snow - if (isEyeInWater == 3){ - color.rgb = mix(color.rgb,vec3(10,15,20),clamp(length(fragpos)*0.5,0.,1.)); - bloomyFogMult = 0.0; - } - - // blidnesss - color.rgb *= mix(1.0,clamp( exp(pow(length(fragpos)*(blindness*0.2),2) * -5),0.,1.) , blindness); - - // darkness effect - color.rgb *= mix(1.0, (1.0-darknessLightFactor*2.0) * clamp(1.0-pow(length(fragpos2)*(darknessFactor*0.07),2.0),0.0,1.0), darknessFactor); - - #ifdef display_LUT - vec2 movedTC = texcoord; - vec3 thingy = texture2D(colortex4,movedTC).rgb / 150. * 5.0; - if(luma(thingy) > 0.0 ) color.rgb = thingy; - #endif - - gl_FragData[0].r = vl.a * bloomyFogMult; // pass fog alpha so bloom can do bloomy fog - - gl_FragData[1].rgb = clamp(color.rgb,0.0,68000.0); - -} \ No newline at end of file diff --git a/shaders/composite3.vsh b/shaders/composite3.vsh deleted file mode 100644 index cc4dad6..0000000 --- a/shaders/composite3.vsh +++ /dev/null @@ -1,55 +0,0 @@ -#version 120 -//#extension GL_EXT_gpu_shader4 : disable - -#include "/lib/settings.glsl" -flat varying vec4 lightCol; -flat varying vec3 WsunVec; - -uniform mat4 gbufferModelViewInverse; -uniform int frameCounter; -uniform vec3 sunPosition; -uniform float sunElevation; - -flat varying vec2 TAA_Offset; -uniform sampler2D colortex4; -flat varying vec3 zMults; -uniform float far; -uniform float near; -#include "/lib/res_params.glsl" -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); - - -flat varying vec3 noooormal; -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - zMults = vec3(1.0/(far * near),far+near,far-near); - gl_Position = ftransform(); - #ifdef TAA_UPSCALING - gl_Position.xy = (gl_Position.xy*0.5+0.5)*RENDER_SCALE*2.0-1.0; - #endif - TAA_Offset = offsets[frameCounter%8]; - - #ifndef TAA - TAA_Offset = vec2(0.0); - #endif - - vec3 sc = texelFetch2D(colortex4,ivec2(6,37),0).rgb; - lightCol.a = float(sunElevation > 1e-5)*2-1.; - lightCol.rgb = sc; - - WsunVec = lightCol.a*normalize(mat3(gbufferModelViewInverse) *sunPosition); - - vec3 noooormal = normalize(gl_NormalMatrix * gl_Normal); -} diff --git a/shaders/composite4.fsh b/shaders/composite4.fsh deleted file mode 100644 index d33eec1..0000000 --- a/shaders/composite4.fsh +++ /dev/null @@ -1,46 +0,0 @@ -#version 120 -//#extension GL_EXT_gpu_shader4 : disable - -#include "/lib/settings.glsl" -uniform sampler2D colortex3; -// Compute 3x3 min max for TAA - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { -/* DRAWBUFFERS:06 */ - ivec2 center = ivec2(gl_FragCoord.xy); - vec3 current = texelFetch2D(colortex3, center, 0).rgb; - vec3 cMin = current; - vec3 cMax = current; - current = texelFetch2D(colortex3, center + ivec2(-1, -1), 0).rgb; - cMin = min(cMin, current); - cMax = max(cMax, current); - current = texelFetch2D(colortex3, center + ivec2(-1, 0), 0).rgb; - cMin = min(cMin, current); - cMax = max(cMax, current); - current = texelFetch2D(colortex3, center + ivec2(-1, 1), 0).rgb; - cMin = min(cMin, current); - cMax = max(cMax, current); - current = texelFetch2D(colortex3, center + ivec2(0, -1), 0).rgb; - cMin = min(cMin, current); - cMax = max(cMax, current); - current = texelFetch2D(colortex3, center + ivec2(0, 1), 0).rgb; - cMin = min(cMin, current); - cMax = max(cMax, current); - current = texelFetch2D(colortex3, center + ivec2(1, -1), 0).rgb; - cMin = min(cMin, current); - cMax = max(cMax, current); - current = texelFetch2D(colortex3, center + ivec2(1, 0), 0).rgb; - cMin = min(cMin, current); - cMax = max(cMax, current); - current = texelFetch2D(colortex3, center + ivec2(1, 1), 0).rgb; - cMin = min(cMin, current); - cMax = max(cMax, current); - gl_FragData[0].rgb = cMax; - gl_FragData[1].rgb = cMin; -} diff --git a/shaders/composite4.vsh b/shaders/composite4.vsh deleted file mode 100644 index 19b0cb5..0000000 --- a/shaders/composite4.vsh +++ /dev/null @@ -1,18 +0,0 @@ -#version 120 -//#extension GL_EXT_gpu_shader4 : disable - -#include "/lib/settings.glsl" - -#include "/lib/res_params.glsl" -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - gl_Position = ftransform(); - #ifdef TAA_UPSCALING - gl_Position.xy = (gl_Position.xy*0.5+0.5)*RENDER_SCALE*2.0-1.0; - #endif -} diff --git a/shaders/composite5.fsh b/shaders/composite5.fsh deleted file mode 100644 index 69b4035..0000000 --- a/shaders/composite5.fsh +++ /dev/null @@ -1,491 +0,0 @@ -#version 120 -//Temporal Anti-Aliasing + Dynamic exposure calculations (vertex shader) - -//#extension GL_EXT_gpu_shader4 : disable - -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" - - -//TAA OPTIONS - -const int noiseTextureResolution = 32; - - -/* -const int colortex0Format = RGBA16F; // low res clouds (deferred->composite2) + low res VL (composite5->composite15) -const int colortex1Format = RGBA16; //terrain gbuffer (gbuffer->composite2) -const int colortex2Format = RGBA16F; //forward + transparencies (gbuffer->composite4) -const int colortex3Format = R11F_G11F_B10F; //frame buffer + bloom (deferred6->final) -const int colortex4Format = RGBA16F; //light values and skyboxes (everything) - - - -const int colortex6Format = R11F_G11F_B10F; //additionnal buffer for bloom (composite3->final) -const int colortex7Format = RGBA8; //Final output, transparencies id (gbuffer->composite4) -const int colortex8Format = RGBA16F; //Final output, transparencies id (gbuffer->composite4) -const int colortex9Format = RGBA8; //Final output, transparencies id (gbuffer->composite4) -const int colortex10Format = RGBA16F; //FREE BUFFER - -const int colortex11Format = RGBA16; -const int colortex13Format = RGBA8; -const int colortex14Format = RGBA8; -const int colortex15Format = RGBA8; // flat normals and vanilla AO -*/ - -//no need to clear the buffers, saves a few fps - -/* -const bool colortex0Clear = false; -const bool colortex1Clear = false; -const bool colortex2Clear = true; -const bool colortex3Clear = false; -const bool colortex4Clear = false; -const bool colortex5Clear = false; -const bool colortex6Clear = false; -const bool colortex7Clear = false; -*/ - - - -#ifdef SCREENSHOT_MODE - /* - const int colortex5Format = RGBA32F; //TAA buffer (everything) - */ -#else - /* - const int colortex5Format = R11F_G11F_B10F; //TAA buffer (everything) - */ -#endif - -varying vec2 texcoord; -flat varying float exposureA; -flat varying float tempOffsets; - -uniform sampler2D colortex0; -uniform sampler2D colortex1; -uniform sampler2D colortex3; -uniform sampler2D colortex5; -uniform sampler2D colortex6; -// uniform sampler2D colortex10; -uniform sampler2D colortex13; - -uniform sampler2D depthtex0; -uniform sampler2D depthtex1; - -uniform vec2 texelSize; -uniform float frameTimeCounter; -uniform float viewHeight; -uniform float viewWidth; -uniform int frameCounter; -uniform int framemod8; -uniform vec3 previousCameraPosition; -uniform mat4 gbufferPreviousModelView; - -uniform int hideGUI; - -#define fsign(a) (clamp((a)*1e35,0.,1.)*2.-1.) - -#include "/lib/projections.glsl" - - -float luma(vec3 color) { - return dot(color,vec3(0.21, 0.72, 0.07)); -} -float interleaved_gradientNoise(){ - return fract(52.9829189*fract(0.06711056*gl_FragCoord.x + 0.00583715*gl_FragCoord.y)+tempOffsets); -} -float triangularize(float dither) -{ - float center = dither*2.0-1.0; - dither = center*inversesqrt(abs(center)); - return clamp(dither-fsign(center),0.0,1.0); -} -vec3 fp10Dither(vec3 color,float dither){ - const vec3 mantissaBits = vec3(6.,6.,5.); - vec3 exponent = floor(log2(color)); - return color + dither*exp2(-mantissaBits)*exp2(exponent); -} - - -//returns the projected coordinates of the closest point to the camera in the 3x3 neighborhood -vec3 closestToCamera5taps(vec2 texcoord, sampler2D depth) -{ - vec2 du = vec2(texelSize.x*2., 0.0); - vec2 dv = vec2(0.0, texelSize.y*2.); - - vec3 dtl = vec3(texcoord,0.) + vec3(-texelSize, texture2D(depth, texcoord - dv - du).x); - vec3 dtr = vec3(texcoord,0.) + vec3( texelSize.x, -texelSize.y, texture2D(depth, texcoord - dv + du).x); - vec3 dmc = vec3(texcoord,0.) + vec3( 0.0, 0.0, texture2D(depth, texcoord).x); - vec3 dbl = vec3(texcoord,0.) + vec3(-texelSize.x, texelSize.y, texture2D(depth, texcoord + dv - du).x); - vec3 dbr = vec3(texcoord,0.) + vec3( texelSize.x, texelSize.y, texture2D(depth, texcoord + dv + du).x); - - vec3 dmin = dmc; - dmin = dmin.z > dtr.z? dtr : dmin; - dmin = dmin.z > dtl.z? dtl : dmin; - dmin = dmin.z > dbl.z? dbl : dmin; - dmin = dmin.z > dbr.z? dbr : dmin; - - #ifdef TAA_UPSCALING - dmin.xy = dmin.xy/RENDER_SCALE; - #endif - - return dmin; -} - -//Modified texture interpolation from inigo quilez -vec4 smoothfilter(in sampler2D tex, in vec2 uv) -{ - vec2 textureResolution = vec2(viewWidth,viewHeight); - uv = uv*textureResolution + 0.5; - vec2 iuv = floor( uv ); - vec2 fuv = fract( uv ); - uv = iuv + fuv*fuv*fuv*(fuv*(fuv*6.0-15.0)+10.0); - uv = (uv - 0.5)/textureResolution; - return texture2D( tex, uv); -} -//Due to low sample count we "tonemap" the inputs to preserve colors and smoother edges -vec3 weightedSample(sampler2D colorTex, vec2 texcoord){ - vec3 wsample = texture2D(colorTex,texcoord).rgb*exposureA; - return wsample/(1.0+luma(wsample)); - -} - - -//from : https://gist.github.com/TheRealMJP/c83b8c0f46b63f3a88a5986f4fa982b1 -vec4 SampleTextureCatmullRom(sampler2D tex, vec2 uv, vec2 texSize ) -{ - // We're going to sample a a 4x4 grid of texels surrounding the target UV coordinate. We'll do this by rounding - // down the sample location to get the exact center of our "starting" texel. The starting texel will be at - // location [1, 1] in the grid, where [0, 0] is the top left corner. - vec2 samplePos = uv * texSize; - vec2 texPos1 = floor(samplePos - 0.5) + 0.5; - - // Compute the fractional offset from our starting texel to our original sample location, which we'll - // feed into the Catmull-Rom spline function to get our filter weights. - vec2 f = samplePos - texPos1; - - // Compute the Catmull-Rom weights using the fractional offset that we calculated earlier. - // These equations are pre-expanded based on our knowledge of where the texels will be located, - // which lets us avoid having to evaluate a piece-wise function. - vec2 w0 = f * ( -0.5 + f * (1.0 - 0.5*f)); - vec2 w1 = 1.0 + f * f * (-2.5 + 1.5*f); - vec2 w2 = f * ( 0.5 + f * (2.0 - 1.5*f) ); - vec2 w3 = f * f * (-0.5 + 0.5 * f); - - // Work out weighting factors and sampling offsets that will let us use bilinear filtering to - // simultaneously evaluate the middle 2 samples from the 4x4 grid. - vec2 w12 = w1 + w2; - vec2 offset12 = w2 / (w1 + w2); - - // Compute the final UV coordinates we'll use for sampling the texture - vec2 texPos0 = texPos1 - vec2(1.0); - vec2 texPos3 = texPos1 + vec2(2.0); - vec2 texPos12 = texPos1 + offset12; - - texPos0 *= texelSize; - texPos3 *= texelSize; - texPos12 *= texelSize; - - vec4 result = vec4(0.0); - result += texture2D(tex, vec2(texPos0.x, texPos0.y)) * w0.x * w0.y; - result += texture2D(tex, vec2(texPos12.x, texPos0.y)) * w12.x * w0.y; - result += texture2D(tex, vec2(texPos3.x, texPos0.y)) * w3.x * w0.y; - - result += texture2D(tex, vec2(texPos0.x, texPos12.y)) * w0.x * w12.y; - result += texture2D(tex, vec2(texPos12.x, texPos12.y)) * w12.x * w12.y; - result += texture2D(tex, vec2(texPos3.x, texPos12.y)) * w3.x * w12.y; - - result += texture2D(tex, vec2(texPos0.x, texPos3.y)) * w0.x * w3.y; - result += texture2D(tex, vec2(texPos12.x, texPos3.y)) * w12.x * w3.y; - result += texture2D(tex, vec2(texPos3.x, texPos3.y)) * w3.x * w3.y; - - return result; -} -float R2_dither(){ - vec2 alpha = vec2(0.75487765, 0.56984026); - return fract(alpha.x * gl_FragCoord.x + alpha.y * gl_FragCoord.y + 1.0/1.6180339887 * frameCounter); -} -//approximation from SMAA presentation from siggraph 2016 -vec3 FastCatmulRom(sampler2D colorTex, vec2 texcoord, vec4 rtMetrics, float sharpenAmount) -{ - vec2 position = rtMetrics.zw * texcoord; - vec2 centerPosition = floor(position - 0.5) + 0.5; - vec2 f = position - centerPosition; - vec2 f2 = f * f; - vec2 f3 = f * f2; - - float c = sharpenAmount; - vec2 w0 = -c * f3 + 2.0 * c * f2 - c * f; - vec2 w1 = (2.0 - c) * f3 - (3.0 - c) * f2 + 1.0; - vec2 w2 = -(2.0 - c) * f3 + (3.0 - 2.0 * c) * f2 + c * f; - vec2 w3 = c * f3 - c * f2; - - vec2 w12 = w1 + w2; - vec2 tc12 = rtMetrics.xy * (centerPosition + w2 / w12); - vec3 centerColor = texture2D(colorTex, vec2(tc12.x, tc12.y)).rgb; - - vec2 tc0 = rtMetrics.xy * (centerPosition - 1.0); - vec2 tc3 = rtMetrics.xy * (centerPosition + 2.0); - vec4 color = vec4(texture2D(colorTex, vec2(tc12.x, tc0.y )).rgb, 1.0) * (w12.x * w0.y ) + - vec4(texture2D(colorTex, vec2(tc0.x, tc12.y)).rgb, 1.0) * (w0.x * w12.y) + - vec4(centerColor, 1.0) * (w12.x * w12.y) + - vec4(texture2D(colorTex, vec2(tc3.x, tc12.y)).rgb, 1.0) * (w3.x * w12.y) + - vec4(texture2D(colorTex, vec2(tc12.x, tc3.y )).rgb, 1.0) * (w12.x * w3.y ); - return color.rgb/color.a; - -} - -vec3 clip_aabb(vec3 q,vec3 aabb_min, vec3 aabb_max) - { - vec3 p_clip = 0.5 * (aabb_max + aabb_min); - vec3 e_clip = 0.5 * (aabb_max - aabb_min) + 0.00000001; - - vec3 v_clip = q - vec3(p_clip); - vec3 v_unit = v_clip.xyz / e_clip; - vec3 a_unit = abs(v_unit); - float ma_unit = max(a_unit.x, max(a_unit.y, a_unit.z)); - - if (ma_unit > 1.0) - return vec3(p_clip) + v_clip / ma_unit; - else - return q; - } -vec3 toClipSpace3Prev(vec3 viewSpacePosition) { - return projMAD(gbufferPreviousProjection, viewSpacePosition) / -viewSpacePosition.z * 0.5 + 0.5; -} - -vec3 tonemap(vec3 col){ - return col/(1+luma(col)); -} -vec3 invTonemap(vec3 col){ - return col/(1-luma(col)); -} -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); - - - -// float maxOf(vec2 v) { return max(v.x, v.y); } -// float maxOf(vec3 v) { return max(v.x, max(v.y, v.z)); } -// float maxOf(vec4 v) { return max(v.x, max(v.y, max(v.z, v.w))); } -// const float eps = 1e-6; - -// vec3 reproject(vec3 screenPos, sampler2D velocitySampler) { -// vec3 velocity = texelFetch(velocitySampler, ivec2(screenPos.xy), 0).xyz; - -// if (maxOf(abs(velocity)) < r) { -// return reproject(screenPos); -// } else { -// vec3 pos = screenToViewSpace(screenPos, false); -// pos = pos - velocity; -// pos = toScreenSpace(pos, false); - -// return pos; -// } -// } -vec3 worldToView(vec3 p3) { - vec4 pos = vec4(p3, 0.0); - pos = gbufferModelView * pos; - return pos.xyz; -} - -vec3 viewToWorld(vec3 viewPosition) { - vec4 pos; - pos.xyz = viewPosition; - pos.w = 0.0; - pos = gbufferModelViewInverse * pos; - return pos.xyz; -} -vec3 projectAndDivide(mat4 projectionMatrix, vec3 position){ - vec4 homogeneousPos = projectionMatrix * vec4(position, 1.0); - return homogeneousPos.xyz / homogeneousPos.w; -} -; -vec3 TAA_hq(bool hand, bool istranslucent, vec3 EntityVelocity, inout vec3 DEBUG){ - #ifdef TAA_UPSCALING - vec2 adjTC = clamp(texcoord*RENDER_SCALE, vec2(0.0),RENDER_SCALE-texelSize*2.); - #else - vec2 adjTC = texcoord; - #endif - - //use velocity from the nearest texel from camera in a 3x3 box in order to improve edge quality in motion - #ifdef CLOSEST_VELOCITY - vec3 closestToCamera = closestToCamera5taps(adjTC, depthtex0); - #endif - // if( EntityVelocity > vec3(0.0) ) closestToCamera = closestToCamera - EntityVelocity; - - #ifndef CLOSEST_VELOCITY - vec3 closestToCamera = vec3(texcoord,texture2D(depthtex1,adjTC).x); - #endif - - //reproject previous frame - vec3 fragposition = toScreenSpace(closestToCamera); - fragposition = mat3(gbufferModelViewInverse) * fragposition + gbufferModelViewInverse[3].xyz + (cameraPosition - previousCameraPosition); - - vec3 previousPosition = mat3(gbufferPreviousModelView) * fragposition + gbufferPreviousModelView[3].xyz; - previousPosition = toClipSpace3Prev(previousPosition) ; - - - - - vec2 velocity = previousPosition.xy - closestToCamera.xy; - previousPosition.xy = texcoord + velocity ; - // previousPosition -= abs(EntityVelocity); - - DEBUG = previousPosition; - - //reject history if off-screen and early exit - if (previousPosition.x < 0.0 || previousPosition.y < 0.0 || previousPosition.x > 1.0 || previousPosition.y > 1.0) - return smoothfilter(colortex3, adjTC + offsets[framemod8]*texelSize*0.5).xyz; - - #ifdef TAA_UPSCALING - vec3 albedoCurrent0 = smoothfilter(colortex3, adjTC + offsets[framemod8]*texelSize*0.5).xyz; - // Interpolating neighboorhood clampling boundaries between pixels - vec3 cMax = texture2D(colortex0, adjTC).rgb; - vec3 cMin = texture2D(colortex6, adjTC).rgb; - #else - vec3 albedoCurrent0 = texture2D(colortex3, adjTC).rgb; - vec3 albedoCurrent1 = texture2D(colortex3, adjTC + vec2(texelSize.x,texelSize.y)).rgb; - vec3 albedoCurrent2 = texture2D(colortex3, adjTC + vec2(texelSize.x,-texelSize.y)).rgb; - vec3 albedoCurrent3 = texture2D(colortex3, adjTC + vec2(-texelSize.x,-texelSize.y)).rgb; - vec3 albedoCurrent4 = texture2D(colortex3, adjTC + vec2(-texelSize.x,texelSize.y)).rgb; - vec3 albedoCurrent5 = texture2D(colortex3, adjTC + vec2(0.0,texelSize.y)).rgb; - vec3 albedoCurrent6 = texture2D(colortex3, adjTC + vec2(0.0,-texelSize.y)).rgb; - vec3 albedoCurrent7 = texture2D(colortex3, adjTC + vec2(-texelSize.x,0.0)).rgb; - vec3 albedoCurrent8 = texture2D(colortex3, adjTC + vec2(texelSize.x,0.0)).rgb; - //Assuming the history color is a blend of the 3x3 neighborhood, we clamp the history to the min and max of each channel in the 3x3 neighborhood - vec3 cMax = max(max(max(albedoCurrent0,albedoCurrent1),albedoCurrent2),max(albedoCurrent3,max(albedoCurrent4,max(albedoCurrent5,max(albedoCurrent6,max(albedoCurrent7,albedoCurrent8)))))); - vec3 cMin = min(min(min(albedoCurrent0,albedoCurrent1),albedoCurrent2),min(albedoCurrent3,min(albedoCurrent4,min(albedoCurrent5,min(albedoCurrent6,min(albedoCurrent7,albedoCurrent8)))))); - albedoCurrent0 = smoothfilter(colortex3, adjTC + offsets[framemod8]*texelSize*0.5).rgb; - #endif - - #ifndef NO_CLIP - vec3 albedoPrev = max(FastCatmulRom(colortex5, previousPosition.xy,vec4(texelSize, 1.0/texelSize), 0.75).xyz, 0.0); - vec3 finalcAcc = clamp(albedoPrev,cMin,cMax); - - //Increases blending factor when far from AABB and in motion, reduces ghosting - float isclamped = distance(albedoPrev,finalcAcc)/luma(albedoPrev) * 0.5; - float movementRejection = (0.12+isclamped)*clamp(length(velocity/texelSize),0.0,1.0); - - float test = 0.05; - if(hand) movementRejection *= 5; - if(istranslucent) test = 0.1; - - //Blend current pixel with clamped history, apply fast tonemap beforehand to reduce flickering - // vec3 supersampled = invTonemap(mix(tonemap(finalcAcc),tonemap(albedoCurrent0),clamp(BLEND_FACTOR + movementRejection, min(luma(motionVector) *255,1.0),1.))); - - vec3 supersampled = invTonemap(mix(tonemap(finalcAcc),tonemap(albedoCurrent0),clamp(BLEND_FACTOR + movementRejection, test,1.))); - #endif - - - #ifdef NO_CLIP - vec3 albedoPrev = texture2D(colortex5, previousPosition.xy).xyz; - vec3 supersampled = mix(albedoPrev,albedoCurrent0,clamp(0.05,0.,1.)); - #endif - - //De-tonemap - return supersampled; -} - - -vec3 decode (vec2 encn){ - vec3 n = vec3(0.0); - encn = encn * 2.0 - 1.0; - n.xy = abs(encn); - n.z = 1.0 - n.x - n.y; - n.xy = n.z <= 0.0 ? (1.0 - n.yx) * sign(encn) : encn; - return clamp(normalize(n.xyz),-1.0,1.0); -} -vec2 decodeVec2(float a){ - const vec2 constant1 = 65535. / vec2( 256., 65536.); - const float constant2 = 256. / 255.; - return fract( a * constant1 ) * constant2 ; -} -vec2 R2_samples(int n){ - vec2 alpha = vec2(0.75487765, 0.56984026); - return fract(alpha * n)*2.-1.0; -} - -vec4 TAA_hq_render(){ - #ifdef TAA_UPSCALING - vec2 adjTC = clamp(texcoord*RENDER_SCALE, vec2(0.0),RENDER_SCALE-texelSize*2.); - #else - vec2 adjTC = texcoord; - #endif - - //use velocity from the nearest texel from camera in a 3x3 box in order to improve edge quality in motion - #ifdef CLOSEST_VELOCITY - vec3 closestToCamera = closestToCamera5taps(adjTC,depthtex0); - #endif - - #ifndef CLOSEST_VELOCITY - vec3 closestToCamera = vec3(texcoord,texture2D(depthtex0,adjTC).x); - #endif - - //reproject previous frame - vec3 fragposition = toScreenSpace(closestToCamera); - fragposition = mat3(gbufferModelViewInverse) * fragposition + gbufferModelViewInverse[3].xyz + (cameraPosition - previousCameraPosition); - vec3 previousPosition = mat3(gbufferPreviousModelView) * fragposition + gbufferPreviousModelView[3].xyz; - previousPosition = toClipSpace3Prev(previousPosition); - vec2 velocity = previousPosition.xy - closestToCamera.xy; - previousPosition.xy = texcoord + velocity; - - // //reject history if off-screen and early exit - if (previousPosition.x < 0.0 || previousPosition.y < 0.0 || previousPosition.x > 1.0 || previousPosition.y > 1.0) - return vec4(smoothfilter(colortex3, adjTC + R2_samples(frameCounter)*texelSize*0.5).xyz, 1.0); - - vec3 albedoCurrent0 = smoothfilter(colortex3, adjTC + R2_samples(frameCounter)*texelSize*0.5).xyz; - - float rej = 0.0; - vec4 albedoPrev = texture2D(colortex5, previousPosition.xy); - vec3 supersampled = albedoPrev.rgb * albedoPrev.a + albedoCurrent0; - - if (length(velocity) > 1e-6) return vec4(albedoCurrent0,1.0); - return vec4(supersampled/(albedoPrev.a+1.0), albedoPrev.a+1.0); -} - -void main() { - -/* DRAWBUFFERS:5 */ - - gl_FragData[0].a = 1.0; - - #ifdef SCREENSHOT_MODE - - if(hideGUI > 0) { - vec4 color = TAA_hq_render(); - gl_FragData[0] = color; - } else { - vec3 color = clamp(fp10Dither(texture2D(colortex3,texcoord).rgb,triangularize(interleaved_gradientNoise())),0.,65000.); - gl_FragData[0].rgb = color; - } - - #else - - #ifdef TAA - vec4 data = texture2D(colortex1,texcoord* RENDER_SCALE); // terraom - vec4 dataUnpacked1 = vec4(decodeVec2(data.z),decodeVec2(data.w)); - bool hand = abs(dataUnpacked1.w-0.75) < 0.01; - bool translucentCol = texture2D(colortex13,texcoord * RENDER_SCALE).a > 0.0; // translucents - vec3 color = vec3(0.0); - - vec3 DEBUG = vec3(0.0); - color += TAA_hq(hand, translucentCol, vec3(0.0), DEBUG); - - - gl_FragData[0].rgb = clamp(fp10Dither(color ,triangularize(R2_dither())),6.11*1e-5,65000.0); - - #else - vec3 color = clamp(fp10Dither(texture2D(colortex3,texcoord).rgb,triangularize(interleaved_gradientNoise())),0.,65000.); - gl_FragData[0].rgb = color; - #endif - - #endif -} \ No newline at end of file diff --git a/shaders/composite5.vsh b/shaders/composite5.vsh deleted file mode 100644 index dc10bf5..0000000 --- a/shaders/composite5.vsh +++ /dev/null @@ -1,18 +0,0 @@ -#version 120 -//#extension GL_EXT_gpu_shader4 : disable - -#include "/lib/settings.glsl" - -varying vec2 texcoord; -flat varying float exposureA; -flat varying float tempOffsets; -uniform sampler2D colortex4; -uniform int frameCounter; -#include "/lib/util.glsl" -void main() { - - tempOffsets = HaltonSeq2(frameCounter%10000); - gl_Position = ftransform(); - texcoord = gl_MultiTexCoord0.xy; - exposureA = texelFetch2D(colortex4,ivec2(10,37),0).r; -} diff --git a/shaders/composite6.fsh b/shaders/composite6.fsh deleted file mode 100644 index c2c485c..0000000 --- a/shaders/composite6.fsh +++ /dev/null @@ -1,50 +0,0 @@ -#version 120 -//downsample 1st pass (half res) for bloom - -#include "/lib/settings.glsl" -uniform sampler2D colortex5; -// uniform sampler2D colortex8; -uniform vec2 texelSize; -uniform float viewWidth; -uniform float viewHeight; - -#include "/lib/res_params.glsl" - - -void main() { -/* DRAWBUFFERS:3 */ - - -vec2 resScale = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.))/vec2(1920.,1080.); -vec2 quarterResTC = gl_FragCoord.xy*texelSize*2.*resScale/BLOOM_QUALITY; - -// float emissives1 = texture2D(colortex8,quarterResTC).a; -// float emissives2 = emissives1 < 1.0 ? emissives1 : 0.0; - - // 0.5 - gl_FragData[0] = texture2D(colortex5,quarterResTC-1.0*vec2(texelSize.x,texelSize.y))/4.*0.5; - gl_FragData[0] += texture2D(colortex5,quarterResTC+1.0*vec2(texelSize.x,texelSize.y))/4.*0.5; - gl_FragData[0] += texture2D(colortex5,quarterResTC+vec2(-1.0*texelSize.x,1.0*texelSize.y))/4.*0.5; - gl_FragData[0] += texture2D(colortex5,quarterResTC+vec2(1.0*texelSize.x,-1.0*texelSize.y))/4.*0.5; - - //0.25 - gl_FragData[0] += texture2D(colortex5,quarterResTC-2.0*vec2(texelSize.x,0.0))/2.*0.125; - gl_FragData[0] += texture2D(colortex5,quarterResTC+2.0*vec2(0.0,texelSize.y))/2.*0.125; - gl_FragData[0] += texture2D(colortex5,quarterResTC+2.0*vec2(0,-texelSize.y))/2*0.125; - gl_FragData[0] += texture2D(colortex5,quarterResTC+2.0*vec2(-texelSize.x,0.0))/2*0.125; - - //0.125 - gl_FragData[0] += texture2D(colortex5,quarterResTC-2.0*vec2(texelSize.x,texelSize.y))/4.*0.125; - gl_FragData[0] += texture2D(colortex5,quarterResTC+2.0*vec2(texelSize.x,texelSize.y))/4.*0.125; - gl_FragData[0] += texture2D(colortex5,quarterResTC+vec2(-2.0*texelSize.x,2.0*texelSize.y))/4.*0.125; - gl_FragData[0] += texture2D(colortex5,quarterResTC+vec2(2.0*texelSize.x,-2.0*texelSize.y))/4.*0.125; - - //0.125 - gl_FragData[0] += texture2D(colortex5,quarterResTC)*0.125; - - - gl_FragData[0].rgb = clamp(gl_FragData[0].rgb,0.0,65000.); - if (quarterResTC.x > 1.0 - 3.5*texelSize.x || quarterResTC.y > 1.0 -3.5*texelSize.y || quarterResTC.x < 3.5*texelSize.x || quarterResTC.y < 3.5*texelSize.y) gl_FragData[0].rgb = vec3(0.0); - - -} diff --git a/shaders/composite6.vsh b/shaders/composite6.vsh deleted file mode 100644 index 86ba64b..0000000 --- a/shaders/composite6.vsh +++ /dev/null @@ -1,18 +0,0 @@ -#version 120 -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" -uniform float viewWidth; -uniform float viewHeight; -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - //Improves performances and makes sure bloom radius stays the same at high resolution (>1080p) - vec2 clampedRes = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.)); - gl_Position = ftransform(); - //*0.51 to avoid errors when sampling outside since clearing is disabled - gl_Position.xy = (gl_Position.xy*0.5+0.5)*0.51*BLOOM_QUALITY/clampedRes*vec2(1920.0,1080.)*2.0-1.0; -} diff --git a/shaders/composite7.fsh b/shaders/composite7.fsh deleted file mode 100644 index 83a15f7..0000000 --- a/shaders/composite7.fsh +++ /dev/null @@ -1,44 +0,0 @@ -#version 120 -#include "/lib/settings.glsl" -//downsample 1st pass (half res) for bloom -#include "/lib/res_params.glsl" -uniform sampler2D colortex3; -// uniform sampler2D colortex8; -uniform vec2 texelSize; -uniform float viewWidth; -uniform float viewHeight; -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - -/* DRAWBUFFERS:6 */ -vec2 resScale = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.))/vec2(1920.,1080.); -vec2 quarterResTC = gl_FragCoord.xy*texelSize*2.; - - //0.5 - gl_FragData[0] = texture2D(colortex3,quarterResTC-1.0*vec2(texelSize.x,texelSize.y))/4.*0.5; - gl_FragData[0] += texture2D(colortex3,quarterResTC+1.0*vec2(texelSize.x,texelSize.y))/4.*0.5; - gl_FragData[0] += texture2D(colortex3,quarterResTC+vec2(-1.0*texelSize.x,1.0*texelSize.y))/4.*0.5; - gl_FragData[0] += texture2D(colortex3,quarterResTC+vec2(1.0*texelSize.x,-1.0*texelSize.y))/4.*0.5; - - //0.25 - gl_FragData[0] += texture2D(colortex3,quarterResTC-2.0*vec2(texelSize.x,0.0))/2.*0.125; - gl_FragData[0] += texture2D(colortex3,quarterResTC+2.0*vec2(0.0,texelSize.y))/2.*0.125; - gl_FragData[0] += texture2D(colortex3,quarterResTC+2.0*vec2(0,-texelSize.y))/2*0.125; - gl_FragData[0] += texture2D(colortex3,quarterResTC+2.0*vec2(-texelSize.x,0.0))/2*0.125; - - //0.125 - gl_FragData[0] += texture2D(colortex3,quarterResTC-2.0*vec2(texelSize.x,texelSize.y))/4.*0.125; - gl_FragData[0] += texture2D(colortex3,quarterResTC+2.0*vec2(texelSize.x,texelSize.y))/4.*0.125; - gl_FragData[0] += texture2D(colortex3,quarterResTC+vec2(-2.0*texelSize.x,2.0*texelSize.y))/4.*0.125; - gl_FragData[0] += texture2D(colortex3,quarterResTC+vec2(2.0*texelSize.x,-2.0*texelSize.y))/4.*0.125; - - //0.125 - gl_FragData[0] += texture2D(colortex3,quarterResTC)*0.125; - - gl_FragData[0].rgb = clamp(gl_FragData[0].rgb,0.0,65000.); -} diff --git a/shaders/composite8.fsh b/shaders/composite8.fsh deleted file mode 100644 index 54aea8f..0000000 --- a/shaders/composite8.fsh +++ /dev/null @@ -1,62 +0,0 @@ -#version 120 -#include "/lib/settings.glsl" -//6 Horizontal gaussian blurs and horizontal downsampling -#include "/lib/res_params.glsl" - -uniform sampler2D colortex6; -uniform vec2 texelSize; -varying vec2 texcoord; -uniform float viewWidth; -uniform float viewHeight; -vec2 resScale = vec2(1920.,1080.)/max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.))*BLOOM_QUALITY; -vec3 gauss1D(vec2 coord,vec2 dir,float alpha,int maxIT){ - vec4 tot = vec4(0.); - float maxTC = 0.25*resScale.x; - float minTC = 0.; - for (int i = -maxIT;i minTC && spCoord.x < maxTC); - } - return tot.rgb/max(1.0,tot.a); -} - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { -/* DRAWBUFFERS:6 */ - -vec2 texcoord = (gl_FragCoord.xy*vec2(2.0,4.0))*texelSize; -vec2 gaussDir = vec2(1.0,0.0); -gl_FragData[0].rgb = vec3(0.0); -vec2 tc2 = texcoord*vec2(2.0,1.)/2.; -if (tc2.x < 1.0*resScale.x && tc2.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(tc2/2,gaussDir,0.16,0); - -vec2 tc4 = texcoord*vec2(4.0,1.)/2.-vec2(0.5*resScale.x+4.0*texelSize.x,0.)*2.0; -if (tc4.x > 0.0 && tc4.y > 0.0 && tc4.x < 1.0*resScale.x && tc4.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(tc4/2,gaussDir,0.16,3); - -vec2 tc8 = texcoord*vec2(8.0,1.)/2.-vec2(0.75*resScale.x+8.*texelSize.x,0.)*4.0; -if (tc8.x > 0.0 && tc8.y > 0.0 && tc8.x < 1.0*resScale.x && tc8.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(tc8/2,gaussDir,0.035,6); - -vec2 tc16 = texcoord*vec2(8.0,1./2.)-vec2(0.875*resScale.x+12.*texelSize.x,0.)*8.0; -if (tc16.x > 0.0 && tc16.y > 0.0 && tc16.x < 1.0*resScale.x && tc16.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(tc16/2,gaussDir,0.0085,12); - -vec2 tc32 = texcoord*vec2(16.0,1./2.)-vec2(0.9375*resScale.x+16.*texelSize.x,0.)*16.0; -if (tc32.x > 0.0 && tc32.y > 0.0 && tc32.x < 1.0*resScale.x && tc32.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(tc32/2,gaussDir,0.002,28); - -vec2 tc64 = texcoord*vec2(32.0,1./2.)-vec2(0.96875*resScale.x+20.*texelSize.x,0.)*32.0; -if (tc64.x > 0.0 && tc64.y > 0.0 && tc64.x < 1.0*resScale.x && tc64.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(tc64/2,gaussDir,0.0005,60); - -gl_FragData[0].rgb = clamp(gl_FragData[0].rgb,0.0,65000.); -} diff --git a/shaders/composite8.vsh b/shaders/composite8.vsh deleted file mode 100644 index fe2f03e..0000000 --- a/shaders/composite8.vsh +++ /dev/null @@ -1,21 +0,0 @@ -#version 120 -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" -uniform float viewWidth; -uniform float viewHeight; -varying vec2 texcoord; -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - vec2 clampedRes = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.0))/BLOOM_QUALITY; - gl_Position = ftransform(); - //0-0.25 - gl_Position.y = (gl_Position.y*0.5+0.5)*0.25/clampedRes.y*1080.0*2.0-1.0; - //0-0.5 - gl_Position.x = (gl_Position.x*0.5+0.5)*0.5/clampedRes.x*1920.0*2.0-1.0; - texcoord = gl_MultiTexCoord0.xy/clampedRes*vec2(1920.,1080.); -} diff --git a/shaders/composite9.fsh b/shaders/composite9.fsh deleted file mode 100644 index 7f635c3..0000000 --- a/shaders/composite9.fsh +++ /dev/null @@ -1,62 +0,0 @@ -#version 120 -#include "/lib/settings.glsl" -//6 Vertical gaussian blurs and vertical downsampling -#include "/lib/res_params.glsl" - - -uniform sampler2D colortex6; -uniform vec2 texelSize; -varying vec2 texcoord; -uniform float viewWidth; -uniform float viewHeight; -vec2 resScale = vec2(1920.,1080.)/max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.))*BLOOM_QUALITY; -vec3 gauss1D(vec2 coord,vec2 dir,float alpha,int maxIT){ - vec4 tot = vec4(0.); - float maxTC = 0.25*resScale.y; - float minTC = 0.; - for (int i = -maxIT;i minTC && spCoord.y < maxTC); - } - return tot.rgb/max(1.0,tot.a); -} - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { -/* DRAWBUFFERS:6 */ -vec2 texcoord = (gl_FragCoord.xy*vec2(2.0,4.0))*texelSize; - -vec2 gaussDir = vec2(0.0,1.0); -gl_FragData[0].rgb = vec3(0.0); -vec2 tc2 = texcoord*vec2(2.0,1.); -if (tc2.x < 1.0*resScale.x && tc2.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(texcoord/vec2(2.0,4.0),gaussDir,0.16,0); - -vec2 tc4 = texcoord*vec2(4.0,2.)-vec2(0.5*resScale.x+4.0*texelSize.x,0.)*4.0; -if (tc4.x > 0.0 && tc4.y > 0.0 && tc4.x < 1.0*resScale.x && tc4.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(texcoord/vec2(2.0,2.0),gaussDir,0.16,3); - -vec2 tc8 = texcoord*vec2(8.0,4.)-vec2(0.75*resScale.x+8.*texelSize.x,0.)*8.0; -if (tc8.x > 0.0 && tc8.y > 0.0 && tc8.x < 1.0*resScale.x && tc8.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(texcoord*vec2(1.0,2.0)/vec2(2.0,2.0),gaussDir,0.035,6); - -vec2 tc16 = texcoord*vec2(16.0,8.)-vec2(0.875*resScale.x+12.*texelSize.x,0.)*16.0; -if (tc16.x > 0.0 && tc16.y > 0.0 && tc16.x < 1.0*resScale.x && tc16.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(texcoord*vec2(1.0,4.0)/vec2(2.0,2.0),gaussDir,0.0085,12); - -vec2 tc32 = texcoord*vec2(32.0,16.)-vec2(0.9375*resScale.x+16.*texelSize.x,0.)*32.0; -if (tc32.x > 0.0 && tc32.y > 0.0 && tc32.x < 1.0*resScale.x && tc32.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(texcoord*vec2(1.0,8.0)/vec2(2.0,2.0),gaussDir,0.002,30); - -vec2 tc64 = texcoord*vec2(64.0,32.)-vec2(0.96875*resScale.x+20.*texelSize.x,0.)*64.0; -if (tc64.x > 0.0 && tc64.y > 0.0 && tc64.x < 1.0*resScale.x && tc64.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(texcoord*vec2(1.0,16.0)/vec2(2.0,2.0),gaussDir,0.0005,60); - -gl_FragData[0].rgb = clamp(gl_FragData[0].rgb,0.0,65000.); -} diff --git a/shaders/composite9.vsh b/shaders/composite9.vsh deleted file mode 100644 index 3bbdf17..0000000 --- a/shaders/composite9.vsh +++ /dev/null @@ -1,23 +0,0 @@ -#version 120 - -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" -uniform float viewWidth; -uniform float viewHeight; -varying vec2 texcoord; -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - vec2 clampedRes = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.0))/BLOOM_QUALITY; - gl_Position = ftransform(); - //0-0.25 - gl_Position.y = (gl_Position.y*0.5+0.5)*0.25/clampedRes.y*1080.0*2.0-1.0; - //0-0.5 - gl_Position.x = (gl_Position.x*0.5+0.5)*0.5/clampedRes.x*1920.0*2.0-1.0; - texcoord = gl_MultiTexCoord0.xy/clampedRes*vec2(1920.,1080.); - -} diff --git a/shaders/deferred.fsh b/shaders/deferred.fsh deleted file mode 100644 index f146556..0000000 --- a/shaders/deferred.fsh +++ /dev/null @@ -1,189 +0,0 @@ -#version 120 -//#extension GL_EXT_gpu_shader4 : disable - -#include "/lib/settings.glsl" -//Prepares sky textures (2 * 256 * 256), computes light values and custom lightmaps -#define ReflectedFog - -flat varying vec3 averageSkyCol_Clouds; -flat varying vec3 averageSkyCol; - -flat varying vec3 lightSourceColor; -flat varying vec3 sunColor; -flat varying vec3 moonColor; -flat varying vec3 zenithColor; - -flat varying float avgL2; -flat varying vec2 tempOffsets; -flat varying float exposure; -flat varying float rodExposure; -flat varying float avgBrightness; -flat varying float centerDepth; - -// uniform sampler2D colortex4; -uniform sampler2D noisetex; -uniform sampler2DShadow shadow; - -uniform int frameCounter; -uniform float rainStrength; -uniform float eyeAltitude; -uniform vec3 sunVec; -flat varying vec3 WsunVec; -uniform vec2 texelSize; -uniform float frameTimeCounter; -uniform mat4 gbufferProjection; -uniform mat4 gbufferProjectionInverse; -uniform mat4 gbufferPreviousProjection; -uniform mat4 gbufferModelViewInverse; -uniform mat4 gbufferModelView; -uniform mat4 shadowModelView; -uniform mat4 shadowProjection; -uniform float sunElevation; -uniform vec3 cameraPosition; -uniform float far; -uniform ivec2 eyeBrightnessSmooth; - -uniform float lightningFlash; - -#include "/lib/Shadow_Params.glsl" -#include "/lib/util.glsl" -#include "/lib/ROBOBO_sky.glsl" -#include "/lib/sky_gradient.glsl" - -// uniform int worldTime; - -#define TIMEOFDAYFOG -#include "/lib/volumetricClouds.glsl" - -// #include "/lib/biome_specifics.glsl" - -vec3 toShadowSpaceProjected(vec3 p3){ - p3 = mat3(gbufferModelViewInverse) * p3 + gbufferModelViewInverse[3].xyz; - p3 = mat3(shadowModelView) * p3 + shadowModelView[3].xyz; - p3 = diagonal3(shadowProjection) * p3 + shadowProjection[3].xyz; - - return p3; -} -float R2_dither(){ - vec2 alpha = vec2(0.75487765, 0.56984026); - return fract(alpha.x * gl_FragCoord.x + alpha.y * gl_FragCoord.y + 1.0/1.6180339887 * frameCounter); -} -float blueNoise(){ - return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter); -} -float interleaved_gradientNoise(){ - vec2 coord = gl_FragCoord.xy; - float noise = fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y + 1.0/1.6180339887 * frameCounter)); - return noise; -} -vec4 lightCol = vec4(lightSourceColor, float(sunElevation > 1e-5)*2-1.); - -float luma(vec3 color) { - return dot(color,vec3(0.299, 0.587, 0.114)); -} - -#include "/lib/volumetricFog.glsl" - -const float[17] Slightmap = float[17](14.0,17.,19.0,22.0,24.0,28.0,31.0,40.0,60.0,79.0,93.0,110.0,132.0,160.0,197.0,249.0,249.0); - -uniform sampler2D depthtex1;//depth -// #define ffstep(x,y) clamp((y - x) * 1e35,0.0,1.0) -// #define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) -// #define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) -vec3 toScreenSpace(vec3 p) { - vec4 iProjDiag = vec4(gbufferProjectionInverse[0].x, gbufferProjectionInverse[1].y, gbufferProjectionInverse[2].zw); - vec3 p3 = p * 2. - 1.; - vec4 fragposition = iProjDiag * p3.xyzz + gbufferProjectionInverse[3]; - return fragposition.xyz / fragposition.w; -} - -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); - - -void main() { -/* DRAWBUFFERS:4 */ -gl_FragData[0] = vec4(0.0); - -//Save light values -if (gl_FragCoord.x < 1. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 ) -gl_FragData[0] = vec4(averageSkyCol_Clouds,1.0); -if (gl_FragCoord.x > 1. && gl_FragCoord.x < 2. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 ) -gl_FragData[0] = vec4(averageSkyCol,1.0); - -if (gl_FragCoord.x > 6. && gl_FragCoord.x < 7. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 ) -gl_FragData[0] = vec4(lightSourceColor,1.0); - -if (gl_FragCoord.x > 8. && gl_FragCoord.x < 9. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 ) -gl_FragData[0] = vec4(sunColor,1.0); -if (gl_FragCoord.x > 13. && gl_FragCoord.x < 14. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 ) -gl_FragData[0] = vec4(moonColor,1.0); - - - - -const float pi = 3.141592653589793238462643383279502884197169; - -//Sky gradient (no clouds) -if (gl_FragCoord.x > 18. && gl_FragCoord.y > 1. && gl_FragCoord.x < 18+257){ - vec2 p = clamp(floor(gl_FragCoord.xy-vec2(18.,1.))/256.+tempOffsets/256.,0.0,1.0); - vec3 viewVector = cartToSphere(p); - - vec2 planetSphere = vec2(0.0); - vec3 sky = vec3(0.0); - vec3 skyAbsorb = vec3(0.0); - - vec3 WsunVec = mat3(gbufferModelViewInverse)*sunVec; - - sky = calculateAtmosphere(averageSkyCol*4000./2.0, viewVector, vec3(0.0,1.0,0.0), WsunVec, -WsunVec, planetSphere, skyAbsorb, 10, blueNoise()); - - #ifdef AEROCHROME_MODE - sky *= vec3(0.0, 0.18, 0.35); - #endif - - gl_FragData[0] = vec4(sky/4000.*Sky_Brightness,1.0); -} - -//Sky gradient with clouds -if (gl_FragCoord.x > 18.+257. && gl_FragCoord.y > 1. && gl_FragCoord.x < 18+257+257.){ - vec2 p = clamp(floor(gl_FragCoord.xy-vec2(18.+257,1.))/256.+tempOffsets/256.,0.0,1.0); - vec3 viewVector = cartToSphere(p); - - vec3 WsunVec = mat3(gbufferModelViewInverse)*sunVec; - vec3 sky = texelFetch2D(colortex4,ivec2(gl_FragCoord.xy)-ivec2(257,0),0).rgb/150. ; - - if(viewVector.y < -0.025) sky = sky * clamp( exp(viewVector.y) - 1.0,0.25,1.0) ; - - vec4 clouds = renderClouds(mat3(gbufferModelView)*viewVector*1024.,vec2(fract(frameCounter/1.6180339887),1-fract(frameCounter/1.6180339887)), sunColor, moonColor, averageSkyCol*5.0); - sky = sky*clouds.a + clouds.rgb/5.0; - - vec4 VL_Fog = getVolumetricRays(mat3(gbufferModelView)*viewVector*1024., fract(frameCounter/1.6180339887), averageSkyCol); - - if(viewVector.y < -0.025) VL_Fog.rgb *= clamp( exp(viewVector.y) - 1.0,0.25,1.0) ; - - sky = sky*VL_Fog.a + VL_Fog.rgb*20; - - gl_FragData[0] = vec4(sky,1.0); -} - -//Temporally accumulate sky and light values -vec3 temp = texelFetch2D(colortex4,ivec2(gl_FragCoord.xy),0).rgb; -vec3 curr = gl_FragData[0].rgb*150.; - -float flashtiming = pow(clamp((0.01-lightningFlash)*100,0,1),25); - -gl_FragData[0].rgb = clamp(mix(temp,curr, 0.07 * flashtiming),0.0,65000.); - -//Exposure values -if (gl_FragCoord.x > 10. && gl_FragCoord.x < 11. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 ) -gl_FragData[0] = vec4(exposure,avgBrightness,avgL2,1.0); -if (gl_FragCoord.x > 14. && gl_FragCoord.x < 15. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 ) -gl_FragData[0] = vec4(rodExposure,centerDepth,0.0, 1.0); - -} diff --git a/shaders/deferred.vsh b/shaders/deferred.vsh deleted file mode 100644 index 3693103..0000000 --- a/shaders/deferred.vsh +++ /dev/null @@ -1,187 +0,0 @@ -#version 120 - -//#extension GL_EXT_gpu_shader4 : disable - -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" - -flat varying vec3 averageSkyCol_Clouds; -flat varying vec3 averageSkyCol; - -flat varying vec3 sunColor; -flat varying vec3 moonColor; -flat varying vec3 lightSourceColor; -flat varying vec3 zenithColor; - -flat varying vec2 tempOffsets; -flat varying float exposure; -flat varying float avgBrightness; -flat varying float rodExposure; -flat varying float avgL2; -flat varying float centerDepth; - -uniform sampler2D colortex4; -uniform sampler2D colortex6; -uniform sampler2D depthtex0; - -uniform mat4 gbufferModelViewInverse; -uniform vec3 sunPosition; -uniform vec2 texelSize; -uniform float sunElevation; -uniform float eyeAltitude; -uniform float near; -uniform float far; -uniform float frameTime; -uniform int frameCounter; -uniform float rainStrength; - -// uniform int worldTime; -vec3 sunVec = normalize(mat3(gbufferModelViewInverse) *sunPosition); - -#include "/lib/sky_gradient.glsl" -#include "/lib/util.glsl" -#include "/lib/ROBOBO_sky.glsl" - -float luma(vec3 color) { - return dot(color,vec3(0.21, 0.72, 0.07)); -} - -//Low discrepancy 2D sequence, integration error is as low as sobol but easier to compute : http://extremelearning.com.au/unreasonable-effectiveness-of-quasirandom-sequences/ -vec2 R2_samples(int n){ - vec2 alpha = vec2(0.75487765, 0.56984026); - return fract(alpha * n); -} -float tanh(float x){ - return (exp(x) - exp(-x))/(exp(x) + exp(-x)); -} -float ld(float depth) { - return (2.0 * near) / (far + near - depth * (far - near)); // (-depth * (far - near)) = (2.0 * near)/ld - far - near -} - -uniform float nightVision; - - -void main() { - - gl_Position = ftransform()*0.5+0.5; - gl_Position.xy = gl_Position.xy*vec2(18.+258*2,258.)*texelSize; - gl_Position.xy = gl_Position.xy*2.-1.0; - -/////////////////////////////////// -/// --- AMBIENT LIGHT STUFF --- /// -/////////////////////////////////// - - averageSkyCol_Clouds = vec3(0.0); - averageSkyCol = vec3(0.0); - - vec2 sample3x3[9] = vec2[]( - - vec2(-1.0, -0.3), - vec2( 0.0, 0.0), - vec2( 1.0, -0.3), - - vec2(-1.0, -0.5), - vec2( 0.0, -0.5), - vec2( 1.0, -0.5), - - vec2(-1.0, -1.0), - vec2( 0.0, -1.0), - vec2( 1.0, -1.0) - ); - - // sample in a 3x3 pattern to get a good area for average color - vec3 pos = normalize(vec3(0,1,0)); - int maxIT = 9; - for (int i = 0; i < maxIT; i++) { - pos = normalize(vec3(0,1,0)); - pos.xy += normalize(sample3x3[i]) * vec2(0.3183,0.90); - - averageSkyCol_Clouds += 2.0*skyCloudsFromTex(pos,colortex4).rgb/maxIT/150.; - - // pos = normalize(vec3(0,1,0)); - // pos.xy += normalize(sample3x3[i]) * vec2(0.3183,0.90); - averageSkyCol += 1.5*skyFromTex(pos,colortex4).rgb/maxIT/150.; // please dont do an infinite feedback loop.... - - } - - /// TOOO DAMN BLUE - // // only need to sample one spot for this - // averageSkyCol += 2.0*skyFromTex(normalize(vec3(0.0,1.0,0.0)),colortex4).rgb/150.; - vec3 minimimlight = vec3(0.2,0.4,1.0) * (MIN_LIGHT_AMOUNT*0.0005 + nightVision); - averageSkyCol_Clouds = max(averageSkyCol_Clouds, minimimlight); - averageSkyCol = max(averageSkyCol, minimimlight); - -//////////////////////////////////////// -/// --- SUNLIGHT/MOONLIGHT STUFF --- /// -//////////////////////////////////////// - - vec2 planetSphere = vec2(0.0); - vec3 sky = vec3(0.0); - vec3 skyAbsorb = vec3(0.0); - - float sunVis = clamp(sunElevation,0.0,0.05)/0.05*clamp(sunElevation,0.0,0.05)/0.05; - float moonVis = clamp(-sunElevation,0.0,0.05)/0.05*clamp(-sunElevation,0.0,0.05)/0.05; - - zenithColor = calculateAtmosphere(vec3(0.0), vec3(0.0,1.0,0.0), vec3(0.0,1.0,0.0), sunVec, -sunVec, planetSphere, skyAbsorb, 25,tempOffsets.x); - skyAbsorb = vec3(0.0); - vec3 absorb = vec3(0.0); - sunColor = calculateAtmosphere(vec3(0.0), sunVec, vec3(0.0,1.0,0.0), sunVec, -sunVec, planetSphere, skyAbsorb, 25,0.0); - sunColor = sunColorBase/4000. * skyAbsorb; - - skyAbsorb = vec3(1.0); - moonColor = calculateAtmosphere(vec3(0.0), -sunVec, vec3(0.0,1.0,0.0), sunVec, -sunVec, planetSphere, skyAbsorb, 25,0.5); - moonColor = moonColorBase/4000.0; - - lightSourceColor = sunVis >= 1e-5 ? sunColor * sunVis : moonColor * moonVis; - - float lightDir = float( sunVis >= 1e-5)*2.0-1.0; - - - -////////////////////////////// -/// --- EXPOSURE STUFF --- /// -////////////////////////////// - - float avgLuma = 0.0; - float m2 = 0.0; - int n=100; - vec2 clampedRes = max(1.0/texelSize,vec2(1920.0,1080.)); - float avgExp = 0.0; - float avgB = 0.0; - vec2 resScale = vec2(1920.,1080.)/clampedRes*BLOOM_QUALITY; - const int maxITexp = 50; - float w = 0.0; - for (int i = 0; i < maxITexp; i++){ - vec2 ij = R2_samples((frameCounter%2000)*maxITexp+i); - vec2 tc = 0.5 + (ij-0.5) * 0.7; - vec3 sp = texture2D(colortex6,tc/16. * resScale+vec2(0.375*resScale.x+4.5*texelSize.x,.0)).rgb; - avgExp += log(luma(sp)); - avgB += log(min(dot(sp,vec3(0.07,0.22,0.71)),8e-2)); - } - - avgExp = exp(avgExp/maxITexp); - avgB = exp(avgB/maxITexp); - - avgBrightness = clamp(mix(avgExp,texelFetch2D(colortex4,ivec2(10,37),0).g,0.95),0.00003051757,65000.0); - - float L = max(avgBrightness,1e-8); - float keyVal = 1.03-2.0/(log(L*4000/150.*8./3.0+1.0)/log(10.0)+2.0); - float expFunc = 0.5+0.5*tanh(log(L)); - float targetExposure = 0.18/log2(L*2.5+1.045)*0.62; - - avgL2 = clamp(mix(avgB,texelFetch2D(colortex4,ivec2(10,37),0).b,0.985),0.00003051757,65000.0); - float targetrodExposure = max(0.012/log2(avgL2+1.002)-0.1,0.0)*1.2; - - - exposure=max(targetExposure*EXPOSURE_MULTIPLIER, 0); - float currCenterDepth = ld(texture2D(depthtex0, vec2(0.5)*RENDER_SCALE).r); - centerDepth = mix(sqrt(texelFetch2D(colortex4,ivec2(14,37),0).g/65000.0), currCenterDepth, clamp(DoF_Adaptation_Speed*exp(-0.016/frameTime+1.0)/(6.0+currCenterDepth*far),0.0,1.0)); - centerDepth = centerDepth * centerDepth * 65000.0; - - rodExposure = targetrodExposure; - - #ifndef AUTO_EXPOSURE - exposure = Manual_exposure_value; - rodExposure = clamp(log(Manual_exposure_value*2.0+1.0)-0.1,0.0,2.0); - #endif -} \ No newline at end of file diff --git a/shaders/deferred2.fsh b/shaders/deferred2.fsh deleted file mode 100644 index fb23457..0000000 --- a/shaders/deferred2.fsh +++ /dev/null @@ -1,29 +0,0 @@ -#version 120 -//#extension GL_EXT_gpu_shader4 : disable -#include "/lib/settings.glsl" - -uniform sampler2D colortex4; -uniform sampler2D depthtex1; - -uniform float near; -uniform float far; - - -float linZ(float depth) { - return (2.0 * near) / (far + near - depth * (far - near)); -} -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { -/* DRAWBUFFERS:4 */ - vec3 oldTex = texelFetch2D(colortex4, ivec2(gl_FragCoord.xy), 0).xyz; - float newTex = texelFetch2D(depthtex1, ivec2(gl_FragCoord.xy*4), 0).x; - if (newTex < 1.0) - gl_FragData[0] = vec4(oldTex, linZ(newTex)*linZ(newTex)*65000.0); - else - gl_FragData[0] = vec4(oldTex, 2.0); -} diff --git a/shaders/deferred2.vsh b/shaders/deferred2.vsh deleted file mode 100644 index 1d24af4..0000000 --- a/shaders/deferred2.vsh +++ /dev/null @@ -1,11 +0,0 @@ -#version 120 -//#extension GL_EXT_gpu_shader4 : disable -#include "/lib/settings.glsl" - -uniform vec2 texelSize; -#include "/lib/res_params.glsl" -void main() { - gl_Position = ftransform(); - vec2 scaleRatio = max(vec2(0.25), vec2(18.+258*2,258.)*texelSize); - gl_Position.xy = (gl_Position.xy*0.5+0.5)*clamp(scaleRatio+0.01,0.0,1.0)*2.0-1.0; -} diff --git a/shaders/dimensions/all_particles.fsh b/shaders/dimensions/all_particles.fsh index af7eed5..402113f 100644 --- a/shaders/dimensions/all_particles.fsh +++ b/shaders/dimensions/all_particles.fsh @@ -1,11 +1,22 @@ -// #version 120 +#include "/lib/settings.glsl" +#include "/lib/res_params.glsl" +#include "/lib/Shadow_Params.glsl" + varying vec4 lmtexcoord; varying vec4 color; +#ifdef OVERWORLD_SHADER + const bool shadowHardwareFiltering = true; + uniform sampler2DShadow shadow; + + flat varying vec3 WsunVec; + + flat varying vec3 averageSkyCol_Clouds; + flat varying vec4 lightCol; +#endif + uniform sampler2D texture; - uniform sampler2D noisetex; - uniform sampler2D colortex4; @@ -23,7 +34,15 @@ uniform vec2 texelSize; uniform ivec2 eyeBrightnessSmooth; uniform float rainStrength; -#include "/lib/settings.glsl" +#ifndef OVERWORLD_SHADER + uniform float nightVision; +#endif + +#ifdef OVERWORLD_SHADER + #define CLOUDSHADOWSONLY + #include "/lib/volumetricClouds.glsl" +#endif + #include "/lib/diffuse_lighting.glsl" #include "/lib/sky_gradient.glsl" @@ -51,8 +70,10 @@ const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), vec2(3,7.)/8., vec2(7.,-7.)/8.); -vec3 normVec (vec3 vec){ - return vec*inversesqrt(dot(vec,vec)); +//Mie phase function +float phaseg(float x, float g){ + float gg = g * g; + return (gg * -0.25 + 0.25) * pow(-2.0 * (g * x) + (gg + 1.0), -1.5) / 3.14; } //////////////////////////////VOID MAIN////////////////////////////// @@ -60,26 +81,83 @@ vec3 normVec (vec3 vec){ //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// -/* DRAWBUFFERS:2 */ + +/* DRAWBUFFERS:29 */ + void main() { - - gl_FragData[0] = texture2D(texture, lmtexcoord.xy)*color; - - vec3 Albedo = toLinear(gl_FragData[0].rgb); - vec2 tempOffset = offsets[framemod8]; - vec3 fragpos = toScreenSpace(gl_FragCoord.xyz*vec3(texelSize,1.0)-vec3(vec2(tempOffset)*texelSize*0.5,0.0)); - vec3 p3 = mat3(gbufferModelViewInverse) * fragpos; - vec3 np3 = normVec(p3); + vec3 viewPos = toScreenSpace(gl_FragCoord.xyz*vec3(texelSize/RENDER_SCALE,1.0)-vec3(vec2(tempOffset)*texelSize*0.5,0.0)); + vec3 feetPlayerPos = mat3(gbufferModelViewInverse) * viewPos; + vec3 feetPlayerPos_normalized = normalize(feetPlayerPos); - vec3 Indirect_lighting = vec3(1.0); - float lightmap = lmtexcoord.z; - vec3 nothing = vec3(0.0); + vec4 TEXTURE = texture2D(texture, lmtexcoord.xy)*color; + vec3 Albedo = toLinear(TEXTURE.rgb); + + vec2 lightmap = lmtexcoord.zw; + + #ifndef OVERWORLD_SHADER + lightmap.y = 1.0; + #endif + + #ifdef WEATHER + // lightmap.x = clamp(max(lightmap.x - 0.5, 0.0) * 2.5, 0.0, 1.0); + gl_FragData[1].a = TEXTURE.a; // for bloomy rain and stuff + #endif + + +#ifndef WEATHER + #ifndef LINES + gl_FragData[0].a = TEXTURE.a; + #else + gl_FragData[0].a = 1.0; + #endif + + gl_FragData[1].a = 0.0; // for bloomy rain and stuff + + vec3 Direct_lighting = vec3(0.0); + vec3 Indirect_lighting = vec3(0.0); + vec3 Torch_Color = vec3(TORCH_R,TORCH_G,TORCH_B); + + #ifdef LIT + Torch_Color *= LIT_PARTICLE_BRIGHTNESS; + #endif + + #ifdef OVERWORLD_SHADER + float Shadows = 1.0; + + vec3 feetPlayerPos_shadow = mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz; + vec3 projectedShadowPosition = mat3(shadowModelView) * feetPlayerPos_shadow + shadowModelView[3].xyz; + projectedShadowPosition = diagonal3(shadowProjection) * projectedShadowPosition + shadowProjection[3].xyz; + + //apply distortion + float distortFactor = calcDistort(projectedShadowPosition.xy); + projectedShadowPosition.xy *= distortFactor; + + //do shadows only if on shadow map + if (abs(projectedShadowPosition.x) < 1.0-1.5/shadowMapResolution && abs(projectedShadowPosition.y) < 1.0-1.5/shadowMapResolution){ + + projectedShadowPosition = projectedShadowPosition * vec3(0.5,0.5,0.5/6.0) + vec3(0.5); + + Shadows = shadow2D(shadow, projectedShadowPosition).x; + } + + float cloudShadow = GetCloudShadow(feetPlayerPos); + + Direct_lighting = (lightCol.rgb/80.0) * Shadows * cloudShadow; + + #ifndef LINES + Direct_lighting *= phaseg(clamp(dot(feetPlayerPos_normalized, WsunVec),0.0,1.0), 0.65)*2 + 0.5; + #endif + + Indirect_lighting = DoAmbientLighting(averageSkyCol_Clouds, Torch_Color, clamp(lightmap.xy,0,1), 3.0); + #endif + #ifdef END_SHADER - float TorchLM = 10.0 - ( 1.0 / (pow(exp(-0.5*inversesqrt(lightmap)),5.0)+0.1)); - TorchLM = pow(TorchLM/4,10) + pow(lightmap,1.5)*0.5; - vec3 TorchLight = (vec3(TORCH_R,TORCH_G,TORCH_B) * TorchLM * 0.75) * TORCH_AMOUNT; + float TorchLM = 10.0 - ( 1.0 / (pow(exp(-0.5*inversesqrt(lightmap.x)),5.0)+0.1)); + TorchLM = pow(TorchLM/4,10) + pow(lightmap.x,1.5)*0.5; + + vec3 TorchLight = (Torch_Color * TorchLM * 0.75) * TORCH_AMOUNT; Indirect_lighting = max(vec3(0.5,0.75,1.0) * 0.1, (MIN_LIGHT_AMOUNT*0.01 + nightVision*0.5) ) + TorchLight; #endif @@ -87,8 +165,17 @@ void main() { #ifdef NETHER_SHADER vec3 AmbientLightColor = skyCloudsFromTexLOD2(vec3( 0, 1, 0), colortex4, 6).rgb / 10; - Indirect_lighting = DoAmbientLighting_Nether(AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap, nothing, nothing, nothing); + vec3 nothing = vec3(0.0); + Indirect_lighting = DoAmbientLighting_Nether(AmbientLightColor, Torch_Color, lightmap.x, nothing, nothing, nothing); #endif - - gl_FragData[0].rgb = Indirect_lighting * Albedo; + + #ifndef LINES + gl_FragData[0].rgb = (Indirect_lighting + Direct_lighting) * Albedo; + #else + gl_FragData[0].rgb = (Indirect_lighting + Direct_lighting) * toLinear(color.rgb); + #endif + + // distance fade targeting the world border... + if(TEXTURE.a < 0.7 && TEXTURE.a > 0.2) gl_FragData[0] *= clamp(1.0 - length(feetPlayerPos) / 100.0 ,0.0,1.0); +#endif } \ No newline at end of file diff --git a/shaders/dimensions/all_particles.vsh b/shaders/dimensions/all_particles.vsh index a913831..3942677 100644 --- a/shaders/dimensions/all_particles.vsh +++ b/shaders/dimensions/all_particles.vsh @@ -1,7 +1,5 @@ -// #version 120 -//#extension GL_EXT_gpu_shader4 : disable - #include "/lib/settings.glsl" +#include "/lib/res_params.glsl" /* !! DO NOT REMOVE !! @@ -12,9 +10,21 @@ Read the terms of modification and sharing before changing something below pleas varying vec4 lmtexcoord; varying vec4 color; + +#ifdef OVERWORLD_SHADER + flat varying vec3 averageSkyCol_Clouds; + flat varying vec4 lightCol; + flat varying vec3 WsunVec; + uniform sampler2D colortex4; +#endif + +uniform vec3 sunPosition; +uniform float sunElevation; + uniform vec2 texelSize; uniform int framemod8; +uniform mat4 gbufferModelViewInverse; const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), vec2(-1.,3.)/8., vec2(5.0,1.)/8., @@ -34,11 +44,24 @@ void main() { gl_Position = ftransform(); lmtexcoord.xy = (gl_MultiTexCoord0).xy; - vec2 lmcoord = gl_MultiTexCoord1.xy/255.; + vec2 lmcoord = gl_MultiTexCoord1.xy / 255.0; // is this even correct? lol' lmtexcoord.zw = lmcoord; color = gl_Color; - + #ifdef LINES + color.a = 1.0; + #endif + #ifdef OVERWORLD_SHADER + lightCol.rgb = texelFetch2D(colortex4,ivec2(6,37),0).rgb; + lightCol.a = float(sunElevation > 1e-5)*2.0 - 1.0; + + averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(0,37),0).rgb; + + WsunVec = lightCol.a * normalize(mat3(gbufferModelViewInverse) * sunPosition); + #endif + #ifdef TAA_UPSCALING + gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w; + #endif #ifdef TAA gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; #endif diff --git a/shaders/dimensions/all_solid.fsh b/shaders/dimensions/all_solid.fsh index f338065..7d36607 100644 --- a/shaders/dimensions/all_solid.fsh +++ b/shaders/dimensions/all_solid.fsh @@ -1,11 +1,14 @@ -//#extension GL_EXT_gpu_shader4 : disable -//#extension GL_ARB_shader_texture_lod : disable +#extension GL_EXT_gpu_shader4 : enable +#extension GL_ARB_shader_texture_lod : enable #include "/lib/settings.glsl" - flat varying int NameTags; +#ifdef HAND +#undef POM +#endif + #ifndef USE_LUMINANCE_AS_HEIGHTMAP #ifndef MC_NORMAL_MAP #undef POM @@ -38,23 +41,28 @@ vec2 dcdy = dFdy(vtexcoord.st*vtexcoordam.pq)*exp2(Texture_MipMap_Bias); // #endif #include "/lib/res_params.glsl" - varying vec4 lmtexcoord; + varying vec4 color; -varying vec4 NoSeasonCol; -varying vec4 seasonColor; + uniform float far; + + +uniform float wetness; varying vec4 normalMat; + #ifdef MC_NORMAL_MAP - varying vec4 tangent; uniform sampler2D normals; + varying vec4 tangent; varying vec3 FlatNormals; #endif + uniform sampler2D specular; -flat varying int lightningBolt; + + uniform sampler2D texture; uniform sampler2D colortex1;//albedo(rgb),material(alpha) RGBA16 uniform float frameTimeCounter; @@ -67,21 +75,46 @@ uniform vec3 cameraPosition; uniform float rainStrength; uniform sampler2D noisetex;//depth uniform sampler2D depthtex0; + uniform vec4 entityColor; +// in vec3 velocity; + +flat varying int PHYSICSMOD_SNOW; flat varying float blockID; flat varying float SSSAMOUNT; flat varying float EMISSIVE; flat varying int LIGHTNING; +flat varying int PORTAL; flat varying int SIGN; -flat varying float HELD_ITEM_BRIGHTNESS; +flat varying float HELD_ITEM_BRIGHTNESS; +uniform float noPuddleAreas; + + +// float interleaved_gradientNoise(){ +// return fract(52.9829189*fract(0.06711056*gl_FragCoord.x + 0.00583715*gl_FragCoord.y)+frameTimeCounter*51.9521); +// } +float interleaved_gradientNoise_temp(){ + vec2 alpha = vec2(0.75487765, 0.56984026); + vec2 coord = vec2(alpha.x * gl_FragCoord.x,alpha.y * gl_FragCoord.y)+ 1.0/1.6180339887 * frameCounter; + float noise = fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y)); + return noise; +} +float interleaved_gradientNoise(){ + vec2 coord = gl_FragCoord.xy; + float noise = fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y)); + return noise; +} float blueNoise(){ return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter); } - +float R2_dither(){ + vec2 alpha = vec2(0.75487765, 0.56984026); + return fract(alpha.x * gl_FragCoord.x + alpha.y * gl_FragCoord.y + 1.0/1.6180339887 * frameCounter) ; +} mat3 inverse(mat3 m) { float a00 = m[0][0], a01 = m[0][1], a02 = m[0][2]; @@ -99,15 +132,6 @@ mat3 inverse(mat3 m) { b21, (-a21 * a00 + a01 * a20), (a11 * a00 - a01 * a10)) / det; } - -#ifdef MC_NORMAL_MAP - vec3 applyBump(mat3 tbnMatrix, vec3 bump, float puddle_values){ - float bumpmult = clamp(puddle_values,0.0,1.0); - bump = bump * vec3(bumpmult, bumpmult, bumpmult) + vec3(0.0f, 0.0f, 1.0f - bumpmult); - return normalize(bump*tbnMatrix); - } -#endif - vec3 viewToWorld(vec3 viewPosition) { vec4 pos; pos.xyz = viewPosition; @@ -115,13 +139,11 @@ vec3 viewToWorld(vec3 viewPosition) { pos = gbufferModelViewInverse * pos; return pos.xyz; } - vec3 worldToView(vec3 worldPos) { vec4 pos = vec4(worldPos, 0.0); pos = gbufferModelView * pos; return pos.xyz; } - vec4 encode (vec3 n, vec2 lightmaps){ n.xy = n.xy / dot(abs(n), vec3(1.0)); n.xy = n.z <= 0.0 ? (1.0 - abs(n.yx)) * sign(n.xy) : n.xy; @@ -140,6 +162,15 @@ float encodeVec2(float x,float y){ return encodeVec2(vec2(x,y)); } +#ifdef MC_NORMAL_MAP + vec3 applyBump(mat3 tbnMatrix, vec3 bump, float puddle_values){ + float bumpmult = clamp(puddle_values,0.0,1.0); + bump = bump * vec3(bumpmult, bumpmult, bumpmult) + vec3(0.0f, 0.0f, 1.0f - bumpmult); + return normalize(bump*tbnMatrix); + } +#endif + + #define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) #define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) @@ -164,10 +195,17 @@ vec3 toClipSpace3(vec3 viewSpacePosition) { } #endif + float luma(vec3 color) { return dot(color,vec3(0.21, 0.72, 0.07)); } + +vec3 toLinear(vec3 sRGB){ + return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); +} + + const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), vec2(-1.,3.)/8., vec2(5.0,1.)/8., @@ -176,11 +214,75 @@ const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), vec2(-7.,-1.)/8., vec2(3,7.)/8., vec2(7.,-7.)/8.); +vec3 srgbToLinear2(vec3 srgb){ + return mix( + srgb / 12.92, + pow(.947867 * srgb + .0521327, vec3(2.4) ), + step( .04045, srgb ) + ); +} +vec3 blackbody2(float Temp) +{ + float t = pow(Temp, -1.5); + float lt = log(Temp); -float bias(){ - return Texture_MipMap_Bias + (blueNoise()-0.5)*0.5; + vec3 col = vec3(0.0); + col.x = 220000.0 * t + 0.58039215686; + col.y = 0.39231372549 * lt - 2.44549019608; + col.y = Temp > 6500. ? 138039.215686 * t + 0.72156862745 : col.y; + col.z = 0.76078431372 * lt - 5.68078431373; + col = clamp(col,0.0,1.0); + col = Temp < 1000. ? col * Temp * 0.001 : col; + + return srgbToLinear2(col); } +uniform float near; + + +float ld(float dist) { + return (2.0 * near) / (far + near - dist * (far - near)); +} + + +vec4 readNoise(in vec2 coord){ + // return texture2D(noisetex,coord*vtexcoordam.pq+vtexcoord.st); + return texture2DGradARB(noisetex,coord*vtexcoordam.pq + vtexcoordam.st,dcdx,dcdy); +} +float EndPortalEffect( + inout vec4 ALBEDO, + vec3 FragPos, + vec3 WorldPos, + mat3 tbnMatrix +){ + + int maxdist = 25; + int quality = 35; + + vec3 viewVec = normalize(tbnMatrix*FragPos); + 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 coord = vec3(WorldPos.xz , 1.0); + coord += interval; + + for (int loopCount = 0; (loopCount < quality) && (1.0 - Depth + Depth * ( 1.0-readNoise(coord.st).r - readNoise(-coord.st*3).b*0.2 ) ) < coord.p && coord.p >= 0.0; ++loopCount) { + coord = coord+interval ; + endportalGLow += (0.3/quality); + } + + ALBEDO.rgb = vec3(0.5,0.75,1.0) * sqrt(endportalGLow); + + return clamp(pow(endportalGLow*3.5,3),0,1); + } +} + +float bias(){ + // 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( sampler2D sampler, vec2 lightmapCoord, @@ -193,6 +295,9 @@ vec4 texture2D_POMSwitch( return texture2D(sampler, lightmapCoord, bias()); } } + + + //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -222,9 +327,8 @@ void main() { vec2 tempOffset=offsets[framemod8]; - vec3 fragpos = toScreenSpace(gl_FragCoord.xyz*vec3(texelSize,1.0)-vec3(vec2(tempOffset)*texelSize*0.5,0.0)); - vec3 worldpos = mat3(gbufferModelViewInverse) * fragpos + gbufferModelViewInverse[3].xyz + cameraPosition; - + vec3 fragpos = toScreenSpace(gl_FragCoord.xyz*vec3(texelSize/RENDER_SCALE,1.0)-vec3(vec2(tempOffset)*texelSize*0.5,0.0)); + vec3 worldpos = mat3(gbufferModelViewInverse) * fragpos + gbufferModelViewInverse[3].xyz + cameraPosition; float torchlightmap = lmtexcoord.z; @@ -234,103 +338,159 @@ void main() { float lightmap = clamp( (lmtexcoord.w-0.8) * 10.0,0.,1.); - - vec2 adjustedTexCoord = lmtexcoord.xy; - - #ifdef POM - - adjustedTexCoord = fract(vtexcoord.st)*vtexcoordam.pq+vtexcoordam.st; - - vec3 viewVector = normalize(tbnMatrix*fragpos); - float dist = length(fragpos); - - gl_FragDepth = gl_FragCoord.z; - - #ifdef WORLD - if (dist < MAX_OCCLUSION_DISTANCE) { - - float depthmap = readNormal(vtexcoord.st).a; - float used_POM_DEPTH = 1.0; - - if ( viewVector.z < 0.0 && depthmap < 0.9999 && depthmap > 0.00001) { - - #ifdef Adaptive_Step_length - vec3 interval = (viewVector.xyz /-viewVector.z/MAX_OCCLUSION_POINTS * POM_DEPTH) * 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*POM_DEPTH; - #endif - vec3 coord = vec3(vtexcoord.st, 1.0); - - coord += interval * used_POM_DEPTH; - - float sumVec = 0.5; - for (int loopCount = 0; (loopCount < MAX_OCCLUSION_POINTS) && (1.0 - POM_DEPTH + POM_DEPTH * readNormal(coord.st).a ) < coord.p && coord.p >= 0.0; ++loopCount) { - coord = coord+interval * used_POM_DEPTH; - sumVec += 1.0 * used_POM_DEPTH; - } - - if (coord.t < mincoord) { - if (readTexture(vec2(coord.s,mincoord)).a == 0.0) { - coord.t = mincoord; - discard; - } - } - adjustedTexCoord = mix(fract(coord.st)*vtexcoordam.pq+vtexcoordam.st, adjustedTexCoord, max(dist-MIX_OCCLUSION_DISTANCE,0.0)/(MAX_OCCLUSION_DISTANCE-MIX_OCCLUSION_DISTANCE)); - - vec3 truePos = fragpos + sumVec*inverse(tbnMatrix)*interval; - - gl_FragDepth = toClipSpace3(truePos).z; - } - } - #endif + float rainfall = rainStrength * noPuddleAreas; + float Puddle_shape = 0.; + + #if defined Puddles && defined WORLD && !defined ENTITIES && !defined HAND + Puddle_shape = (1.0 - clamp(exp(-15 * pow(texture2D(noisetex, worldpos.xz * (0.020 * Puddle_Size) ).b ,5)),0,1)) * lightmap ; + Puddle_shape *= clamp( viewToWorld(normal).y*0.5+0.5 ,0.0,1.0); + Puddle_shape *= rainfall; #endif + + vec2 adjustedTexCoord = lmtexcoord.xy; + +#if defined POM && defined WORLD && !defined ENTITIES && !defined HAND + // vec2 tempOffset=offsets[framemod8]; + adjustedTexCoord = fract(vtexcoord.st)*vtexcoordam.pq+vtexcoordam.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(fragpos); + + float maxdist = MAX_OCCLUSION_DISTANCE; + if(!ifPOM) maxdist = 0.0; + + gl_FragDepth = gl_FragCoord.z; + + if (dist < maxdist) { + + float depthmap = readNormal(vtexcoord.st).a; + float used_POM_DEPTH = 1.0; + + if ( viewVector.z < 0.0 && depthmap < 0.9999 && depthmap > 0.00001) { + // float noise = interleaved_gradientNoise_temp(); + #ifdef Adaptive_Step_length + vec3 interval = (viewVector.xyz /-viewVector.z/MAX_OCCLUSION_POINTS * POM_DEPTH) * 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*POM_DEPTH; + #endif + vec3 coord = vec3(vtexcoord.st , 1.0); + + coord += interval * used_POM_DEPTH; + + float sumVec = 0.5; + for (int loopCount = 0; (loopCount < MAX_OCCLUSION_POINTS) && (1.0 - POM_DEPTH + POM_DEPTH * readNormal(coord.st).a ) < coord.p && coord.p >= 0.0; ++loopCount) { + coord = coord + interval * used_POM_DEPTH; + sumVec += 1.0 * used_POM_DEPTH; + } + + if (coord.t < mincoord) { + if (readTexture(vec2(coord.s,mincoord)).a == 0.0) { + coord.t = mincoord; + discard; + } + } + + adjustedTexCoord = mix(fract(coord.st)*vtexcoordam.pq+vtexcoordam.st, adjustedTexCoord, max(dist-MIX_OCCLUSION_DISTANCE,0.0)/(MAX_OCCLUSION_DISTANCE-MIX_OCCLUSION_DISTANCE)); + + vec3 truePos = fragpos + sumVec*inverse(tbnMatrix)*interval; + // #ifdef Depth_Write_POM + gl_FragDepth = toClipSpace3(truePos).z; + // #endif + } + } +#endif + if(!ifPOM) adjustedTexCoord = lmtexcoord.xy; + - //////////////////////////////// - //////////////////////////////// ALBEDO - //////////////////////////////// - + //////////////////////////////// //////////////////////////////// + //////////////////////////////// ALBEDO //////////////////////////////// + //////////////////////////////// //////////////////////////////// + vec4 Albedo = texture2D_POMSwitch(texture, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM) * color; + if(LIGHTNING > 0) Albedo = vec4(1); + // float ENDPORTAL_EFFECT = 0.0; + // #ifndef ENTITIES + // ENDPORTAL_EFFECT = PORTAL > 0 ? EndPortalEffect(Albedo, fragpos, worldpos, tbnMatrix) : 0; + // #endif + + #ifdef WhiteWorld + Albedo.rgb = vec3(1.0); + #endif + + + #ifdef AEROCHROME_MODE + vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631), AEROCHROME_PINKNESS); + float gray = dot(Albedo.rgb, vec3(0.2, 01.0, 0.07)); + if(blockID == 10001 || blockID == 10003 || blockID == 10004 || blockID == 10006) { + // IR Reflective (Pink-red) + Albedo.rgb = mix(vec3(gray), aerochrome_color, 0.7); + } + else if(blockID == 10008) { + // Special handling for grass block + float strength = 1.0 - color.b; + Albedo.rgb = mix(Albedo.rgb, aerochrome_color, strength); + } + #ifdef AEROCHROME_WOOL_ENABLED + else if(blockID == 200) { + // Wool + Albedo.rgb = mix(Albedo.rgb, aerochrome_color, 0.3); + } + #endif + else if(blockID == 8 || blockID == 10002) + { + // IR Absorbsive? Dark. + Albedo.rgb = mix(Albedo.rgb, vec3(0.01, 0.08, 0.15), 0.5); + } + #endif + #ifdef WORLD if (Albedo.a > 0.1) Albedo.a = normalMat.a; else Albedo.a = 0.0; #endif - #ifdef HAND + #if defined HAND if (Albedo.a > 0.1) Albedo.a = 0.75; else Albedo.a = 0.0; #endif - #ifdef WhiteWorld - Albedo.rgb = vec3(1.0); + + //////////////////////////////// //////////////////////////////// + //////////////////////////////// NORMAL //////////////////////////////// + //////////////////////////////// //////////////////////////////// + + #if defined WORLD && defined MC_NORMAL_MAP + vec3 NormalTex = texture2D_POMSwitch(normals, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM).xya; + float Heightmap = 1.0 - NormalTex.z; + + NormalTex.xy = NormalTex.xy*2.0-1.0; + NormalTex.z = clamp(sqrt(1.0 - dot(NormalTex.xy, NormalTex.xy)),0.0,1.0) ; + + #if defined HEIGTHMAP_DEPTH_OFFSET && !defined HAND + gl_FragDepth = gl_FragCoord.z; + vec3 truePos = fragpos; + truePos.z -= Heightmap * POM_DEPTH * (1.0 + ld(truePos.z)); + + gl_FragDepth = toClipSpace3(truePos).z; + #endif + + if(PHYSICSMOD_SNOW < 1) normal = applyBump(tbnMatrix, NormalTex.xyz, mix(1.0,1-Puddle_shape,rainfall) ); #endif - //////////////////////////////// - //////////////////////////////// NORMAL - //////////////////////////////// - - #ifdef WORLD - #ifdef MC_NORMAL_MAP - - vec4 NormalTex = texture2D_POMSwitch(normals, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM); - NormalTex.xy = NormalTex.xy*2.0-1.0; - NormalTex.z = clamp(sqrt(1.0 - dot(NormalTex.xy, NormalTex.xy)),0.0,1.0) ; - - normal = applyBump(tbnMatrix, NormalTex.xyz, 1.0); - #endif - #endif - - //////////////////////////////// - //////////////////////////////// SPECULAR - //////////////////////////////// - + //////////////////////////////// //////////////////////////////// + //////////////////////////////// SPECULAR //////////////////////////////// + //////////////////////////////// //////////////////////////////// + #ifdef WORLD vec4 SpecularTex = texture2D_POMSwitch(specular, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM); + SpecularTex.r = max(SpecularTex.r, Puddle_shape); + SpecularTex.g = max(SpecularTex.g, Puddle_shape*0.02); + gl_FragData[2].rg = SpecularTex.rg; #if EMISSIVE_TYPE == 0 @@ -366,35 +526,51 @@ void main() { #if SSS_TYPE == 3 gl_FragData[2].b = SpecularTex.b; #endif - - // hit glow effect... - #ifdef ENTITIES - Albedo.rgb = mix(Albedo.rgb, entityColor.rgb, entityColor.a); - gl_FragData[2].a = mix(gl_FragData[2].a, 0.9, entityColor.a);; - #endif - + + // #ifndef ENTITIES + // if(PORTAL > 0){ + // gl_FragData[2].rgb = vec3(0); + // gl_FragData[2].a = clamp(ENDPORTAL_EFFECT * 0.9, 0,0.9); + // } + // #endif #endif - //////////////////////////////// - //////////////////////////////// FINALIZE - //////////////////////////////// + // hit glow effect... + #ifdef ENTITIES + Albedo.rgb = mix(Albedo.rgb, entityColor.rgb, entityColor.a); + gl_FragData[2].a = mix(gl_FragData[2].a, 0.25, clamp(entityColor.a*5,0,1)); + #endif - vec4 data1 = clamp( encode(viewToWorld(normal), (blueNoise()*vec2(torchlightmap,lmtexcoord.w) / (30.0 * (1+ (1-RENDER_SCALE.x))) ) + vec2(torchlightmap,lmtexcoord.w)), 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[1].a = 0.0; - - //////////////////////////////// - //////////////////////////////// OTHER STUFF - //////////////////////////////// + //////////////////////////////// //////////////////////////////// + //////////////////////////////// FINALIZE //////////////////////////////// + //////////////////////////////// //////////////////////////////// #ifdef WORLD - gl_FragData[3] = vec4(FlatNormals * 0.5 + 0.5,VanillaAO); + + #ifdef Puddles + float porosity = 0.4; + #ifdef Porosity + porosity = SpecularTex.z >= 64.5/255.0 ? 0.0 : (SpecularTex.z*255.0/64.0)*0.65; + #endif + if(SpecularTex.g < 229.5/255.0) Albedo.rgb = mix(Albedo.rgb, vec3(0), Puddle_shape*porosity); + #endif + + // apply noise to lightmaps to reduce banding. + vec2 PackLightmaps = vec2(torchlightmap, lmtexcoord.w); + + #if !defined ENTITIES && !defined HAND + // PackLightmaps = clamp(PackLightmaps*blueNoise()*0.05 + PackLightmaps,0.0,1.0); + #endif + + + vec4 data1 = clamp( encode(viewToWorld(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[3] = vec4(FlatNormals * 0.5 + 0.5, VanillaAO); + #endif - - // gl_FragData[4].x = 0; - - // #ifdef ENTITIES - // gl_FragData[4].x = 1; - // #endif + + gl_FragData[1].a = 0.0; } \ No newline at end of file diff --git a/shaders/dimensions/all_solid.vsh b/shaders/dimensions/all_solid.vsh index da5e516..640a829 100644 --- a/shaders/dimensions/all_solid.vsh +++ b/shaders/dimensions/all_solid.vsh @@ -1,7 +1,7 @@ -//#extension GL_EXT_gpu_shader4 : disable +#extension GL_EXT_gpu_shader4 : enable #include "/lib/settings.glsl" - #include "/lib/res_params.glsl" +#include "/lib/bokeh.glsl" /* !! DO NOT REMOVE !! @@ -61,12 +61,24 @@ flat varying float HELD_ITEM_BRIGHTNESS; flat varying int PHYSICSMOD_SNOW; flat varying int NameTags; +uniform int frameCounter; +uniform float far; +uniform float aspectRatio; +uniform float viewHeight; +uniform float viewWidth; +uniform int hideGUI; +uniform float screenBrightness; + flat varying float SSSAMOUNT; flat varying float EMISSIVE; flat varying int LIGHTNING; flat varying int PORTAL; flat varying int SIGN; +// in vec3 at_velocity; +// out vec3 velocity; + + uniform mat4 gbufferModelView; uniform mat4 gbufferModelViewInverse; @@ -83,6 +95,7 @@ const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), vec2(-7.,-1.)/8., vec2(3,7.)/8., vec2(7.,-7.)/8.); + #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) { @@ -212,12 +225,19 @@ void main() { FlatNormals = normalMat.xyz; blockID = mc_Entity.x; + // velocity = at_velocity; + + if(mc_Entity.x == 10009) normalMat.a = 0.60; + PORTAL = 0; SIGN = 0; + #ifdef WORLD // disallow POM to work on signs. if(blockEntityId == 2200) SIGN = 1; + + if(blockEntityId == 2100) PORTAL = 1; #endif NameTags = 0; @@ -255,7 +275,7 @@ void main() { #ifdef ENTITIES if(entityId == 12345){ LIGHTNING = 1; - normalMat.a = 0.5; + normalMat.a = 0.50; } #endif @@ -270,26 +290,32 @@ void main() { #ifdef WORLD + /////// ----- SSS ON BLOCKS ----- /////// // strong - if(mc_Entity.x == 10001 || mc_Entity.x == 10003 || mc_Entity.x == 10004) SSSAMOUNT = 1.0; + if(mc_Entity.x == 10001 || mc_Entity.x == 10003 || mc_Entity.x == 10004 || mc_Entity.x == 10009) SSSAMOUNT = 1.0; // medium if(mc_Entity.x == 10006 || mc_Entity.x == 200) SSSAMOUNT = 0.75; // low - if(mc_Entity.x == 10007 || mc_Entity.x == 10008) SSSAMOUNT = 0.5; - + + #ifdef MISC_BLOCK_SSS + if(mc_Entity.x == 10007 || mc_Entity.x == 10008) SSSAMOUNT = 0.5; // weird SSS on blocks like grass and stuff + #endif + #ifdef ENTITIES - /////// ----- SSS ON MOBS----- /////// - // strong - if(entityId == 1100) SSSAMOUNT = 0.75; - - // medium - - // low - if(entityId == 1200) SSSAMOUNT = 0.3; + #ifdef MOB_SSS + /////// ----- SSS ON MOBS----- /////// + // strong + if(entityId == 1100) SSSAMOUNT = 0.75; + + // medium + + // low + if(entityId == 1200) SSSAMOUNT = 0.3; + #endif #endif #ifdef BLOCKENTITIES @@ -304,14 +330,62 @@ void main() { #endif + #ifdef WAVY_PLANTS + bool istopv = gl_MultiTexCoord0.t < mc_midTexCoord.t; + if ((mc_Entity.x == 10001 || mc_Entity.x == 10009) && istopv && abs(position.z) < 64.0) { + vec3 worldpos = mat3(gbufferModelViewInverse) * position + gbufferModelViewInverse[3].xyz + cameraPosition; + worldpos.xyz += calcMovePlants(worldpos.xyz)*lmtexcoord.w - cameraPosition; + position = mat3(gbufferModelView) * worldpos + gbufferModelView[3].xyz; + } + + if (mc_Entity.x == 10003 && abs(position.z) < 64.0) { + vec3 worldpos = mat3(gbufferModelViewInverse) * position + gbufferModelViewInverse[3].xyz + cameraPosition; + worldpos.xyz += calcMoveLeaves(worldpos.xyz, 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 - cameraPosition; + position = mat3(gbufferModelView) * worldpos + gbufferModelView[3].xyz; + } + #endif gl_Position = toClipSpace3(position); #endif + #ifdef Seasons + #ifdef WORLD + #ifndef BLOCKENTITIES + #ifndef ENTITIES + #ifndef HAND + float blank = 0.0; + YearCycleColor(color.rgb, gl_Color.rgb, blank); + #endif + #endif + #endif + #endif + #endif + #ifdef TAA_UPSCALING + gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w; + #endif #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w * texelSize; + gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; + #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 } diff --git a/shaders/dimensions/all_translucent.fsh b/shaders/dimensions/all_translucent.fsh index 2ddf384..d96f680 100644 --- a/shaders/dimensions/all_translucent.fsh +++ b/shaders/dimensions/all_translucent.fsh @@ -4,6 +4,16 @@ varying vec4 lmtexcoord; varying vec4 color; +#ifdef OVERWORLD_SHADER + const bool shadowHardwareFiltering = true; + uniform sampler2DShadow shadow; + + uniform float lightSign; + flat varying vec3 WsunVec; + + flat varying vec3 averageSkyCol_Clouds; + flat varying vec4 lightCol; +#endif const bool colortex4MipmapEnabled = true; uniform sampler2D noisetex; @@ -17,14 +27,15 @@ uniform sampler2D normals; varying vec4 tangent; varying vec4 normalMat; varying vec3 binormal; - +varying vec3 flatnormal; varying vec3 viewVector; + uniform vec3 sunVec; uniform float near; -uniform float far; +// uniform float far; uniform float sunElevation; uniform int isEyeInWater; @@ -37,7 +48,6 @@ uniform float frameTimeCounter; uniform vec2 texelSize; uniform int framemod8; -flat varying vec3 WsunVec; uniform mat4 gbufferPreviousModelView; uniform vec3 previousCameraPosition; @@ -57,10 +67,17 @@ uniform vec3 nsunColor; #include "/lib/waterBump.glsl" #include "/lib/clouds.glsl" #include "/lib/stars.glsl" -#include "/lib/volumetricClouds.glsl" -#define OVERWORLD -#include "/lib/diffuse_lighting.glsl" +#ifdef OVERWORLD_SHADER + flat varying float Flashing; + #include "/lib/lightning_stuff.glsl" + #include "/lib/volumetricClouds.glsl" +#else + uniform sampler2D colortex4; + uniform float nightVision; +#endif + +#include "/lib/diffuse_lighting.glsl" float blueNoise(){ return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter); @@ -134,9 +151,9 @@ vec2 tapLocation(int sampleNumber,int nb, float nbRot,float jitter,float distort } -vec3 viewToWorld(vec3 viewPosition) { +vec3 viewToWorld(vec3 viewPos) { vec4 pos; - pos.xyz = viewPosition; + pos.xyz = viewPos; pos.w = 0.0; pos = gbufferModelViewInverse * pos; return pos.xyz; @@ -173,7 +190,7 @@ float ld(float dist) { return (2.0 * near) / (far + near - dist * (far - near)); } -vec3 rayTrace(vec3 dir,vec3 position,float dither, float fresnel, bool inwater){ +vec3 rayTrace(vec3 dir, vec3 position,float dither, float fresnel, bool inwater){ float quality = mix(15,SSR_STEPS,fresnel); vec3 clipPosition = toClipSpace3(position); @@ -187,29 +204,30 @@ vec3 rayTrace(vec3 dir,vec3 position,float dither, float fresnel, bool inwater){ float mult = min(min(maxLengths.x,maxLengths.y),maxLengths.z); - vec3 stepv = direction * mult / quality; + vec3 stepv = direction * mult / quality * vec3(RENDER_SCALE,1.0); - vec3 spos = clipPosition+ stepv*dither; + vec3 spos = clipPosition*vec3(RENDER_SCALE,1.0) + stepv*dither; float minZ = clipPosition.z; float maxZ = spos.z+stepv.z*0.5; - spos.xy += offsets[framemod8]*texelSize*0.5; + spos.xy += offsets[framemod8]*texelSize*0.5/RENDER_SCALE; float dist = 1.0 + clamp(position.z*position.z/50.0,0,2); // shrink sample size as distance increases for (int i = 0; i <= int(quality); i++) { - #ifdef USE_QUARTER_RES_DEPTH - // decode depth buffer - float sp = sqrt(texelFetch2D(colortex4,ivec2(spos.xy/texelSize/4),0).w/65000.0); - sp = invLinZ(sp); - if(sp <= max(maxZ,minZ) && sp >= min(maxZ,minZ)) return vec3(spos.xy,sp); + // decode depth buffer + // float sp = sqrt(texelFetch2D(colortex4,ivec2(spos.xy/texelSize/4),0).w/65000.0); + #ifdef HAND + vec2 testthing = spos.xy*texelSize; // fix for ssr on hand #else - float sp = texelFetch2D(depthtex1,ivec2(spos.xy/texelSize),0).r; - if(sp <= max(maxZ,minZ) && sp >= min(maxZ,minZ)) return vec3(spos.xy,sp); - - + vec2 testthing = spos.xy/texelSize/4.0; #endif + float sp = sqrt((texelFetch2D(colortex4,ivec2(testthing),0).a+0.1)/65000.0); + sp = invLinZ(sp); + + if(sp <= max(maxZ,minZ) && sp >= min(maxZ,minZ)) return vec3(spos.xy/RENDER_SCALE,sp); + spos += stepv; //small bias @@ -255,12 +273,17 @@ vec3 GGX (vec3 n, vec3 v, vec3 l, float r, vec3 F0) { /* RENDERTARGETS:2,7,11,14 */ void main() { if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) { + vec2 tempOffset = offsets[framemod8]; - vec3 fragpos = toScreenSpace(gl_FragCoord.xyz*vec3(texelSize,1.0)-vec3(vec2(tempOffset)*texelSize*0.5,0.0)); + vec3 viewPos = toScreenSpace(gl_FragCoord.xyz*vec3(texelSize/RENDER_SCALE,1.0)-vec3(vec2(tempOffset)*texelSize*0.5,0.0)); + vec3 feetPlayerPos = mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz; + + //////////////////////////////// + //////////////////////////////// ALBEDO + //////////////////////////////// gl_FragData[0] = texture2D(texture, lmtexcoord.xy, Texture_MipMap_Bias) * color; vec3 Albedo = toLinear(gl_FragData[0].rgb); - float UnchangedAlpha = gl_FragData[0].a; float iswater = normalMat.w; @@ -282,20 +305,21 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) #endif - vec4 COLORTEST = vec4(Albedo,UnchangedAlpha); + vec4 COLORTEST = vec4(Albedo, UnchangedAlpha); - vec3 p3 = mat3(gbufferModelViewInverse) * fragpos + gbufferModelViewInverse[3].xyz; + + //////////////////////////////// + //////////////////////////////// NORMAL + //////////////////////////////// vec3 normal = normalMat.xyz; vec2 TangentNormal = vec2(0); // for refractions vec3 tangent2 = normalize(cross(tangent.rgb,normal)*tangent.w); mat3 tbnMatrix = mat3(tangent.x, tangent2.x, normal.x, - tangent.y, tangent2.y, normal.y, - tangent.z, tangent2.z, normal.z); - - /// ------ NORMALS ------ /// + tangent.y, tangent2.y, normal.y, + tangent.z, tangent2.z, normal.z); vec4 NormalTex = texture2D(normals, lmtexcoord.xy, Texture_MipMap_Bias).rgba; NormalTex.xy = NormalTex.xy*2.0-1.0; @@ -304,30 +328,108 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) normal = applyBump(tbnMatrix, NormalTex.xyz, 1.0); - if (iswater > 0.95){ - float bumpmult = 1.0; - vec3 bump = vec3(0); - vec3 posxz = p3+cameraPosition; + + #ifndef HAND + if (iswater > 0.95){ + float bumpmult = 1.0; + vec3 bump = vec3(0); + vec3 posxz = feetPlayerPos+cameraPosition; - posxz.xz -= posxz.y; - posxz.xyz = getParallaxDisplacement(posxz,iswater,bumpmult,normalize(tbnMatrix*fragpos)) ; + posxz.xz -= posxz.y; + posxz.xyz = getParallaxDisplacement(posxz,iswater,bumpmult,normalize(tbnMatrix*viewPos)) ; - bump = normalize(getWaveHeight(posxz.xz,iswater)); - - TangentNormal = bump.xy*0.5+0.5; // tangent space normals for refraction + bump = normalize(getWaveHeight(posxz.xz,iswater)); - bump = bump * vec3(bumpmult, bumpmult, bumpmult) + vec3(0.0f, 0.0f, 1.0f - bumpmult); - normal = normalize(bump * tbnMatrix); - } + TangentNormal = bump.xy*0.5+0.5; // tangent space normals for refraction + + bump = bump * vec3(bumpmult, bumpmult, bumpmult) + vec3(0.0f, 0.0f, 1.0f - bumpmult); + normal = normalize(bump * tbnMatrix); + } + #endif gl_FragData[2] = vec4(encodeVec2(TangentNormal), encodeVec2(COLORTEST.rg), encodeVec2(COLORTEST.ba), UnchangedAlpha); - - vec3 WS_normal = viewToWorld(normal); + //////////////////////////////// + //////////////////////////////// DIFFUSE LIGHTING + //////////////////////////////// - vec2 lightmaps2 = lmtexcoord.zw; + vec2 lightmap = lmtexcoord.zw; + #ifndef OVERWORLD_SHADER + lightmap.y = 1.0; + #endif vec3 Indirect_lighting = vec3(0.0); + vec3 Direct_lighting = vec3(0.0); + + #ifdef OVERWORLD_SHADER + float NdotL = clamp(dot(normal, normalize(WsunVec*mat3(gbufferModelViewInverse))),0.0,1.0); NdotL = clamp((-15 + NdotL*255.0) / 240.0 ,0.0,1.0); + float Shadows = 0.0; + bool inShadowmapBounds = false; + + vec3 feetPlayerPos_shadow = mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz; + + vec3 projectedShadowPosition = mat3(shadowModelView) * feetPlayerPos_shadow + shadowModelView[3].xyz; + projectedShadowPosition = diagonal3(shadowProjection) * projectedShadowPosition + shadowProjection[3].xyz; + + //apply distortion + float distortFactor = calcDistort(projectedShadowPosition.xy); + projectedShadowPosition.xy *= distortFactor; + + bool ShadowBounds = false; + if(shadowDistanceRenderMul > 0.0) ShadowBounds = length(feetPlayerPos_shadow) < max(shadowDistance - 20,0.0); + + if(shadowDistanceRenderMul < 0.0) ShadowBounds = abs(projectedShadowPosition.x) < 1.0-1.5/shadowMapResolution && abs(projectedShadowPosition.y) < 1.0-1.5/shadowMapResolution && abs(projectedShadowPosition.z) < 6.0; + + // sample shadows only if on shadow map + if(ShadowBounds){ + if (NdotL > 0.0){ + Shadows = 0.0; + projectedShadowPosition = projectedShadowPosition * vec3(0.5,0.5,0.5/6.0) + vec3(0.5); + + #ifndef HAND + #ifdef BASIC_SHADOW_FILTER + const float threshMul = max(2048.0/shadowMapResolution*shadowDistance/128.0,0.95); + float distortThresh = (sqrt(1.0-NdotL*NdotL)/NdotL+0.7)/distortFactor; + float diffthresh = distortThresh/6000.0*threshMul; + + float rdMul = 4.0/shadowMapResolution; + float noise = blueNoise(); + + int SampleCount = 7; + for(int i = 0; i < SampleCount; i++){ + vec2 offsetS = tapLocation(i,SampleCount,1.618,noise,0.0); + + float weight = 1.0+(i+noise)*rdMul/9.0*shadowMapResolution; + float isShadow = shadow2D(shadow, projectedShadowPosition + vec3(rdMul*offsetS, -diffthresh*weight)).x / SampleCount; + Shadows += isShadow; + } + + #else + Shadows = shadow2D(shadow, projectedShadowPosition - vec3(0.0,0.0,0.0001)).x; + #endif + #else + Shadows = shadow2D(shadow, projectedShadowPosition - vec3(0.0,0.0,0.0005)).x; + #endif + } + inShadowmapBounds = true; + } + + // if(!inShadowmapBounds && !iswater) Shadows = min(max(lightmap.y-0.8, 0.0) * 25,1.0); + if(!inShadowmapBounds) Shadows = 1.0; + + Shadows *= GetCloudShadow(feetPlayerPos); + + Direct_lighting = (lightCol.rgb/80.0) * NdotL * Shadows; + + + vec3 ambientcoefs = WS_normal / dot(abs(WS_normal), vec3(1)); + float SkylightDir = ambientcoefs.y*1.5; + + float skylight = max(pow(viewToWorld(flatnormal).y*0.5+0.5,0.1) + SkylightDir, 0.25); + + // float skylight = max(pow(viewToWorld(flatnormal).y*0.5+0.5,0.1) + viewToWorld(normal).y, 0.25) * 1.35; + Indirect_lighting = DoAmbientLighting(averageSkyCol_Clouds, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.xy, skylight); + #endif #ifdef NETHER_SHADER WS_normal.xz = -WS_normal.xz; @@ -342,25 +444,31 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) AmbientLightColor += up + down; // do all ambient lighting stuff - Indirect_lighting = DoAmbientLighting_Nether(AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmaps2.x, vec3(0.0), vec3(0.0), vec3(0.0)); + Indirect_lighting = DoAmbientLighting_Nether(AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.x, vec3(0.0), vec3(0.0), vec3(0.0)); #endif #ifdef END_SHADER // do all ambient lighting stuff - Indirect_lighting = DoAmbientLighting_End(gl_Fog.color.rgb, vec3(TORCH_R,TORCH_G,TORCH_B), lightmaps2.x, normal, p3 ); + Indirect_lighting = DoAmbientLighting_End(gl_Fog.color.rgb, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.x, normal, feetPlayerPos ); #endif - vec3 FinalColor = Indirect_lighting * Albedo; + vec3 FinalColor = (Indirect_lighting + Direct_lighting) * Albedo; #ifdef Glass_Tint - float alphashit = min(pow(gl_FragData[0].a,2.0),1.0); - FinalColor *= alphashit; + FinalColor *= min(pow(gl_FragData[0].a,2.0),1.0); #endif + //////////////////////////////// + //////////////////////////////// SPECULAR + //////////////////////////////// + #ifdef DAMAGE_BLOCK_EFFECT + #undef WATER_REFLECTIONS + #endif + #ifdef WATER_REFLECTIONS vec2 SpecularTex = texture2D(specular, lmtexcoord.xy, Texture_MipMap_Bias).rg; - SpecularTex = (iswater > 0.0 && iswater < 0.9) && SpecularTex.r > 0.0 && SpecularTex.g < 0.9 ? SpecularTex : vec2(1.0,0.1); + SpecularTex = (iswater > 0.0 && iswater < 0.9) && SpecularTex.r > 0.0 && SpecularTex.g < 0.9 ? SpecularTex : vec2(1.0,0.02); float roughness = max(pow(1.0-SpecularTex.r,2.0),0.05); float f0 = SpecularTex.g; @@ -369,28 +477,41 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) vec3 Reflections_Final = vec3(0.0); vec4 Reflections = vec4(0.0); vec3 SkyReflection = vec3(0.0); + vec3 SunReflection = vec3(0.0); + + float indoors = clamp((lightmap.y-0.6)*5.0, 0.0,1.0); - - vec3 reflectedVector = reflect(normalize(fragpos), normal); - float normalDotEye = dot(normal, normalize(fragpos)); - float fresnel = pow(clamp(1.0 + normalDotEye,0.0,1.0), 5.0); + vec3 reflectedVector = reflect(normalize(viewPos), normal); + + float normalDotEye = dot(normal, normalize(viewPos)); + float fresnel = pow(clamp(1.0 + dot(normal, normalize(viewPos)), 0.0, 1.0),5.0); + + // float fresnel = exp(clamp(0.0 - dot(normal, normalize(viewPos)), 0.0, 1.0) * -5); // snells window looking thing if(isEyeInWater == 1 ) fresnel = pow(clamp(1.66 + normalDotEye,0.0,1.0), 25.0); fresnel = mix(f0, 1.0, fresnel); - vec3 wrefl = mat3(gbufferModelViewInverse)*reflectedVector; - // SSR, Sky, and Sun reflections - #ifdef WATER_BACKGROUND_SPECULAR - SkyReflection = skyCloudsFromTexLOD2(wrefl, colortex4, 0).rgb / 30.0; - if(isEyeInWater == 1) SkyReflection = vec3(0.0); + // Sun, Sky, and screen-space reflections + #ifdef OVERWORLD_SHADER + #ifdef WATER_SUN_SPECULAR + SunReflection = Direct_lighting * GGX(normal, -normalize(viewPos), WsunVec*mat3(gbufferModelViewInverse), roughness, vec3(f0)); + #endif + #ifdef WATER_BACKGROUND_SPECULAR + SkyReflection = skyCloudsFromTex(mat3(gbufferModelViewInverse) * reflectedVector, colortex4).rgb / 30.0; + if(isEyeInWater == 1) SkyReflection = vec3(0.0); + #endif + #else + #ifdef WATER_BACKGROUND_SPECULAR + SkyReflection = skyCloudsFromTexLOD2(mat3(gbufferModelViewInverse) * reflectedVector, colortex4, 0).rgb / 30.0; + if(isEyeInWater == 1) SkyReflection = vec3(0.0); + #endif #endif - #ifdef SCREENSPACE_REFLECTIONS if(iswater > 0.0){ - vec3 rtPos = rayTrace(reflectedVector,fragpos.xyz, interleaved_gradientNoise(), fresnel, isEyeInWater == 1); + vec3 rtPos = rayTrace(reflectedVector, viewPos.xyz, interleaved_gradientNoise(), fresnel, isEyeInWater == 1); if (rtPos.z < 1.){ vec3 previousPosition = mat3(gbufferModelViewInverse) * toScreenSpace(rtPos) + gbufferModelViewInverse[3].xyz + cameraPosition-previousCameraPosition; previousPosition = mat3(gbufferPreviousModelView) * previousPosition + gbufferPreviousModelView[3].xyz; @@ -405,8 +526,10 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) float visibilityFactor = clamp(exp2((pow(roughness,3.0) / f0) * -4),0,1); - Reflections_Final = mix(SkyReflection, Reflections.rgb, Reflections.a); - Reflections_Final = mix(FinalColor, Reflections_Final, fresnel * visibilityFactor); + Reflections_Final = mix(SkyReflection*indoors, Reflections.rgb, Reflections.a); + Reflections_Final = mix(FinalColor, Reflections_Final, fresnel); + Reflections_Final += SunReflection; + gl_FragData[0].rgb = Reflections_Final; @@ -423,7 +546,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) #endif #ifndef HAND - gl_FragData[1] = vec4(Albedo,iswater); + gl_FragData[1] = vec4(Albedo, iswater); #endif gl_FragData[3].a = max(lmtexcoord.w*blueNoise()*0.05 + lmtexcoord.w,0.0); diff --git a/shaders/dimensions/all_translucent.vsh b/shaders/dimensions/all_translucent.vsh index 9fa4dc3..051c005 100644 --- a/shaders/dimensions/all_translucent.vsh +++ b/shaders/dimensions/all_translucent.vsh @@ -1,8 +1,7 @@ -// #version 120 -//#extension GL_EXT_gpu_shader4 : disable #include "/lib/settings.glsl" #include "/lib/res_params.glsl" #include "/lib/bokeh.glsl" +#include "/lib/Shadow_Params.glsl" /* !! DO NOT REMOVE !! @@ -13,9 +12,17 @@ Read the terms of modification and sharing before changing something below pleas varying vec4 lmtexcoord; varying vec4 color; + +#ifdef OVERWORLD_SHADER + flat varying vec3 averageSkyCol_Clouds; + flat varying vec4 lightCol; + flat varying vec3 WsunVec; +#endif + varying vec4 normalMat; varying vec3 binormal; varying vec4 tangent; +varying vec3 flatnormal; uniform mat4 gbufferModelViewInverse; varying vec3 viewVector; @@ -28,13 +35,12 @@ attribute vec4 mc_Entity; uniform sampler2D colortex4; uniform vec3 sunPosition; -flat varying vec3 WsunVec; uniform float sunElevation; varying vec4 tangent_other; uniform int frameCounter; -uniform float far; +// uniform float far; uniform float aspectRatio; uniform float viewHeight; uniform float viewWidth; @@ -77,7 +83,6 @@ void main() { vec3 position = mat3(gl_ModelViewMatrix) * vec3(Swtich_gl_vertex) + gl_ModelViewMatrix[3].xyz; gl_Position = toClipSpace3(position); - color = vec4(gl_Color.rgb,1.0); float mat = 0.0; @@ -106,10 +111,30 @@ void main() { mat3 tbnMatrix = mat3(tangent2.x, binormal.x, normalMat.x, tangent2.y, binormal.y, normalMat.y, tangent2.z, binormal.z, normalMat.z); + + flatnormal = normalMat.xyz; viewVector = ( gl_ModelViewMatrix * Swtich_gl_vertex).xyz; viewVector = normalize(tbnMatrix * viewVector); + + color = vec4(gl_Color.rgb, 1.0); + + #ifdef OVERWORLD_SHADER + lightCol.rgb = texelFetch2D(colortex4,ivec2(6,37),0).rgb; + lightCol.a = float(sunElevation > 1e-5)*2.0 - 1.0; + + averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(0,37),0).rgb; + + WsunVec = lightCol.a * normalize(mat3(gbufferModelViewInverse) * sunPosition); + // WsunVec = normalize(LightDir); + #endif + + + + #ifdef TAA_UPSCALING + gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w; + #endif #ifdef TAA gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; #endif diff --git a/shaders/gbuffers_spidereyes.fsh b/shaders/dimensions/all_vanilla_emissives.fsh similarity index 56% rename from shaders/gbuffers_spidereyes.fsh rename to shaders/dimensions/all_vanilla_emissives.fsh index 53d6bca..1c169e0 100644 --- a/shaders/gbuffers_spidereyes.fsh +++ b/shaders/dimensions/all_vanilla_emissives.fsh @@ -1,6 +1,3 @@ -#version 120 - - varying vec4 color; varying vec2 texcoord; @@ -34,17 +31,37 @@ float encodeVec2(float x,float y){ //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// -/* DRAWBUFFERS:28 */ +#if defined SPIDER_EYES || defined BEACON_BEAM || defined GLOWING + /* DRAWBUFFERS:1 */ +#endif + +#ifdef ENCHANT_GLINT + /* DRAWBUFFERS:2 */ +#endif void main() { vec4 Albedo = texture2D(texture, texcoord); - Albedo *= color; - Albedo.rgb = toLinear(Albedo.rgb); + #if defined SPIDER_EYES || defined BEACON_BEAM || defined GLOWING + vec4 data1 = vec4(1.0); float materialMask = 1.0; - gl_FragData[0] = Albedo; - if (gl_FragData[0].r > 65000.) gl_FragData[0].rgba = vec4(0.); + #if defined SPIDER_EYES || defined GLOWING + if(Albedo.a < 0.1) discard; + Albedo.rgb *= color.a; + #endif - gl_FragData[1] = vec4(0.0,0.0,0.0,0.5); + #ifdef BEACON_BEAM + Albedo.rgb = Albedo.rgb * color.rgb; + materialMask = 0.75; + #endif + + gl_FragData[0] = vec4(encodeVec2(Albedo.x,data1.x), encodeVec2(Albedo.y,data1.y), encodeVec2(Albedo.z,data1.z), encodeVec2(data1.w, materialMask)); + #endif + + #ifdef ENCHANT_GLINT + vec3 GlintColor = toLinear(Albedo.rgb * color.rgb) * Albedo.a; + + gl_FragData[0] = vec4(GlintColor, Albedo.a * 0.1); + #endif } \ No newline at end of file diff --git a/shaders/gbuffers_spidereyes.vsh b/shaders/dimensions/all_vanilla_emissives.vsh similarity index 83% rename from shaders/gbuffers_spidereyes.vsh rename to shaders/dimensions/all_vanilla_emissives.vsh index 5bb3b51..52b9875 100644 --- a/shaders/gbuffers_spidereyes.vsh +++ b/shaders/dimensions/all_vanilla_emissives.vsh @@ -1,6 +1,3 @@ -#version 120 -//#extension GL_EXT_gpu_shader4 : disable - #include "/lib/settings.glsl" #include "/lib/res_params.glsl" @@ -24,6 +21,7 @@ const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), vec2(-7.,-1.)/8., vec2(3,7.)/8., vec2(7.,-7.)/8.); + //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -34,10 +32,18 @@ void main() { gl_Position = ftransform(); - // gl_Position = vec4(10,10,10,1); - texcoord = (gl_MultiTexCoord0).xy; + #ifdef ENCHANT_GLINT + texcoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; + // float exposure = texelFetch2D(colortex4, ivec2(10,37),0).r; + #endif + color = gl_Color; + #ifdef BEACON_BEAM + if(gl_Color.a < 1.0) gl_Position = vec4(10,10,10,0); + #endif + + #ifdef TAA_UPSCALING gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w; diff --git a/shaders/dimensions/composite.fsh b/shaders/dimensions/composite.fsh index c0230d0..a3c623c 100644 --- a/shaders/dimensions/composite.fsh +++ b/shaders/dimensions/composite.fsh @@ -1,119 +1,80 @@ #include "/lib/settings.glsl" -#include "/lib/diffuse_lighting.glsl" - - -varying vec2 texcoord; - - - -const bool colortex5MipmapEnabled = true; -const bool colortex4MipmapEnabled = true; - -uniform sampler2D noisetex;//depth - -uniform sampler2D depthtex1;//depth -uniform sampler2D depthtex0;//depth - -uniform sampler2D colortex0;//clouds -uniform sampler2D colortex1;//albedo(rgb),material(alpha) RGBA16 -uniform sampler2D colortex2; -uniform sampler2D colortex3; -uniform sampler2D colortex4;//Skybox -uniform sampler2D colortex5; -uniform sampler2D colortex6;//Skybox -uniform sampler2D colortex7; -uniform sampler2D colortex8; -uniform sampler2D colortex10; -uniform sampler2D colortex15; - - -uniform mat4 shadowModelView; -uniform mat4 shadowModelViewInverse; -uniform mat4 shadowProjection; -uniform mat4 shadowProjectionInverse; -uniform mat4 gbufferProjection; -uniform mat4 gbufferProjectionInverse; -uniform mat4 gbufferModelView; -uniform mat4 gbufferModelViewInverse; -uniform mat4 gbufferPreviousProjection; -uniform mat4 gbufferPreviousModelView; - -uniform vec3 cameraPosition; -uniform vec3 previousCameraPosition; - -uniform float far; -uniform float near; - -uniform vec2 texelSize; -uniform float viewWidth; -uniform float viewHeight; -uniform float aspectRatio; +flat varying vec3 WsunVec; flat varying vec2 TAA_Offset; -uniform int frameCounter; -uniform float frameTimeCounter; - -uniform float rainStrength; -uniform int isEyeInWater; -uniform ivec2 eyeBrightnessSmooth; +#include "/lib/res_params.glsl" +uniform sampler2D depthtex1; +uniform sampler2D colortex1; +uniform sampler2D colortex6; // Noise +uniform sampler2D colortex8; // Noise +uniform sampler2D colortex15; // Noise +uniform sampler2D shadow; +uniform sampler2D noisetex; uniform vec3 sunVec; +uniform vec2 texelSize; +uniform float frameTimeCounter; +uniform float rainStrength; +uniform int frameCounter; +uniform mat4 gbufferProjection; +uniform mat4 gbufferProjectionInverse; +uniform mat4 gbufferModelViewInverse; +uniform mat4 gbufferModelView; +uniform mat4 shadowModelView; +uniform mat4 shadowProjection; +uniform vec3 cameraPosition; +uniform float viewWidth; +uniform float aspectRatio; +uniform float viewHeight; +// uniform float far; +uniform float near; + +#define ffstep(x,y) clamp((y - x) * 1e35,0.0,1.0) #define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) #define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) - vec3 toScreenSpace(vec3 p) { vec4 iProjDiag = vec4(gbufferProjectionInverse[0].x, gbufferProjectionInverse[1].y, gbufferProjectionInverse[2].zw); vec3 p3 = p * 2. - 1.; vec4 fragposition = iProjDiag * p3.xyzz + gbufferProjectionInverse[3]; return fragposition.xyz / fragposition.w; } - -#include "/lib/color_transforms.glsl" -#include "/lib/waterBump.glsl" -#include "/lib/sky_gradient.glsl" - - -float ld(float dist) { - return (2.0 * near) / (far + near - dist * (far - near)); +vec3 worldToView(vec3 worldPos) { + vec4 pos = vec4(worldPos, 0.0); + pos = gbufferModelView * pos; + return pos.xyz; } -vec2 RENDER_SCALE = vec2(1.0); - -#include "/lib/end_fog.glsl" - -#undef LIGHTSOURCE_REFLECTION -#define ENDSPECULAR -#include "/lib/specular.glsl" - - -vec3 normVec (vec3 vec){ - return vec*inversesqrt(dot(vec,vec)); -} -float lengthVec (vec3 vec){ - return sqrt(dot(vec,vec)); -} -#define fsign(a) (clamp((a)*1e35,0.,1.)*2.-1.) -float triangularize(float dither) +vec2 tapLocation(int sampleNumber,int nb, float nbRot,float jitter,float distort) { - float center = dither*2.0-1.0; - dither = center*inversesqrt(abs(center)); - return clamp(dither-fsign(center),0.0,1.0); + float alpha = (sampleNumber+jitter)/nb; + float angle = jitter*6.28+alpha * nbRot * 6.28; + float sin_v, cos_v; + + sin_v = sin(angle); + cos_v = cos(angle); + + return vec2(cos_v, sin_v)*alpha; } +vec2 tapLocation2(int sampleNumber, int nb, float jitter){ + float alpha = (sampleNumber+jitter)/nb; + float angle = jitter*6.28 + alpha * 84.0 * 6.28; -vec3 fp10Dither(vec3 color,float dither){ - const vec3 mantissaBits = vec3(6.,6.,5.); - vec3 exponent = floor(log2(color)); - return color + dither*exp2(-mantissaBits)*exp2(exponent); + float sin_v, cos_v; + + sin_v = sin(angle); + cos_v = cos(angle); + + return vec2(cos_v, sin_v)*sqrt(alpha); } - - - -float facos(float sx){ - float x = clamp(abs( sx ),0.,1.); - return sqrt( 1. - x ) * ( -0.16882 * x + 1.56734 ); +float interleaved_gradientNoise(){ + vec2 coord = gl_FragCoord.xy + (frameCounter%40000); + // vec2 coord = gl_FragCoord.xy + frameTimeCounter; + // vec2 coord = gl_FragCoord.xy; + float noise = fract( 52.9829189 * fract( (coord.x * 0.06711056) + (coord.y * 0.00583715)) ); + return noise ; } vec3 decode (vec2 encn){ vec3 n = vec3(0.0); @@ -128,542 +89,185 @@ vec2 decodeVec2(float a){ const float constant2 = 256. / 255.; return fract( a * constant1 ) * constant2 ; } -// float linZ(float depth) { -// return (2.0 * near) / (far + near - depth * (far - near)); -// // l = (2*n)/(f+n-d(f-n)) -// // f+n-d(f-n) = 2n/l -// // -d(f-n) = ((2n/l)-f-n) -// // d = -((2n/l)-f-n)/(f-n) - -// } -// float invLinZ (float lindepth){ -// return -((2.0*near/lindepth)-far-near)/(far-near); -// } - -// vec3 toClipSpace3(vec3 viewSpacePosition) { -// return projMAD(gbufferProjection, viewSpacePosition) / -viewSpacePosition.z * 0.5 + 0.5; -// } - - - - -vec2 tapLocation(int sampleNumber,int nb, float nbRot,float jitter,float distort) -{ - float alpha0 = sampleNumber/nb; - float alpha = (sampleNumber+jitter)/nb; - float angle = jitter*6.28 + alpha * 4.0 * 6.28; - - float sin_v, cos_v; - - sin_v = sin(angle); - cos_v = cos(angle); - - return vec2(cos_v, sin_v)*sqrt(alpha); -} - - - -vec3 BilateralFiltering(sampler2D tex, sampler2D depth,vec2 coord,float frDepth,float maxZ){ - vec4 sampled = vec4(texelFetch2D(tex,ivec2(coord),0).rgb,1.0); - - return vec3(sampled.x,sampled.yz/sampled.w); -} -float interleaved_gradientNoise(){ - // vec2 coord = gl_FragCoord.xy + (frameCounter%40000); - vec2 coord = gl_FragCoord.xy + frameTimeCounter; - // vec2 coord = gl_FragCoord.xy; - float noise = fract( 52.9829189 * fract( (coord.x * 0.06711056) + (coord.y * 0.00583715)) ); - return noise ; -} - -vec2 R2_dither(){ +float R2_dither(){ vec2 alpha = vec2(0.75487765, 0.56984026); - return vec2(fract(alpha.x * gl_FragCoord.x + alpha.y * gl_FragCoord.y + 1.0/1.6180339887 * frameCounter), fract((1.0-alpha.x) * gl_FragCoord.x + (1.0-alpha.y) * gl_FragCoord.y + 1.0/1.6180339887 * frameCounter)); + return fract(alpha.x * gl_FragCoord.x + alpha.y * gl_FragCoord.y + 1.0/1.6180339887 * frameCounter); } float blueNoise(){ - return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * (frameCounter*0.5+0.5) ); + return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter); } vec4 blueNoise(vec2 coord){ - return texelFetch2D(colortex6, ivec2(coord)%512 , 0) ; -} -vec3 toShadowSpaceProjected(vec3 p3){ - p3 = mat3(gbufferModelViewInverse) * p3 + gbufferModelViewInverse[3].xyz; - p3 = mat3(shadowModelView) * p3 + shadowModelView[3].xyz; - p3 = diagonal3(shadowProjection) * p3 + shadowProjection[3].xyz; - - return p3; -} -vec2 tapLocation(int sampleNumber, float spinAngle,int nb, float nbRot,float r0) -{ - float alpha = (float(sampleNumber*1.0f + r0) * (1.0 / (nb))); - float angle = alpha * (nbRot * 6.28) + spinAngle*6.28; - - float ssR = alpha; - float sin_v, cos_v; - - sin_v = sin(angle); - cos_v = cos(angle); - - return vec2(cos_v, sin_v)*ssR; + return texelFetch2D(colortex6, ivec2(coord )%512 , 0); } - -float ssao(vec3 fragpos, float dither,vec3 normal) -{ - float mulfov = 1.0; - ivec2 pos = ivec2(gl_FragCoord.xy); - const float tan70 = tan(70.*3.14/180.); - float mulfov2 = gbufferProjection[1][1]/tan70; - - const float PI = 3.14159265; - const float samplingRadius = 0.712; - float angle_thresh = 0.05; - - - - - float rd = mulfov2*0.05; - //pre-rotate direction - float n = 0.; - - float occlusion = 0.0; - - vec2 acc = -vec2(TAA_Offset)*texelSize*0.5; - float mult = (dot(normal,normalize(fragpos))+1.0)*0.5+0.5; - - vec2 v = fract(vec2(dither,interleaved_gradientNoise()) + (frameCounter%10000) * vec2(0.75487765, 0.56984026)); - for (int j = 0; j < 7+2 ;j++) { - vec2 sp = tapLocation(j,v.x,7+2,2.,v.y); - vec2 sampleOffset = sp*rd; - ivec2 offset = ivec2(gl_FragCoord.xy + sampleOffset*vec2(viewWidth,viewHeight)); - if (offset.x >= 0 && offset.y >= 0 && offset.x < viewWidth && offset.y < viewHeight ) { - vec3 t0 = toScreenSpace(vec3(offset*texelSize+acc+0.5*texelSize,texelFetch2D(depthtex1,offset,0).x)); - - vec3 vec = t0.xyz - fragpos; - float dsquared = dot(vec,vec); - if (dsquared > 1e-5){ - if (dsquared < fragpos.z*fragpos.z*0.05*0.05*mulfov2*2.*1.412){ - float NdotV = clamp(dot(vec*inversesqrt(dsquared), normalize(normal)),0.,1.); - occlusion += NdotV; - } - n += 1.0; - } - } - } - - - - - return clamp(1.0-occlusion/n*2.0,0.,1.0); -} -vec3 viewToWorld(vec3 viewPosition) { - vec4 pos; - pos.xyz = viewPosition; - pos.w = 0.0; - pos = gbufferModelViewInverse * pos; - return pos.xyz; -} -vec3 worldToView(vec3 worldPos) { - vec4 pos = vec4(worldPos, 0.0); - pos = gbufferModelView * pos; - return pos.xyz; -} -void waterVolumetrics(inout vec3 inColor, vec3 rayStart, vec3 rayEnd, float estEndDepth, float estSunDepth, float rayLength, float dither, vec3 waterCoefs, vec3 scatterCoef, vec3 ambient){ - inColor *= exp(-rayLength * waterCoefs); //No need to take the integrated value - int spCount = rayMarchSampleCount; - vec3 start = toShadowSpaceProjected(rayStart); - vec3 end = toShadowSpaceProjected(rayEnd); - vec3 dV = (end-start); - //limit ray length at 32 blocks for performance and reducing integration error - //you can't see above this anyway - float maxZ = min(rayLength,12.0)/(1e-8+rayLength); - dV *= maxZ; - vec3 dVWorld = -mat3(gbufferModelViewInverse) * (rayEnd - rayStart) * maxZ; - rayLength *= maxZ; - float dY = normalize(mat3(gbufferModelViewInverse) * rayEnd).y * rayLength; - estEndDepth *= maxZ; - estSunDepth *= maxZ; - vec3 absorbance = vec3(1.0); - vec3 vL = vec3(0.0); - - - float expFactor = 11.0; - vec3 progressW = gbufferModelViewInverse[3].xyz+cameraPosition; - for (int i=0;i -near) ? - (-near -position.z) / dir.z : far*sqrt(3.) ; - vec3 direction = toClipSpace3(position+dir*rayLength)-clipPosition; //convert to clip space - direction.xyz = direction.xyz/max(abs(direction.x)/texelSize.x,abs(direction.y)/texelSize.y); //fixed step size - vec3 stepv = direction * 3.0 * clamp(MC_RENDER_QUALITY,1.,2.0); - - vec3 spos = clipPosition; - spos += stepv*dither ; - - for (int i = 0; i < int(quality); i++) { - spos += stepv; - - float sp = texture2D(depthtex1,spos.xy).x; - - if( sp < spos.z) { - float dist = abs(linZ(sp)-linZ(spos.z))/linZ(spos.z); - if (dist < 0.015 ) return i / quality; - } - } - return 1.0; -} - - - -vec3 rayTrace_GI(vec3 dir,vec3 position,float dither, float quality){ - - vec3 clipPosition = toClipSpace3(position); - float rayLength = ((position.z + dir.z * far*sqrt(3.)) > -near) ? - (-near -position.z) / dir.z : far*sqrt(3.); - vec3 direction = normalize(toClipSpace3(position+dir*rayLength)-clipPosition); //convert to clip space - direction.xy = normalize(direction.xy); - - //get at which length the ray intersects with the edge of the screen - vec3 maxLengths = (step(0.,direction)-clipPosition) / direction; - float mult = maxLengths.y; - - vec3 stepv = direction * mult / quality*vec3(RENDER_SCALE,1.0) * dither; - vec3 spos = clipPosition*vec3(RENDER_SCALE,1.0) ; - - spos.xy += TAA_Offset*texelSize*0.5/RENDER_SCALE; - - float biasdist = clamp(position.z*position.z/50.0,1,2); // shrink sample size as distance increases - - for(int i = 0; i < int(quality); i++){ - spos += stepv; - float sp = sqrt(texelFetch2D(colortex4,ivec2(spos.xy/texelSize/4),0).w/65000.0); - float currZ = linZ(spos.z); - - if( sp < currZ) { - float dist = abs(sp-currZ)/currZ; - if (abs(dist) < biasdist*0.05) return vec3(spos.xy, invLinZ(sp))/vec3(RENDER_SCALE,1.0); - } - spos += stepv; - } - return vec3(1.1); -} -vec3 RT(vec3 dir, vec3 position, float noise, float stepsizes){ - float dist = 1.0 + clamp(position.z*position.z/50.0,0,2); // shrink sample size as distance increases - - float stepSize = stepsizes / dist; - int maxSteps = STEPS; - vec3 clipPosition = toClipSpace3(position); - float rayLength = ((position.z + dir.z * sqrt(3.0)*far) > -sqrt(3.0)*near) ? - (-sqrt(3.0)*near -position.z) / dir.z : sqrt(3.0)*far; - vec3 end = toClipSpace3(position+dir*rayLength) ; - vec3 direction = end-clipPosition ; //convert to clip space - - float len = max(abs(direction.x)/texelSize.x,abs(direction.y)/texelSize.y)/stepSize; - //get at which length the ray intersects with the edge of the screen - vec3 maxLengths = (step(0.,direction)-clipPosition) / direction; - - float mult = min(min(maxLengths.x,maxLengths.y),maxLengths.z)*2000.0; - - vec3 stepv = direction/len; - - int iterations = min(int(min(len, mult*len)-2), maxSteps); - - //Do one iteration for closest texel (good contact shadows) - vec3 spos = clipPosition*vec3(RENDER_SCALE,1.0) ; - spos.xy += TAA_Offset*texelSize*0.5*RENDER_SCALE; - spos += stepv/(stepSize/2); - - float distancered = 1.0 + clamp(position.z*position.z/50.0,0,2); // shrink sample size as distance increases - - for(int i = 0; i < iterations; i++){ - if (spos.x < 0.0 || spos.y < 0.0 || spos.z < 0.0 || spos.x > 1.0 || spos.y > 1.0 || spos.z > 1.0) return vec3(1.1); - spos += stepv*noise; - - float sp = sqrt(texelFetch2D(colortex4,ivec2(spos.xy/ texelSize/4),0).w/65000.0); - float currZ = linZ(spos.z); - - if( sp < currZ) { - float dist = abs(sp-currZ)/currZ; - if (dist <= 0.1) return vec3(spos.xy, invLinZ(sp))/vec3(RENDER_SCALE,1.0); - } - } - return vec3(1.1); -} - -vec3 cosineHemisphereSample(vec2 Xi, float roughness){ - float r = sqrt(Xi.x); - float theta = 2.0 * 3.14159265359 * Xi.y; - - float x = r * cos(theta); - float y = r * sin(theta); - - return vec3(x, y, sqrt(clamp(1.0 - Xi.x,0.,1.))); -} - -vec3 TangentToWorld(vec3 N, vec3 H, float roughness){ - vec3 UpVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); - vec3 T = normalize(cross(UpVector, N)); - vec3 B = cross(N, T); - - return vec3((T * H.x) + (B * H.y) + (N * H.z)); -} vec2 R2_samples(int n){ vec2 alpha = vec2(0.75487765, 0.56984026); return fract(alpha * n); } +vec2 tapLocation_alternate( + int sampleNumber, + float spinAngle, + int nb, + float nbRot, + float r0 +){ + float alpha = (float(sampleNumber*1.0f + r0) * (1.0 / (nb))); + float angle = alpha * (nbRot * 3.14) ; -void ApplySSRT(inout vec3 lighting, vec3 normal,vec2 noise,vec3 fragpos, float lightmaps, vec3 torchcolor){ - int nrays = RAY_COUNT; + float ssR = alpha + spinAngle*3.14; + float sin_v, cos_v; - vec3 radiance = vec3(0.0); - vec3 occlusion = vec3(0.0); - vec3 skycontribution = vec3(0.0); - - // float skyLM = 0.0; - // vec3 torchlight = vec3(0.0); - // vec3 blank = vec3(0.0); - // DoRTAmbientLighting(torchcolor, vec2(lightmaps,1.0), skyLM, torchlight, blank); - - for (int i = 0; i < nrays; i++){ - int seed = (frameCounter%40000)*nrays+i; - vec2 ij = fract(R2_samples(seed) + noise ); - - vec3 rayDir = TangentToWorld(normal, normalize(cosineHemisphereSample(ij,1.0)) ,1.0); - - #ifdef HQ_SSGI - vec3 rayHit = rayTrace_GI( mat3(gbufferModelView) * rayDir, fragpos, blueNoise(), 50.); // ssr rt - #else - vec3 rayHit = RT(mat3(gbufferModelView)*rayDir, fragpos, blueNoise(), 30.); // choc sspt - #endif - - skycontribution = lighting; - - if (rayHit.z < 1.){ - - #if indirect_effect == 4 - 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; - if (previousPosition.x > 0.0 && previousPosition.y > 0.0 && previousPosition.x < 1.0 && previousPosition.x < 1.0){ - radiance += (texture2D(colortex5,previousPosition.xy).rgb + skycontribution) * GI_Strength; - }else{ - radiance += skycontribution; - } - #else - radiance += skycontribution; - #endif - - occlusion += skycontribution * GI_Strength; - - } else { - radiance += skycontribution; - } - } - - occlusion *= AO_Strength; - - lighting = max(radiance/nrays - occlusion/nrays, 0.0); + sin_v = sin(angle); + cos_v = cos(angle); + return vec2(cos_v, sin_v)*ssR; } +vec3 viewToWorld(vec3 viewPos) { + vec4 pos; + pos.xyz = viewPos; + pos.w = 0.0; + pos = gbufferModelViewInverse * pos; + return pos.xyz; +} + + +// Emin's and Gri's combined ideas to stop peter panning and light leaking, also has little shadowacne so thats nice +// https://www.complementary.dev/reimagined +// https://github.com/gri573 +void GriAndEminShadowFix( + inout vec3 WorldPos, + vec3 FlatNormal, + float VanillaAO, + float SkyLightmap, + bool Entities +){ + float DistanceOffset = clamp(0.1 + length(WorldPos) / (shadowMapResolution*0.20), 0.0,1.0) ; + vec3 Bias = FlatNormal * DistanceOffset; // adjust the bias thingy's strength as it gets farther away. + + // stop lightleaking + if(SkyLightmap < 0.1 && !Entities) { + WorldPos += mix(Bias, 0.5 * (0.5 - fract(WorldPos + cameraPosition + FlatNormal*0.01 ) ), VanillaAO) ; + }else{ + WorldPos += Bias; + } +} + +#include "/lib/Shadow_Params.glsl" void main() { - - ////// --------------- SETUP COORDINATE SPACES --------------- ////// - - float z0 = texture2D(depthtex0,texcoord).x; - float z = texture2D(depthtex1,texcoord).x; - - vec2 tempOffset=TAA_Offset; - float noise = blueNoise(); - - vec3 fragpos = toScreenSpace(vec3(texcoord-vec2(tempOffset)*texelSize*0.5,z)); - vec3 p3 = mat3(gbufferModelViewInverse) * fragpos; - vec3 np3 = normVec(p3); - - ////// --------------- UNPACK OPAQUE GBUFFERS --------------- ////// - - vec4 data = texture2D(colortex1,texcoord); - vec4 dataUnpacked0 = vec4(decodeVec2(data.x),decodeVec2(data.y)); // albedo, masks - vec4 dataUnpacked1 = vec4(decodeVec2(data.z),decodeVec2(data.w)); // normals, lightmaps - // vec4 dataUnpacked2 = vec4(decodeVec2(data.z),decodeVec2(data.w)); - - vec3 albedo = toLinear(vec3(dataUnpacked0.xz,dataUnpacked1.x)); - vec2 lightmap = dataUnpacked1.yz; - vec3 normal = decode(dataUnpacked0.yw); - - ////// --------------- UNPACK MISC --------------- ////// - - vec4 SpecularTex = texture2D(colortex8,texcoord); - float LabSSS = clamp((-65.0 + SpecularTex.z * 255.0) / 190.0 ,0.0,1.0); - - vec4 normalAndAO = texture2D(colortex15,texcoord); - vec3 FlatNormals = normalAndAO.rgb * 2.0 - 1.0; - vec3 slopednormal = normal; - - #ifdef POM - #ifdef Horrible_slope_normals - vec3 ApproximatedFlatNormal = normalize(cross(dFdx(p3), dFdy(p3))); // it uses depth that has POM written to it. - slopednormal = normalize(clamp(normal, ApproximatedFlatNormal*2.0 - 1.0, ApproximatedFlatNormal*2.0 + 1.0) ); - #endif - #endif - - float vanilla_AO = clamp(normalAndAO.a,0,1); - normalAndAO.a = clamp(pow(normalAndAO.a*5,4),0,1); - - - ////// --------------- MASKS/BOOLEANS --------------- ////// - - bool iswater = texture2D(colortex7,texcoord).a > 0.99; - bool lightningBolt = abs(dataUnpacked1.w-0.5) <0.01; - bool isLeaf = abs(dataUnpacked1.w-0.55) <0.01; - bool entities = abs(dataUnpacked1.w-0.45) < 0.01; - bool hand = abs(dataUnpacked1.w-0.75) < 0.01; - // bool blocklights = abs(dataUnpacked1.w-0.8) <0.01; - - - ////// --------------- COLORS --------------- ////// - - float dirtAmount = Dirt_Amount; - vec3 waterEpsilon = vec3(Water_Absorb_R, Water_Absorb_G, Water_Absorb_B); - vec3 dirtEpsilon = vec3(Dirt_Absorb_R, Dirt_Absorb_G, Dirt_Absorb_B); - vec3 totEpsilon = dirtEpsilon*dirtAmount + waterEpsilon; - vec3 scatterCoef = dirtAmount * vec3(Dirt_Scatter_R, Dirt_Scatter_G, Dirt_Scatter_B) / 3.14; - - vec3 Indirect_lighting = vec3(1.0); - vec3 Direct_lighting = vec3(0.0); - - ///////////////////////////// start drawin :D - - if (z >= 1.0) { - - gl_FragData[0].rgb = vec3(0.0); - - } else { - - p3 += gbufferModelViewInverse[3].xyz; - - //////////////////////////////////////////////////////////////////////////////////// - ///////////////////////////// MAJOR LIGHTSOURCE STUFF //////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - - #ifdef END_SHADER - vec3 LightColor = LightSourceColor(clamp(sqrt(length(p3+cameraPosition) / 150.0 - 1.0) ,0.0,1.0)); - vec3 LightPos = LightSourcePosition(p3+cameraPosition, cameraPosition); - - float LightFalloff = max(exp2(4.0 + length(LightPos) / -25),0.0); - - float NdotL = clamp( dot(normal,normalize(-LightPos)),0.0,1.0); - NdotL = clamp((-15 + NdotL*255.0) / 240.0 ,0.0,1.0); - - float fogshadow = GetCloudShadow(p3+cameraPosition, LightPos, blueNoise()); - Direct_lighting = (LightColor * max(LightColor - (1-fogshadow) ,0.0)) * LightFalloff * NdotL; - // vec3 LightSource = LightColor * fogshadow * LightFalloff * NdotL ; - - - - float LightFalloff2 = max(1.0-length(LightPos)/120,0.0); - LightFalloff2 = pow(1.0-pow(1.0-LightFalloff2,0.5),2.0); - LightFalloff2 *= 25; - - Direct_lighting += (LightColor * max(LightColor - 0.6,0.0)) * vec3(1.0,1.3,1.0) * LightFalloff2 * (NdotL*0.7+0.3); - - // float RT_Shadows = rayTraceShadow(worldToView(normalize(-LightPos)), fragpos_RTSHADOW, blueNoise()); - // if(!hand) LightSource *= RT_Shadows*RT_Shadows; - #endif - - ///////////////////////////////////////////////////////////////////////////////// - ///////////////////////////// INDIRECT LIGHTING ///////////////////////////// - ///////////////////////////////////////////////////////////////////////////////// - - #ifdef END_SHADER - Indirect_lighting = DoAmbientLighting_End(gl_Fog.color.rgb, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.x, normal, np3); - #endif - - #ifdef NETHER_SHADER - vec3 AmbientLightColor = skyCloudsFromTexLOD2(normal, colortex4, 6).rgb / 10; - - vec3 up = skyCloudsFromTexLOD2(vec3( 0, 1, 0), colortex4, 6).rgb / 10; - vec3 down = skyCloudsFromTexLOD2(vec3( 0,-1, 0), colortex4, 6).rgb / 10; - - up *= pow( max( slopednormal.y, 0), 2); - down *= pow( max(-slopednormal.y, 0), 2); - AmbientLightColor += up + down; - - // do all ambient lighting stuff - Indirect_lighting = DoAmbientLighting_Nether(AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.x, normal, np3, p3 ); - #endif - ///////////////////////////////////////////////////////////////////////////////////// - ///////////////////////////// EFFECTS FOR INDIRECT ///////////////////////////// - ///////////////////////////////////////////////////////////////////////////////////// - - #if indirect_effect == 0 - vec3 AO = vec3( exp( (vanilla_AO*vanilla_AO) * -5) ) ; - if(!hand) Indirect_lighting *= AO; - #endif - - #if indirect_effect == 1 - vec3 AO = vec3( exp( (vanilla_AO*vanilla_AO) * -5) ) ; - if(!hand) Indirect_lighting *= ssao(fragpos,noise,FlatNormals) * AO; - #endif - - // RTAO and/or SSGI - #if indirect_effect == 3 || indirect_effect == 4 - if (!hand) ApplySSRT(Indirect_lighting, normal, blueNoise(gl_FragCoord.xy).rg, fragpos, lightmap.x,vec3(TORCH_R,TORCH_G,TORCH_B)); - #endif - - ///////////////////////////////////////////////////////////////////////// - ///////////////////////////// FINALIZE ///////////////////////////// - ///////////////////////////////////////////////////////////////////////// - - gl_FragData[0].rgb = (Indirect_lighting + Direct_lighting) * albedo; - - #ifdef Specular_Reflections - vec3 specNoise = vec3(blueNoise(gl_FragCoord.xy).rg, interleaved_gradientNoise()); - DoSpecularReflections(gl_FragData[0].rgb, fragpos, np3, vec3(0.0), specNoise, normal, SpecularTex.r, SpecularTex.g, albedo, vec3(0.0), 1.0, hand); - #endif - - Emission(gl_FragData[0].rgb, albedo, SpecularTex.a); - - if(lightningBolt) gl_FragData[0].rgb = vec3(1); - - } - - if (iswater && isEyeInWater == 0){ - vec3 fragpos0 = toScreenSpace(vec3(texcoord/RENDER_SCALE-TAA_Offset*texelSize*0.5,z0)); - float Vdiff = distance(fragpos,fragpos0); - float VdotU = np3.y; - float estimatedDepth = Vdiff * abs(VdotU) ; //assuming water plane - - vec3 ambientColVol = max(vec3(1.0,0.5,1.0) * 0.3, vec3(0.2,0.4,1.0) * (MIN_LIGHT_AMOUNT*0.01 + nightVision)); - - waterVolumetrics(gl_FragData[0].rgb, fragpos0, fragpos, estimatedDepth , estimatedDepth, Vdiff, noise, totEpsilon, scatterCoef, ambientColVol); - } - /* DRAWBUFFERS:3 */ -} + vec2 texcoord = gl_FragCoord.xy*texelSize; + + float z = texture2D(depthtex1,texcoord).x; + + vec2 tempOffset=TAA_Offset; + + vec4 data = texture2D(colortex1,texcoord); + vec4 dataUnpacked0 = vec4(decodeVec2(data.x),decodeVec2(data.y)); + vec4 dataUnpacked1 = vec4(decodeVec2(data.z),decodeVec2(data.w)); + vec3 normal = mat3(gbufferModelViewInverse) * clamp(worldToView( decode(dataUnpacked0.yw) ),-1.,1.); + vec2 lightmap = dataUnpacked1.yz; + + + // bool lightningBolt = abs(dataUnpacked1.w-0.5) <0.01; + // bool isLeaf = abs(dataUnpacked1.w-0.55) <0.01; + // bool translucent2 = abs(dataUnpacked1.w-0.6) <0.01; // Weak translucency + // bool translucent4 = abs(dataUnpacked1.w-0.65) <0.01; // Weak translucency + bool entities = abs(dataUnpacked1.w-0.45) < 0.01; + bool hand = abs(dataUnpacked1.w-0.75) < 0.01; + // bool blocklights = abs(dataUnpacked1.w-0.8) <0.01; + + + float minshadowfilt = Min_Shadow_Filter_Radius; + float maxshadowfilt = Max_Shadow_Filter_Radius; + + float NdotL = clamp(dot(normal,WsunVec),0.0,1.0); + + // vec4 normalAndAO = texture2D(colortex15,texcoord); + // vec3 FlatNormals = normalAndAO.rgb * 2.0 - 1.0; + // float vanillAO = clamp(normalAndAO.a,0.0,1.0) ; + + float vanillAO = clamp(texture2D(colortex15,texcoord).a,0.0,1.0) ; + + if(lightmap.y < 0.1 && !entities){ + // minshadowfilt *= vanillAO; + maxshadowfilt = mix(minshadowfilt, maxshadowfilt, vanillAO); + } + + + float SpecularTex = texture2D(colortex8,texcoord).z; + float LabSSS = clamp((-64.0 + SpecularTex * 255.0) / 191.0 ,0.0,1.0); + + #ifndef Variable_Penumbra_Shadows + if (LabSSS > 0.0 && !hand && NdotL < 0.001) minshadowfilt += 50; + #endif + + gl_FragData[0] = vec4(minshadowfilt, 0.1, 0.0, 0.0); + + gl_FragData[0].y = 0; + if (z < 1.0 && !hand){ + + vec3 viewPos = toScreenSpace(vec3(texcoord/RENDER_SCALE-vec2(tempOffset)*texelSize*0.5,z)); + + #ifdef Variable_Penumbra_Shadows + + if (NdotL > 0.001 || LabSSS > 0.0) { + + vec3 feetPlayerPos = mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz; + + // GriAndEminShadowFix(p3, viewToWorld(FlatNormals), vanillAO, lightmap.y, entities); + + vec3 projectedShadowPosition = mat3(shadowModelView) * feetPlayerPos + shadowModelView[3].xyz; + projectedShadowPosition = diagonal3(shadowProjection) * projectedShadowPosition + shadowProjection[3].xyz; + + //apply distortion + float distortFactor = calcDistort(projectedShadowPosition.xy); + projectedShadowPosition.xy *= distortFactor; + + //do shadows only if on shadow map + if (abs(projectedShadowPosition.x) < 1.0-1.5/shadowMapResolution && abs(projectedShadowPosition.y) < 1.0-1.5/shadowMapResolution && abs(projectedShadowPosition.z) < 6.0){ + const float threshMul = max(2048.0/shadowMapResolution*shadowDistance/128.0,0.95); + float distortThresh = (sqrt(1.0-NdotL*NdotL)/NdotL+0.7)/distortFactor; + float diffthresh = distortThresh/6000.0*threshMul; + projectedShadowPosition = projectedShadowPosition * vec3(0.5,0.5,0.5/6.0) + vec3(0.5,0.5,0.5); + + float mult = maxshadowfilt; + float avgBlockerDepth = 0.0; + vec2 scales = vec2(0.0, 120.0 - Max_Filter_Depth); + float blockerCount = 0.0; + float rdMul = distortFactor*(1.0+mult)*d0*k/shadowMapResolution; + float diffthreshM = diffthresh*mult*d0*k/20.; + float avgDepth = 0.0; + + int seed = (frameCounter%40000) * 2 + (1+frameCounter); + float samplePos = fract(R2_samples(seed).x + blueNoise(gl_FragCoord.xy).x) * 1.61803398874; + float noise = 0.5+blueNoise(); + + for(int i = 0; i < VPS_Search_Samples; i++){ + + vec2 offsetS = tapLocation_alternate(i+1, i/VPS_Search_Samples, 7, 20, samplePos) * noise; + + + float weight = 3.0 + (i+blueNoise() ) *rdMul/SHADOW_FILTER_SAMPLE_COUNT*shadowMapResolution*distortFactor/2.7; + // float d = texelFetch2D( shadow, ivec2((projectedShadowPosition.xy+offsetS*rdMul)*shadowMapResolution),0).x; + float d = texelFetch2D( shadow, ivec2((projectedShadowPosition.xy+offsetS*rdMul)*shadowMapResolution),0).x; + + + float b = smoothstep(weight*diffthresh/2.0, weight*diffthresh, projectedShadowPosition.z - d); + + blockerCount += b; + avgDepth += max(projectedShadowPosition.z - d, 0.0)*1000.; + avgBlockerDepth += d * b; + } + + gl_FragData[0].g = avgDepth / VPS_Search_Samples; + gl_FragData[0].b = blockerCount / VPS_Search_Samples; + if (blockerCount >= 0.9){ + avgBlockerDepth /= blockerCount; + float ssample = max(projectedShadowPosition.z - avgBlockerDepth,0.0)*1500.0; + gl_FragData[0].r = clamp(ssample, scales.x, scales.y)/(scales.y)*(mult-minshadowfilt)+minshadowfilt; + } + } + } + #endif + } +} \ No newline at end of file diff --git a/shaders/dimensions/composite.vsh b/shaders/dimensions/composite.vsh index 50ae0c2..476633c 100644 --- a/shaders/dimensions/composite.vsh +++ b/shaders/dimensions/composite.vsh @@ -1,24 +1,21 @@ +//#extension GL_EXT_gpu_shader4 : disable + #include "/lib/settings.glsl" -varying vec2 texcoord; - -flat varying vec3 avgAmbient; - -flat varying float tempOffsets; flat varying vec2 TAA_Offset; -flat varying vec3 zMults; +flat varying vec3 WsunVec; uniform sampler2D colortex4; -uniform float far; -uniform float near; -uniform mat4 gbufferModelViewInverse; -uniform vec3 sunPosition; -uniform float rainStrength; -uniform float sunElevation; uniform int frameCounter; +uniform float sunElevation; +uniform vec3 sunPosition; +uniform mat4 gbufferModelViewInverse; +#include "/lib/util.glsl" +#include "/lib/res_params.glsl" +uniform int framemod8; const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), vec2(-1.,3.)/8., vec2(5.0,1.)/8., @@ -27,23 +24,14 @@ const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), vec2(-7.,-1.)/8., vec2(3,7.)/8., vec2(7.,-7.)/8.); - - -#include "/lib/util.glsl" - void main() { gl_Position = ftransform(); - texcoord = gl_MultiTexCoord0.xy; - tempOffsets = HaltonSeq2(frameCounter%10000); + WsunVec = (float(sunElevation > 1e-5)*2-1.)*normalize(mat3(gbufferModelViewInverse) * sunPosition); - TAA_Offset = offsets[frameCounter%8]; - - #ifndef TAA - TAA_Offset = vec2(0.0); + TAA_Offset = offsets[framemod8]; + + #ifdef TAA_UPSCALING + gl_Position.xy = (gl_Position.xy*0.5+0.5)*RENDER_SCALE*2.0-1.0; #endif - - - avgAmbient = texelFetch2D(colortex4,ivec2(0,37),0).rgb; - zMults = vec3((far * near)*2.0,far+near,far-near); } diff --git a/shaders/dimensions/composite1.fsh b/shaders/dimensions/composite1.fsh index 6390521..498fbac 100644 --- a/shaders/dimensions/composite1.fsh +++ b/shaders/dimensions/composite1.fsh @@ -1,117 +1,666 @@ #include "/lib/settings.glsl" +#include "/lib/res_params.glsl" + +const bool colortex5MipmapEnabled = true; -uniform sampler2D noisetex; -uniform sampler2D depthtex0; +#ifdef OVERWORLD_SHADER + const bool shadowHardwareFiltering = true; + uniform sampler2DShadow shadow; -uniform sampler2D colortex2; -uniform sampler2D colortex3; -// uniform sampler2D colortex4; -uniform vec3 sunVec; -uniform float sunElevation; -uniform float far; + flat varying vec3 averageSkyCol_Clouds; + flat varying vec4 lightCol; + + uniform sampler2D colortex14; + #if Sun_specular_Strength != 0 + #define LIGHTSOURCE_REFLECTION + #endif + + #include "/lib/lightning_stuff.glsl" + +#endif +#ifdef NETHER_SHADER + + uniform float nightVision; + uniform sampler2D colortex4; + const bool colortex4MipmapEnabled = true; + uniform vec3 lightningEffect; + // #define LIGHTSOURCE_REFLECTION +#endif + +#ifdef END_SHADER + uniform float nightVision; + uniform sampler2D colortex4; + uniform vec3 lightningEffect; + + flat varying float Flashing; + // #define LIGHTSOURCE_REFLECTION +#endif + +uniform sampler2D noisetex; //noise +uniform sampler2D depthtex1; //depth +uniform sampler2D depthtex0; //depth + +uniform sampler2D colortex0; //clouds +uniform sampler2D colortex1; //albedo(rgb),material(alpha) RGBA16 +uniform sampler2D colortex2; //translucents(rgba) +uniform sampler2D colortex3; //filtered shadowmap(VPS) +// uniform sampler2D colortex4; //LUT(rgb), quarter res depth(alpha) +uniform sampler2D colortex5; //TAA buffer/previous frame +uniform sampler2D colortex6; //Noise +uniform sampler2D colortex7; //water? +uniform sampler2D colortex8; //Specular +// uniform sampler2D colortex10; +uniform sampler2D colortex15; // flat normals(rgb), vanillaAO(alpha) + + + +uniform mat4 shadowModelView; +uniform mat4 shadowModelViewInverse; +uniform mat4 shadowProjection; +uniform mat4 shadowProjectionInverse; +uniform mat4 gbufferProjection; +uniform mat4 gbufferProjectionInverse; +uniform mat4 gbufferModelView; +uniform mat4 gbufferModelViewInverse; +uniform mat4 gbufferPreviousProjection; +uniform mat4 gbufferPreviousModelView; + +uniform vec3 cameraPosition; +uniform vec3 previousCameraPosition; + +// uniform float far; +uniform float near; + +uniform vec2 texelSize; +uniform float viewWidth; +uniform float viewHeight; +uniform float aspectRatio; + +uniform float eyeAltitude; +flat varying vec2 TAA_Offset; uniform int frameCounter; uniform float frameTimeCounter; -varying vec2 texcoord; -uniform vec2 texelSize; -flat varying vec2 TAA_Offset; - -uniform int isEyeInWater; uniform float rainStrength; +uniform int isEyeInWater; uniform ivec2 eyeBrightnessSmooth; +uniform vec3 sunVec; +flat varying vec3 WsunVec; + +#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) +#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) + +vec3 toScreenSpace(vec3 p) { + vec4 iProjDiag = vec4(gbufferProjectionInverse[0].x, gbufferProjectionInverse[1].y, gbufferProjectionInverse[2].zw); + vec3 feetPlayerPos = p * 2. - 1.; + vec4 viewPos = iProjDiag * feetPlayerPos.xyzz + gbufferProjectionInverse[3]; + return viewPos.xyz / viewPos.w; +} + #include "/lib/color_transforms.glsl" -#include "/lib/color_dither.glsl" -#include "/lib/projections.glsl" -#include "/lib/res_params.glsl" +#include "/lib/waterBump.glsl" +#include "/lib/sky_gradient.glsl" -#ifdef END_SHADER - #include "/lib/end_fog.glsl" +#include "/lib/Shadow_Params.glsl" +#include "/lib/Shadows.glsl" +#include "/lib/stars.glsl" + +#ifdef OVERWORLD_SHADER + #include "/lib/volumetricClouds.glsl" #endif -#ifdef NETHER_SHADER - #include "/lib/nether_fog.glsl" -#endif +#include "/lib/diffuse_lighting.glsl" +float ld(float dist) { + return (2.0 * near) / (far + near - dist * (far - near)); +} + + +#include "/lib/end_fog.glsl" +#include "/lib/specular.glsl" + + +vec3 normVec (vec3 vec){ + return vec*inversesqrt(dot(vec,vec)); +} +float lengthVec (vec3 vec){ + return sqrt(dot(vec,vec)); +} #define fsign(a) (clamp((a)*1e35,0.,1.)*2.-1.) +float triangularize(float dither) +{ + float center = dither*2.0-1.0; + dither = center*inversesqrt(abs(center)); + return clamp(dither-fsign(center),0.0,1.0); +} +vec3 fp10Dither(vec3 color,float dither){ + const vec3 mantissaBits = vec3(6.,6.,5.); + vec3 exponent = floor(log2(color)); + return color + dither*exp2(-mantissaBits)*exp2(exponent); +} + + + +float facos(float sx){ + float x = clamp(abs( sx ),0.,1.); + return sqrt( 1. - x ) * ( -0.16882 * x + 1.56734 ); +} +vec3 decode (vec2 encn){ + vec3 n = vec3(0.0); + encn = encn * 2.0 - 1.0; + n.xy = abs(encn); + n.z = 1.0 - n.x - n.y; + n.xy = n.z <= 0.0 ? (1.0 - n.yx) * sign(encn) : encn; + return clamp(normalize(n.xyz),-1.0,1.0); +} +vec2 decodeVec2(float a){ + const vec2 constant1 = 65535. / vec2( 256., 65536.); + const float constant2 = 256. / 255.; + return fract( a * constant1 ) * constant2 ; +} +// float linZ(float depth) { +// return (2.0 * near) / (far + near - depth * (far - near)); +// // l = (2*n)/(f+n-d(f-n)) +// // f+n-d(f-n) = 2n/l +// // -d(f-n) = ((2n/l)-f-n) +// // d = -((2n/l)-f-n)/(f-n) + +// } +// float invLinZ (float lindepth){ +// return -((2.0*near/lindepth)-far-near)/(far-near); +// } + +// vec3 toClipSpace3(vec3 viewSpacePosition) { +// return projMAD(gbufferProjection, viewSpacePosition) / -viewSpacePosition.z * 0.5 + 0.5; +// } + + + + +vec2 tapLocation(int sampleNumber,int nb, float nbRot,float jitter,float distort) +{ + float alpha0 = sampleNumber/nb; + float alpha = (sampleNumber+jitter)/nb; + float angle = jitter*6.28 + alpha * 4.0 * 6.28; + + float sin_v, cos_v; + + sin_v = sin(angle); + cos_v = cos(angle); + + return vec2(cos_v, sin_v)*sqrt(alpha); +} + + +vec3 BilateralFiltering(sampler2D tex, sampler2D depth,vec2 coord,float frDepth,float maxZ){ + vec4 sampled = vec4(texelFetch2D(tex,ivec2(coord),0).rgb,1.0); + + return vec3(sampled.x,sampled.yz/sampled.w); +} float interleaved_gradientNoise(){ - return fract(52.9829189*fract(0.06711056*gl_FragCoord.x + 0.00583715*gl_FragCoord.y)+TAA_Offset.x); + // vec2 coord = gl_FragCoord.xy + (frameCounter%40000); + vec2 coord = gl_FragCoord.xy + frameTimeCounter; + // vec2 coord = gl_FragCoord.xy; + float noise = fract( 52.9829189 * fract( (coord.x * 0.06711056) + (coord.y * 0.00583715)) ); + return noise ; +} + +vec2 R2_dither(){ + vec2 alpha = vec2(0.75487765, 0.56984026); + return vec2(fract(alpha.x * gl_FragCoord.x + alpha.y * gl_FragCoord.y + 1.0/1.6180339887 * frameCounter), fract((1.0-alpha.x) * gl_FragCoord.x + (1.0-alpha.y) * gl_FragCoord.y + 1.0/1.6180339887 * frameCounter)); } float blueNoise(){ - return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter); + return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * (frameCounter*0.5+0.5) ); +} +vec4 blueNoise(vec2 coord){ + return texelFetch2D(colortex6, ivec2(coord)%512 , 0) ; } -void waterVolumetrics(inout vec3 inColor, vec3 rayStart, vec3 rayEnd, float estEndDepth, float estSunDepth, float rayLength, float dither, vec3 waterCoefs, vec3 scatterCoef, vec3 ambient){ - inColor *= exp(-rayLength * waterCoefs); //No need to take the integrated value - - int spCount = rayMarchSampleCount; - vec3 start = toShadowSpaceProjected(rayStart); - vec3 end = toShadowSpaceProjected(rayEnd); - vec3 dV = (end-start); - //limit ray length at 32 blocks for performance and reducing integration error - //you can't see above this anyway - float maxZ = min(rayLength,12.0)/(1e-8+rayLength); - dV *= maxZ; +vec3 toShadowSpaceProjected(vec3 feetPlayerPos){ + feetPlayerPos = mat3(gbufferModelViewInverse) * feetPlayerPos + gbufferModelViewInverse[3].xyz; + feetPlayerPos = mat3(shadowModelView) * feetPlayerPos + shadowModelView[3].xyz; + feetPlayerPos = diagonal3(shadowProjection) * feetPlayerPos + shadowProjection[3].xyz; + + return feetPlayerPos; +} + +vec2 tapLocation(int sampleNumber, float spinAngle,int nb, float nbRot,float r0) +{ + float alpha = (float(sampleNumber*1.0f + r0) * (1.0 / (nb))); + float angle = alpha * (nbRot * 6.28) + spinAngle*6.28; + + float ssR = alpha; + float sin_v, cos_v; + + sin_v = sin(angle); + cos_v = cos(angle); + + return vec2(cos_v, sin_v)*ssR; +} + +vec3 viewToWorld(vec3 viewPos) { + vec4 pos; + pos.xyz = viewPos; + pos.w = 0.0; + pos = gbufferModelViewInverse * pos; + return pos.xyz; +} +vec3 worldToView(vec3 worldPos) { + vec4 pos = vec4(worldPos, 0.0); + pos = gbufferModelView * pos; + return pos.xyz; +} + +void waterVolumetrics_notoverworld(inout vec3 inColor, vec3 rayStart, vec3 rayEnd, float estEndDepth, float estSunDepth, float rayLength, float dither, vec3 waterCoefs, vec3 scatterCoef, vec3 ambient){ + inColor *= exp(-rayLength * waterCoefs); //No need to take the integrated value + int spCount = rayMarchSampleCount; + vec3 start = toShadowSpaceProjected(rayStart); + vec3 end = toShadowSpaceProjected(rayEnd); + vec3 dV = (end-start); + //limit ray length at 32 blocks for performance and reducing integration error + //you can't see above this anyway + float maxZ = min(rayLength,12.0)/(1e-8+rayLength); + dV *= maxZ; + vec3 dVWorld = -mat3(gbufferModelViewInverse) * (rayEnd - rayStart) * maxZ; + rayLength *= maxZ; + float dY = normalize(mat3(gbufferModelViewInverse) * rayEnd).y * rayLength; + estEndDepth *= maxZ; + estSunDepth *= maxZ; + vec3 absorbance = vec3(1.0); + vec3 vL = vec3(0.0); - rayLength *= maxZ; - - float dY = normalize(mat3(gbufferModelViewInverse) * rayEnd).y * rayLength; - estEndDepth *= maxZ; - estSunDepth *= maxZ; + float expFactor = 11.0; + vec3 progressW = gbufferModelViewInverse[3].xyz+cameraPosition; + for (int i=0;i -near) ? +// (-near -position.z) / dir.z : far*sqrt(3.) ; +// vec3 direction = toClipSpace3(position+dir*rayLength)-clipPosition; //convert to clip space +// direction.xyz = direction.xyz/max(abs(direction.x)/texelSize.x,abs(direction.y)/texelSize.y); //fixed step size +// vec3 stepv = direction * 3.0 * clamp(MC_RENDER_QUALITY,1.,2.0); + +// vec3 spos = clipPosition; +// spos += stepv*dither ; + +// for (int i = 0; i < int(quality); i++) { +// spos += stepv; + +// float sp = texture2D(depthtex1,spos.xy).x; + +// if( sp < spos.z) { +// float dist = abs(linZ(sp)-linZ(spos.z))/linZ(spos.z); +// if (dist < 0.015 ) return i / quality; +// } +// } +// return 1.0; +// } + + +void SSRT_Shadows(vec3 viewPos, vec3 lightDir, float noise, bool isSSS, bool inshadowmap, inout float Shadow, inout float SSS){ + float steps = 16.0; + vec3 clipPosition = toClipSpace3(viewPos); + + //prevents the ray from going behind the camera + float rayLength = ((viewPos.z + lightDir.z * far*sqrt(3.)) > -near) ? + (-near -viewPos.z) / lightDir.z : far*sqrt(3.); + + vec3 direction = toClipSpace3(viewPos + lightDir*rayLength) - clipPosition; //convert to clip space + direction.xyz = direction.xyz / max(abs(direction.x)/texelSize.x, abs(direction.y)/texelSize.y); //fixed step size + + vec3 rayDir = direction * (isSSS ? 1.5 : 3.0) * vec3(RENDER_SCALE,1.0); + + vec3 screenPos = clipPosition*vec3(RENDER_SCALE,1.0) + rayDir*noise; + + if(isSSS) screenPos -= rayDir*0.9; + + float shadowgradient = 0; + for (int i = 0; i < int(steps); i++) { + + screenPos += rayDir; + + float shadowGradient = i/steps; + + float samplePos = texture2D(depthtex1, screenPos.xy).x; + if(samplePos <= screenPos.z) { + vec2 linearZ = vec2(linZ(screenPos.z), linZ(samplePos)); + float calcthreshold = abs(linearZ.x - linearZ.y) / linearZ.x; + + bool depthThreshold1 = calcthreshold < 0.015; + bool depthThreshold2 = calcthreshold < 0.05; + + // if (depthThreshold1) Shadow = inshadowmap ? shadowGradient : 0.0; + if (depthThreshold1) Shadow = 0.0; + + if (depthThreshold2) SSS = shadowGradient; + + } + } +} + +// void SSRT_SkySSS(vec3 viewPos, vec3 lightDir, float noise, inout float SSS, bool isgrass){ +// float steps = 16; +// vec3 clipPosition = toClipSpace3(viewPos); + +// //prevents the ray from going behind the camera +// float rayLength = ((viewPos.z + lightDir.z * far*sqrt(3.)) > -near) ? +// (-near -viewPos.z) / lightDir.z : far*sqrt(3.); + +// vec3 direction = toClipSpace3(viewPos + lightDir*rayLength) - clipPosition; //convert to clip space +// direction.xyz = direction.xyz / max(abs(direction.x)/texelSize.x, abs(direction.y)/texelSize.y); //fixed step size + +// float dist = 1.0 + clamp(viewPos.z*viewPos.z/50.0,0,1); // shrink sample size as distance increases +// vec3 rayDir = direction / dist; + +// vec3 screenPos = clipPosition + rayDir*noise; + +// float dist3 = clamp(1-exp( viewPos.z*viewPos.z / -50),0,1); + + +// float depththing = isgrass ? 1 : 0.05; + +// for (int i = 0; i < int(steps); i++) { +// screenPos += rayDir*3; + +// float shadowgradient = clamp(i/steps,0.0,1.0); + +// float samplePos = texture2D(depthtex1, screenPos.xy).x; + +// if(samplePos <= screenPos.z) { +// vec2 linearZ = vec2(linZ(screenPos.z), linZ(samplePos)); +// float calcthreshold = abs(linearZ.x - linearZ.y) / linearZ.x; + +// bool depthThreshold = calcthreshold < depththing; + + +// if(depthThreshold) SSS = shadowgradient; +// } +// } +// } +#ifdef END_SHADER + float GetShading( vec3 WorldPos, vec3 LightPos, vec3 Normal){ + + float NdotL = clamp(dot(Normal, normalize(-LightPos)),0.0,1.0); + float FogShadow = GetCloudShadow(WorldPos, LightPos); + + return EndLightMie(LightPos) * NdotL * FogShadow; + } +#endif + +float CustomPhase(float LightPos, float S_1, float S_2){ + float SCALE = S_2 + 0.001; // remember the epislons 0.001 is fine. + float N = S_1; + float N2 = N / SCALE; + + float R = 1; + float A = pow(1.0 - pow(max(R-LightPos,0.0), N2 ),N); + + return A; +} + +vec3 SubsurfaceScattering_sun(vec3 albedo, float Scattering, float Density, float lightPos, bool inShadowmapBounds){ + + float labcurve = pow(Density,LabSSS_Curve); + // float density = sqrt(30 - labcurve*15); + float density = 15 - labcurve*10; + + vec3 absorbed = max(1.0 - albedo,0.0); + + vec3 scatter = vec3(0.0); + // if(inShadowmapBounds) { + scatter = exp(absorbed * Scattering * -5) * exp(Scattering * -density); + // }else{ + // scatter = exp(absorbed * Scattering * -10) * exp(Scattering * -max(density,5)); + // } + // vec3 scatter = vec3(1)* exp(Scattering * -density); + + scatter *= labcurve; + scatter *= 0.5 + CustomPhase(lightPos, 1.0,30.0)*20; + + return scatter; + +} +vec3 SubsurfaceScattering_sky(vec3 albedo, float Scattering, float Density){ + + vec3 absorbed = max(luma(albedo) - albedo,0.0); + // vec3 scatter = sqrt(exp(-(absorbed * Scattering * 15))) * (1.0 - Scattering); + vec3 scatter = exp(-5 * Scattering)*vec3(1); + + // scatter *= pow(Density,LabSSS_Curve); + scatter *= clamp(1 - exp(Density * -10),0,1); + + return scatter ; +} +// #ifdef IS_IRIS +// uniform vec4 lightningBoltPosition; +// float Iris_Lightningflash(vec3 feetPlayerPos, vec3 lightningBoltPos, vec3 WorldSpace_normal, inout float Phase){ + +// vec3 LightningPos = feetPlayerPos - vec3(lightningBoltPosition.x, clamp(feetPlayerPos.y, lightningBoltPosition.y+16, lightningBoltPosition.y+116.0),lightningBoltPosition.z); + +// // point light, max distance is ~500 blocks (the maximim entity render distance) +// float lightDistance = 300.0 ; +// float lightningLight = max(1.0 - length(LightningPos) / lightDistance, 0.0); + +// // the light above ^^^ is a linear curve. me no likey. here's an exponential one instead. +// lightningLight = exp((1.0 - lightningLight) * -10.0); + +// // a phase for subsurface scattering. +// vec3 PhasePos = normalize(feetPlayerPos) + vec3(lightningBoltPosition.x, lightningBoltPosition.y + 60, lightningBoltPosition.z); +// float PhaseOrigin = 1.0 - clamp(dot(normalize(feetPlayerPos), normalize(PhasePos)),0.0,1.0); +// Phase = exp(sqrt(PhaseOrigin) * -2.0) * 5.0 * lightningLight; + +// // good old NdotL. only normals facing towards the lightning bolt origin rise to 1.0 +// float NdotL = clamp(dot(LightningPos, -WorldSpace_normal), 0.0, 1.0); + +// return lightningLight * NdotL; +// } +// #endif + + +#include "/lib/indirect_lighting_effects.glsl" +#include "/lib/PhotonGTAO.glsl" + void main() { -/* DRAWBUFFERS:0 */ - vec2 tc = floor(gl_FragCoord.xy)/VL_RENDER_RESOLUTION*texelSize+0.5*texelSize; - float z = texture2D(depthtex0,tc).x; - vec3 fragpos = toScreenSpace(vec3(tc,z)); + vec2 texcoord = gl_FragCoord.xy*texelSize; - if (isEyeInWater == 0){ - - vec4 VolumetricFog = GetVolumetricFog(fragpos, blueNoise(), interleaved_gradientNoise()); - - gl_FragData[0] = clamp(VolumetricFog, 0.000001, 65000.0); - } + ////// --------------- SETUP COORDINATE SPACES --------------- ////// - if (isEyeInWater == 1){ + float z0 = texture2D(depthtex0,texcoord).x; + float z = texture2D(depthtex1,texcoord).x; + + vec2 tempOffset = TAA_Offset; + float noise = blueNoise(); + + vec3 viewPos = toScreenSpace(vec3(texcoord/RENDER_SCALE - TAA_Offset*texelSize*0.5,z)); + vec3 feetPlayerPos = mat3(gbufferModelViewInverse) * viewPos; + vec3 feetPlayerPos_normalized = normVec(feetPlayerPos); + vec3 viewPos_handfix = viewPos; + + if ( z < 0.56) viewPos_handfix.z /= MC_HAND_DEPTH; // fix lighting on hand + + ////// --------------- UNPACK OPAQUE GBUFFERS --------------- ////// + + vec4 data = texture2D(colortex1,texcoord); + vec4 dataUnpacked0 = vec4(decodeVec2(data.x),decodeVec2(data.y)); // albedo, masks + vec4 dataUnpacked1 = vec4(decodeVec2(data.z),decodeVec2(data.w)); // normals, lightmaps + // vec4 dataUnpacked2 = vec4(decodeVec2(data.z),decodeVec2(data.w)); + + vec3 albedo = toLinear(vec3(dataUnpacked0.xz,dataUnpacked1.x)); + vec3 normal = decode(dataUnpacked0.yw); + vec2 lightmap = dataUnpacked1.yz; + + #ifndef OVERWORLD_SHADER + lightmap.y = 1.0; + #endif + + ////// --------------- UNPACK MISC --------------- ////// + + vec4 SpecularTex = texture2D(colortex8,texcoord); + float LabSSS = clamp((-65.0 + SpecularTex.z * 255.0) / 190.0 ,0.0,1.0); + + vec4 normalAndAO = texture2D(colortex15,texcoord); + vec3 FlatNormals = normalAndAO.rgb * 2.0 - 1.0; + vec3 slopednormal = normal; + + #ifdef POM + #ifdef Horrible_slope_normals + vec3 ApproximatedFlatNormal = normalize(cross(dFdx(feetPlayerPos), dFdy(feetPlayerPos))); // it uses depth that has POM written to it. + slopednormal = normalize(clamp(normal, ApproximatedFlatNormal*2.0 - 1.0, ApproximatedFlatNormal*2.0 + 1.0) ); + #endif + #endif + + float vanilla_AO = clamp(normalAndAO.a,0,1); + normalAndAO.a = clamp(pow(normalAndAO.a*5,4),0,1); + + ////// --------------- MASKS/BOOLEANS --------------- ////// + + bool iswater = texture2D(colortex7,texcoord).a > 0.99; + bool lightningBolt = abs(dataUnpacked1.w-0.5) <0.01; + bool isLeaf = abs(dataUnpacked1.w-0.55) <0.01; + bool entities = abs(dataUnpacked1.w-0.45) < 0.01; + // bool isBoss = abs(dataUnpacked1.w-0.60) < 0.01; + bool isGrass = abs(dataUnpacked1.w-0.60) < 0.01; + bool hand = abs(dataUnpacked1.w-0.75) < 0.01; + // bool blocklights = abs(dataUnpacked1.w-0.8) <0.01; + + + ////// --------------- COLORS --------------- ////// float dirtAmount = Dirt_Amount; vec3 waterEpsilon = vec3(Water_Absorb_R, Water_Absorb_G, Water_Absorb_B); @@ -119,12 +668,438 @@ void main() { vec3 totEpsilon = dirtEpsilon*dirtAmount + waterEpsilon; vec3 scatterCoef = dirtAmount * vec3(Dirt_Scatter_R, Dirt_Scatter_G, Dirt_Scatter_B) / 3.14; - vec3 fragpos0 = toScreenSpace(vec3(texcoord - TAA_Offset*texelSize*0.5,z)); + vec3 Indirect_lighting = vec3(1.0); + vec3 AmbientLightColor = vec3(0.0); + vec3 Indirect_SSS = vec3(0.0); - vec3 ambientColVol = max(vec3(1.0,0.5,1.0) * 0.6, vec3(0.2,0.4,1.0) * MIN_LIGHT_AMOUNT*0.01); + vec3 ambientCoefs = slopednormal/dot(abs(slopednormal),vec3(1.)); + + vec3 Direct_lighting = vec3(0.0); + vec3 DirectLightColor = vec3(0.0); + vec3 Direct_SSS = vec3(0.0); + float cloudShadow = 1.0; + float Shadows = 1.0; + float NdotL = 1.0; - gl_FragData[0].a = 1; - waterVolumetrics(gl_FragData[0].rgb, fragpos0, fragpos, 1 , 1, 1, blueNoise(), totEpsilon, scatterCoef, ambientColVol); + #ifdef OVERWORLD_SHADER + #ifndef ambientLight_only + DirectLightColor = lightCol.rgb/80.0; + #endif + AmbientLightColor = averageSkyCol_Clouds; + vec3 filteredShadow = vec3(1.412,1.0,0.0); + if (!hand) filteredShadow = texture2D(colortex3,texcoord).rgb; + float ShadowBlockerDepth = filteredShadow.y; + Shadows = clamp(1.0 - filteredShadow.b,0.0,1.0); + bool inShadowmapBounds = false; + #endif + ///////////////////////////// start drawin :D + + if (z >= 1.0) { + + #ifdef OVERWORLD_SHADER + vec3 Background = vec3(0.0); + vec3 Sky = skyFromTex(feetPlayerPos_normalized, colortex4)/30.0; + vec4 Clouds = texture2D_bicubic(colortex0, texcoord*CLOUDS_QUALITY); + + vec3 orbitstar = vec3(feetPlayerPos_normalized.x,abs(feetPlayerPos_normalized.y),feetPlayerPos_normalized.z); orbitstar.x -= WsunVec.x*0.2; + Background += stars(orbitstar) * 10.0; + + #ifndef ambientLight_only + Background += drawSun(dot(lightCol.a * WsunVec, feetPlayerPos_normalized),0, DirectLightColor,vec3(0.0)); + Background += drawMoon(feetPlayerPos_normalized, lightCol.a * WsunVec, DirectLightColor*20, Background); + #endif + + Background *= clamp( (feetPlayerPos_normalized.y+ 0.02)*5.0 + (eyeAltitude - 319)/800000 ,0.0,1.0); + + Background += Sky; + Background = Background * Clouds.a + Clouds.rgb; + + gl_FragData[0].rgb = clamp(fp10Dither(Background, triangularize(noise)), 0.0, 65000.); + #endif + #ifdef NETHER_SHADER + gl_FragData[0].rgb = vec3(0); + #endif + #ifdef END_SHADER + gl_FragData[0].rgb = vec3(0); + #endif + } else { + + feetPlayerPos += gbufferModelViewInverse[3].xyz; + + //////////////////////////////////////////////////////////////////////////////////// + ///////////////////////////// MAJOR LIGHTSOURCE STUFF //////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + + #ifdef OVERWORLD_SHADER + float LightningPhase = 0.0; + vec3 LightningFlashLighting = Iris_Lightningflash(feetPlayerPos, lightningBoltPosition.xyz, slopednormal, LightningPhase) * pow(lightmap.y,10); + #endif + + #ifdef OVERWORLD_SHADER + + NdotL = clamp((-15 + dot(slopednormal, WsunVec)*255.0) / 240.0 ,0.0,1.0); + + float shadowNDOTL = NdotL; + #ifndef Variable_Penumbra_Shadows + shadowNDOTL += LabSSS; + #endif + + vec3 feetPlayerPos_shadow = mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz; + + if(!hand) GriAndEminShadowFix(feetPlayerPos_shadow, viewToWorld(FlatNormals), vanilla_AO, lightmap.y, entities); + + vec3 projectedShadowPosition = mat3(shadowModelView) * feetPlayerPos_shadow + shadowModelView[3].xyz; + projectedShadowPosition = diagonal3(shadowProjection) * projectedShadowPosition + shadowProjection[3].xyz; + + //apply distortion + float distortFactor = calcDistort(projectedShadowPosition.xy); + projectedShadowPosition.xy *= distortFactor; + + + bool ShadowBounds = false; + if(shadowDistanceRenderMul > 0.0) ShadowBounds = length(feetPlayerPos_shadow) < max(shadowDistance - 20,0.0); + + if(shadowDistanceRenderMul < 0.0) ShadowBounds = abs(projectedShadowPosition.x) < 1.0-1.5/shadowMapResolution && abs(projectedShadowPosition.y) < 1.0-1.5/shadowMapResolution && abs(projectedShadowPosition.z) < 6.0; + + //do shadows only if on shadow map + if(ShadowBounds){ + if (shadowNDOTL >= -0.001){ + Shadows = 0.0; + int samples = SHADOW_FILTER_SAMPLE_COUNT; + float smallbias = 0; + + if(hand){ + samples = 1; + smallbias = -0.0005; + noise = 0.5; + } + + projectedShadowPosition = projectedShadowPosition * vec3(0.5,0.5,0.5/6.0) + vec3(0.5); + + #ifdef BASIC_SHADOW_FILTER + float rdMul = filteredShadow.x*distortFactor*d0*k/shadowMapResolution; + + for(int i = 0; i < samples; i++){ + vec2 offsetS = tapLocation(i,samples,1.618, noise,0.0); + + float isShadow = shadow2D(shadow, projectedShadowPosition + vec3(rdMul*offsetS, smallbias) ).x; + Shadows += isShadow/samples; + } + #else + Shadows = shadow2D(shadow, projectedShadowPosition + vec3(0.0,0.0, smallbias)).x; + #endif + } + inShadowmapBounds = true; + } + + float lightmapAsShadows = 1.0 ; + if(!inShadowmapBounds && !iswater){ + lightmapAsShadows = min(max(lightmap.y-0.8, 0.0) * 25,1.0); + + Shadows = lightmapAsShadows; + } + // if(!inShadowmapBounds) Shadows = 1.0; + + + + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////// SUN SSS //////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + + #if SSS_TYPE != 0 + #ifndef Variable_Penumbra_Shadows + if(LabSSS > 0 ) { + ShadowBlockerDepth = pow(1.0 - Shadows,2); + } + #endif + + if (!inShadowmapBounds) ShadowBlockerDepth = 0.0; + + float sunSSS_density = LabSSS; + + #ifndef RENDER_ENTITY_SHADOWS + if(entities) sunSSS_density = 0.0; + #endif + + if (!hand){ + #ifdef SCREENSPACE_CONTACT_SHADOWS + + float SS_shadow = 1.0; float SS_shadowSSS = 0.0; + SSRT_Shadows(toScreenSpace(vec3(texcoord/RENDER_SCALE, z)), normalize(WsunVec*mat3(gbufferModelViewInverse)), interleaved_gradientNoise(), !inShadowmapBounds && LabSSS > 0.0, inShadowmapBounds, SS_shadow, SS_shadowSSS); + + Shadows = min(Shadows, SS_shadow); + + // if (!inShadowmapBounds) Direct_SSS *= exp(-5 * SS_shadowSSS) * lightmapAsShadows; + if (!inShadowmapBounds) ShadowBlockerDepth = max(ShadowBlockerDepth, SS_shadowSSS); + #else + + if (!inShadowmapBounds) Direct_SSS = vec3(0.0); + + #endif + + Direct_SSS = SubsurfaceScattering_sun(albedo, ShadowBlockerDepth, sunSSS_density, clamp(dot(feetPlayerPos_normalized, WsunVec),0.0,1.0), inShadowmapBounds) ; + } + + if (isEyeInWater == 0) Direct_SSS *= clamp(pow(eyeBrightnessSmooth.y/240. + lightmap.y,2.0) ,0.0,1.0); // light leak fix + if (!inShadowmapBounds) Direct_SSS *= lightmapAsShadows; + #endif + + + + // #if SSS_TYPE != 0 + // Direct_SSS *= 1.0-clamp(NdotL*Shadows,0,1); + // #endif + + #ifdef CLOUDS_SHADOWS + cloudShadow = GetCloudShadow(feetPlayerPos); + Shadows *= cloudShadow; + Direct_SSS *= cloudShadow; + #endif + + #endif + + + + #ifdef END_SHADER + vec3 LightPos1 = vec3(0); vec3 LightPos2 = vec3(0); + LightSourcePosition(feetPlayerPos+cameraPosition, cameraPosition, LightPos1, LightPos2); + + vec3 LightCol1 = vec3(0); vec3 LightCol2 = vec3(0); + LightSourceColors(LightCol1, LightCol2); + // LightCol1 *= Flashing; + LightCol2 *= Flashing; + + Direct_lighting += LightCol1 * GetShading(feetPlayerPos+cameraPosition, LightPos1, slopednormal) ; + + #if lightsourceCount == 2 + Direct_lighting += LightCol2 * GetShading(feetPlayerPos+cameraPosition, LightPos2, slopednormal); + #endif + + // float RT_Shadows = rayTraceShadow(worldToView(normalize(-LightPos)), viewPos, noise); + // if(!hand) Direct_lighting *= RT_Shadows*RT_Shadows; + #endif + + ///////////////////////////////////////////////////////////////////////////////// + ///////////////////////////// INDIRECT LIGHTING ///////////////////////////// + ///////////////////////////////////////////////////////////////////////////////// + + #ifdef OVERWORLD_SHADER + + vec3 ambientcoefs = slopednormal / dot(abs(slopednormal), vec3(1)); + + float SkylightDir = ambientcoefs.y*1.5; + if(isGrass) SkylightDir = 1.25; + + float skylight = max(pow(viewToWorld(FlatNormals).y*0.5+0.5,0.1) + SkylightDir, 0.25) ; + + // #if indirect_effect == 2 + // skylight = 1.0; + // #endif + + #if indirect_effect != 3 || indirect_effect != 4 + Indirect_lighting = DoAmbientLighting(AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.xy, skylight); + #endif + + Indirect_lighting += LightningFlashLighting; + #endif + + #ifdef NETHER_SHADER + AmbientLightColor = skyCloudsFromTexLOD2(normal, colortex4, 6).rgb / 10; + + vec3 up = skyCloudsFromTexLOD2(vec3( 0, 1, 0), colortex4, 6).rgb / 10; + vec3 down = skyCloudsFromTexLOD2(vec3( 0,-1, 0), colortex4, 6).rgb / 10; + + up *= pow( max( slopednormal.y, 0), 2); + down *= pow( max(-slopednormal.y, 0), 2); + AmbientLightColor += up + down; + + Indirect_lighting = DoAmbientLighting_Nether(AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.x, normal, feetPlayerPos_normalized, feetPlayerPos ); + #endif + + #ifdef END_SHADER + Indirect_lighting = DoAmbientLighting_End(gl_Fog.color.rgb, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.x, normal, feetPlayerPos_normalized); + #endif + + + //////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////// UNDER WATER SHADING //////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////// + #ifdef OVERWORLD_SHADER + if ((isEyeInWater == 0 && iswater) || (isEyeInWater == 1 && !iswater)){ + + vec3 viewPos0 = toScreenSpace(vec3(texcoord/RENDER_SCALE-TAA_Offset*texelSize*0.5,z0)); + float Vdiff = distance(viewPos, viewPos0); + float VdotU = feetPlayerPos_normalized.y; + float estimatedDepth = Vdiff * abs(VdotU); //assuming water plane + estimatedDepth = estimatedDepth; + // make it such that the estimated depth flips to be correct when entering water. + + if (isEyeInWater == 1) estimatedDepth = (1.0-lightmap.y)*16.0; + + float estimatedSunDepth = Vdiff; //assuming water plane + vec3 Absorbtion = exp2(-totEpsilon*estimatedDepth); + + // caustics... + float Direct_caustics = waterCaustics(feetPlayerPos + cameraPosition, WsunVec) * cloudShadow; + // float Ambient_Caustics = waterCaustics(p3 + cameraPosition, vec3(0.5, 1, 0.5)); + + // apply caustics to the lighting + DirectLightColor *= 1.0 + max(pow(Direct_caustics * 3.0, 2.0),0.0); + // Indirect_lighting *= 0.5 + max(pow(Ambient_Caustics, 2.0),0.0); + + DirectLightColor *= Absorbtion; + if(isEyeInWater == 1 ) Indirect_lighting = (Indirect_lighting/exp2(-estimatedDepth*0.5)) * Absorbtion; + + if(isEyeInWater == 0) DirectLightColor *= max(eyeBrightnessSmooth.y/240., 0.0); + DirectLightColor *= cloudShadow; + } + #endif + ///////////////////////////////////////////////////////////////////////////////////// + ///////////////////////////// EFFECTS FOR INDIRECT ///////////////////////////// + ///////////////////////////////////////////////////////////////////////////////////// + + + float SkySSS = 0.0; + + #if indirect_effect == 0 + vec3 AO = vec3( exp( (vanilla_AO*vanilla_AO) * -5) ) ; + Indirect_lighting *= AO; + #endif + + #if indirect_effect == 1 + vec3 AO = vec3( exp( (vanilla_AO*vanilla_AO) * -3) ) ; + // vec3 AO = vec3( exp( (vanilla_AO*vanilla_AO) * -5) ) ; + // if(!hand) Indirect_lighting *= ssao(viewPos,noise,FlatNormals) * AO; + + + // if (!hand) ssAO(AO, SkySSS, viewPos, 1.0, blueNoise(gl_FragCoord.xy).rg, FlatNormals , texcoord, ambientCoefs, lightmap.xy, isLeaf); + + vec2 SSAO_SSS = SSAO(viewPos, FlatNormals, hand, isLeaf); + AO *= exp((1.0-SSAO_SSS.x) * -5.0); + SkySSS = SSAO_SSS.y; + + // SampleSSAO(AO, SkySSS, texcoord); + Indirect_lighting *= AO; + + #endif + // GTAO + #if indirect_effect == 2 + vec3 AO = vec3( exp( (vanilla_AO*vanilla_AO) * -3) ); + + vec2 r2 = fract(R2_samples(frameCounter%40000) + blueNoise(gl_FragCoord.xy).rg); + if (!hand) AO = ambient_occlusion(vec3(texcoord/RENDER_SCALE-TAA_Offset*texelSize*0.5,z), viewPos, worldToView(slopednormal), r2) * vec3(1.0); + + Indirect_lighting *= AO; + #endif + + // RTAO and/or SSGI + #if indirect_effect == 3 || indirect_effect == 4 + if (!hand) ApplySSRT(Indirect_lighting, normal, blueNoise(gl_FragCoord.xy).rg, viewPos, lightmap.xy, AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), isGrass); + #endif + + #ifdef SSS_view + // albedo = vec3(1); + Indirect_lighting = vec3(0.5); + #endif + + //////////////////////////////// SKY SSS //////////////////////////////// + #ifdef Ambient_SSS + if (!hand){ + + vec3 SSS_forSky = vec3(0.0); + + #if indirect_effect != 1 + SkySSS = ScreenSpace_SSS(viewPos, FlatNormals, hand, isLeaf); + #endif + + vec3 ambientColor = (AmbientLightColor / 30.0 ) * 1.5; + float skylightmap = pow(lightmap.y,3); + float uplimit = clamp(1.0-pow(clamp(ambientCoefs.y + 0.5,0.0,1.0),2),0,1); + + SSS_forSky = SubsurfaceScattering_sky(albedo, SkySSS, LabSSS); + SSS_forSky *= ambientColor; + SSS_forSky *= skylightmap; + // SSS_forSky *= uplimit; + + // Combine with the other SSS + Indirect_SSS += SSS_forSky; + + SSS_forSky = vec3((1.0 - SkySSS) * LabSSS); + SSS_forSky *= ambientColor; + SSS_forSky *= skylightmap; + + ////light up dark parts so its more visible + Indirect_lighting = max(Indirect_lighting, SSS_forSky); + Indirect_lighting += Indirect_SSS; + + #ifdef OVERWORLD_SHADER + if(LabSSS > 0.0) Indirect_lighting += (1.0-SkySSS) * LightningPhase * lightningEffect * pow(lightmap.y,10); + #endif + + } + #endif + + ///////////////////////////////////////////////////////////////////////// + ///////////////////////////// FINALIZE ///////////////////////////// + ///////////////////////////////////////////////////////////////////////// + #ifdef SSS_view + albedo = vec3(1); + #endif + + #ifdef OVERWORLD_SHADER + Direct_lighting = DoDirectLighting(DirectLightColor, Shadows, NdotL, 0.0); + Direct_lighting += Direct_SSS * DirectLightColor; // do this here so it gets underwater absorbtion. + #endif + + gl_FragData[0].rgb = (Indirect_lighting + Direct_lighting) * albedo; + + #ifdef Specular_Reflections + vec3 specNoise = vec3(blueNoise(gl_FragCoord.xy).rg, interleaved_gradientNoise()); + DoSpecularReflections(gl_FragData[0].rgb, viewPos, feetPlayerPos_normalized, WsunVec, specNoise, normal, SpecularTex.r, SpecularTex.g, albedo, DirectLightColor*Shadows*NdotL, lightmap.y, hand); + #endif + + Emission(gl_FragData[0].rgb, albedo, SpecularTex.a); + + if(lightningBolt) gl_FragData[0].rgb = vec3(77.0, 153.0, 255.0); } + + #ifdef OVERWORLD_SHADER + if (iswater && isEyeInWater == 0){ + vec3 viewPos0 = toScreenSpace(vec3(texcoord/RENDER_SCALE-TAA_Offset*texelSize*0.5,z0)); + float Vdiff = distance(viewPos,viewPos0); + float VdotU = feetPlayerPos_normalized.y; + float estimatedDepth = Vdiff * abs(VdotU) ; //assuming water plane + float estimatedSunDepth = estimatedDepth/abs(WsunVec.y); //assuming water plane + + float custom_lightmap_T = clamp(pow(texture2D(colortex14, texcoord).a,3.0),0.0,1.0); + + vec3 lightColVol = lightCol.rgb / 80.; + // if(shadowmapindicator < 1) lightColVol *= clamp((custom_lightmap_T-0.8) * 15,0,1) + + vec3 lightningColor = (lightningEffect / 3) * (max(eyeBrightnessSmooth.y,0)/240.); + vec3 ambientColVol = max((averageSkyCol_Clouds / 30.0) * custom_lightmap_T, vec3(0.2,0.4,1.0) * (MIN_LIGHT_AMOUNT*0.01 + nightVision)) ; + + waterVolumetrics(gl_FragData[0].rgb, viewPos0, viewPos, estimatedDepth , estimatedSunDepth, Vdiff, noise, totEpsilon, scatterCoef, ambientColVol, lightColVol, dot(feetPlayerPos_normalized, WsunVec)); + } + #else + if (iswater && isEyeInWater == 0){ + vec3 viewPos0 = toScreenSpace(vec3(texcoord/RENDER_SCALE-TAA_Offset*texelSize*0.5,z0)); + float Vdiff = distance(viewPos,viewPos0); + float VdotU = feetPlayerPos_normalized.y; + float estimatedDepth = Vdiff * abs(VdotU) ; //assuming water plane + + vec3 ambientColVol = max(vec3(1.0,0.5,1.0) * 0.3, vec3(0.2,0.4,1.0) * (MIN_LIGHT_AMOUNT*0.01 + nightVision)); + + waterVolumetrics_notoverworld(gl_FragData[0].rgb, viewPos0, viewPos, estimatedDepth , estimatedDepth, Vdiff, noise, totEpsilon, scatterCoef, ambientColVol); + } + #endif + // vec3 testPos = feetPlayerPos_normalized + vec3(lightningBoltPosition.x, clamp(feetPlayerPos.y, lightningBoltPosition.y, lightningBoltPosition.y+150.0),lightningBoltPosition.z); + // // vec3 testPos = feetPlayerPos_normalized + vec3(lightningBoltPosition.x, lightningBoltPosition.y + 60,lightningBoltPosition.z); + + // float phaseorigin = 1.0 - clamp(dot(feetPlayerPos_normalized, normalize(testPos) ),0.0,1.0); + + // gl_FragData[0].rgb += lightningEffect * exp(sqrt(phaseorigin) * -10); + +/* DRAWBUFFERS:3 */ } diff --git a/shaders/dimensions/composite1.vsh b/shaders/dimensions/composite1.vsh index a3d9f54..bc514db 100644 --- a/shaders/dimensions/composite1.vsh +++ b/shaders/dimensions/composite1.vsh @@ -1,20 +1,57 @@ -#include "/lib/util.glsl" +#include "/lib/settings.glsl" +#include "/lib/res_params.glsl" -flat varying float tempOffsets; +flat varying float Flashing; +flat varying vec3 WsunVec; +flat varying vec3 averageSkyCol_Clouds; +flat varying vec4 lightCol; + +flat varying vec2 TAA_Offset; +flat varying vec3 zMults; +uniform sampler2D colortex4; + +// uniform float far; +uniform float near; +uniform mat4 gbufferModelViewInverse; +uniform vec3 sunPosition; +uniform float rainStrength; +uniform float sunElevation; uniform int frameCounter; +uniform int framemod8; +const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), + vec2(-1.,3.)/8., + vec2(5.0,1.)/8., + vec2(-3,-5.)/8., + vec2(-5.,5.)/8., + vec2(-7.,-1.)/8., + vec2(3,7.)/8., + vec2(7.,-7.)/8.); -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// + +#include "/lib/util.glsl" +#include "/lib/Shadow_Params.glsl" void main() { gl_Position = ftransform(); - tempOffsets = HaltonSeq2(frameCounter%10000); - - gl_Position.xy = (gl_Position.xy*0.5+0.5)*0.51*2.0-1.0; + Flashing = texelFetch2D(colortex4,ivec2(1,1),0).x/150.0; + + zMults = vec3((far * near)*2.0,far+near,far-near); + + lightCol.rgb = texelFetch2D(colortex4,ivec2(6,37),0).rgb; + lightCol.a = float(sunElevation > 1e-5)*2.0 - 1.0; + + averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(0,37),0).rgb; + + WsunVec = lightCol.a*normalize(mat3(gbufferModelViewInverse) * sunPosition); + // WsunVec = normalize(LightDir); + + + TAA_Offset = offsets[framemod8]; + + #ifdef TAA_UPSCALING + gl_Position.xy = (gl_Position.xy*0.5+0.5)*RENDER_SCALE*2.0-1.0; + #endif } diff --git a/shaders/composite10.fsh b/shaders/dimensions/composite10.fsh similarity index 92% rename from shaders/composite10.fsh rename to shaders/dimensions/composite10.fsh index dcf701b..f81059a 100644 --- a/shaders/composite10.fsh +++ b/shaders/dimensions/composite10.fsh @@ -1,8 +1,3 @@ -#version 120 - -#include "/lib/settings.glsl" -//Merge and upsample the blurs into a 1/4 res bloom buffer -#include "/lib/res_params.glsl" uniform sampler2D colortex3; uniform sampler2D colortex6; @@ -83,9 +78,8 @@ vec4 texture2D_bicubic(sampler2D tex, vec2 uv) void main() { /* DRAWBUFFERS:3 */ -vec2 resScale = vec2(1920.,1080.)/(max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.))/BLOOM_QUALITY); +vec2 resScale = vec2(1920.,1080.)/max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.)); vec2 texcoord = ((gl_FragCoord.xy)*2.+0.5)*texelSize; - vec3 bloom = texture2D_bicubic(colortex3,texcoord/2.0).rgb; //1/4 res bloom += texture2D_bicubic(colortex6,texcoord/4.).rgb; //1/8 res diff --git a/shaders/composite7.vsh b/shaders/dimensions/composite10.vsh similarity index 79% rename from shaders/composite7.vsh rename to shaders/dimensions/composite10.vsh index 74659ca..7a54acb 100644 --- a/shaders/composite7.vsh +++ b/shaders/dimensions/composite10.vsh @@ -1,6 +1,3 @@ -#version 120 -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" uniform float viewWidth; uniform float viewHeight; //////////////////////////////VOID MAIN////////////////////////////// @@ -14,5 +11,5 @@ void main() { vec2 clampedRes = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.)); gl_Position = ftransform(); //*0.51 to avoid errors when sampling outside since clearing is disabled - gl_Position.xy = (gl_Position.xy*0.5+0.5)*0.26*BLOOM_QUALITY/clampedRes*vec2(1920.0,1080.)*2-1.0; + gl_Position.xy = (gl_Position.xy*0.5+0.5)*0.51/clampedRes*vec2(1920.0,1080.)*2.0-1.0; } diff --git a/shaders/composite11.fsh b/shaders/dimensions/composite11.fsh similarity index 96% rename from shaders/composite11.fsh rename to shaders/dimensions/composite11.fsh index 37e6541..3ec1714 100644 --- a/shaders/composite11.fsh +++ b/shaders/dimensions/composite11.fsh @@ -1,7 +1,3 @@ -#version 120 -//Vignetting, applies bloom, applies exposure and tonemaps the final image -//#extension GL_EXT_gpu_shader4 : disable - #include "/lib/settings.glsl" #include "/lib/res_params.glsl" @@ -106,7 +102,7 @@ void main() { // vec3 bloom = (texture2D(colortex3,texcoord/clampedRes*vec2(1920.,1080.)*0.5*BLOOM_QUALITY).rgb)/2./7.0; - vec3 bloom = texture2D(colortex3, texcoord/clampedRes*vec2(1920.,1080.)*0.5*BLOOM_QUALITY).rgb / 2.0 / 7.0; + vec3 bloom = texture2D(colortex3, texcoord/clampedRes*vec2(1920.,1080.)*BLOOM_QUALITY).rgb / 2.0 / 7.0; float lightScat = clamp(BLOOM_STRENGTH * 0.05 * pow(exposure.a, 0.2) ,0.0,1.0)*vignette; diff --git a/shaders/final.vsh b/shaders/dimensions/composite11.vsh similarity index 88% rename from shaders/final.vsh rename to shaders/dimensions/composite11.vsh index 822a7b0..e77b7c4 100644 --- a/shaders/final.vsh +++ b/shaders/dimensions/composite11.vsh @@ -1,9 +1,8 @@ -#version 120 -//#extension GL_EXT_gpu_shader4 : disable #include "/lib/settings.glsl" varying vec2 texcoord; flat varying vec4 exposure; +flat varying float rodExposure; uniform sampler2D colortex4; //////////////////////////////VOID MAIN////////////////////////////// @@ -17,4 +16,5 @@ void main() { gl_Position = ftransform(); texcoord = gl_MultiTexCoord0.xy; exposure=vec4(texelFetch2D(colortex4,ivec2(10,37),0).r*vec3(FinalR,FinalG,FinalB),texelFetch2D(colortex4,ivec2(10,37),0).r); + rodExposure = texelFetch2D(colortex4,ivec2(14,37),0).r; } diff --git a/shaders/dimensions/composite2.fsh b/shaders/dimensions/composite2.fsh index 251d0f7..66ff7dc 100644 --- a/shaders/dimensions/composite2.fsh +++ b/shaders/dimensions/composite2.fsh @@ -1,305 +1,278 @@ #include "/lib/settings.glsl" -flat varying vec3 zMults; -flat varying vec2 TAA_Offset; - +flat varying vec4 lightCol; +flat varying vec3 averageSkyCol; +// flat varying vec3 averageSkyCol_Clouds; uniform sampler2D noisetex; uniform sampler2D depthtex0; -uniform sampler2D depthtex1; -uniform sampler2D colortex0; -uniform sampler2D colortex1; + uniform sampler2D colortex2; uniform sampler2D colortex3; // uniform sampler2D colortex4; -uniform sampler2D colortex5; -uniform sampler2D colortex6; -uniform sampler2D colortex7; -uniform sampler2D colortex8; -uniform sampler2D colortex9; -uniform sampler2D colortex11; -uniform sampler2D colortex13; -uniform sampler2D colortex15; -uniform vec2 texelSize; -flat varying vec3 noooormal; -flat varying vec4 lightCol; //main light source color (rgb),used light source(1=sun,-1=moon) flat varying vec3 WsunVec; - uniform vec3 sunVec; -uniform float frameTimeCounter; +uniform float sunElevation; +// uniform float far; + uniform int frameCounter; -uniform float far; -uniform float near; -uniform mat4 gbufferModelViewInverse; -uniform mat4 gbufferModelView; -uniform mat4 gbufferPreviousModelView; -uniform mat4 gbufferProjectionInverse; -uniform mat4 gbufferProjection; -uniform mat4 gbufferPreviousProjection; -uniform vec3 cameraPosition; -uniform vec3 previousCameraPosition; +uniform float frameTimeCounter; + +varying vec2 texcoord; +uniform vec2 texelSize; +flat varying vec2 TAA_Offset; uniform int isEyeInWater; -uniform ivec2 eyeBrightnessSmooth; uniform float rainStrength; -uniform float blindness; -uniform float darknessFactor; -uniform float darknessLightFactor; +uniform ivec2 eyeBrightnessSmooth; - -#include "/lib/waterBump.glsl" +#include "/lib/color_transforms.glsl" +#include "/lib/color_dither.glsl" +#include "/lib/projections.glsl" #include "/lib/res_params.glsl" - #include "/lib/sky_gradient.glsl" -#include "/lib/volumetricClouds.glsl" -// #include "/lib/biome_specifics.glsl" +#include "/lib/Shadow_Params.glsl" +#ifdef OVERWORLD_SHADER + + const bool shadowHardwareFiltering = true; + uniform sampler2DShadow shadow; + flat varying vec3 refractedSunVec; + + #define TIMEOFDAYFOG + #include "/lib/lightning_stuff.glsl" + #include "/lib/volumetricClouds.glsl" + #include "/lib/volumetricFog.glsl" +#endif +#ifdef NETHER_SHADER + uniform sampler2D colortex4; + #include "/lib/nether_fog.glsl" +#endif +#ifdef END_SHADER + uniform sampler2D colortex4; + #include "/lib/end_fog.glsl" +#endif - -#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) -#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) - -float ld(float depth) { - return 1.0 / (zMults.y - depth * zMults.z); // (-depth * (far - near)) = (2.0 * near)/ld - far - near -} -float luma(vec3 color) { - return dot(color,vec3(0.21, 0.72, 0.07)); -} -vec3 toLinear(vec3 sRGB){ - return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); -} -vec3 toScreenSpace(vec3 p) { - vec4 iProjDiag = vec4(gbufferProjectionInverse[0].x, gbufferProjectionInverse[1].y, gbufferProjectionInverse[2].zw); - vec3 p3 = p * 2. - 1.; - vec4 fragposition = iProjDiag * p3.xyzz + gbufferProjectionInverse[3]; - return fragposition.xyz / fragposition.w; -} - - -// #include "/lib/specular.glsl" - - - - -vec4 BilateralUpscale(sampler2D tex, sampler2D depth,vec2 coord,float frDepth, vec2 distort){ - coord = coord; - vec4 vl = vec4(0.0); - float sum = 0.0; - mat3x3 weights; - const ivec2 scaling = ivec2(1.0/VL_RENDER_RESOLUTION); - ivec2 posD = ivec2(coord*VL_RENDER_RESOLUTION + distort)*scaling; - ivec2 posVl = ivec2(coord*VL_RENDER_RESOLUTION + distort); - float dz = zMults.x; - ivec2 pos = (ivec2(gl_FragCoord.xy+frameCounter) % 2 )*2; - - ivec2 tcDepth = posD + ivec2(-2,-2) * scaling + pos * scaling; - float dsample = ld(texelFetch2D(depth,tcDepth,0).r); - float w = abs(dsample-frDepth) < dz ? 1.0 : 1e-5; - vl += texelFetch2D(tex,posVl+ivec2(-2)+pos,0)*w; - sum += w; - - tcDepth = posD + ivec2(-2,0) * scaling + pos * scaling; - dsample = ld(texelFetch2D(depth,tcDepth,0).r); - w = abs(dsample-frDepth) < dz ? 1.0 : 1e-5; - vl += texelFetch2D(tex,posVl+ivec2(-2,0)+pos,0)*w; - sum += w; - - tcDepth = posD + ivec2(0) + pos * scaling; - dsample = ld(texelFetch2D(depth,tcDepth,0).r); - w = abs(dsample-frDepth) < dz ? 1.0 : 1e-5; - vl += texelFetch2D(tex,posVl+ivec2(0)+pos,0)*w; - sum += w; - - tcDepth = posD + ivec2(0,-2) * scaling + pos * scaling; - dsample = ld(texelFetch2D(depth,tcDepth,0).r); - w = abs(dsample-frDepth) < dz ? 1.0 : 1e-5; - vl += texelFetch2D(tex,posVl+ivec2(0,-2)+pos,0)*w; - sum += w; - - return vl/sum; -} - -vec3 decode (vec2 encn){ - vec3 n = vec3(0.0); - encn = encn * 2.0 - 1.0; - n.xy = abs(encn); - n.z = 1.0 - n.x - n.y; - n.xy = n.z <= 0.0 ? (1.0 - n.yx) * sign(encn) : encn; - return clamp(normalize(n.xyz),-1.0,1.0); -} -vec2 decodeVec2(float a){ - const vec2 constant1 = 65535. / vec2( 256., 65536.); - const float constant2 = 256. / 255.; - return fract( a * constant1 ) * constant2 ; -} - -vec3 worldToView(vec3 worldPos) { - vec4 pos = vec4(worldPos, 0.0); - pos = gbufferModelView * pos; - return pos.xyz; -} -float blueNoise(){ - return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter); -} -vec4 blueNoise(vec2 coord){ - return texelFetch2D(colortex6, ivec2(coord )%512 , 0); -} -vec3 normVec (vec3 vec){ - return vec*inversesqrt(dot(vec,vec)); -} +#define fsign(a) (clamp((a)*1e35,0.,1.)*2.-1.) float interleaved_gradientNoise(){ - vec2 coord = gl_FragCoord.xy; - float noise = fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y)); - return noise; + return fract(52.9829189*fract(0.06711056*gl_FragCoord.x + 0.00583715*gl_FragCoord.y)+ 1.0/1.6180339887 * frameCounter); } -vec3 viewToWorld(vec3 viewPosition) { - vec4 pos; - pos.xyz = viewPosition; - pos.w = 0.0; - pos = gbufferModelViewInverse * pos; - return pos.xyz; +float blueNoise(){ + return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a+ 1.0/1.6180339887 * frameCounter ); } -/// thanks stackoverflow https://stackoverflow.com/questions/944713/help-with-pixel-shader-effect-for-brightness-and-contrast#3027595 -void applyContrast(inout vec3 color, float contrast){ - color = ((color - 0.5) * max(contrast, 0.0)) + 0.5; +void waterVolumetrics_notoverworld(inout vec3 inColor, vec3 rayStart, vec3 rayEnd, float estEndDepth, float estSunDepth, float rayLength, float dither, vec3 waterCoefs, vec3 scatterCoef, vec3 ambient){ + inColor *= exp(-rayLength * waterCoefs); //No need to take the integrated value + + int spCount = rayMarchSampleCount; + vec3 start = toShadowSpaceProjected(rayStart); + vec3 end = toShadowSpaceProjected(rayEnd); + vec3 dV = (end-start); + //limit ray length at 32 blocks for performance and reducing integration error + //you can't see above this anyway + float maxZ = min(rayLength,12.0)/(1e-8+rayLength); + dV *= maxZ; + + + rayLength *= maxZ; + + float dY = normalize(mat3(gbufferModelViewInverse) * rayEnd).y * rayLength; + estEndDepth *= maxZ; + estSunDepth *= maxZ; + + vec3 wpos = mat3(gbufferModelViewInverse) * rayStart + gbufferModelViewInverse[3].xyz; + vec3 dVWorld = (wpos-gbufferModelViewInverse[3].xyz); + + vec3 absorbance = vec3(1.0); + vec3 vL = vec3(0.0); + + float expFactor = 11.0; + for (int i=0;i 0.99; - float translucentAlpha = trpData.a; - // vec4 speculartex = texture2D(colortex8,texcoord); // translucents - // float sunlight = speculartex.b; + if (isEyeInWater == 0){ + + #ifdef OVERWORLD_SHADER + vec4 VolumetricFog = GetVolumetricFog(viewPos, noise_1, lightCol.rgb/80.0, averageSkyCol/30.0); + #endif + #ifdef NETHER_SHADER + vec4 VolumetricFog = GetVolumetricFog(viewPos, noise_1, noise_2); + #endif + #ifdef END_SHADER + vec4 VolumetricFog = GetVolumetricFog(viewPos, noise_1, noise_2); + #endif - //3x3 bilateral upscale from half resolution - float z = texture2D(depthtex0,texcoord).x; - float z2 = texture2D(depthtex1,texcoord).x; - float frDepth = ld(z2); - - // vec4 vl = texture2D(colortex0,texcoord * 0.5); - - ////// --------------- UNPACK OPAQUE GBUFFERS --------------- ////// - vec4 data_opaque = texture2D(colortex1,texcoord); - vec4 dataUnpacked1 = vec4(decodeVec2(data_opaque.z),decodeVec2(data_opaque.w)); // normals, lightmaps - // vec4 dataUnpacked2 = vec4(decodeVec2(data.z),decodeVec2(data.w)); + gl_FragData[0] = clamp(VolumetricFog, 0.0, 65000.0); + } - bool hand = abs(dataUnpacked1.w-0.75) < 0.01; - vec2 lightmap = dataUnpacked1.yz; + if (isEyeInWater == 1){ - ////// --------------- UNPACK TRANSLUCENT GBUFFERS --------------- ////// + float dirtAmount = Dirt_Amount; + vec3 waterEpsilon = vec3(Water_Absorb_R, Water_Absorb_G, Water_Absorb_B); + vec3 dirtEpsilon = vec3(Dirt_Absorb_R, Dirt_Absorb_G, Dirt_Absorb_B); + vec3 totEpsilon = dirtEpsilon*dirtAmount + waterEpsilon; + vec3 scatterCoef = dirtAmount * vec3(Dirt_Scatter_R, Dirt_Scatter_G, Dirt_Scatter_B) / 3.14; - vec3 data = texture2D(colortex11,texcoord).rgb; + #ifdef OVERWORLD_SHADER - vec4 unpack0 = vec4(decodeVec2(data.r),decodeVec2(data.g)) ; - vec4 unpack1 = vec4(decodeVec2(data.b),0,0) ; - - + float estEyeDepth = 1.0-clamp(eyeBrightnessSmooth.y/240.0,0.,1.0); + estEyeDepth = pow(estEyeDepth,3.0) * 32.0; - vec4 albedo = vec4(unpack0.ba,unpack1.rg); + vec3 lightColVol = lightCol.rgb / 80.; - vec2 tangentNormals = unpack0.xy*2.0-1.0; + vec3 lightningColor = (lightningEffect / 3) * (max(eyeBrightnessSmooth.y,0)/240.); + vec3 ambientColVol = (averageSkyCol/30.0); - if(albedo.a <= 0.0) tangentNormals = vec2(0.0); - - vec4 TranslucentShader = texture2D(colortex2,texcoord); - - float lightleakfix = clamp(pow(eyeBrightnessSmooth.y/240.,2) ,0.0,1.0); - - - vec2 tempOffset = TAA_Offset; - vec3 fragpos = toScreenSpace(vec3(texcoord/RENDER_SCALE-vec2(tempOffset)*texelSize*0.5,z)); - vec3 fragpos2 = toScreenSpace(vec3(texcoord/RENDER_SCALE-vec2(tempOffset)*texelSize*0.5,z2)); - - - vec3 p3 = mat3(gbufferModelViewInverse) * fragpos; - vec3 np3 = normVec(p3); - - - vec2 refractedCoord = texcoord; - - /// --- REFRACTION --- /// - #ifdef Refraction - refractedCoord += (tangentNormals * clamp((ld(z2) - ld(z)) * 0.5,0.0,0.15)) * RENDER_SCALE; - // refractedCoord += tangentNormals * 0.1 * RENDER_SCALE; - - float refractedalpha = decodeVec2(texture2D(colortex11,refractedCoord).b).g; - float refractedalpha2 = texture2D(colortex7,refractedCoord).a; - if( refractedalpha <= 0.001 ||z < 0.56) refractedCoord = texcoord; // remove refracted coords on solids - #endif - - /// --- MAIN COLOR BUFFER --- /// - // it is sampled with distorted texcoords - vec3 color = texture2D(colortex3,refractedCoord).rgb; - - vec4 vl = BilateralUpscale(colortex0, depthtex1, gl_FragCoord.xy, frDepth, vec2(0.0)); - float bloomyFogMult = 1.0; - - if (TranslucentShader.a > 0.0){ - #ifdef Glass_Tint - if(albedo.a > 0.2) color = color*albedo.rgb + color * clamp(pow(1.0-luma(albedo.rgb),20.),0.0,1.0); - #endif - - color = color*(1.0-TranslucentShader.a) + TranslucentShader.rgb; - } - - // underwater fog - if (isEyeInWater == 1){ - float dirtAmount = Dirt_Amount; - vec3 waterEpsilon = vec3(Water_Absorb_R, Water_Absorb_G, Water_Absorb_B); - vec3 dirtEpsilon = vec3(Dirt_Absorb_R, Dirt_Absorb_G, Dirt_Absorb_B); - vec3 totEpsilon = dirtEpsilon*dirtAmount + waterEpsilon; - - // float fogfade = clamp( exp(length(fragpos) / -20) ,0.0,1.0); - // vec3 fogfade = clamp( exp( (length(fragpos) / -4) * totEpsilon ) ,0.0,1.0); - vec3 fogfade = clamp( exp( (-length(fragpos)) * totEpsilon ) ,0.0,1.0); - fogfade *= 1.0 - clamp( length(fragpos) / far,0.0,1.0); - - color.rgb *= fogfade ; - bloomyFogMult *= 0.4; - } - - // apply VL fog to the scene - color *= vl.a; - color += vl.rgb; - -// bloomy rain effect - float rainDrops = clamp(texture2D(colortex9,texcoord).a, 0.0,1.0); - if(rainDrops > 0.0) bloomyFogMult *= clamp(1.0 - pow(rainDrops*5.0,2),0.0,1.0); - - /// lava. - if (isEyeInWater == 2){ - color.rgb = vec3(4.0,0.5,0.1); - } - - /// powdered snow - if (isEyeInWater == 3){ - color.rgb = mix(color.rgb,vec3(10,15,20),clamp(length(fragpos)*0.5,0.,1.)); - bloomyFogMult = 0.0; - } - - // blidnesss - color.rgb *= mix(1.0,clamp( exp(pow(length(fragpos)*(blindness*0.2),2) * -1),0.,1.) , blindness); - - // darkness effect - color.rgb *= mix(1.0, (1.0-darknessLightFactor*2.0) * clamp(1.0-pow(length(fragpos2)*(darknessFactor*0.07),2.0),0.0,1.0), darknessFactor); - - #ifdef display_LUT - vec2 movedTC = texcoord; - vec3 thingy = texture2D(colortex4,movedTC).rgb / 150. * 5.0; - if(luma(thingy) > 0.0 ) color.rgb = thingy; - #endif - - gl_FragData[0].r = vl.a * bloomyFogMult; // pass fog alpha so bloom can do bloomy fog - - gl_FragData[1].rgb = clamp(color.rgb,0.0,68000.0); + vec3 vl = vec3(0.0); + waterVolumetrics(vl, vec3(0.0), viewPos, estEyeDepth, estEyeDepth, length(viewPos), noise_1, totEpsilon, scatterCoef, ambientColVol, lightColVol*(1.0-pow(1.0-sunElevation*lightCol.a,5.0)) , dot(normalize(viewPos), normalize(sunVec* lightCol.a ) )); + gl_FragData[0] = clamp(vec4(vl,1.0),0.000001,65000.); + #else + vec3 fragpos0 = toScreenSpace(vec3(texcoord - TAA_Offset*texelSize*0.5,z)); + vec3 ambientColVol = max(vec3(1.0,0.5,1.0) * 0.6, vec3(0.2,0.4,1.0) * MIN_LIGHT_AMOUNT*0.01); + gl_FragData[0].a = 1; + waterVolumetrics_notoverworld(gl_FragData[0].rgb, fragpos0, viewPos, 1 , 1, 1, blueNoise(), totEpsilon, scatterCoef, ambientColVol); + #endif + } } \ No newline at end of file diff --git a/shaders/dimensions/composite2.vsh b/shaders/dimensions/composite2.vsh index 1717e80..0d192bb 100644 --- a/shaders/dimensions/composite2.vsh +++ b/shaders/dimensions/composite2.vsh @@ -1,17 +1,45 @@ +#include "/lib/settings.glsl" +#include "/lib/util.glsl" + +flat varying vec4 lightCol; +flat varying vec3 averageSkyCol; + +flat varying vec3 WsunVec; +flat varying vec3 refractedSunVec; + +flat varying float tempOffsets; + +uniform sampler2D colortex4; + +uniform float sunElevation; +uniform vec3 sunPosition; +uniform mat4 gbufferModelViewInverse; +uniform int frameCounter; + + -varying vec2 texcoord; -flat varying vec3 zMults; -uniform float far; -uniform float near; //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// + +#include "/lib/Shadow_Params.glsl" void main() { - zMults = vec3(1.0/(far * near),far+near,far-near); gl_Position = ftransform(); - texcoord = gl_MultiTexCoord0.xy; + gl_Position.xy = (gl_Position.xy*0.5+0.5)*0.51*2.0-1.0; + + tempOffsets = HaltonSeq2(frameCounter%10000); + + averageSkyCol = texelFetch2D(colortex4,ivec2(1,37),0).rgb; + + lightCol.a = float(sunElevation > 1e-5)*2.0 - 1.0; + lightCol.rgb = texelFetch2D(colortex4,ivec2(6,37),0).rgb; + + WsunVec = lightCol.a * normalize(mat3(gbufferModelViewInverse) * sunPosition); + // WsunVec = normalize(LightDir); + + refractedSunVec = refract(WsunVec, -vec3(0.0,1.0,0.0), 1.0/1.33333); } diff --git a/shaders/dimensions/composite3.fsh b/shaders/dimensions/composite3.fsh index c47e9fc..fd31e57 100644 --- a/shaders/dimensions/composite3.fsh +++ b/shaders/dimensions/composite3.fsh @@ -1,350 +1,347 @@ #include "/lib/settings.glsl" -const int noiseTextureResolution = 32; +flat varying vec3 zMults; +flat varying vec2 TAA_Offset; -/* -const int colortex0Format = RGBA16F; // low res clouds (deferred->composite2) + low res VL (composite5->composite15) -const int colortex1Format = RGBA16; //terrain gbuffer (gbuffer->composite2) -const int colortex2Format = RGBA16F; //forward + transparencies (gbuffer->composite4) -const int colortex3Format = R11F_G11F_B10F; //frame buffer + bloom (deferred6->final) -const int colortex4Format = RGBA16F; //light values and skyboxes (everything) -const int colortex5Format = R11F_G11F_B10F; //TAA buffer (everything) -const int colortex6Format = R11F_G11F_B10F; //additionnal buffer for bloom (composite3->final) -const int colortex7Format = RGBA8; //Final output, transparencies id (gbuffer->composite4) -*/ -//no need to clear the buffers, saves a few fps -const bool colortex0Clear = false; -const bool colortex1Clear = false; -const bool colortex2Clear = true; -const bool colortex3Clear = false; -const bool colortex4Clear = false; -const bool colortex5Clear = false; -const bool colortex6Clear = false; -const bool colortex7Clear = false; - -varying vec2 texcoord; -flat varying float exposureA; -flat varying float tempOffsets; -uniform sampler2D colortex3; -uniform sampler2D colortex5; -uniform sampler2D colortex10; +uniform sampler2D noisetex; uniform sampler2D depthtex0; - +uniform sampler2D depthtex1; +uniform sampler2D colortex0; +uniform sampler2D colortex1; +uniform sampler2D colortex2; +uniform sampler2D colortex3; +// uniform sampler2D colortex4; +uniform sampler2D colortex5; +uniform sampler2D colortex6; +uniform sampler2D colortex7; +uniform sampler2D colortex8; +uniform sampler2D colortex9; +uniform sampler2D colortex11; +uniform sampler2D colortex13; +uniform sampler2D colortex15; uniform vec2 texelSize; + +flat varying vec3 noooormal; +flat varying vec4 lightCol; //main light source color (rgb),used light source(1=sun,-1=moon) +flat varying vec3 WsunVec; + +uniform vec3 sunVec; uniform float frameTimeCounter; -uniform int framemod8; -uniform float viewHeight; -uniform float viewWidth; -uniform vec3 previousCameraPosition; +uniform int frameCounter; +uniform float far; +uniform float near; +uniform mat4 gbufferModelViewInverse; +uniform mat4 gbufferModelView; uniform mat4 gbufferPreviousModelView; +uniform mat4 gbufferProjectionInverse; +uniform mat4 gbufferProjection; +uniform mat4 gbufferPreviousProjection; +uniform vec3 cameraPosition; +uniform vec3 previousCameraPosition; + +uniform int isEyeInWater; +uniform ivec2 eyeBrightnessSmooth; +uniform float rainStrength; +uniform float blindness; +uniform float darknessFactor; +uniform float darknessLightFactor; +#include "/lib/waterBump.glsl" +#include "/lib/res_params.glsl" + +#ifdef OVERWORLD_SHADER + #include "/lib/sky_gradient.glsl" + #include "/lib/lightning_stuff.glsl" + #include "/lib/volumetricClouds.glsl" +#endif +#ifndef OVERWORLD_SHADER + #include "/lib/climate_settings.glsl" +#endif -#define fsign(a) (clamp((a)*1e35,0.,1.)*2.-1.) - -#include "/lib/projections.glsl" - +#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) +#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) +float ld(float depth) { + return 1.0 / (zMults.y - depth * zMults.z); // (-depth * (far - near)) = (2.0 * near)/ld - far - near +} float luma(vec3 color) { return dot(color,vec3(0.21, 0.72, 0.07)); } +vec3 toLinear(vec3 sRGB){ + return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); +} +vec3 toScreenSpace(vec3 p) { + vec4 iProjDiag = vec4(gbufferProjectionInverse[0].x, gbufferProjectionInverse[1].y, gbufferProjectionInverse[2].zw); + vec3 p3 = p * 2. - 1.; + vec4 fragposition = iProjDiag * p3.xyzz + gbufferProjectionInverse[3]; + return fragposition.xyz / fragposition.w; +} + + +// #include "/lib/specular.glsl" + + + + +vec4 BilateralUpscale(sampler2D tex, sampler2D depth,vec2 coord,float frDepth){ + coord = coord; + vec4 vl = vec4(0.0); + float sum = 0.0; + mat3x3 weights; + const ivec2 scaling = ivec2(1.0/VL_RENDER_RESOLUTION); + ivec2 posD = ivec2(coord*VL_RENDER_RESOLUTION)*scaling; + ivec2 posVl = ivec2(coord*VL_RENDER_RESOLUTION); + float dz = zMults.x; + ivec2 pos = (ivec2(gl_FragCoord.xy+frameCounter) % 2 )*2; + + ivec2 tcDepth = posD + ivec2(-2,-2) * scaling + pos * scaling; + float dsample = ld(texelFetch2D(depth,tcDepth,0).r); + float w = abs(dsample-frDepth) < dz ? 1.0 : 1e-5; + vl += texelFetch2D(tex,posVl+ivec2(-2)+pos,0)*w; + sum += w; + + tcDepth = posD + ivec2(-2,0) * scaling + pos * scaling; + dsample = ld(texelFetch2D(depth,tcDepth,0).r); + w = abs(dsample-frDepth) < dz ? 1.0 : 1e-5; + vl += texelFetch2D(tex,posVl+ivec2(-2,0)+pos,0)*w; + sum += w; + + tcDepth = posD + ivec2(0) + pos * scaling; + dsample = ld(texelFetch2D(depth,tcDepth,0).r); + w = abs(dsample-frDepth) < dz ? 1.0 : 1e-5; + vl += texelFetch2D(tex,posVl+ivec2(0)+pos,0)*w; + sum += w; + + tcDepth = posD + ivec2(0,-2) * scaling + pos * scaling; + dsample = ld(texelFetch2D(depth,tcDepth,0).r); + w = abs(dsample-frDepth) < dz ? 1.0 : 1e-5; + vl += texelFetch2D(tex,posVl+ivec2(0,-2)+pos,0)*w; + sum += w; + + return vl/sum; +} + +vec3 decode (vec2 encn){ + vec3 n = vec3(0.0); + encn = encn * 2.0 - 1.0; + n.xy = abs(encn); + n.z = 1.0 - n.x - n.y; + n.xy = n.z <= 0.0 ? (1.0 - n.yx) * sign(encn) : encn; + return clamp(normalize(n.xyz),-1.0,1.0); +} +vec2 decodeVec2(float a){ + const vec2 constant1 = 65535. / vec2( 256., 65536.); + const float constant2 = 256. / 255.; + return fract( a * constant1 ) * constant2 ; +} + +vec3 worldToView(vec3 worldPos) { + vec4 pos = vec4(worldPos, 0.0); + pos = gbufferModelView * pos; + return pos.xyz; +} +float blueNoise(){ + return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter); +} +vec4 blueNoise(vec2 coord){ + return texelFetch2D(colortex6, ivec2(coord )%512 , 0); +} +vec3 normVec (vec3 vec){ + return vec*inversesqrt(dot(vec,vec)); +} + float interleaved_gradientNoise(){ - return fract(52.9829189*fract(0.06711056*gl_FragCoord.x + 0.00583715*gl_FragCoord.y)+tempOffsets); + vec2 coord = gl_FragCoord.xy; + float noise = fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y)); + return noise; } -float triangularize(float dither) -{ - float center = dither*2.0-1.0; - dither = center*inversesqrt(abs(center)); - return clamp(dither-fsign(center),0.0,1.0); -} -vec3 fp10Dither(vec3 color,float dither){ - const vec3 mantissaBits = vec3(6.,6.,5.); - vec3 exponent = floor(log2(color)); - return color + dither*exp2(-mantissaBits)*exp2(exponent); +vec3 viewToWorld(vec3 viewPosition) { + vec4 pos; + pos.xyz = viewPosition; + pos.w = 0.0; + pos = gbufferModelViewInverse * pos; + return pos.xyz; } - -//returns the projected coordinates of the closest point to the camera in the 3x3 neighborhood -vec3 closestToCamera3x3() -{ - vec2 du = vec2(texelSize.x, 0.0); - vec2 dv = vec2(0.0, texelSize.y); - - vec3 dtl = vec3(texcoord,0.) + vec3(-texelSize, texture2D(depthtex0, texcoord - dv - du).x); - vec3 dtc = vec3(texcoord,0.) + vec3( 0.0, -texelSize.y, texture2D(depthtex0, texcoord - dv).x); - vec3 dtr = vec3(texcoord,0.) + vec3( texelSize.x, -texelSize.y, texture2D(depthtex0, texcoord - dv + du).x); - - vec3 dml = vec3(texcoord,0.) + vec3(-texelSize.x, 0.0, texture2D(depthtex0, texcoord - du).x); - vec3 dmc = vec3(texcoord,0.) + vec3( 0.0, 0.0, texture2D(depthtex0, texcoord).x); - vec3 dmr = vec3(texcoord,0.) + vec3( texelSize.x, 0.0, texture2D(depthtex0, texcoord + du).x); - - vec3 dbl = vec3(texcoord,0.) + vec3(-texelSize.x, texelSize.y, texture2D(depthtex0, texcoord + dv - du).x); - vec3 dbc = vec3(texcoord,0.) + vec3( 0.0, texelSize.y, texture2D(depthtex0, texcoord + dv).x); - vec3 dbr = vec3(texcoord,0.) + vec3( texelSize.x, texelSize.y, texture2D(depthtex0, texcoord + dv + du).x); - - vec3 dmin = dmc; - - dmin = dmin.z > dtc.z? dtc : dmin; - dmin = dmin.z > dtr.z? dtr : dmin; - - dmin = dmin.z > dml.z? dml : dmin; - dmin = dmin.z > dtl.z? dtl : dmin; - dmin = dmin.z > dmr.z? dmr : dmin; - - dmin = dmin.z > dbl.z? dbl : dmin; - dmin = dmin.z > dbc.z? dbc : dmin; - dmin = dmin.z > dbr.z? dbr : dmin; - - return dmin; +/// thanks stackoverflow https://stackoverflow.com/questions/944713/help-with-pixel-shader-effect-for-brightness-and-contrast#3027595 +void applyContrast(inout vec3 color, float contrast){ + color = ((color - 0.5) * max(contrast, 0.0)) + 0.5; } - -//Modified texture interpolation from inigo quilez -vec4 smoothfilter(in sampler2D tex, in vec2 uv) -{ - vec2 textureResolution = vec2(viewWidth,viewHeight); - uv = uv*textureResolution + 0.5; - vec2 iuv = floor( uv ); - vec2 fuv = fract( uv ); - #ifndef SMOOTHESTSTEP_INTERPOLATION - uv = iuv + (fuv*fuv)*(3.0-2.0*fuv); - #endif - #ifdef SMOOTHESTSTEP_INTERPOLATION - uv = iuv + fuv*fuv*fuv*(fuv*(fuv*6.0-15.0)+10.0); - #endif - uv = (uv - 0.5)/textureResolution; - return texture2D( tex, uv); -} -//Due to low sample count we "tonemap" the inputs to preserve colors and smoother edges -vec3 weightedSample(sampler2D colorTex, vec2 texcoord){ - vec3 wsample = texture2D(colorTex,texcoord).rgb*exposureA; - return wsample/(1.0+luma(wsample)); - -} - - -//from : https://gist.github.com/TheRealMJP/c83b8c0f46b63f3a88a5986f4fa982b1 -vec4 SampleTextureCatmullRom(sampler2D tex, vec2 uv, vec2 texSize ) -{ - // We're going to sample a a 4x4 grid of texels surrounding the target UV coordinate. We'll do this by rounding - // down the sample location to get the exact center of our "starting" texel. The starting texel will be at - // location [1, 1] in the grid, where [0, 0] is the top left corner. - vec2 samplePos = uv * texSize; - vec2 texPos1 = floor(samplePos - 0.5) + 0.5; - - // Compute the fractional offset from our starting texel to our original sample location, which we'll - // feed into the Catmull-Rom spline function to get our filter weights. - vec2 f = samplePos - texPos1; - - // Compute the Catmull-Rom weights using the fractional offset that we calculated earlier. - // These equations are pre-expanded based on our knowledge of where the texels will be located, - // which lets us avoid having to evaluate a piece-wise function. - vec2 w0 = f * ( -0.5 + f * (1.0 - 0.5*f)); - vec2 w1 = 1.0 + f * f * (-2.5 + 1.5*f); - vec2 w2 = f * ( 0.5 + f * (2.0 - 1.5*f) ); - vec2 w3 = f * f * (-0.5 + 0.5 * f); - - // Work out weighting factors and sampling offsets that will let us use bilinear filtering to - // simultaneously evaluate the middle 2 samples from the 4x4 grid. - vec2 w12 = w1 + w2; - vec2 offset12 = w2 / (w1 + w2); - - // Compute the final UV coordinates we'll use for sampling the texture - vec2 texPos0 = texPos1 - vec2(1.0); - vec2 texPos3 = texPos1 + vec2(2.0); - vec2 texPos12 = texPos1 + offset12; - - texPos0 *= texelSize; - texPos3 *= texelSize; - texPos12 *= texelSize; - - vec4 result = vec4(0.0); - result += texture2D(tex, vec2(texPos0.x, texPos0.y)) * w0.x * w0.y; - result += texture2D(tex, vec2(texPos12.x, texPos0.y)) * w12.x * w0.y; - result += texture2D(tex, vec2(texPos3.x, texPos0.y)) * w3.x * w0.y; - - result += texture2D(tex, vec2(texPos0.x, texPos12.y)) * w0.x * w12.y; - result += texture2D(tex, vec2(texPos12.x, texPos12.y)) * w12.x * w12.y; - result += texture2D(tex, vec2(texPos3.x, texPos12.y)) * w3.x * w12.y; - - result += texture2D(tex, vec2(texPos0.x, texPos3.y)) * w0.x * w3.y; - result += texture2D(tex, vec2(texPos12.x, texPos3.y)) * w12.x * w3.y; - result += texture2D(tex, vec2(texPos3.x, texPos3.y)) * w3.x * w3.y; - - return result; -} -//approximation from SMAA presentation from siggraph 2016 -vec3 FastCatmulRom(sampler2D colorTex, vec2 texcoord, vec4 rtMetrics, float sharpenAmount) -{ - vec2 position = rtMetrics.zw * texcoord; - vec2 centerPosition = floor(position - 0.5) + 0.5; - vec2 f = position - centerPosition; - vec2 f2 = f * f; - vec2 f3 = f * f2; - - float c = sharpenAmount; - vec2 w0 = -c * f3 + 2.0 * c * f2 - c * f; - vec2 w1 = (2.0 - c) * f3 - (3.0 - c) * f2 + 1.0; - vec2 w2 = -(2.0 - c) * f3 + (3.0 - 2.0 * c) * f2 + c * f; - vec2 w3 = c * f3 - c * f2; - - vec2 w12 = w1 + w2; - vec2 tc12 = rtMetrics.xy * (centerPosition + w2 / w12); - vec3 centerColor = texture2D(colorTex, vec2(tc12.x, tc12.y)).rgb; - - vec2 tc0 = rtMetrics.xy * (centerPosition - 1.0); - vec2 tc3 = rtMetrics.xy * (centerPosition + 2.0); - vec4 color = vec4(texture2D(colorTex, vec2(tc12.x, tc0.y )).rgb, 1.0) * (w12.x * w0.y ) + - vec4(texture2D(colorTex, vec2(tc0.x, tc12.y)).rgb, 1.0) * (w0.x * w12.y) + - vec4(centerColor, 1.0) * (w12.x * w12.y) + - vec4(texture2D(colorTex, vec2(tc3.x, tc12.y)).rgb, 1.0) * (w3.x * w12.y) + - vec4(texture2D(colorTex, vec2(tc12.x, tc3.y )).rgb, 1.0) * (w12.x * w3.y ); - return color.rgb/color.a; - -} - -vec3 clip_aabb(vec3 q,vec3 aabb_min, vec3 aabb_max) - { - vec3 p_clip = 0.5 * (aabb_max + aabb_min); - vec3 e_clip = 0.5 * (aabb_max - aabb_min) + 0.00000001; - - vec3 v_clip = q - vec3(p_clip); - vec3 v_unit = v_clip.xyz / e_clip; - vec3 a_unit = abs(v_unit); - float ma_unit = max(a_unit.x, max(a_unit.y, a_unit.z)); - - if (ma_unit > 1.0) - return vec3(p_clip) + v_clip / ma_unit; - else - return q; - } -vec3 toClipSpace3Prev(vec3 viewSpacePosition) { - return projMAD(gbufferPreviousProjection, viewSpacePosition) / -viewSpacePosition.z * 0.5 + 0.5; -} -vec3 tonemap(vec3 col){ - return col/(1+luma(col)); -} -vec3 invTonemap(vec3 col){ - return col/(1-luma(col)); -} -vec3 closestToCamera5taps(vec2 texcoord, sampler2D depth) -{ - vec2 du = vec2(texelSize.x*2., 0.0); - vec2 dv = vec2(0.0, texelSize.y*2.); - - vec3 dtl = vec3(texcoord,0.) + vec3(-texelSize, texture2D(depth, texcoord - dv - du).x); - vec3 dtr = vec3(texcoord,0.) + vec3( texelSize.x, -texelSize.y, texture2D(depth, texcoord - dv + du).x); - vec3 dmc = vec3(texcoord,0.) + vec3( 0.0, 0.0, texture2D(depth, texcoord).x); - vec3 dbl = vec3(texcoord,0.) + vec3(-texelSize.x, texelSize.y, texture2D(depth, texcoord + dv - du).x); - vec3 dbr = vec3(texcoord,0.) + vec3( texelSize.x, texelSize.y, texture2D(depth, texcoord + dv + du).x); - - vec3 dmin = dmc; - dmin = dmin.z > dtr.z? dtr : dmin; - dmin = dmin.z > dtl.z? dtl : dmin; - dmin = dmin.z > dbl.z? dbl : dmin; - dmin = dmin.z > dbr.z? dbr : dmin; - - return dmin; -} -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); - -vec3 TAA_hq(){ - - vec2 adjTC = texcoord; - - - //use velocity from the nearest texel from camera in a 3x3 box in order to improve edge quality in motion - #ifdef CLOSEST_VELOCITY - vec3 closestToCamera = closestToCamera5taps(adjTC, depthtex0); - #endif - - #ifndef CLOSEST_VELOCITY - vec3 closestToCamera = vec3(texcoord,texture2D(depthtex1,adjTC).x); - #endif - - //reproject previous frame - vec3 fragposition = toScreenSpace(closestToCamera); - fragposition = mat3(gbufferModelViewInverse) * fragposition + gbufferModelViewInverse[3].xyz + (cameraPosition - previousCameraPosition); - vec3 previousPosition = mat3(gbufferPreviousModelView) * fragposition + gbufferPreviousModelView[3].xyz; - previousPosition = toClipSpace3Prev(previousPosition); - vec2 velocity = previousPosition.xy - closestToCamera.xy; - previousPosition.xy = texcoord + velocity; - - //reject history if off-screen and early exit - if (previousPosition.x < 0.0 || previousPosition.y < 0.0 || previousPosition.x > 1.0 || previousPosition.y > 1.0) - return smoothfilter(colortex3, adjTC + offsets[framemod8]*texelSize*0.5).xyz; - - - vec3 albedoCurrent0 = texture2D(colortex3, adjTC).rgb; - vec3 albedoCurrent1 = texture2D(colortex3, adjTC + vec2(texelSize.x,texelSize.y)).rgb; - vec3 albedoCurrent2 = texture2D(colortex3, adjTC + vec2(texelSize.x,-texelSize.y)).rgb; - vec3 albedoCurrent3 = texture2D(colortex3, adjTC + vec2(-texelSize.x,-texelSize.y)).rgb; - vec3 albedoCurrent4 = texture2D(colortex3, adjTC + vec2(-texelSize.x,texelSize.y)).rgb; - vec3 albedoCurrent5 = texture2D(colortex3, adjTC + vec2(0.0,texelSize.y)).rgb; - vec3 albedoCurrent6 = texture2D(colortex3, adjTC + vec2(0.0,-texelSize.y)).rgb; - vec3 albedoCurrent7 = texture2D(colortex3, adjTC + vec2(-texelSize.x,0.0)).rgb; - vec3 albedoCurrent8 = texture2D(colortex3, adjTC + vec2(texelSize.x,0.0)).rgb; - //Assuming the history color is a blend of the 3x3 neighborhood, we clamp the history to the min and max of each channel in the 3x3 neighborhood - vec3 cMax = max(max(max(albedoCurrent0,albedoCurrent1),albedoCurrent2),max(albedoCurrent3,max(albedoCurrent4,max(albedoCurrent5,max(albedoCurrent6,max(albedoCurrent7,albedoCurrent8)))))); - vec3 cMin = min(min(min(albedoCurrent0,albedoCurrent1),albedoCurrent2),min(albedoCurrent3,min(albedoCurrent4,min(albedoCurrent5,min(albedoCurrent6,min(albedoCurrent7,albedoCurrent8)))))); - albedoCurrent0 = smoothfilter(colortex3, adjTC + offsets[framemod8]*texelSize*0.5).rgb; - - - #ifndef NO_CLIP - vec3 albedoPrev = max(FastCatmulRom(colortex5, previousPosition.xy,vec4(texelSize, 1.0/texelSize), 0.75).xyz, 0.0); - vec3 finalcAcc = clamp(albedoPrev,cMin,cMax); - - //Increases blending factor when far from AABB and in motion, reduces ghosting - float isclamped = distance(albedoPrev,finalcAcc)/luma(albedoPrev) * 0.5; - float movementRejection = (0.12+isclamped)*clamp(length(velocity/texelSize),0.0,1.0); - - float test = 0.05; - - bool isEntities = texture2D(colortex10,texcoord).x > 0.0; - // if(isEntities) test = 0.15; - // if(istranslucent) test = 0.1; - - //Blend current pixel with clamped history, apply fast tonemap beforehand to reduce flickering - // vec3 supersampled = invTonemap(mix(tonemap(finalcAcc),tonemap(albedoCurrent0),clamp(BLEND_FACTOR + movementRejection, min(luma(motionVector) *255,1.0),1.))); - - vec3 supersampled = invTonemap(mix(tonemap(finalcAcc),tonemap(albedoCurrent0),clamp(BLEND_FACTOR + movementRejection, test,1.))); - #endif - - - #ifdef NO_CLIP - vec3 albedoPrev = texture2D(colortex5, previousPosition.xy).xyz; - vec3 supersampled = mix(albedoPrev,albedoCurrent0,clamp(0.05,0.,1.)); - #endif - - //De-tonemap - return supersampled; -} - void main() { + /* DRAWBUFFERS:73 */ -/* DRAWBUFFERS:5 */ - gl_FragData[0].a = 1.0; + vec2 texcoord = gl_FragCoord.xy*texelSize; - #ifdef TAA - vec3 color = TAA_hq(); - gl_FragData[0].rgb = clamp(fp10Dither(color,triangularize(interleaved_gradientNoise())),6.11*1e-5,65000.0); - #endif + vec4 trpData = texture2D(colortex7,texcoord); - #ifndef TAA - vec3 color = clamp(fp10Dither(texture2D(colortex3,texcoord).rgb,triangularize(interleaved_gradientNoise())),0.,65000.); - gl_FragData[0].rgb = color; - #endif + bool iswater = trpData.a > 0.99; + float translucentAlpha = trpData.a; + + // vec4 speculartex = texture2D(colortex8,texcoord); // translucents + // float sunlight = speculartex.b; + + //3x3 bilateral upscale from half resolution + float z = texture2D(depthtex0,texcoord).x; + float z2 = texture2D(depthtex1,texcoord).x; + float frDepth = ld(z2); + + // vec4 vl = texture2D(colortex0,texcoord * 0.5); + + ////// --------------- UNPACK OPAQUE GBUFFERS --------------- ////// + vec4 data_opaque = texture2D(colortex1,texcoord); + vec4 dataUnpacked1 = vec4(decodeVec2(data_opaque.z),decodeVec2(data_opaque.w)); // normals, lightmaps + // vec4 dataUnpacked2 = vec4(decodeVec2(data.z),decodeVec2(data.w)); + + bool hand = abs(dataUnpacked1.w-0.75) < 0.01; + vec2 lightmap = dataUnpacked1.yz; + + ////// --------------- UNPACK TRANSLUCENT GBUFFERS --------------- ////// + + vec3 data = texture2D(colortex11,texcoord).rgb; + + vec4 unpack0 = vec4(decodeVec2(data.r),decodeVec2(data.g)) ; + vec4 unpack1 = vec4(decodeVec2(data.b),0,0) ; + + + + vec4 albedo = vec4(unpack0.ba,unpack1.rg); + + vec2 tangentNormals = unpack0.xy*2.0-1.0; + + if(albedo.a <= 0.0) tangentNormals = vec2(0.0); + + vec4 TranslucentShader = texture2D(colortex2,texcoord); + vec2 tempOffset = TAA_Offset; + vec3 fragpos = toScreenSpace(vec3(texcoord/RENDER_SCALE-vec2(tempOffset)*texelSize*0.5,z)); + vec3 fragpos2 = toScreenSpace(vec3(texcoord/RENDER_SCALE-vec2(tempOffset)*texelSize*0.5,z2)); + + + vec3 p3 = mat3(gbufferModelViewInverse) * fragpos; + vec3 np3 = normVec(p3); -} + vec2 refractedCoord = texcoord; + + /// --- REFRACTION --- /// + #ifdef Refraction + refractedCoord += (tangentNormals * clamp((ld(z2) - ld(z)) * 0.5,0.0,0.15)) * RENDER_SCALE; + // refractedCoord += tangentNormals * 0.1 * RENDER_SCALE; + + float refractedalpha = decodeVec2(texture2D(colortex11,refractedCoord).b).g; + float refractedalpha2 = texture2D(colortex7,refractedCoord).a; + if( refractedalpha <= 0.001 ||z < 0.56) refractedCoord = texcoord; // remove refracted coords on solids + #endif + + /// --- MAIN COLOR BUFFER --- /// + // it is sampled with distorted texcoords + vec3 color = texture2D(colortex3,refractedCoord).rgb; + + float lightleakfix = clamp(pow(eyeBrightnessSmooth.y/240.,2) ,0.0,1.0); + + #if defined OVERWORLD_SHADER && defined BorderFog + vec3 sky = skyFromTex(np3,colortex4) / 150. * 5.0; + float fog = 1.0 - clamp(exp(-pow(length(fragpos / far),10.)*4.0) ,0.0,1.0); + float heightFalloff = clamp( pow(abs(np3.y-1.01),5) ,0,1) ; + + if(z < 1.0 && isEyeInWater == 0) color.rgb = mix(color.rgb, sky, fog * heightFalloff * lightleakfix); + #endif + + vec4 vl = BilateralUpscale(colortex0, depthtex1, gl_FragCoord.xy, frDepth); + float bloomyFogMult = 1.0; + + if (TranslucentShader.a > 0.0){ + #ifdef Glass_Tint + if(albedo.a > 0.2) color = color*albedo.rgb + color * clamp(pow(1.0-luma(albedo.rgb),20.),0.0,1.0); + #endif + + color = color*(1.0-TranslucentShader.a) + TranslucentShader.rgb; + + #ifdef BorderFog + if(z < 1.0 && isEyeInWater == 0) color.rgb = mix(color.rgb, sky, fog * heightFalloff * lightleakfix); + #endif + } + +#ifdef OVERWORLD_SHADER + #ifdef Cave_fog + if (isEyeInWater == 0){ + + float fogdistfade = clamp( pow(length(fragpos) / far, CaveFogFallOff) ,0.0,1.0); + + fogdistfade = fogdistfade*0.95 + clamp( pow(1.0 - exp((length(fragpos) / far) * -5), 2.0) ,0.0,1.0)*0.05; + float fogfade = clamp( exp(clamp(np3.y * 0.5 + 0.5,0,1) * -3.0) ,0.0,1.0); + + vec3 cavefogCol = vec3(CaveFogColor_R,CaveFogColor_G,CaveFogColor_B); + + #ifdef PER_BIOME_ENVIRONMENT + BiomeFogColor(cavefogCol); + #endif + + color.rgb = mix(color.rgb, cavefogCol*fogfade, fogdistfade * (1.0-lightleakfix) * (1.0-darknessFactor) * clamp( 1.5 - np3.y,0.,1)) ; + // color.rgb = mix(color.rgb, vec3(0.), fogdistfade * (1.0-lightleakfix) * (1.0-darknessFactor) * clamp( 1.5 - np3.y,0.,1)) ; + // color.rgb = vec3(CaveFogColor_R,CaveFogColor_G,CaveFogColor_B)*fogfade ; + } + #endif +#endif + + // underwater fog + if (isEyeInWater == 1){ + float dirtAmount = Dirt_Amount; + vec3 waterEpsilon = vec3(Water_Absorb_R, Water_Absorb_G, Water_Absorb_B); + vec3 dirtEpsilon = vec3(Dirt_Absorb_R, Dirt_Absorb_G, Dirt_Absorb_B); + vec3 totEpsilon = dirtEpsilon*dirtAmount + waterEpsilon; + + // float fogfade = clamp( exp(length(fragpos) / -20) ,0.0,1.0); + // vec3 fogfade = clamp( exp( (length(fragpos) / -4) * totEpsilon ) ,0.0,1.0); + vec3 fogfade = clamp( exp( (length(fragpos) / -4) * totEpsilon ) ,0.0,1.0); + fogfade *= 1.0 - clamp( length(fragpos) / far,0.0,1.0); + + color.rgb *= fogfade ; + bloomyFogMult *= 0.4; + } + + // apply VL fog to the scene + color *= vl.a; + color += vl.rgb; + + #ifdef OVERWORLD_SHADER + // bloomy rain effect + float rainDrops = clamp(texture2D(colortex9,texcoord).a, 0.0,1.0); + if(rainDrops > 0.0) bloomyFogMult *= clamp(1.0 - pow(rainDrops*5.0,2),0.0,1.0); + #endif + + /// lava. + if (isEyeInWater == 2){ + color.rgb = vec3(4.0,0.5,0.1); + } + + /// powdered snow + if (isEyeInWater == 3){ + color.rgb = mix(color.rgb,vec3(10,15,20),clamp(length(fragpos)*0.5,0.,1.)); + bloomyFogMult = 0.0; + } + + // blidnesss + color.rgb *= mix(1.0,clamp( exp(pow(length(fragpos)*(blindness*0.2),2) * -5),0.,1.) , blindness); + + // darkness effect + color.rgb *= mix(1.0, (1.0-darknessLightFactor*2.0) * clamp(1.0-pow(length(fragpos2)*(darknessFactor*0.07),2.0),0.0,1.0), darknessFactor); + + #ifdef display_LUT + vec2 movedTC = texcoord; + vec3 thingy = texture2D(colortex4,movedTC).rgb / 30; + if(luma(thingy) > 0.0){ + color.rgb = thingy; + vl.a = 1.0; + } + #endif + + gl_FragData[0].r = vl.a * bloomyFogMult; // pass fog alpha so bloom can do bloomy fog + + gl_FragData[1].rgb = clamp(color.rgb, 0.0,68000.0); +} \ No newline at end of file diff --git a/shaders/dimensions/composite3.vsh b/shaders/dimensions/composite3.vsh index 263f476..1717e80 100644 --- a/shaders/dimensions/composite3.vsh +++ b/shaders/dimensions/composite3.vsh @@ -1,17 +1,17 @@ -#include "/lib/util.glsl" varying vec2 texcoord; -flat varying float exposureA; -flat varying float tempOffsets; -uniform sampler2D colortex4; -uniform int frameCounter; - - +flat varying vec3 zMults; +uniform float far; +uniform float near; +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// void main() { - - tempOffsets = HaltonSeq2(frameCounter%10000); + zMults = vec3(1.0/(far * near),far+near,far-near); gl_Position = ftransform(); texcoord = gl_MultiTexCoord0.xy; - exposureA = texelFetch2D(colortex4,ivec2(10,37),0).r; + } diff --git a/shaders/dimensions/composite4.fsh b/shaders/dimensions/composite4.fsh index c6aa254..505bca7 100644 --- a/shaders/dimensions/composite4.fsh +++ b/shaders/dimensions/composite4.fsh @@ -1,7 +1,8 @@ -uniform sampler2D colortex5; -uniform vec2 texelSize; -uniform float viewWidth; -uniform float viewHeight; +#include "/lib/settings.glsl" + +uniform sampler2D colortex3; +// Compute 3x3 min max for TAA + //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -9,34 +10,35 @@ uniform float viewHeight; //////////////////////////////VOID MAIN////////////////////////////// void main() { - -/* DRAWBUFFERS:3 */ -vec2 resScale = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.))/vec2(1920.,1080.); -vec2 quarterResTC = gl_FragCoord.xy*2.*resScale*texelSize; - - //0.5 - gl_FragData[0] = texture2D(colortex5,quarterResTC-1.0*vec2(texelSize.x,texelSize.y))/4.*0.5; - gl_FragData[0] += texture2D(colortex5,quarterResTC+1.0*vec2(texelSize.x,texelSize.y))/4.*0.5; - gl_FragData[0] += texture2D(colortex5,quarterResTC+vec2(-1.0*texelSize.x,1.0*texelSize.y))/4.*0.5; - gl_FragData[0] += texture2D(colortex5,quarterResTC+vec2(1.0*texelSize.x,-1.0*texelSize.y))/4.*0.5; - - //0.25 - gl_FragData[0] += texture2D(colortex5,quarterResTC-2.0*vec2(texelSize.x,0.0))/2.*0.125; - gl_FragData[0] += texture2D(colortex5,quarterResTC+2.0*vec2(0.0,texelSize.y))/2.*0.125; - gl_FragData[0] += texture2D(colortex5,quarterResTC+2.0*vec2(0,-texelSize.y))/2*0.125; - gl_FragData[0] += texture2D(colortex5,quarterResTC+2.0*vec2(-texelSize.x,0.0))/2*0.125; - - //0.125 - gl_FragData[0] += texture2D(colortex5,quarterResTC-2.0*vec2(texelSize.x,texelSize.y))/4.*0.125; - gl_FragData[0] += texture2D(colortex5,quarterResTC+2.0*vec2(texelSize.x,texelSize.y))/4.*0.125; - gl_FragData[0] += texture2D(colortex5,quarterResTC+vec2(-2.0*texelSize.x,2.0*texelSize.y))/4.*0.125; - gl_FragData[0] += texture2D(colortex5,quarterResTC+vec2(2.0*texelSize.x,-2.0*texelSize.y))/4.*0.125; - - //0.125 - gl_FragData[0] += texture2D(colortex5,quarterResTC)*0.125; - - gl_FragData[0].rgb = clamp(gl_FragData[0].rgb,0.0,65000.); - if (quarterResTC.x > 1.0 - 3.5*texelSize.x || quarterResTC.y > 1.0 -3.5*texelSize.y || quarterResTC.x < 3.5*texelSize.x || quarterResTC.y < 3.5*texelSize.y) gl_FragData[0].rgb = vec3(0.0); - - +/* DRAWBUFFERS:06 */ + ivec2 center = ivec2(gl_FragCoord.xy); + vec3 current = texelFetch2D(colortex3, center, 0).rgb; + vec3 cMin = current; + vec3 cMax = current; + current = texelFetch2D(colortex3, center + ivec2(-1, -1), 0).rgb; + cMin = min(cMin, current); + cMax = max(cMax, current); + current = texelFetch2D(colortex3, center + ivec2(-1, 0), 0).rgb; + cMin = min(cMin, current); + cMax = max(cMax, current); + current = texelFetch2D(colortex3, center + ivec2(-1, 1), 0).rgb; + cMin = min(cMin, current); + cMax = max(cMax, current); + current = texelFetch2D(colortex3, center + ivec2(0, -1), 0).rgb; + cMin = min(cMin, current); + cMax = max(cMax, current); + current = texelFetch2D(colortex3, center + ivec2(0, 1), 0).rgb; + cMin = min(cMin, current); + cMax = max(cMax, current); + current = texelFetch2D(colortex3, center + ivec2(1, -1), 0).rgb; + cMin = min(cMin, current); + cMax = max(cMax, current); + current = texelFetch2D(colortex3, center + ivec2(1, 0), 0).rgb; + cMin = min(cMin, current); + cMax = max(cMax, current); + current = texelFetch2D(colortex3, center + ivec2(1, 1), 0).rgb; + cMin = min(cMin, current); + cMax = max(cMax, current); + gl_FragData[0].rgb = cMax; + gl_FragData[1].rgb = cMin; } diff --git a/shaders/dimensions/composite4.vsh b/shaders/dimensions/composite4.vsh index 7a54acb..4451d61 100644 --- a/shaders/dimensions/composite4.vsh +++ b/shaders/dimensions/composite4.vsh @@ -1,5 +1,6 @@ -uniform float viewWidth; -uniform float viewHeight; +#include "/lib/settings.glsl" +#include "/lib/res_params.glsl" + //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -7,9 +8,9 @@ uniform float viewHeight; //////////////////////////////VOID MAIN////////////////////////////// void main() { - //Improves performances and makes sure bloom radius stays the same at high resolution (>1080p) - vec2 clampedRes = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.)); gl_Position = ftransform(); - //*0.51 to avoid errors when sampling outside since clearing is disabled - gl_Position.xy = (gl_Position.xy*0.5+0.5)*0.51/clampedRes*vec2(1920.0,1080.)*2.0-1.0; + + #ifdef TAA_UPSCALING + gl_Position.xy = (gl_Position.xy*0.5+0.5)*RENDER_SCALE*2.0-1.0; + #endif } diff --git a/shaders/dimensions/composite5.fsh b/shaders/dimensions/composite5.fsh index a76a667..b2908cd 100644 --- a/shaders/dimensions/composite5.fsh +++ b/shaders/dimensions/composite5.fsh @@ -1,42 +1,286 @@ +#include "/lib/settings.glsl" +#include "/lib/res_params.glsl" + +/* +const int colortex0Format = RGBA16F; // low res clouds (deferred->composite2) + low res VL (composite5->composite15) +const int colortex1Format = RGBA16; //terrain gbuffer (gbuffer->composite2) +const int colortex2Format = RGBA16F; //forward + transparencies (gbuffer->composite4) +const int colortex3Format = R11F_G11F_B10F; //frame buffer + bloom (deferred6->final) +const int colortex4Format = RGBA16F; //light values and skyboxes (everything) +const int colortex6Format = R11F_G11F_B10F; //additionnal buffer for bloom (composite3->final) +const int colortex7Format = RGBA8; //Final output, transparencies id (gbuffer->composite4) + +const int colortex11Format = RGBA16; // unchanged translucents albedo, alpha and tangent normals +const int colortex15Format = RGBA8; // flat normals and vanilla AO +*/ + +//no need to clear the buffers, saves a few fps +const bool colortex0Clear = false; +const bool colortex1Clear = false; +const bool colortex2Clear = true; +const bool colortex3Clear = false; +const bool colortex4Clear = false; +const bool colortex5Clear = false; +const bool colortex6Clear = false; +const bool colortex7Clear = false; +const bool colortex11Clear = true; + +#ifdef SCREENSHOT_MODE + /* + const int colortex5Format = RGBA32F; //TAA buffer (everything) + */ +#else + /* + const int colortex5Format = R11F_G11F_B10F; //TAA buffer (everything) + */ +#endif + + +varying vec2 texcoord; +flat varying float tempOffsets; +uniform sampler2D colortex0; uniform sampler2D colortex3; +uniform sampler2D colortex5; +uniform sampler2D colortex6; +uniform sampler2D colortex10; +uniform sampler2D depthtex0; + uniform vec2 texelSize; -uniform float viewWidth; +uniform float frameTimeCounter; +uniform int framemod8; uniform float viewHeight; -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// +uniform float viewWidth; +uniform vec3 previousCameraPosition; +uniform mat4 gbufferPreviousModelView; -void main() { - -/* DRAWBUFFERS:6 */ -vec2 resScale = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.))/vec2(1920.,1080.); -vec2 quarterResTC = gl_FragCoord.xy*2.*texelSize; - - //0.5 - gl_FragData[0] = texture2D(colortex3,quarterResTC-1.0*vec2(texelSize.x,texelSize.y))/4.*0.5; - gl_FragData[0] += texture2D(colortex3,quarterResTC+1.0*vec2(texelSize.x,texelSize.y))/4.*0.5; - gl_FragData[0] += texture2D(colortex3,quarterResTC+vec2(-1.0*texelSize.x,1.0*texelSize.y))/4.*0.5; - gl_FragData[0] += texture2D(colortex3,quarterResTC+vec2(1.0*texelSize.x,-1.0*texelSize.y))/4.*0.5; - - //0.25 - gl_FragData[0] += texture2D(colortex3,quarterResTC-2.0*vec2(texelSize.x,0.0))/2.*0.125; - gl_FragData[0] += texture2D(colortex3,quarterResTC+2.0*vec2(0.0,texelSize.y))/2.*0.125; - gl_FragData[0] += texture2D(colortex3,quarterResTC+2.0*vec2(0,-texelSize.y))/2*0.125; - gl_FragData[0] += texture2D(colortex3,quarterResTC+2.0*vec2(-texelSize.x,0.0))/2*0.125; - - //0.125 - gl_FragData[0] += texture2D(colortex3,quarterResTC-2.0*vec2(texelSize.x,texelSize.y))/4.*0.125; - gl_FragData[0] += texture2D(colortex3,quarterResTC+2.0*vec2(texelSize.x,texelSize.y))/4.*0.125; - gl_FragData[0] += texture2D(colortex3,quarterResTC+vec2(-2.0*texelSize.x,2.0*texelSize.y))/4.*0.125; - gl_FragData[0] += texture2D(colortex3,quarterResTC+vec2(2.0*texelSize.x,-2.0*texelSize.y))/4.*0.125; - - //0.125 - gl_FragData[0] += texture2D(colortex3,quarterResTC)*0.125; - - gl_FragData[0].rgb = clamp(gl_FragData[0].rgb,0.0,65000.); +uniform int hideGUI; + +#define fsign(a) (clamp((a)*1e35,0.,1.)*2.-1.) + +#include "/lib/projections.glsl" + + +float luma(vec3 color) { + return dot(color,vec3(0.21, 0.72, 0.07)); +} +float interleaved_gradientNoise(){ + return fract(52.9829189*fract(0.06711056*gl_FragCoord.x + 0.00583715*gl_FragCoord.y)+tempOffsets); +} +float triangularize(float dither) +{ + float center = dither*2.0-1.0; + dither = center*inversesqrt(abs(center)); + return clamp(dither-fsign(center),0.0,1.0); +} +vec4 fp10Dither(vec4 color ,float dither){ + const vec3 mantissaBits = vec3(6.,6.,5.); + vec3 exponent = floor(log2(color.rgb)); + return vec4(color.rgb + dither*exp2(-mantissaBits)*exp2(exponent), color.a); +} + +//Modified texture interpolation from inigo quilez +vec4 smoothfilter(in sampler2D tex, in vec2 uv) +{ + vec2 textureResolution = vec2(viewWidth,viewHeight); + uv = uv*textureResolution + 0.5; + vec2 iuv = floor( uv ); + vec2 fuv = fract( uv ); + + #ifndef SMOOTHESTSTEP_INTERPOLATION + uv = iuv + (fuv*fuv)*(3.0-2.0*fuv); + #endif + #ifdef SMOOTHESTSTEP_INTERPOLATION + uv = iuv + fuv*fuv*fuv*(fuv*(fuv*6.0-15.0)+10.0); + #endif + + uv = (uv - 0.5)/textureResolution; + + return texture2D( tex, uv); +} +//approximation from SMAA presentation from siggraph 2016 +vec3 FastCatmulRom(sampler2D colorTex, vec2 texcoord, vec4 rtMetrics, float sharpenAmount) +{ + vec2 position = rtMetrics.zw * texcoord; + vec2 centerPosition = floor(position - 0.5) + 0.5; + vec2 f = position - centerPosition; + vec2 f2 = f * f; + vec2 f3 = f * f2; + + float c = sharpenAmount; + vec2 w0 = -c * f3 + 2.0 * c * f2 - c * f; + vec2 w1 = (2.0 - c) * f3 - (3.0 - c) * f2 + 1.0; + vec2 w2 = -(2.0 - c) * f3 + (3.0 - 2.0 * c) * f2 + c * f; + vec2 w3 = c * f3 - c * f2; + + vec2 w12 = w1 + w2; + vec2 tc12 = rtMetrics.xy * (centerPosition + w2 / w12); + vec3 centerColor = texture2D(colorTex, vec2(tc12.x, tc12.y)).rgb; + + vec2 tc0 = rtMetrics.xy * (centerPosition - 1.0); + vec2 tc3 = rtMetrics.xy * (centerPosition + 2.0); + vec4 color = vec4(texture2D(colorTex, vec2(tc12.x, tc0.y )).rgb, 1.0) * (w12.x * w0.y ) + + vec4(texture2D(colorTex, vec2(tc0.x, tc12.y)).rgb, 1.0) * (w0.x * w12.y) + + vec4(centerColor, 1.0) * (w12.x * w12.y) + + vec4(texture2D(colorTex, vec2(tc3.x, tc12.y)).rgb, 1.0) * (w3.x * w12.y) + + vec4(texture2D(colorTex, vec2(tc12.x, tc3.y )).rgb, 1.0) * (w12.x * w3.y ); + return color.rgb/color.a; + } + +vec3 clip_aabb(vec3 q, vec3 aabb_min, vec3 aabb_max) +{ + vec3 p_clip = 0.5 * (aabb_max + aabb_min); + vec3 e_clip = 0.5 * (aabb_max - aabb_min) + 0.00000001; + + vec3 v_clip = q - vec3(p_clip); + vec3 v_unit = v_clip.xyz / e_clip; + vec3 a_unit = abs(v_unit); + float ma_unit = max(a_unit.x, max(a_unit.y, a_unit.z)); + + if (ma_unit > 1.0) + return vec3(p_clip) + v_clip / ma_unit; + else + return q; +} + +vec3 toClipSpace3Prev(vec3 viewSpacePosition) { + return projMAD(gbufferPreviousProjection, viewSpacePosition) / -viewSpacePosition.z * 0.5 + 0.5; +} +vec3 tonemap(vec3 col){ + return col/(1+luma(col)); +} +vec3 invTonemap(vec3 col){ + return col/(1-luma(col)); +} +vec3 closestToCamera5taps(vec2 texcoord, sampler2D depth) +{ + vec2 du = vec2(texelSize.x*2., 0.0); + vec2 dv = vec2(0.0, texelSize.y*2.); + + vec3 dtl = vec3(texcoord,0.) + vec3(-texelSize, texture2D(depth, texcoord - dv - du).x); + vec3 dtr = vec3(texcoord,0.) + vec3( texelSize.x, -texelSize.y, texture2D(depth, texcoord - dv + du).x); + vec3 dmc = vec3(texcoord,0.) + vec3( 0.0, 0.0, texture2D(depth, texcoord).x); + vec3 dbl = vec3(texcoord,0.) + vec3(-texelSize.x, texelSize.y, texture2D(depth, texcoord + dv - du).x); + vec3 dbr = vec3(texcoord,0.) + vec3( texelSize.x, texelSize.y, texture2D(depth, texcoord + dv + du).x); + + vec3 dmin = dmc; + dmin = dmin.z > dtr.z? dtr : dmin; + dmin = dmin.z > dtl.z? dtl : dmin; + dmin = dmin.z > dbl.z? dbl : dmin; + dmin = dmin.z > dbr.z? dbr : dmin; + + #ifdef TAA_UPSCALING + dmin.xy = dmin.xy/RENDER_SCALE; + #endif + + return dmin; +} +const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), + vec2(-1.,3.)/8., + vec2(5.0,1.)/8., + vec2(-3,-5.)/8., + vec2(-5.,5.)/8., + vec2(-7.,-1.)/8., + vec2(3,7.)/8., + vec2(7.,-7.)/8.); + +vec4 TAA_hq(){ + + #ifdef TAA_UPSCALING + vec2 adjTC = clamp(texcoord*RENDER_SCALE, vec2(0.0), RENDER_SCALE - texelSize*2.0); + #else + vec2 adjTC = texcoord; + #endif + + //use velocity from the nearest texel from camera in a 3x3 box in order to improve edge quality in motion + #ifdef CLOSEST_VELOCITY + vec3 closestToCamera = closestToCamera5taps(adjTC, depthtex0); + #endif + + #ifndef CLOSEST_VELOCITY + vec3 closestToCamera = vec3(texcoord,texture2D(depthtex1,adjTC).x); + #endif + + //reproject previous frame + vec3 viewPos = toScreenSpace(closestToCamera); + viewPos = mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz + (cameraPosition - previousCameraPosition); + + vec3 previousPosition = mat3(gbufferPreviousModelView) * viewPos + gbufferPreviousModelView[3].xyz; + previousPosition = toClipSpace3Prev(previousPosition); + + vec2 velocity = previousPosition.xy - closestToCamera.xy; + previousPosition.xy = texcoord + velocity; + + //reject history if off-screen and early exit + if (previousPosition.x < 0.0 || previousPosition.y < 0.0 || previousPosition.x > 1.0 || previousPosition.y > 1.0) + return vec4(smoothfilter(colortex3, adjTC + offsets[framemod8]*texelSize*0.5).xyz,1.0); + + + #ifdef TAA_UPSCALING + vec3 albedoCurrent0 = smoothfilter(colortex3, adjTC + offsets[framemod8]*texelSize*0.5).xyz; + // Interpolating neighboorhood clampling boundaries between pixels + vec3 cMax = texture2D(colortex0, adjTC).rgb; + vec3 cMin = texture2D(colortex6, adjTC).rgb; + #else + vec3 albedoCurrent0 = texture2D(colortex3, adjTC).rgb; + vec3 albedoCurrent1 = texture2D(colortex3, adjTC + vec2(texelSize.x,texelSize.y)).rgb; + vec3 albedoCurrent2 = texture2D(colortex3, adjTC + vec2(texelSize.x,-texelSize.y)).rgb; + vec3 albedoCurrent3 = texture2D(colortex3, adjTC + vec2(-texelSize.x,-texelSize.y)).rgb; + vec3 albedoCurrent4 = texture2D(colortex3, adjTC + vec2(-texelSize.x,texelSize.y)).rgb; + vec3 albedoCurrent5 = texture2D(colortex3, adjTC + vec2(0.0,texelSize.y)).rgb; + vec3 albedoCurrent6 = texture2D(colortex3, adjTC + vec2(0.0,-texelSize.y)).rgb; + vec3 albedoCurrent7 = texture2D(colortex3, adjTC + vec2(-texelSize.x,0.0)).rgb; + vec3 albedoCurrent8 = texture2D(colortex3, adjTC + vec2(texelSize.x,0.0)).rgb; + //Assuming the history color is a blend of the 3x3 neighborhood, we clamp the history to the min and max of each channel in the 3x3 neighborhood + vec3 cMax = max(max(max(albedoCurrent0,albedoCurrent1),albedoCurrent2),max(albedoCurrent3,max(albedoCurrent4,max(albedoCurrent5,max(albedoCurrent6,max(albedoCurrent7,albedoCurrent8)))))); + vec3 cMin = min(min(min(albedoCurrent0,albedoCurrent1),albedoCurrent2),min(albedoCurrent3,min(albedoCurrent4,min(albedoCurrent5,min(albedoCurrent6,min(albedoCurrent7,albedoCurrent8)))))); + albedoCurrent0 = smoothfilter(colortex3, adjTC + offsets[framemod8]*texelSize*0.5).rgb; + #endif + + #ifndef SCREENSHOT_MODE + vec3 albedoPrev = max(FastCatmulRom(colortex5, previousPosition.xy,vec4(texelSize, 1.0/texelSize), 0.75).xyz, 0.0); + vec3 finalcAcc = clamp(albedoPrev, cMin, cMax); + + //Increases blending factor when far from AABB and in motion, reduces ghosting + float isclamped = distance(albedoPrev,finalcAcc)/luma(albedoPrev) * 0.5; + float movementRejection = (0.12+isclamped)*clamp(length(velocity/texelSize),0.0,1.0); + + //Blend current pixel with clamped history, apply fast tonemap beforehand to reduce flickering + vec4 supersampled = vec4(invTonemap(mix(tonemap(finalcAcc), tonemap(albedoCurrent0), clamp(BLEND_FACTOR + movementRejection, 0.0,1.0))), 1.0); + + //De-tonemap + return supersampled; + #endif + + #ifdef SCREENSHOT_MODE + vec4 albedoPrev = texture2D(colortex5, previousPosition.xy); + vec3 supersampled = albedoPrev.rgb * albedoPrev.a + albedoCurrent0; + + if (length(velocity) > 1e-6 || hideGUI < 1) return vec4(albedoCurrent0,1.0); + return vec4(supersampled/(albedoPrev.a+1.0), albedoPrev.a+1.0); + #endif +} + +void main() { +/* DRAWBUFFERS:5 */ + + gl_FragData[0].a = 1.0; + + #ifdef TAA + vec4 color = TAA_hq(); + + #ifdef SCREENSHOT_MODE + gl_FragData[0] = clamp(color, 0.0, 65000.0); + #else + gl_FragData[0] = clamp(fp10Dither(color, triangularize(interleaved_gradientNoise())), 0.0, 65000.0); + #endif + #endif + + #ifndef TAA + vec3 color = clamp(fp10Dither(texture2D(colortex3,texcoord).rgb, triangularize(interleaved_gradientNoise())),0.0,65000.); + gl_FragData[0].rgb = color; + #endif +} \ No newline at end of file diff --git a/shaders/dimensions/composite5.vsh b/shaders/dimensions/composite5.vsh index c33e780..ba15d67 100644 --- a/shaders/dimensions/composite5.vsh +++ b/shaders/dimensions/composite5.vsh @@ -1,15 +1,29 @@ -uniform float viewWidth; -uniform float viewHeight; -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// +#include "/lib/util.glsl" +#include "/lib/res_params.glsl" +varying vec2 texcoord; +flat varying float tempOffsets; +uniform sampler2D colortex4; +uniform int frameCounter; + + +uniform int framemod8; +const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), + vec2(-1.,3.)/8., + vec2(5.0,1.)/8., + vec2(-3,-5.)/8., + vec2(-5.,5.)/8., + vec2(-7.,-1.)/8., + vec2(3,7.)/8., + vec2(7.,-7.)/8.); void main() { - //Improves performances and makes sure bloom radius stays the same at high resolution (>1080p) - vec2 clampedRes = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.)); + gl_Position = ftransform(); - //*0.51 to avoid errors when sampling outside since clearing is disabled - gl_Position.xy = (gl_Position.xy*0.5+0.5)*0.26/clampedRes*vec2(1920.0,1080.)*2-1.0; + texcoord = gl_MultiTexCoord0.xy; + + tempOffsets = HaltonSeq2(frameCounter%10000); + + #ifdef TAA_UPSCALING + gl_Position.xy = (gl_Position.xy*0.5+0.5)*RENDER_SCALE*2.0-1.0; + #endif } diff --git a/shaders/dimensions/composite6.fsh b/shaders/dimensions/composite6.fsh index 4c2f776..7602216 100644 --- a/shaders/dimensions/composite6.fsh +++ b/shaders/dimensions/composite6.fsh @@ -1,22 +1,7 @@ -uniform sampler2D colortex6; +uniform sampler2D colortex5; uniform vec2 texelSize; -varying vec2 texcoord; uniform float viewWidth; uniform float viewHeight; -vec2 resScale = vec2(1920.,1080.)/max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.)); -vec3 gauss1D(vec2 coord,vec2 dir,float alpha,int maxIT){ - vec4 tot = vec4(0.); - float maxTC = 0.25*resScale.x; - float minTC = 0.; - for (int i = -maxIT;i minTC && spCoord.x < maxTC); - } - return tot.rgb/max(1.0,tot.a); -} - //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -24,34 +9,35 @@ vec3 gauss1D(vec2 coord,vec2 dir,float alpha,int maxIT){ //////////////////////////////VOID MAIN////////////////////////////// void main() { -/* DRAWBUFFERS:6 */ -vec2 texcoord = (gl_FragCoord.xy*vec2(2.0,4.0))*texelSize; -vec2 gaussDir = vec2(1.0,0.0); -gl_FragData[0].rgb = vec3(0.0); -vec2 tc2 = texcoord*vec2(2.0,1.)/2.; -if (tc2.x < 1.0*resScale.x && tc2.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(tc2/2,gaussDir,0.16,0); +/* DRAWBUFFERS:3 */ -vec2 tc4 = texcoord*vec2(4.0,1.)/2.-vec2(0.5*resScale.x+4.0*texelSize.x,0.)*2.0; -if (tc4.x > 0.0 && tc4.y > 0.0 && tc4.x < 1.0*resScale.x && tc4.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(tc4/2,gaussDir,0.16,3); +vec2 resScale = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.))/vec2(1920.,1080.); +vec2 quarterResTC = gl_FragCoord.xy*2.*resScale*texelSize; -vec2 tc8 = texcoord*vec2(8.0,1.)/2.-vec2(0.75*resScale.x+8.*texelSize.x,0.)*4.0; -if (tc8.x > 0.0 && tc8.y > 0.0 && tc8.x < 1.0*resScale.x && tc8.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(tc8/2,gaussDir,0.035,6); + //0.5 + gl_FragData[0] = texture2D(colortex5,quarterResTC-1.0*vec2(texelSize.x,texelSize.y))/4.*0.5; + gl_FragData[0] += texture2D(colortex5,quarterResTC+1.0*vec2(texelSize.x,texelSize.y))/4.*0.5; + gl_FragData[0] += texture2D(colortex5,quarterResTC+vec2(-1.0*texelSize.x,1.0*texelSize.y))/4.*0.5; + gl_FragData[0] += texture2D(colortex5,quarterResTC+vec2(1.0*texelSize.x,-1.0*texelSize.y))/4.*0.5; -vec2 tc16 = texcoord*vec2(8.0,1./2.)-vec2(0.875*resScale.x+12.*texelSize.x,0.)*8.0; -if (tc16.x > 0.0 && tc16.y > 0.0 && tc16.x < 1.0*resScale.x && tc16.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(tc16/2,gaussDir,0.0085,12); + //0.25 + gl_FragData[0] += texture2D(colortex5,quarterResTC-2.0*vec2(texelSize.x,0.0))/2.*0.125; + gl_FragData[0] += texture2D(colortex5,quarterResTC+2.0*vec2(0.0,texelSize.y))/2.*0.125; + gl_FragData[0] += texture2D(colortex5,quarterResTC+2.0*vec2(0,-texelSize.y))/2*0.125; + gl_FragData[0] += texture2D(colortex5,quarterResTC+2.0*vec2(-texelSize.x,0.0))/2*0.125; -vec2 tc32 = texcoord*vec2(16.0,1./2.)-vec2(0.9375*resScale.x+16.*texelSize.x,0.)*16.0; -if (tc32.x > 0.0 && tc32.y > 0.0 && tc32.x < 1.0*resScale.x && tc32.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(tc32/2,gaussDir,0.002,28); + //0.125 + gl_FragData[0] += texture2D(colortex5,quarterResTC-2.0*vec2(texelSize.x,texelSize.y))/4.*0.125; + gl_FragData[0] += texture2D(colortex5,quarterResTC+2.0*vec2(texelSize.x,texelSize.y))/4.*0.125; + gl_FragData[0] += texture2D(colortex5,quarterResTC+vec2(-2.0*texelSize.x,2.0*texelSize.y))/4.*0.125; + gl_FragData[0] += texture2D(colortex5,quarterResTC+vec2(2.0*texelSize.x,-2.0*texelSize.y))/4.*0.125; + + //0.125 + gl_FragData[0] += texture2D(colortex5,quarterResTC)*0.125; + + gl_FragData[0].rgb = clamp(gl_FragData[0].rgb,0.0,65000.); + if (quarterResTC.x > 1.0 - 3.5*texelSize.x || quarterResTC.y > 1.0 -3.5*texelSize.y || quarterResTC.x < 3.5*texelSize.x || quarterResTC.y < 3.5*texelSize.y) gl_FragData[0].rgb = vec3(0.0); -vec2 tc64 = texcoord*vec2(32.0,1./2.)-vec2(0.96875*resScale.x+20.*texelSize.x,0.)*32.0; -if (tc64.x > 0.0 && tc64.y > 0.0 && tc64.x < 1.0*resScale.x && tc64.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(tc64/2,gaussDir,0.0005,60); -gl_FragData[0].rgb = clamp(gl_FragData[0].rgb,0.0,65000.); } diff --git a/shaders/dimensions/composite6.vsh b/shaders/dimensions/composite6.vsh index cbc9838..7a54acb 100644 --- a/shaders/dimensions/composite6.vsh +++ b/shaders/dimensions/composite6.vsh @@ -1,6 +1,5 @@ uniform float viewWidth; uniform float viewHeight; -varying vec2 texcoord; //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -8,11 +7,9 @@ varying vec2 texcoord; //////////////////////////////VOID MAIN////////////////////////////// void main() { - vec2 clampedRes = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.0)); + //Improves performances and makes sure bloom radius stays the same at high resolution (>1080p) + vec2 clampedRes = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.)); gl_Position = ftransform(); - //0-0.25 - gl_Position.y = (gl_Position.y*0.5+0.5)*0.25/clampedRes.y*1080.0*2.0-1.0; - //0-0.5 - gl_Position.x = (gl_Position.x*0.5+0.5)*0.5/clampedRes.x*1920.0*2.0-1.0; - texcoord = gl_MultiTexCoord0.xy/clampedRes*vec2(1920.,1080.); + //*0.51 to avoid errors when sampling outside since clearing is disabled + gl_Position.xy = (gl_Position.xy*0.5+0.5)*0.51/clampedRes*vec2(1920.0,1080.)*2.0-1.0; } diff --git a/shaders/dimensions/composite7.fsh b/shaders/dimensions/composite7.fsh index 656f295..a76a667 100644 --- a/shaders/dimensions/composite7.fsh +++ b/shaders/dimensions/composite7.fsh @@ -1,21 +1,7 @@ -uniform sampler2D colortex6; +uniform sampler2D colortex3; uniform vec2 texelSize; -varying vec2 texcoord; uniform float viewWidth; uniform float viewHeight; -vec2 resScale = vec2(1920.,1080.)/max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.)); -vec3 gauss1D(vec2 coord,vec2 dir,float alpha,int maxIT){ - vec4 tot = vec4(0.); - float maxTC = 0.25*resScale.y; - float minTC = 0.; - for (int i = -maxIT;i minTC && spCoord.y < maxTC); - } - return tot.rgb/max(1.0,tot.a); -} - //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -23,34 +9,34 @@ vec3 gauss1D(vec2 coord,vec2 dir,float alpha,int maxIT){ //////////////////////////////VOID MAIN////////////////////////////// void main() { + /* DRAWBUFFERS:6 */ -vec2 texcoord = (gl_FragCoord.xy*vec2(2.0,4.0))*texelSize; +vec2 resScale = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.))/vec2(1920.,1080.); +vec2 quarterResTC = gl_FragCoord.xy*2.*texelSize; -vec2 gaussDir = vec2(0.0,1.0); -gl_FragData[0].rgb = vec3(0.0); -vec2 tc2 = texcoord*vec2(2.0,1.); -if (tc2.x < 1.0*resScale.x && tc2.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(texcoord/vec2(2.0,4.0),gaussDir,0.16,0); + //0.5 + gl_FragData[0] = texture2D(colortex3,quarterResTC-1.0*vec2(texelSize.x,texelSize.y))/4.*0.5; + gl_FragData[0] += texture2D(colortex3,quarterResTC+1.0*vec2(texelSize.x,texelSize.y))/4.*0.5; + gl_FragData[0] += texture2D(colortex3,quarterResTC+vec2(-1.0*texelSize.x,1.0*texelSize.y))/4.*0.5; + gl_FragData[0] += texture2D(colortex3,quarterResTC+vec2(1.0*texelSize.x,-1.0*texelSize.y))/4.*0.5; -vec2 tc4 = texcoord*vec2(4.0,2.)-vec2(0.5*resScale.x+4.0*texelSize.x,0.)*4.0; -if (tc4.x > 0.0 && tc4.y > 0.0 && tc4.x < 1.0*resScale.x && tc4.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(texcoord/vec2(2.0,2.0),gaussDir,0.16,3); + //0.25 + gl_FragData[0] += texture2D(colortex3,quarterResTC-2.0*vec2(texelSize.x,0.0))/2.*0.125; + gl_FragData[0] += texture2D(colortex3,quarterResTC+2.0*vec2(0.0,texelSize.y))/2.*0.125; + gl_FragData[0] += texture2D(colortex3,quarterResTC+2.0*vec2(0,-texelSize.y))/2*0.125; + gl_FragData[0] += texture2D(colortex3,quarterResTC+2.0*vec2(-texelSize.x,0.0))/2*0.125; -vec2 tc8 = texcoord*vec2(8.0,4.)-vec2(0.75*resScale.x+8.*texelSize.x,0.)*8.0; -if (tc8.x > 0.0 && tc8.y > 0.0 && tc8.x < 1.0*resScale.x && tc8.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(texcoord*vec2(1.0,2.0)/vec2(2.0,2.0),gaussDir,0.035,6); + //0.125 + gl_FragData[0] += texture2D(colortex3,quarterResTC-2.0*vec2(texelSize.x,texelSize.y))/4.*0.125; + gl_FragData[0] += texture2D(colortex3,quarterResTC+2.0*vec2(texelSize.x,texelSize.y))/4.*0.125; + gl_FragData[0] += texture2D(colortex3,quarterResTC+vec2(-2.0*texelSize.x,2.0*texelSize.y))/4.*0.125; + gl_FragData[0] += texture2D(colortex3,quarterResTC+vec2(2.0*texelSize.x,-2.0*texelSize.y))/4.*0.125; -vec2 tc16 = texcoord*vec2(16.0,8.)-vec2(0.875*resScale.x+12.*texelSize.x,0.)*16.0; -if (tc16.x > 0.0 && tc16.y > 0.0 && tc16.x < 1.0*resScale.x && tc16.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(texcoord*vec2(1.0,4.0)/vec2(2.0,2.0),gaussDir,0.0085,12); + //0.125 + gl_FragData[0] += texture2D(colortex3,quarterResTC)*0.125; + + gl_FragData[0].rgb = clamp(gl_FragData[0].rgb,0.0,65000.); -vec2 tc32 = texcoord*vec2(32.0,16.)-vec2(0.9375*resScale.x+16.*texelSize.x,0.)*32.0; -if (tc32.x > 0.0 && tc32.y > 0.0 && tc32.x < 1.0*resScale.x && tc32.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(texcoord*vec2(1.0,8.0)/vec2(2.0,2.0),gaussDir,0.002,30); -vec2 tc64 = texcoord*vec2(64.0,32.)-vec2(0.96875*resScale.x+20.*texelSize.x,0.)*64.0; -if (tc64.x > 0.0 && tc64.y > 0.0 && tc64.x < 1.0*resScale.x && tc64.y <1.0*resScale.y) -gl_FragData[0].xyz = gauss1D(texcoord*vec2(1.0,16.0)/vec2(2.0,2.0),gaussDir,0.0005,60); -gl_FragData[0].rgb = clamp(gl_FragData[0].rgb,0.0,65000.); } diff --git a/shaders/dimensions/composite7.vsh b/shaders/dimensions/composite7.vsh index 366226a..c33e780 100644 --- a/shaders/dimensions/composite7.vsh +++ b/shaders/dimensions/composite7.vsh @@ -1,6 +1,5 @@ uniform float viewWidth; uniform float viewHeight; -varying vec2 texcoord; //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -8,12 +7,9 @@ varying vec2 texcoord; //////////////////////////////VOID MAIN////////////////////////////// void main() { - vec2 clampedRes = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.0)); + //Improves performances and makes sure bloom radius stays the same at high resolution (>1080p) + vec2 clampedRes = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.)); gl_Position = ftransform(); - //0-0.25 - gl_Position.y = (gl_Position.y*0.5+0.5)*0.25/clampedRes.y*1080.0*2.0-1.0; - //0-0.5 - gl_Position.x = (gl_Position.x*0.5+0.5)*0.5/clampedRes.x*1920.0*2.0-1.0; - texcoord = gl_MultiTexCoord0.xy/clampedRes*vec2(1920.,1080.); - + //*0.51 to avoid errors when sampling outside since clearing is disabled + gl_Position.xy = (gl_Position.xy*0.5+0.5)*0.26/clampedRes*vec2(1920.0,1080.)*2-1.0; } diff --git a/shaders/dimensions/composite8.fsh b/shaders/dimensions/composite8.fsh index 49a54fb..4c2f776 100644 --- a/shaders/dimensions/composite8.fsh +++ b/shaders/dimensions/composite8.fsh @@ -1,73 +1,20 @@ -uniform sampler2D colortex3; uniform sampler2D colortex6; - uniform vec2 texelSize; +varying vec2 texcoord; uniform float viewWidth; uniform float viewHeight; - -float w0(float a) -{ - return (1.0/6.0)*(a*(a*(-a + 3.0) - 3.0) + 1.0); -} - -float w1(float a) -{ - return (1.0/6.0)*(a*a*(3.0*a - 6.0) + 4.0); -} - -float w2(float a) -{ - return (1.0/6.0)*(a*(a*(-3.0*a + 3.0) + 3.0) + 1.0); -} - -float w3(float a) -{ - return (1.0/6.0)*(a*a*a); -} - -float g0(float a) -{ - return w0(a) + w1(a); -} - -float g1(float a) -{ - return w2(a) + w3(a); -} - -float h0(float a) -{ - return -1.0 + w1(a) / (w0(a) + w1(a)); -} - -float h1(float a) -{ - return 1.0 + w3(a) / (w2(a) + w3(a)); -} - -vec4 texture2D_bicubic(sampler2D tex, vec2 uv) -{ - vec4 texelSize = vec4(texelSize,1.0/texelSize); - uv = uv*texelSize.zw; - vec2 iuv = floor( uv ); - vec2 fuv = fract( uv ); - - float g0x = g0(fuv.x); - float g1x = g1(fuv.x); - float h0x = h0(fuv.x); - float h1x = h1(fuv.x); - float h0y = h0(fuv.y); - float h1y = h1(fuv.y); - - vec2 p0 = (vec2(iuv.x + h0x, iuv.y + h0y) - 0.5) * texelSize.xy; - vec2 p1 = (vec2(iuv.x + h1x, iuv.y + h0y) - 0.5) * texelSize.xy; - vec2 p2 = (vec2(iuv.x + h0x, iuv.y + h1y) - 0.5) * texelSize.xy; - vec2 p3 = (vec2(iuv.x + h1x, iuv.y + h1y) - 0.5) * texelSize.xy; - - return g0(fuv.y) * (g0x * texture2D(tex, p0) + - g1x * texture2D(tex, p1)) + - g1(fuv.y) * (g0x * texture2D(tex, p2) + - g1x * texture2D(tex, p3)); +vec2 resScale = vec2(1920.,1080.)/max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.)); +vec3 gauss1D(vec2 coord,vec2 dir,float alpha,int maxIT){ + vec4 tot = vec4(0.); + float maxTC = 0.25*resScale.x; + float minTC = 0.; + for (int i = -maxIT;i minTC && spCoord.x < maxTC); + } + return tot.rgb/max(1.0,tot.a); } //////////////////////////////VOID MAIN////////////////////////////// @@ -77,24 +24,34 @@ vec4 texture2D_bicubic(sampler2D tex, vec2 uv) //////////////////////////////VOID MAIN////////////////////////////// void main() { -/* DRAWBUFFERS:3 */ -vec2 resScale = vec2(1920.,1080.)/max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.)); -vec2 texcoord = ((gl_FragCoord.xy)*2.+0.5)*texelSize; -vec3 bloom = texture2D_bicubic(colortex3,texcoord/2.0).rgb; //1/4 res +/* DRAWBUFFERS:6 */ -bloom += texture2D_bicubic(colortex6,texcoord/4.).rgb; //1/8 res +vec2 texcoord = (gl_FragCoord.xy*vec2(2.0,4.0))*texelSize; +vec2 gaussDir = vec2(1.0,0.0); +gl_FragData[0].rgb = vec3(0.0); +vec2 tc2 = texcoord*vec2(2.0,1.)/2.; +if (tc2.x < 1.0*resScale.x && tc2.y <1.0*resScale.y) +gl_FragData[0].xyz = gauss1D(tc2/2,gaussDir,0.16,0); -bloom += texture2D_bicubic(colortex6,texcoord/8.+vec2(0.25*resScale.x+2.5*texelSize.x,.0)).rgb; //1/16 res +vec2 tc4 = texcoord*vec2(4.0,1.)/2.-vec2(0.5*resScale.x+4.0*texelSize.x,0.)*2.0; +if (tc4.x > 0.0 && tc4.y > 0.0 && tc4.x < 1.0*resScale.x && tc4.y <1.0*resScale.y) +gl_FragData[0].xyz = gauss1D(tc4/2,gaussDir,0.16,3); -bloom += texture2D_bicubic(colortex6,texcoord/16.+vec2(0.375*resScale.x+4.5*texelSize.x,.0)).rgb; //1/32 res +vec2 tc8 = texcoord*vec2(8.0,1.)/2.-vec2(0.75*resScale.x+8.*texelSize.x,0.)*4.0; +if (tc8.x > 0.0 && tc8.y > 0.0 && tc8.x < 1.0*resScale.x && tc8.y <1.0*resScale.y) +gl_FragData[0].xyz = gauss1D(tc8/2,gaussDir,0.035,6); -bloom += texture2D_bicubic(colortex6,texcoord/32.+vec2(0.4375*resScale.x+6.5*texelSize.x,.0)).rgb*1.0; //1/64 res -bloom += texture2D_bicubic(colortex6,texcoord/64.+vec2(0.46875*resScale.x+8.5*texelSize.x,.0)).rgb*1.0; //1/128 res -bloom += texture2D_bicubic(colortex6,texcoord/128.+vec2(0.484375*resScale.x+10.5*texelSize.x,.0)).rgb*1.0; //1/256 res +vec2 tc16 = texcoord*vec2(8.0,1./2.)-vec2(0.875*resScale.x+12.*texelSize.x,0.)*8.0; +if (tc16.x > 0.0 && tc16.y > 0.0 && tc16.x < 1.0*resScale.x && tc16.y <1.0*resScale.y) +gl_FragData[0].xyz = gauss1D(tc16/2,gaussDir,0.0085,12); -//bloom = texture2D_bicubic(colortex6,texcoord).rgb*6.; //1/8 res +vec2 tc32 = texcoord*vec2(16.0,1./2.)-vec2(0.9375*resScale.x+16.*texelSize.x,0.)*16.0; +if (tc32.x > 0.0 && tc32.y > 0.0 && tc32.x < 1.0*resScale.x && tc32.y <1.0*resScale.y) +gl_FragData[0].xyz = gauss1D(tc32/2,gaussDir,0.002,28); -gl_FragData[0].rgb = bloom*2.; +vec2 tc64 = texcoord*vec2(32.0,1./2.)-vec2(0.96875*resScale.x+20.*texelSize.x,0.)*32.0; +if (tc64.x > 0.0 && tc64.y > 0.0 && tc64.x < 1.0*resScale.x && tc64.y <1.0*resScale.y) +gl_FragData[0].xyz = gauss1D(tc64/2,gaussDir,0.0005,60); gl_FragData[0].rgb = clamp(gl_FragData[0].rgb,0.0,65000.); } diff --git a/shaders/dimensions/composite8.vsh b/shaders/dimensions/composite8.vsh index 7a54acb..cbc9838 100644 --- a/shaders/dimensions/composite8.vsh +++ b/shaders/dimensions/composite8.vsh @@ -1,5 +1,6 @@ uniform float viewWidth; uniform float viewHeight; +varying vec2 texcoord; //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -7,9 +8,11 @@ uniform float viewHeight; //////////////////////////////VOID MAIN////////////////////////////// void main() { - //Improves performances and makes sure bloom radius stays the same at high resolution (>1080p) - vec2 clampedRes = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.)); + vec2 clampedRes = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.0)); gl_Position = ftransform(); - //*0.51 to avoid errors when sampling outside since clearing is disabled - gl_Position.xy = (gl_Position.xy*0.5+0.5)*0.51/clampedRes*vec2(1920.0,1080.)*2.0-1.0; + //0-0.25 + gl_Position.y = (gl_Position.y*0.5+0.5)*0.25/clampedRes.y*1080.0*2.0-1.0; + //0-0.5 + gl_Position.x = (gl_Position.x*0.5+0.5)*0.5/clampedRes.x*1920.0*2.0-1.0; + texcoord = gl_MultiTexCoord0.xy/clampedRes*vec2(1920.,1080.); } diff --git a/shaders/dimensions/composite9.fsh b/shaders/dimensions/composite9.fsh index 02e5034..656f295 100644 --- a/shaders/dimensions/composite9.fsh +++ b/shaders/dimensions/composite9.fsh @@ -1,473 +1,56 @@ -#include "/lib/settings.glsl" - -#ifdef DOF - //hexagon pattern - const vec2 hex_offsets[60] = vec2[60] ( vec2( 0.2165, 0.1250 ), - vec2( 0.0000, 0.2500 ), - vec2( -0.2165, 0.1250 ), - vec2( -0.2165, -0.1250 ), - vec2( -0.0000, -0.2500 ), - vec2( 0.2165, -0.1250 ), - vec2( 0.4330, 0.2500 ), - vec2( 0.0000, 0.5000 ), - vec2( -0.4330, 0.2500 ), - vec2( -0.4330, -0.2500 ), - vec2( -0.0000, -0.5000 ), - vec2( 0.4330, -0.2500 ), - vec2( 0.6495, 0.3750 ), - vec2( 0.0000, 0.7500 ), - vec2( -0.6495, 0.3750 ), - vec2( -0.6495, -0.3750 ), - vec2( -0.0000, -0.7500 ), - vec2( 0.6495, -0.3750 ), - vec2( 0.8660, 0.5000 ), - vec2( 0.0000, 1.0000 ), - vec2( -0.8660, 0.5000 ), - vec2( -0.8660, -0.5000 ), - vec2( -0.0000, -1.0000 ), - vec2( 0.8660, -0.5000 ), - vec2( 0.2163, 0.3754 ), - vec2( -0.2170, 0.3750 ), - vec2( -0.4333, -0.0004 ), - vec2( -0.2163, -0.3754 ), - vec2( 0.2170, -0.3750 ), - vec2( 0.4333, 0.0004 ), - vec2( 0.4328, 0.5004 ), - vec2( -0.2170, 0.6250 ), - vec2( -0.6498, 0.1246 ), - vec2( -0.4328, -0.5004 ), - vec2( 0.2170, -0.6250 ), - vec2( 0.6498, -0.1246 ), - vec2( 0.6493, 0.6254 ), - vec2( -0.2170, 0.8750 ), - vec2( -0.8663, 0.2496 ), - vec2( -0.6493, -0.6254 ), - vec2( 0.2170, -0.8750 ), - vec2( 0.8663, -0.2496 ), - vec2( 0.2160, 0.6259 ), - vec2( -0.4340, 0.5000 ), - vec2( -0.6500, -0.1259 ), - vec2( -0.2160, -0.6259 ), - vec2( 0.4340, -0.5000 ), - vec2( 0.6500, 0.1259 ), - vec2( 0.4325, 0.7509 ), - vec2( -0.4340, 0.7500 ), - vec2( -0.8665, -0.0009 ), - vec2( -0.4325, -0.7509 ), - vec2( 0.4340, -0.7500 ), - vec2( 0.8665, 0.0009 ), - vec2( 0.2158, 0.8763 ), - vec2( -0.6510, 0.6250 ), - vec2( -0.8668, -0.2513 ), - vec2( -0.2158, -0.8763 ), - vec2( 0.6510, -0.6250 ), - vec2( 0.8668, 0.2513 )); - - const vec2 offsets[60] = vec2[60] ( vec2( 0.0000, 0.2500 ), - vec2( -0.2165, 0.1250 ), - vec2( -0.2165, -0.1250 ), - vec2( -0.0000, -0.2500 ), - vec2( 0.2165, -0.1250 ), - vec2( 0.2165, 0.1250 ), - vec2( 0.0000, 0.5000 ), - vec2( -0.2500, 0.4330 ), - vec2( -0.4330, 0.2500 ), - vec2( -0.5000, 0.0000 ), - vec2( -0.4330, -0.2500 ), - vec2( -0.2500, -0.4330 ), - vec2( -0.0000, -0.5000 ), - vec2( 0.2500, -0.4330 ), - vec2( 0.4330, -0.2500 ), - vec2( 0.5000, -0.0000 ), - vec2( 0.4330, 0.2500 ), - vec2( 0.2500, 0.4330 ), - vec2( 0.0000, 0.7500 ), - vec2( -0.2565, 0.7048 ), - vec2( -0.4821, 0.5745 ), - vec2( -0.6495, 0.3750 ), - vec2( -0.7386, 0.1302 ), - vec2( -0.7386, -0.1302 ), - vec2( -0.6495, -0.3750 ), - vec2( -0.4821, -0.5745 ), - vec2( -0.2565, -0.7048 ), - vec2( -0.0000, -0.7500 ), - vec2( 0.2565, -0.7048 ), - vec2( 0.4821, -0.5745 ), - vec2( 0.6495, -0.3750 ), - vec2( 0.7386, -0.1302 ), - vec2( 0.7386, 0.1302 ), - vec2( 0.6495, 0.3750 ), - vec2( 0.4821, 0.5745 ), - vec2( 0.2565, 0.7048 ), - vec2( 0.0000, 1.0000 ), - vec2( -0.2588, 0.9659 ), - vec2( -0.5000, 0.8660 ), - vec2( -0.7071, 0.7071 ), - vec2( -0.8660, 0.5000 ), - vec2( -0.9659, 0.2588 ), - vec2( -1.0000, 0.0000 ), - vec2( -0.9659, -0.2588 ), - vec2( -0.8660, -0.5000 ), - vec2( -0.7071, -0.7071 ), - vec2( -0.5000, -0.8660 ), - vec2( -0.2588, -0.9659 ), - vec2( -0.0000, -1.0000 ), - vec2( 0.2588, -0.9659 ), - vec2( 0.5000, -0.8660 ), - vec2( 0.7071, -0.7071 ), - vec2( 0.8660, -0.5000 ), - vec2( 0.9659, -0.2588 ), - vec2( 1.0000, -0.0000 ), - vec2( 0.9659, 0.2588 ), - vec2( 0.8660, 0.5000 ), - vec2( 0.7071, 0.7071 ), - vec2( 0.5000, 0.8660 ), - vec2( 0.2588, 0.9659 )); - -const vec2 shadow_offsets[209] = vec2[209](vec2(0.8886414f , 0.07936136f), -vec2(0.8190064f , 0.1900164f), -vec2(0.8614115f , -0.06991258f), -vec2(0.7685533f , 0.03792081f), -vec2(0.9970094f , 0.02585129f), -vec2(0.9686818f , 0.1570935f), -vec2(0.9854341f , -0.09172997f), -vec2(0.9330608f , 0.3326486f), -vec2(0.8329557f , -0.2438523f), -vec2(0.664771f , -0.0837701f), -vec2(0.7429124f , -0.1530652f), -vec2(0.9506453f , -0.2174281f), -vec2(0.8192949f , 0.3485171f), -vec2(0.6851269f , 0.2711877f), -vec2(0.7665657f , 0.5014166f), -vec2(0.673241f , 0.3793408f), -vec2(0.6981376f , 0.1465924f), -vec2(0.6521665f , -0.2384985f), -vec2(0.5145761f , -0.05752508f), -vec2(0.5641244f , -0.169443f), -vec2(0.5916035f , 0.06004957f), -vec2(0.57079f , 0.234188f), -vec2(0.509311f , 0.1523665f), -vec2(0.4204576f , 0.05759521f), -vec2(0.8200846f , -0.3601041f), -vec2(0.6893264f , -0.3473432f), -vec2(0.4775535f , -0.3062558f), -vec2(0.438106f , -0.1796866f), -vec2(0.4056528f , -0.08251233f), -vec2(0.5771964f , 0.5502692f), -vec2(0.5094061f , 0.4025192f), -vec2(0.6908483f , 0.572951f), -vec2(0.5379036f , -0.4542191f), -vec2(0.8167359f , -0.4793735f), -vec2(0.6829269f , -0.4557574f), -vec2(0.5725697f , -0.3477072f), -vec2(0.5767449f , -0.5782524f), -vec2(0.3979413f , -0.4172934f), -vec2(0.4282598f , -0.5145645f), -vec2(0.938814f , -0.3239739f), -vec2(0.702452f , -0.5662871f), -vec2(0.2832307f , -0.1285671f), -vec2(0.3230537f , -0.2691054f), -vec2(0.2921676f , -0.3734582f), -vec2(0.2534037f , -0.4906001f), -vec2(0.4343273f , 0.5223463f), -vec2(0.3605334f , 0.3151571f), -vec2(0.3498518f , 0.451428f), -vec2(0.3230703f , 0.00287089f), -vec2(0.1049206f , -0.1476725f), -vec2(0.2063161f , -0.2608192f), -vec2(0.7266634f , 0.6725333f), -vec2(0.4027067f , -0.6185485f), -vec2(0.2655533f , -0.5912259f), -vec2(0.4947965f , 0.3025357f), -vec2(0.5760762f , 0.68844f), -vec2(0.4909205f , -0.6975324f), -vec2(0.8609334f , 0.4559f), -vec2(0.1836646f , 0.03724086f), -vec2(0.2878554f , 0.178938f), -vec2(0.3948484f , 0.1618928f), -vec2(0.3519658f , -0.7628763f), -vec2(0.6338583f , -0.673193f), -vec2(0.5511802f , -0.8283072f), -vec2(0.4090595f , -0.8717521f), -vec2(0.1482169f , -0.374728f), -vec2(0.1050598f , -0.2613987f), -vec2(0.4210334f , 0.6578422f), -vec2(0.2430464f , 0.4383665f), -vec2(0.3329675f , 0.5512741f), -vec2(0.2147711f , 0.3245511f), -vec2(0.1227196f , 0.2529026f), -vec2(-0.03937457f , 0.156439f), -vec2(0.05618772f , 0.06690486f), -vec2(0.06519571f , 0.3974038f), -vec2(0.1360903f , 0.1466078f), -vec2(-0.00170609f , 0.3089452f), -vec2(0.1357622f , -0.5088975f), -vec2(0.1604694f , -0.7453476f), -vec2(0.1245694f , -0.6337074f), -vec2(0.02542936f , -0.3728781f), -vec2(0.02222222f , -0.649554f), -vec2(0.09870815f , 0.5357338f), -vec2(0.2073958f , 0.5452989f), -vec2(0.216654f , -0.8935689f), -vec2(0.2422334f , 0.665805f), -vec2(0.0574713f , 0.6742729f), -vec2(0.2021346f , 0.8144029f), -vec2(0.3086587f , 0.7504997f), -vec2(0.02122174f , -0.7498575f), -vec2(-0.1551729f , 0.1809731f), -vec2(-0.1947583f , 0.06246066f), -vec2(-0.05754202f , -0.03901273f), -vec2(-0.1083095f , 0.2952235f), -vec2(-0.03259534f , -0.492394f), -vec2(-0.02488567f , -0.2081116f), -vec2(-0.1820729f , -0.1829884f), -vec2(-0.1674413f , -0.04529009f), -vec2(0.04342153f , -0.0368562f), -vec2(0.801399f , -0.5845526f), -vec2(0.3158276f , -0.9124843f), -vec2(-0.05945269f , 0.6727523f), -vec2(0.07701834f , 0.8579889f), -vec2(-0.05778154f , 0.5699022f), -vec2(0.1191713f , 0.7542591f), -vec2(-0.2578296f , 0.3630984f), -vec2(-0.1428598f , 0.4557526f), -vec2(-0.3304029f , 0.5055485f), -vec2(-0.3227198f , 0.1847367f), -vec2(-0.4183801f , 0.3412776f), -vec2(0.2538475f , 0.9317476f), -vec2(0.406249f , 0.8423664f), -vec2(0.4718862f , 0.7592828f), -vec2(0.168472f , -0.06605823f), -vec2(0.2632498f , -0.7084918f), -vec2(-0.2816192f , -0.1023492f), -vec2(-0.3161443f , 0.02489911f), -vec2(-0.4677814f , 0.08450397f), -vec2(-0.4156994f , 0.2408664f), -vec2(-0.237449f , 0.2605326f), -vec2(-0.0912179f , 0.06491816f), -vec2(0.01475127f , 0.7670643f), -vec2(0.1216858f , -0.9368939f), -vec2(0.07010741f , -0.841011f), -vec2(-0.1708607f , -0.4152923f), -vec2(-0.1345006f , -0.5842513f), -vec2(-0.09419055f , -0.3213732f), -vec2(-0.2149337f , 0.730642f), -vec2(-0.1102187f , 0.8425013f), -vec2(-0.1808572f , 0.6244397f), -vec2(-0.2414505f , -0.7063725f), -vec2(-0.2410318f , -0.537854f), -vec2(-0.1005938f , -0.7635075f), -vec2(0.1053517f , 0.9678772f), -vec2(-0.3340288f , 0.6926677f), -vec2(-0.2363931f , 0.8464488f), -vec2(-0.4057773f , 0.7786722f), -vec2(-0.5484858f , 0.1686208f), -vec2(-0.64842f , 0.02256887f), -vec2(-0.5544513f , -0.02348978f), -vec2(-0.492855f , -0.1083694f), -vec2(-0.4248196f , 0.4674786f), -vec2(-0.5873146f , 0.4072608f), -vec2(-0.6439911f , 0.3038489f), -vec2(-0.6419188f , 0.1293737f), -vec2(-0.005880734f , 0.4699725f), -vec2(-0.4239455f , 0.6250131f), -vec2(-0.1701273f , 0.9506347f), -vec2(7.665656E-05f , 0.9941212f), -vec2(-0.7070159f , 0.4426281f), -vec2(-0.7481344f , 0.3139496f), -vec2(-0.8330062f , 0.2472693f), -vec2(-0.7271438f , 0.2024286f), -vec2(-0.5179888f , 0.3149576f), -vec2(-0.8258062f , 0.3779382f), -vec2(-0.8063191f , 0.1262931f), -vec2(-0.2690676f , -0.4360798f), -vec2(-0.3714577f , -0.5887412f), -vec2(-0.3736085f , -0.4018324f), -vec2(-0.3228985f , -0.2063406f), -vec2(-0.2414576f , -0.2875458f), -vec2(-0.4720859f , -0.3823904f), -vec2(-0.4937642f , -0.2686005f), -vec2(-0.01500604f , -0.9587054f), -vec2(-0.08535925f , -0.8820614f), -vec2(-0.6436375f , -0.3157263f), -vec2(-0.5736347f , -0.4224878f), -vec2(-0.5026127f , -0.5516239f), -vec2(-0.8200902f , 0.5370023f), -vec2(-0.7196413f , 0.57133f), -vec2(-0.5849072f , 0.5917885f), -vec2(-0.1598758f , -0.9739854f), -vec2(-0.4230629f , -0.01858409f), -vec2(-0.9403627f , 0.2213769f), -vec2(-0.685889f , -0.2192711f), -vec2(-0.6693704f , -0.4884708f), -vec2(-0.7967147f , -0.3078234f), -vec2(-0.596441f , -0.1686891f), -vec2(-0.7366468f , -0.3939891f), -vec2(-0.7963406f , 0.02246814f), -vec2(-0.9177913f , 0.0929693f), -vec2(-0.9284672f , 0.3329005f), -vec2(-0.6497722f , 0.6851863f), -vec2(-0.496019f , 0.7013303f), -vec2(-0.3930301f , -0.6892192f), -vec2(-0.2122009f , -0.8777389f), -vec2(-0.3660335f , -0.801644f), -vec2(-0.386839f , -0.1191898f), -vec2(-0.7020127f , -0.0776734f), -vec2(-0.7760845f , -0.1566844f), -vec2(-0.5444778f , -0.6516482f), -vec2(-0.5331346f , 0.4946506f), -vec2(-0.3288236f , 0.9408244f), -vec2(0.5819826f , 0.8101937f), -vec2(-0.4894184f , -0.8290837f), -vec2(-0.5183194f , 0.8454953f), -vec2(-0.7665774f , -0.5223897f), -vec2(-0.6703191f , -0.6217513f), -vec2(-0.8902924f , -0.2446688f), -vec2(-0.8574848f , -0.09174173f), -vec2(-0.3544409f , -0.9239591f), -vec2(-0.969833f , -0.1172272f), -vec2(-0.8968207f , -0.4079512f), -vec2(-0.5891477f , 0.7724466f), -vec2(-0.2146262f , 0.5286855f), -vec2(-0.3762444f , -0.3014335f), -vec2(-0.9466863f , -0.008970681f), -vec2(-0.596356f , -0.7976127f), -vec2(-0.8877738f , 0.4569088f)); -#endif -flat varying vec4 exposure; -flat varying float rodExposure; -varying vec2 texcoord; -uniform sampler2D colortex4; -uniform sampler2D colortex5; -uniform sampler2D colortex3; -uniform sampler2D colortex7; -uniform sampler2D depthtex0; -uniform sampler2D noisetex; +uniform sampler2D colortex6; uniform vec2 texelSize; - +varying vec2 texcoord; uniform float viewWidth; uniform float viewHeight; -uniform float frameTimeCounter; -uniform int frameCounter; -uniform int isEyeInWater; -uniform float near; -uniform float aspectRatio; -uniform float far; - - -#include "/lib/color_transforms.glsl" -#include "/lib/color_dither.glsl" - - - -float cdist(vec2 coord) { - return max(abs(coord.s-0.5),abs(coord.t-0.5))*2.0; +vec2 resScale = vec2(1920.,1080.)/max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.)); +vec3 gauss1D(vec2 coord,vec2 dir,float alpha,int maxIT){ + vec4 tot = vec4(0.); + float maxTC = 0.25*resScale.y; + float minTC = 0.; + for (int i = -maxIT;i minTC && spCoord.y < maxTC); + } + return tot.rgb/max(1.0,tot.a); } -float blueNoise(){ - return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter); -} -float ld(float depth) { - return (2.0 * near) / (far + near - depth * (far - near)); // (-depth * (far - near)) = (2.0 * near)/ld - far - near -} -vec3 closestToCamera3x3() -{ - vec2 du = vec2(texelSize.x, 0.0); - vec2 dv = vec2(0.0, texelSize.y); - vec3 dtl = vec3(texcoord,0.) + vec3(-texelSize, texture2D(depthtex0, texcoord - dv - du).x); - vec3 dtc = vec3(texcoord,0.) + vec3( 0.0, -texelSize.y, texture2D(depthtex0, texcoord - dv).x); - vec3 dtr = vec3(texcoord,0.) + vec3( texelSize.x, -texelSize.y, texture2D(depthtex0, texcoord - dv + du).x); +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// +//////////////////////////////VOID MAIN////////////////////////////// - vec3 dml = vec3(texcoord,0.) + vec3(-texelSize.x, 0.0, texture2D(depthtex0, texcoord - du).x); - vec3 dmc = vec3(texcoord,0.) + vec3( 0.0, 0.0, texture2D(depthtex0, texcoord).x); - vec3 dmr = vec3(texcoord,0.) + vec3( texelSize.x, 0.0, texture2D(depthtex0, texcoord + du).x); - - vec3 dbl = vec3(texcoord,0.) + vec3(-texelSize.x, texelSize.y, texture2D(depthtex0, texcoord + dv - du).x); - vec3 dbc = vec3(texcoord,0.) + vec3( 0.0, texelSize.y, texture2D(depthtex0, texcoord + dv).x); - vec3 dbr = vec3(texcoord,0.) + vec3( texelSize.x, texelSize.y, texture2D(depthtex0, texcoord + dv + du).x); - - vec3 dmin = dmc; - - dmin = dmin.z > dtc.z? dtc : dmin; - dmin = dmin.z > dtr.z? dtr : dmin; - - dmin = dmin.z > dml.z? dml : dmin; - dmin = dmin.z > dtl.z? dtl : dmin; - dmin = dmin.z > dmr.z? dmr : dmin; - - dmin = dmin.z > dbl.z? dbl : dmin; - dmin = dmin.z > dbc.z? dbc : dmin; - dmin = dmin.z > dbr.z? dbr : dmin; - - return dmin; -} void main() { - /* DRAWBUFFERS:7 */ - float vignette = (1.5-dot(texcoord-0.5,texcoord-0.5)*2.5); - vec3 col = texture2D(colortex5,texcoord).rgb; - #ifdef DOF - /*--------------------------------*/ - float z = ld(texture2D(depthtex0, texcoord.st).r)*far; - #ifdef AUTOFOCUS - float focus = ld(texture2D(depthtex0, vec2(0.5)).r)*far; - #else - float focus = MANUAL_FOCUS; - #endif - float pcoc = min(abs(aperture * (focal/100.0 * (z - focus)) / (z * (focus - focal/100.0))),texelSize.x*15.0); - #ifdef FAR_BLUR_ONLY - pcoc *= float(z > focus); - #endif - float noise = blueNoise()*6.28318530718; - mat2 noiseM = mat2( cos( noise ), -sin( noise ), - sin( noise ), cos( noise ) - ); - vec3 bcolor = vec3(0.); - float nb = 0.0; - vec2 bcoord = vec2(0.0); - /*--------------------------------*/ - #ifndef HQ_DOF - bcolor = col; - #ifdef HEXAGONAL_BOKEH - for ( int i = 0; i < 60; i++) { - bcolor += texture2D(colortex5, texcoord.xy + hex_offsets[i]*pcoc*vec2(1.0,aspectRatio)).rgb; - } - col = bcolor/61.0; - #else - for ( int i = 0; i < 60; i++) { - bcolor += texture2D(colortex5, texcoord.xy + offsets[i]*pcoc*vec2(1.0,aspectRatio)).rgb; - } - /*--------------------------------*/ - col = bcolor/61.0; - #endif - #endif - #ifdef HQ_DOF - for ( int i = 0; i < 209; i++) { - bcolor += texture2D(colortex5, texcoord.xy + noiseM*shadow_offsets[i]*pcoc*vec2(1.0,aspectRatio)).rgb; - } - col = bcolor/209.0; - #endif -#endif - vec2 clampedRes = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.)); +/* DRAWBUFFERS:6 */ +vec2 texcoord = (gl_FragCoord.xy*vec2(2.0,4.0))*texelSize; - vec3 bloom = texture2D(colortex3,texcoord/clampedRes*vec2(1920.,1080.)*0.5).rgb/2./7.0; +vec2 gaussDir = vec2(0.0,1.0); +gl_FragData[0].rgb = vec3(0.0); +vec2 tc2 = texcoord*vec2(2.0,1.); +if (tc2.x < 1.0*resScale.x && tc2.y <1.0*resScale.y) +gl_FragData[0].xyz = gauss1D(texcoord/vec2(2.0,4.0),gaussDir,0.16,0); - float lightScat = clamp(BLOOM_STRENGTH * 0.05 * pow(exposure.a ,0.2) ,0.0,1.0)*vignette; +vec2 tc4 = texcoord*vec2(4.0,2.)-vec2(0.5*resScale.x+4.0*texelSize.x,0.)*4.0; +if (tc4.x > 0.0 && tc4.y > 0.0 && tc4.x < 1.0*resScale.x && tc4.y <1.0*resScale.y) +gl_FragData[0].xyz = gauss1D(texcoord/vec2(2.0,2.0),gaussDir,0.16,3); - float VL_abs = texture2D(colortex7,texcoord).r; - VL_abs = clamp((1.0-VL_abs*1.05)*BLOOMY_FOG*0.5,0.0,1.0)*clamp(1.0-pow(cdist(texcoord.xy),15.0),0.0,1.0); +vec2 tc8 = texcoord*vec2(8.0,4.)-vec2(0.75*resScale.x+8.*texelSize.x,0.)*8.0; +if (tc8.x > 0.0 && tc8.y > 0.0 && tc8.x < 1.0*resScale.x && tc8.y <1.0*resScale.y) +gl_FragData[0].xyz = gauss1D(texcoord*vec2(1.0,2.0)/vec2(2.0,2.0),gaussDir,0.035,6); - col = ( mix(col, bloom, VL_abs) + bloom*lightScat) * exposure.rgb; +vec2 tc16 = texcoord*vec2(16.0,8.)-vec2(0.875*resScale.x+12.*texelSize.x,0.)*16.0; +if (tc16.x > 0.0 && tc16.y > 0.0 && tc16.x < 1.0*resScale.x && tc16.y <1.0*resScale.y) +gl_FragData[0].xyz = gauss1D(texcoord*vec2(1.0,4.0)/vec2(2.0,2.0),gaussDir,0.0085,12); +vec2 tc32 = texcoord*vec2(32.0,16.)-vec2(0.9375*resScale.x+16.*texelSize.x,0.)*32.0; +if (tc32.x > 0.0 && tc32.y > 0.0 && tc32.x < 1.0*resScale.x && tc32.y <1.0*resScale.y) +gl_FragData[0].xyz = gauss1D(texcoord*vec2(1.0,8.0)/vec2(2.0,2.0),gaussDir,0.002,30); - #ifndef USE_ACES_COLORSPACE_APPROXIMATION - col = LinearTosRGB(TONEMAP(col)); - #else - col = col * ACESInputMat; - col = TONEMAP(col); - col = LinearTosRGB(clamp(col * ACESOutputMat, 0.0, 1.0)); - #endif - //col = ACESFitted(texture2D(colortex4,texcoord/3.).rgb/500.); - gl_FragData[0].rgb = clamp(int8Dither(col,texcoord),0.0,1.0); - //if (nightMode < 0.99 && texcoord.x < 0.5) gl_FragData[0].rgb =vec3(0.0,1.0,0.0); +vec2 tc64 = texcoord*vec2(64.0,32.)-vec2(0.96875*resScale.x+20.*texelSize.x,0.)*64.0; +if (tc64.x > 0.0 && tc64.y > 0.0 && tc64.x < 1.0*resScale.x && tc64.y <1.0*resScale.y) +gl_FragData[0].xyz = gauss1D(texcoord*vec2(1.0,16.0)/vec2(2.0,2.0),gaussDir,0.0005,60); +gl_FragData[0].rgb = clamp(gl_FragData[0].rgb,0.0,65000.); } diff --git a/shaders/dimensions/composite9.vsh b/shaders/dimensions/composite9.vsh index e77b7c4..366226a 100644 --- a/shaders/dimensions/composite9.vsh +++ b/shaders/dimensions/composite9.vsh @@ -1,10 +1,6 @@ -#include "/lib/settings.glsl" - +uniform float viewWidth; +uniform float viewHeight; varying vec2 texcoord; -flat varying vec4 exposure; -flat varying float rodExposure; -uniform sampler2D colortex4; - //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -12,9 +8,12 @@ uniform sampler2D colortex4; //////////////////////////////VOID MAIN////////////////////////////// void main() { - + vec2 clampedRes = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.0)); gl_Position = ftransform(); - texcoord = gl_MultiTexCoord0.xy; - exposure=vec4(texelFetch2D(colortex4,ivec2(10,37),0).r*vec3(FinalR,FinalG,FinalB),texelFetch2D(colortex4,ivec2(10,37),0).r); - rodExposure = texelFetch2D(colortex4,ivec2(14,37),0).r; + //0-0.25 + gl_Position.y = (gl_Position.y*0.5+0.5)*0.25/clampedRes.y*1080.0*2.0-1.0; + //0-0.5 + gl_Position.x = (gl_Position.x*0.5+0.5)*0.5/clampedRes.x*1920.0*2.0-1.0; + texcoord = gl_MultiTexCoord0.xy/clampedRes*vec2(1920.,1080.); + } diff --git a/shaders/dimensions/deferred.fsh b/shaders/dimensions/deferred.fsh index 2a0e3dc..2f893b5 100644 --- a/shaders/dimensions/deferred.fsh +++ b/shaders/dimensions/deferred.fsh @@ -1,37 +1,33 @@ #include "/lib/settings.glsl" +#define ReflectedFog -// flat varying vec3 ambientUp; -// flat varying vec3 ambientLeft; -// flat varying vec3 ambientRight; -// flat varying vec3 ambientB; -// flat varying vec3 ambientF; -// flat varying vec3 ambientDown; +flat varying vec3 averageSkyCol_Clouds; +flat varying vec3 averageSkyCol; flat varying vec3 lightSourceColor; flat varying vec3 sunColor; -flat varying vec3 sunColorCloud; flat varying vec3 moonColor; -flat varying vec3 moonColorCloud; -flat varying vec3 zenithColor; -flat varying vec3 avgSky; +// flat varying vec3 zenithColor; + +flat varying vec3 WsunVec; + flat varying vec2 tempOffsets; flat varying float exposure; flat varying float rodExposure; flat varying float avgBrightness; flat varying float exposureF; -flat varying float fogAmount; -flat varying float VFAmount; -uniform sampler2D colortex4; +// uniform sampler2D colortex4; uniform sampler2D noisetex; +uniform float frameTime; uniform int frameCounter; +uniform float frameTimeCounter; uniform float rainStrength; uniform float eyeAltitude; uniform vec3 sunVec; uniform vec2 texelSize; -uniform float frameTimeCounter; uniform mat4 gbufferProjection; uniform mat4 gbufferProjectionInverse; uniform mat4 gbufferPreviousProjection; @@ -41,11 +37,15 @@ uniform mat4 shadowModelView; uniform mat4 shadowProjection; uniform float sunElevation; uniform vec3 cameraPosition; -uniform float far; +// uniform float far; uniform ivec2 eyeBrightnessSmooth; +vec4 lightCol = vec4(lightSourceColor, float(sunElevation > 1e-5)*2-1.); + #include "/lib/util.glsl" #include "/lib/ROBOBO_sky.glsl" +#include "/lib/sky_gradient.glsl" +#include "/lib/Shadow_Params.glsl" vec3 toShadowSpaceProjected(vec3 p3){ p3 = mat3(gbufferModelViewInverse) * p3 + gbufferModelViewInverse[3].xyz; @@ -64,42 +64,204 @@ float blueNoise(){ } - +#ifdef OVERWORLD_SHADER + + // const bool shadowHardwareFiltering = true; + uniform sampler2DShadow shadow; + #define TEST + #define TIMEOFDAYFOG + #include "/lib/lightning_stuff.glsl" + #include "/lib/volumetricClouds.glsl" + #include "/lib/volumetricFog.glsl" + +#endif +#ifdef NETHER_SHADER + uniform sampler2D colortex4; + #include "/lib/nether_fog.glsl" +#endif #ifdef END_SHADER + uniform sampler2D colortex4; #include "/lib/end_fog.glsl" #endif -#ifdef NETHER_SHADER - #include "/lib/nether_fog.glsl" -#endif + void main() { /* DRAWBUFFERS:4 */ gl_FragData[0] = vec4(0.0); +float mixhistory = 0.07; -vec2 fogPos = vec2(256.0 - 256.0*0.12,1.0); +#ifdef OVERWORLD_SHADER + /////////////////////////////// + /// --- STORE COLOR LUT --- /// + /////////////////////////////// -//Sky gradient with clouds -if (gl_FragCoord.x > (fogPos.x - fogPos.x*0.22) && gl_FragCoord.y > 0.4 && gl_FragCoord.x < 535){ - // vec2 p = clamp(floor(gl_FragCoord.xy-vec2(18.+257,1.))/256.+tempOffsets/256.,0.0,1.0); - vec2 p = clamp(floor(gl_FragCoord.xy-fogPos)/256.+tempOffsets/256.,-0.2,1.2); + vec3 AmbientLightTint = vec3(AmbientLight_R, AmbientLight_G, AmbientLight_B); + + // --- the color of the atmosphere + the average color of the atmosphere. + vec3 skyGroundCol = skyFromTex(vec3(0, -1 ,0), colortex4).rgb ; + + /// --- Save light values + if (gl_FragCoord.x < 1. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 ) + gl_FragData[0] = vec4(averageSkyCol_Clouds * AmbientLightTint,1.0); + + if (gl_FragCoord.x > 1. && gl_FragCoord.x < 2. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 ) + gl_FragData[0] = vec4((skyGroundCol/150.0) * AmbientLightTint,1.0); + + if (gl_FragCoord.x > 6. && gl_FragCoord.x < 7. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 ) + gl_FragData[0] = vec4(lightSourceColor,1.0); + + if (gl_FragCoord.x > 8. && gl_FragCoord.x < 9. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 ) + gl_FragData[0] = vec4(sunColor,1.0); + + if (gl_FragCoord.x > 13. && gl_FragCoord.x < 14. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 ) + gl_FragData[0] = vec4(moonColor,1.0); + +//////////////////////////////// +/// --- ATMOSPHERE IMAGE --- /// +//////////////////////////////// + +/// --- Sky only +if (gl_FragCoord.x > 18. && gl_FragCoord.y > 1. && gl_FragCoord.x < 18+257){ + vec2 p = clamp(floor(gl_FragCoord.xy-vec2(18.,1.))/256.+tempOffsets/256.,0.0,1.0); vec3 viewVector = cartToSphere(p); - vec3 BackgroundColor = vec3(0.0); + vec2 planetSphere = vec2(0.0); + vec3 sky = vec3(0.0); + vec3 skyAbsorb = vec3(0.0); + vec3 WsunVec = mat3(gbufferModelViewInverse)*sunVec; - vec4 VL_Fog = GetVolumetricFog(mat3(gbufferModelView)*viewVector*256., fract(frameCounter/1.6180339887), fract(frameCounter/2.6180339887)); + sky = calculateAtmosphere(averageSkyCol*4000./2.0, viewVector, vec3(0.0,1.0,0.0), WsunVec, -WsunVec, planetSphere, skyAbsorb, 10, blueNoise()); + + // sky = mix(sky, (averageSkyCol + skyAbsorb)*4000./2.0 ,(1.0 - exp(pow(clamp(-viewVector.y+0.5,0.0,1.0),2) * -25))); + + // fade atmosphere conditions for rain away when you pass above the cloud plane. + float heightRelativeToClouds = clamp(1.0 - max(eyeAltitude - Cumulus_height,0.0) / 200.0 ,0.0,1.0); + if(rainStrength > 0.0) sky = mix(sky, 3.0 + averageSkyCol*4000 * (skyAbsorb*0.7+0.3), clamp(1.0 - exp(pow(clamp(-viewVector.y+0.9,0.0,1.0),2) * -5.0),0.0,1.0) * heightRelativeToClouds * rainStrength); - BackgroundColor += VL_Fog.rgb/5.0; + #ifdef AEROCHROME_MODE + sky *= vec3(0.0, 0.18, 0.35); + #endif - gl_FragData[0] = vec4(BackgroundColor, 1.0); + gl_FragData[0] = vec4(sky / 4000.0 * Sky_Brightness, 1.0); +} + +/// --- Sky + clouds + fog +if (gl_FragCoord.x > 18.+257. && gl_FragCoord.y > 1. && gl_FragCoord.x < 18+257+257.){ + vec2 p = clamp(floor(gl_FragCoord.xy-vec2(18.+257,1.))/256.+tempOffsets/256.,0.0,1.0); + vec3 viewVector = cartToSphere(p); + + vec3 WsunVec = mat3(gbufferModelViewInverse)*sunVec; + vec3 sky = texelFetch2D(colortex4,ivec2(gl_FragCoord.xy)-ivec2(257,0),0).rgb/150.0; + + if(viewVector.y < -0.025) sky = sky * clamp( exp(viewVector.y) - 1.0,0.25,1.0) ; + + vec4 clouds = renderClouds(mat3(gbufferModelView)*viewVector*1024.,vec2(fract(frameCounter/1.6180339887),1-fract(frameCounter/1.6180339887)), sunColor, moonColor, skyGroundCol/30.0); + sky = sky*clouds.a + clouds.rgb / 5.0; + + vec4 VL_Fog = GetVolumetricFog(mat3(gbufferModelView)*viewVector*1024., fract(frameCounter/1.6180339887), lightSourceColor*1.75, skyGroundCol/30.0); + sky = sky * VL_Fog.a + VL_Fog.rgb / 5.0; + + gl_FragData[0] = vec4(sky,1.0); } +#endif + +#ifdef NETHER_SHADER + vec2 fogPos = vec2(256.0 - 256.0*0.12,1.0); + + //Sky gradient with clouds + if (gl_FragCoord.x > (fogPos.x - fogPos.x*0.22) && gl_FragCoord.y > 0.4 && gl_FragCoord.x < 535){ + vec2 p = clamp(floor(gl_FragCoord.xy-fogPos)/256.+tempOffsets/256.,-0.2,1.2); + vec3 viewVector = cartToSphere(p); + + vec3 BackgroundColor = vec3(0.0); + + vec4 VL_Fog = GetVolumetricFog(mat3(gbufferModelView)*viewVector*256., fract(frameCounter/1.6180339887), fract(frameCounter/2.6180339887)); + + BackgroundColor += VL_Fog.rgb/5.0; + + gl_FragData[0] = vec4(BackgroundColor, 1.0); + + } +#endif + +#ifdef END_SHADER + + /* ---------------------- FOG SHADER ---------------------- */ + vec2 fogPos = vec2(256.0 - 256.0*0.12,1.0); + + //Sky gradient with clouds + if (gl_FragCoord.x > (fogPos.x - fogPos.x*0.22) && gl_FragCoord.y > 0.4 && gl_FragCoord.x < 535){ + vec2 p = clamp(floor(gl_FragCoord.xy-fogPos)/256.+tempOffsets/256.,-0.2,1.2); + vec3 viewVector = cartToSphere(p); + + vec3 BackgroundColor = vec3(0.0); + + vec4 VL_Fog = GetVolumetricFog(mat3(gbufferModelView)*viewVector*256., fract(frameCounter/1.6180339887), fract(frameCounter/2.6180339887)); + + BackgroundColor += VL_Fog.rgb/5.0; + + gl_FragData[0] = vec4(BackgroundColor, 1.0); + + } + + /* ---------------------- TIMER ---------------------- */ + + float flash = 0.0; + float maxWaitTime = 10; + + float Timer = texelFetch2D(colortex4, ivec2(3,1), 0).x/150.0; + Timer -= frameTime; + + if(Timer <= 0.0){ + flash = 1.0; + + Timer = pow(hash11(frameCounter), 5) * maxWaitTime; + } + + vec2 pixelPos0 = vec2(3,1); + if (gl_FragCoord.x > pixelPos0.x && gl_FragCoord.x < pixelPos0.x + 1 && gl_FragCoord.y > pixelPos0.y && gl_FragCoord.y < pixelPos0.y + 1){ + mixhistory = 1.0; + gl_FragData[0] = vec4(Timer, 0.0, 0.0, 1.0); + } + + /* ---------------------- FLASHING ---------------------- */ + + vec2 pixelPos1 = vec2(1,1); + if (gl_FragCoord.x > pixelPos1.x && gl_FragCoord.x < pixelPos1.x + 1 && gl_FragCoord.y > pixelPos1.y && gl_FragCoord.y < pixelPos1.y + 1){ + mixhistory = clamp(5.0 * frameTime,0.0,1.0); + gl_FragData[0] = vec4(flash, 0.0, 0.0, 1.0); + } + + /* ---------------------- POSITION ---------------------- */ + + vec2 pixelPos2 = vec2(2,1); + if (gl_FragCoord.x > pixelPos2.x && gl_FragCoord.x < pixelPos2.x + 1 && gl_FragCoord.y > pixelPos2.y && gl_FragCoord.y < pixelPos2.y + 1){ + mixhistory = clamp(500.0 * frameTime,0.0,1.0); + + vec3 LastPos = (texelFetch2D(colortex4,ivec2(2,1),0).xyz/150.0) * 2.0 - 1.0; + + LastPos += (hash31(frameCounter / 75) * 2.0 - 1.0); + LastPos = LastPos * 0.5 + 0.5; + + if(Timer > maxWaitTime * 0.7 ){ + LastPos = vec3(0.0); + } + + gl_FragData[0] = vec4(LastPos, 1.0); + } + +#endif + + + //Temporally accumulate sky and light values vec3 temp = texelFetch2D(colortex4,ivec2(gl_FragCoord.xy),0).rgb; vec3 curr = gl_FragData[0].rgb*150.; -gl_FragData[0].rgb = clamp(mix(temp,curr,0.07),0.0,65000.); +gl_FragData[0].rgb = clamp(mix(temp, curr, mixhistory),0.0,65000.); //Exposure values if (gl_FragCoord.x > 10. && gl_FragCoord.x < 11. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 ) @@ -107,4 +269,4 @@ gl_FragData[0] = vec4(exposure,avgBrightness,exposureF,1.0); if (gl_FragCoord.x > 14. && gl_FragCoord.x < 15. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 ) gl_FragData[0] = vec4(rodExposure,0.0,0.0,1.0); -} +} \ No newline at end of file diff --git a/shaders/dimensions/deferred.vsh b/shaders/dimensions/deferred.vsh index 7303523..d90f3f5 100644 --- a/shaders/dimensions/deferred.vsh +++ b/shaders/dimensions/deferred.vsh @@ -1,5 +1,16 @@ #include "/lib/settings.glsl" #include "/lib/res_params.glsl" +#include "/lib/Shadow_Params.glsl" + +// #extension GL_EXT_gpu_shader4 : enable + +flat varying vec3 averageSkyCol_Clouds; +flat varying vec3 averageSkyCol; + +flat varying vec3 sunColor; +flat varying vec3 moonColor; +flat varying vec3 lightSourceColor; +flat varying vec3 zenithColor; flat varying vec2 tempOffsets; flat varying float exposure; @@ -18,13 +29,14 @@ uniform vec2 texelSize; uniform float sunElevation; uniform float eyeAltitude; uniform float near; -uniform float far; +// uniform float far; uniform float frameTime; uniform int frameCounter; uniform float rainStrength; // uniform int worldTime; -vec3 sunVec = normalize(mat3(gbufferModelViewInverse) *sunPosition); +vec3 sunVec = normalize(mat3(gbufferModelViewInverse) * sunPosition); +// vec3 sunVec = normalize(LightDir); #include "/lib/sky_gradient.glsl" #include "/lib/util.glsl" @@ -55,6 +67,79 @@ void main() { gl_Position.xy = gl_Position.xy*vec2(18.+258*2,258.)*texelSize; gl_Position.xy = gl_Position.xy*2.-1.0; +#ifdef OVERWORLD_SHADER + +/////////////////////////////////// +/// --- AMBIENT LIGHT STUFF --- /// +/////////////////////////////////// + + averageSkyCol_Clouds = vec3(0.0); + averageSkyCol = vec3(0.0); + + vec2 sample3x3[9] = vec2[]( + + vec2(-1.0, -0.3), + vec2( 0.0, 0.0), + vec2( 1.0, -0.3), + + vec2(-1.0, -0.5), + vec2( 0.0, -0.5), + vec2( 1.0, -0.5), + + vec2(-1.0, -1.0), + vec2( 0.0, -1.0), + vec2( 1.0, -1.0) + ); + + // sample in a 3x3 pattern to get a good area for average color + vec3 pos = normalize(vec3(0,1,0)); + int maxIT = 9; + for (int i = 0; i < maxIT; i++) { + pos = normalize(vec3(0,1,0)); + pos.xy += normalize(sample3x3[i]) * vec2(0.3183,0.90); + + averageSkyCol_Clouds += 2.0*skyCloudsFromTex(pos,colortex4).rgb/maxIT/150.; + + // pos = normalize(vec3(0,1,0)); + // pos.xy += normalize(sample3x3[i]) * vec2(0.3183,0.90); + averageSkyCol += 1.5*skyFromTex(pos,colortex4).rgb/maxIT/150.; // please dont do an infinite feedback loop.... + + } + + /// TOOO DAMN BLUE + // // only need to sample one spot for this + // averageSkyCol += 2.0*skyFromTex(normalize(vec3(0.0,1.0,0.0)),colortex4).rgb/150.; + vec3 minimimlight = vec3(0.2,0.4,1.0) * (MIN_LIGHT_AMOUNT*0.0005 + nightVision); + averageSkyCol_Clouds = max(averageSkyCol_Clouds, minimimlight); + averageSkyCol = max(averageSkyCol, minimimlight); + +//////////////////////////////////////// +/// --- SUNLIGHT/MOONLIGHT STUFF --- /// +//////////////////////////////////////// + + vec2 planetSphere = vec2(0.0); + vec3 sky = vec3(0.0); + vec3 skyAbsorb = vec3(0.0); + + float sunVis = clamp(sunElevation,0.0,0.05)/0.05*clamp(sunElevation,0.0,0.05)/0.05; + float moonVis = clamp(-sunElevation,0.0,0.05)/0.05*clamp(-sunElevation,0.0,0.05)/0.05; + + // zenithColor = calculateAtmosphere(vec3(0.0), vec3(0.0,1.0,0.0), vec3(0.0,1.0,0.0), sunVec, -sunVec, planetSphere, skyAbsorb, 25,tempOffsets.x); + skyAbsorb = vec3(0.0); + vec3 absorb = vec3(0.0); + sunColor = calculateAtmosphere(vec3(0.0), sunVec, vec3(0.0,1.0,0.0), sunVec, -sunVec, planetSphere, skyAbsorb, 25,0.0); + sunColor = sunColorBase/4000. * skyAbsorb; + + skyAbsorb = vec3(1.0); + moonColor = calculateAtmosphere(vec3(0.0), -sunVec, vec3(0.0,1.0,0.0), sunVec, -sunVec, planetSphere, skyAbsorb, 25,0.5); + moonColor = moonColorBase/4000.0; + + lightSourceColor = sunVis >= 1e-5 ? sunColor * sunVis : moonColor * moonVis; + + float lightDir = float( sunVis >= 1e-5)*2.0-1.0; + +#endif + ////////////////////////////// /// --- EXPOSURE STUFF --- /// ////////////////////////////// @@ -71,7 +156,7 @@ void main() { for (int i = 0; i < maxITexp; i++){ vec2 ij = R2_samples((frameCounter%2000)*maxITexp+i); vec2 tc = 0.5 + (ij-0.5) * 0.7; - vec3 sp = texture2D(colortex6,tc/16. * resScale+vec2(0.375*resScale.x+4.5*texelSize.x,.0)).rgb; + vec3 sp = texture2D(colortex6, tc/16. * resScale+vec2(0.375*resScale.x+4.5*texelSize.x,.0)).rgb; avgExp += log(luma(sp)); avgB += log(min(dot(sp,vec3(0.07,0.22,0.71)),8e-2)); } diff --git a/shaders/dimensions/deferred1.fsh b/shaders/dimensions/deferred1.fsh index 44218cd..aa45a0c 100644 --- a/shaders/dimensions/deferred1.fsh +++ b/shaders/dimensions/deferred1.fsh @@ -6,10 +6,10 @@ uniform sampler2D depthtex1; uniform float near; uniform float far; - float linZ(float depth) { return (2.0 * near) / (far + near - depth * (far - near)); } + //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// diff --git a/shaders/deferred1.fsh b/shaders/dimensions/deferred2.fsh similarity index 81% rename from shaders/deferred1.fsh rename to shaders/dimensions/deferred2.fsh index dc33ac0..2c7cbc7 100644 --- a/shaders/deferred1.fsh +++ b/shaders/dimensions/deferred2.fsh @@ -1,4 +1,4 @@ -#version 120 + //#extension GL_EXT_gpu_shader4 : disable #include "/lib/settings.glsl" //Computes volumetric clouds at variable resolution (default 1/4 res) @@ -13,7 +13,7 @@ flat varying vec3 averageSkyCol; flat varying float tempOffsets; -uniform float far; +// uniform float far; uniform float near; uniform sampler2D depthtex0; // uniform sampler2D colortex4; @@ -54,9 +54,9 @@ float interleaved_gradientNoise(){ float noise = fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y)); return noise; } -#include "/lib/sky_gradient.glsl" -#include "/lib/volumetricClouds.glsl" -#include "/lib/res_params.glsl" + + + const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), vec2(-1.,3.)/8., vec2(5.0,1.)/8., @@ -76,6 +76,12 @@ vec3 normVec (vec3 vec){ return vec*inversesqrt(dot(vec,vec)); } +#include "/lib/lightning_stuff.glsl" + +#include "/lib/sky_gradient.glsl" +#include "/lib/volumetricClouds.glsl" +#include "/lib/res_params.glsl" + //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -86,22 +92,21 @@ vec3 normVec (vec3 vec){ void main() { /* DRAWBUFFERS:0 */ -#ifdef VOLUMETRIC_CLOUDS - // vec2 halfResTC = vec2(floor(gl_FragCoord.xy)/CLOUDS_QUALITY/RENDER_SCALE+0.5+(vec2(tempOffsets)*(texelSize/4))*CLOUDS_QUALITY*RENDER_SCALE*0.5); +#ifdef OVERWORLD_SHADER + #ifdef VOLUMETRIC_CLOUDS + vec2 halfResTC = vec2(floor(gl_FragCoord.xy)/CLOUDS_QUALITY/RENDER_SCALE+0.5+offsets[framemod8]*CLOUDS_QUALITY*RENDER_SCALE*0.5); - vec2 halfResTC = vec2(floor(gl_FragCoord.xy)/CLOUDS_QUALITY/RENDER_SCALE+0.5+offsets[framemod8]*CLOUDS_QUALITY*RENDER_SCALE*0.5); + vec3 viewPos = toScreenSpace(vec3(halfResTC*texelSize,1)); - float z = texture2D(depthtex0,halfResTC*texelSize).x; + vec4 VolumetricClouds = renderClouds(viewPos, vec2(R2_dither(),blueNoise2()), sunColor/80., moonColor/150., averageSkyCol/30.0); - vec3 fragpos = toScreenSpace(vec3(halfResTC*texelSize,1)); + gl_FragData[0] = VolumetricClouds; - vec4 currentClouds = renderClouds(fragpos,vec2(R2_dither(),blueNoise2()), sunColor/80., moonColor/150., averageSkyCol/30.0); - - gl_FragData[0] = currentClouds; - - + #else + gl_FragData[0] = vec4(0.0,0.0,0.0,1.0); + #endif #else gl_FragData[0] = vec4(0.0,0.0,0.0,1.0); -#endif -} +#endif +} \ No newline at end of file diff --git a/shaders/deferred1.vsh b/shaders/dimensions/deferred2.vsh similarity index 93% rename from shaders/deferred1.vsh rename to shaders/dimensions/deferred2.vsh index 6f92d95..87fc6e3 100644 --- a/shaders/deferred1.vsh +++ b/shaders/dimensions/deferred2.vsh @@ -1,4 +1,4 @@ -#version 120 + //#extension GL_EXT_gpu_shader4 : disable #include "/lib/settings.glsl" @@ -19,21 +19,22 @@ uniform int frameCounter; #include "/lib/util.glsl" #include "/lib/res_params.glsl" +#include "/lib/Shadow_Params.glsl" + void main() { - - tempOffsets = HaltonSeq2(frameCounter%10000); gl_Position = ftransform(); gl_Position.xy = (gl_Position.xy*0.5+0.5)*clamp(CLOUDS_QUALITY+0.01,0.0,1.0)*2.0-1.0; - #ifdef TAA_UPSCALING - gl_Position.xy = (gl_Position.xy*0.5+0.5)*RENDER_SCALE*2.0-1.0; - #endif - averageSkyCol = texelFetch2D(colortex4,ivec2(1,37),0).rgb; sunColor = texelFetch2D(colortex4,ivec2(6,37),0).rgb; moonColor = texelFetch2D(colortex4,ivec2(13,37),0).rgb; WsunVec = ( float(sunElevation > 1e-5)*2-1. )*normalize(mat3(gbufferModelViewInverse) *sunPosition); + // WsunVec = normalize(LightDir); -} + tempOffsets = HaltonSeq2(frameCounter%10000); + #ifdef TAA_UPSCALING + gl_Position.xy = (gl_Position.xy*0.5+0.5)*RENDER_SCALE*2.0-1.0; + #endif +} \ No newline at end of file diff --git a/shaders/dimensions/final.fsh b/shaders/dimensions/final.fsh index c4906a5..2f294f5 100644 --- a/shaders/dimensions/final.fsh +++ b/shaders/dimensions/final.fsh @@ -3,15 +3,12 @@ varying vec2 texcoord; uniform sampler2D colortex7; -// uniform sampler2D noisetex; uniform vec2 texelSize; -uniform float viewWidth; -uniform float viewHeight; -uniform float aspectRatio; uniform float frameTimeCounter; -uniform int frameCounter; -uniform int isEyeInWater; +uniform sampler2D shadowcolor0; +uniform sampler2D shadowtex0; +uniform sampler2D shadowtex1; #include "/lib/color_transforms.glsl" #include "/lib/color_dither.glsl" @@ -99,6 +96,30 @@ void applyColorCurve(inout vec3 color, vec4 darks, vec4 brights){ } +#ifdef HURT_AND_DEATH_EFFECT + uniform float hurt; + uniform float dying; + uniform float dead; + + void PlayerDamagedEffect(inout vec3 outColor){ + + if(dying > 0){ + + float vignette2 = clamp(1.0 - exp(-(sin(frameTimeCounter*7)*15+50) * dot(texcoord-0.5,texcoord-0.5)),0.0,1.0); + + outColor = mix(outColor, vec3(0.0), min(dying,1.0)*vignette2); + outColor = mix(outColor, vec3(0.0), dead); + + }else{ + + float vignette = clamp(1.0 - exp(-5 * dot(texcoord-0.5,texcoord-0.5)),0.0,1.0); + + outColor = mix(outColor, vec3(0.3,0.0,0.0), vignette*sqrt(hurt)); + + } + } +#endif + void main() { #ifdef BICUBIC_UPSCALING vec3 col = SampleTextureCatmullRom(colortex7,texcoord,1.0/texelSize).rgb; @@ -119,14 +140,18 @@ void main() { vec3 std = abs(col - m1) + abs(albedoCurrent1 - m1) + abs(albedoCurrent2 - m1) + abs(albedoCurrent3 - m1) + abs(albedoCurrent3 - m1) + abs(albedoCurrent4 - m1); float contrast = 1.0 - luma(std)/5.0; - col = col*(1.0+(SHARPENING)*contrast) - - (SHARPENING)/(1.0-0.5/3.5)*contrast*(m1 - 0.5/3.5*col); + col = col*(1.0+(SHARPENING+UPSCALING_SHARPNENING)*contrast) + - (SHARPENING+UPSCALING_SHARPNENING)/(1.0-0.5/3.5)*contrast*(m1 - 0.5/3.5*col); #endif float lum = luma(col); vec3 diff = col-lum; col = col + diff*(-lum*CROSSTALK + SATURATION); - + + #ifdef HURT_AND_DEATH_EFFECT + PlayerDamagedEffect(col); + #endif + vec3 FINAL_COLOR = clamp(int8Dither(col,texcoord),0.0,1.0); #ifdef COLOR_CURVE @@ -135,5 +160,15 @@ void main() { applyContrast(FINAL_COLOR, CONTRAST); // for fun - gl_FragColor.rgb = FINAL_COLOR ; + gl_FragColor.rgb = FINAL_COLOR; + + + + // uniform sampler2D shadowcolor0; + // uniform sampler2D shadowtex0; + // uniform sampler2D shadowtex1; + // if(texcoord.x > 0.5) gl_FragColor.rgb = texture2D(shadowcolor0, texcoord * vec2(2.0, 1.0) - vec2(1.0, 0.0)).rgb; + // vec2 texrood = texcoord * vec2(2.0, 1.0) - vec2(1.0, 0.0); + + // if(texrood.x > 0.49 && texrood.x < 0.51 && texrood.y > 0.49 && texrood.y < 0.51) gl_FragColor.rgb = vec3(1,0,0); } diff --git a/shaders/dimensions/final.vsh b/shaders/dimensions/final.vsh index a42ee54..e41b357 100644 --- a/shaders/dimensions/final.vsh +++ b/shaders/dimensions/final.vsh @@ -1,8 +1,6 @@ #include "/lib/settings.glsl" varying vec2 texcoord; -flat varying vec4 exposure; -uniform sampler2D colortex4; //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -11,8 +9,6 @@ uniform sampler2D colortex4; //////////////////////////////VOID MAIN////////////////////////////// void main() { - gl_Position = ftransform(); texcoord = gl_MultiTexCoord0.xy; - exposure=vec4(texelFetch2D(colortex4,ivec2(10,37),0).r*vec3(FinalR,FinalG,FinalB),texelFetch2D(colortex4,ivec2(10,37),0).r); } diff --git a/shaders/entity.properties b/shaders/entity.properties index d68a31b..a3db0ca 100644 --- a/shaders/entity.properties +++ b/shaders/entity.properties @@ -1,15 +1,20 @@ #if MC_VERSION >= 11300 +###### +###### all the different strengths of subsurface scattering and what entities to put them on. +###### -### all the different strengths of subsurface scattering and what entities to put them on. -#medium sss (same as strong sss for blocks) -entity.1100 = slime giant ghast elder_guardian +## medium sss (same as strong sss for blocks) +entity.1100 = slime giant ghast elder_guardian -#weak sss (same as weak sss for blocks) -entity.1200 = ender_dragon player sheep frog chicken snow_golem polar_bear zombie_horse armor_stand arrow squid bat cat cod cow donkey fox horse mooshroom mule ocelot parrot pig piglin polar_bear pufferfish rabbit salmon strider tropical_fish turtle villager wandering_trader bee cave_spider dolphin enderman llama panda spider wolf zombified_piglin blaze creeper drowned endermite evoker guardian hoglin husk magma_cube phantom piglin_brute pillager ravager silverfish stray vex vindicator witch zoglin zombie zombie_villager wither trader_llama +## weak sss (same as weak sss for blocks) +entity.1200 = player sheep frog chicken snow_golem polar_bear zombie_horse armor_stand arrow squid bat cat cod cow donkey fox horse mooshroom mule ocelot parrot pig piglin polar_bear pufferfish rabbit salmon strider tropical_fish turtle villager wandering_trader bee cave_spider dolphin enderman llama panda spider wolf zombified_piglin blaze creeper drowned endermite evoker guardian hoglin husk magma_cube phantom piglin_brute pillager ravager silverfish stray vex vindicator witch zoglin zombie zombie_villager trader_llama +## misc stuff +entity.1300 = ender_dragon wither -# various stuff -entity.12345 = minecraft:lightning_bolt weather2:lightning_bolt +entity.12345 = minecraft:lightning_bolt \ +weather2:lightning_bolt +# all of these get excluded from POM entity.2300 = minecraft:item_frame minecraft:item_display \ No newline at end of file diff --git a/shaders/final.fsh b/shaders/final.fsh deleted file mode 100644 index bf8184e..0000000 --- a/shaders/final.fsh +++ /dev/null @@ -1,143 +0,0 @@ -#version 120 -//Vignetting, applies bloom, applies exposure and tonemaps the final image -//#extension GL_EXT_gpu_shader4 : disable - -#include "/lib/settings.glsl" - -varying vec2 texcoord; - -uniform sampler2D colortex7; -// uniform sampler2D noisetex; -uniform vec2 texelSize; -uniform float viewWidth; -uniform float viewHeight; -uniform float aspectRatio; -uniform float frameTimeCounter; -uniform int frameCounter; -uniform int isEyeInWater; - - -#include "/lib/color_transforms.glsl" -#include "/lib/color_dither.glsl" -#include "/lib/res_params.glsl" - -vec4 SampleTextureCatmullRom(sampler2D tex, vec2 uv, vec2 texSize ) -{ - // We're going to sample a a 4x4 grid of texels surrounding the target UV coordinate. We'll do this by rounding - // down the sample location to get the exact center of our "starting" texel. The starting texel will be at - // location [1, 1] in the grid, where [0, 0] is the top left corner. - vec2 samplePos = uv * texSize; - vec2 texPos1 = floor(samplePos - 0.5) + 0.5; - - // Compute the fractional offset from our starting texel to our original sample location, which we'll - // feed into the Catmull-Rom spline function to get our filter weights. - vec2 f = samplePos - texPos1; - - // Compute the Catmull-Rom weights using the fractional offset that we calculated earlier. - // These equations are pre-expanded based on our knowledge of where the texels will be located, - // which lets us avoid having to evaluate a piece-wise function. - vec2 w0 = f * ( -0.5 + f * (1.0 - 0.5*f)); - vec2 w1 = 1.0 + f * f * (-2.5 + 1.5*f); - vec2 w2 = f * ( 0.5 + f * (2.0 - 1.5*f) ); - vec2 w3 = f * f * (-0.5 + 0.5 * f); - - // Work out weighting factors and sampling offsets that will let us use bilinear filtering to - // simultaneously evaluate the middle 2 samples from the 4x4 grid. - vec2 w12 = w1 + w2; - vec2 offset12 = w2 / (w1 + w2); - - // Compute the final UV coordinates we'll use for sampling the texture - vec2 texPos0 = texPos1 - vec2(1.0); - vec2 texPos3 = texPos1 + vec2(2.0); - vec2 texPos12 = texPos1 + offset12; - - texPos0 *= texelSize; - texPos3 *= texelSize; - texPos12 *= texelSize; - - vec4 result = vec4(0.0); - result += texture2D(tex, vec2(texPos0.x, texPos0.y)) * w0.x * w0.y; - result += texture2D(tex, vec2(texPos12.x, texPos0.y)) * w12.x * w0.y; - result += texture2D(tex, vec2(texPos3.x, texPos0.y)) * w3.x * w0.y; - - result += texture2D(tex, vec2(texPos0.x, texPos12.y)) * w0.x * w12.y; - result += texture2D(tex, vec2(texPos12.x, texPos12.y)) * w12.x * w12.y; - result += texture2D(tex, vec2(texPos3.x, texPos12.y)) * w3.x * w12.y; - - result += texture2D(tex, vec2(texPos0.x, texPos3.y)) * w0.x * w3.y; - result += texture2D(tex, vec2(texPos12.x, texPos3.y)) * w12.x * w3.y; - result += texture2D(tex, vec2(texPos3.x, texPos3.y)) * w3.x * w3.y; - - return result; -} - -/// thanks stackoverflow https://stackoverflow.com/questions/944713/help-with-pixel-shader-effect-for-brightness-and-contrast#3027595 -void applyContrast(inout vec3 color, float contrast){ - color = (color - 0.5) * contrast + 0.5; -} - -float lowerCurve(float x) { - float y = 16 * x * (0.5 - x) * 0.1; - return clamp(y, 0.0, 1.0); -} -float upperCurve(float x) { - float y = 16 * (0.5 - x) * (x - 1.0) * 0.1; - return clamp(y, 0.0, 1.0); -} -void applyLuminanceCurve(inout vec3 color, float darks, float brights){ - - // color.r = color.r < 0.5 ? pow(2.0 * color.r, darks) / 2.0 : 1.0 - (pow(2.0 - 2.0 * color.r, brights) / 2.0); - // color.g = color.g < 0.5 ? pow(2.0 * color.g, darks) / 2.0 : 1.0 - (pow(2.0 - 2.0 * color.g, brights) / 2.0); - // color.b = color.b < 0.5 ? pow(2.0 * color.b, darks) / 2.0 : 1.0 - (pow(2.0 - 2.0 * color.b, brights) / 2.0); - - color.r += darks * lowerCurve(color.r) + brights * upperCurve(color.r); - color.g += darks * lowerCurve(color.g) + brights * upperCurve(color.g); - color.b += darks * lowerCurve(color.b) + brights * upperCurve(color.b); -} - -void applyColorCurve(inout vec3 color, vec4 darks, vec4 brights){ - - color.r += (darks.r + darks.a) * lowerCurve(color.r) + (brights.r + brights.a) * upperCurve(color.r); - color.g += (darks.g + darks.a) * lowerCurve(color.g) + (brights.g + brights.a) * upperCurve(color.g); - color.b += (darks.b + darks.a) * lowerCurve(color.b) + (brights.b + brights.a) * upperCurve(color.b); - -} - -void main() { - #ifdef BICUBIC_UPSCALING - vec3 col = SampleTextureCatmullRom(colortex7,texcoord,1.0/texelSize).rgb; - #else - vec3 col = texture2D(colortex7,texcoord).rgb; - #endif - - - #ifdef CONTRAST_ADAPTATIVE_SHARPENING - //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; - vec3 albedoCurrent3 = texture2D(colortex7, texcoord + vec2(-texelSize.x,-texelSize.y)/MC_RENDER_QUALITY*0.5).rgb; - vec3 albedoCurrent4 = texture2D(colortex7, texcoord + vec2(-texelSize.x,texelSize.y)/MC_RENDER_QUALITY*0.5).rgb; - - - vec3 m1 = -0.5/3.5*col + albedoCurrent1/3.5 + albedoCurrent2/3.5 + albedoCurrent3/3.5 + albedoCurrent4/3.5; - vec3 std = abs(col - m1) + abs(albedoCurrent1 - m1) + abs(albedoCurrent2 - m1) + - abs(albedoCurrent3 - m1) + abs(albedoCurrent3 - m1) + abs(albedoCurrent4 - m1); - float contrast = 1.0 - luma(std)/5.0; - col = col*(1.0+(SHARPENING+UPSCALING_SHARPNENING)*contrast) - - (SHARPENING+UPSCALING_SHARPNENING)/(1.0-0.5/3.5)*contrast*(m1 - 0.5/3.5*col); - #endif - - float lum = luma(col); - vec3 diff = col-lum; - col = col + diff*(-lum*CROSSTALK + SATURATION); - - vec3 FINAL_COLOR = clamp(int8Dither(col,texcoord),0.0,1.0); - - #ifdef COLOR_CURVE - applyColorCurve(FINAL_COLOR, vec4(R_LOWER_CURVE, G_LOWER_CURVE, B_LOWER_CURVE, LOWER_CURVE), vec4(R_UPPER_CURVE, G_UPPER_CURVE, B_UPPER_CURVE, UPPER_CURVE)); - #endif - - applyContrast(FINAL_COLOR, CONTRAST); // for fun - - gl_FragColor.rgb = FINAL_COLOR ; -} diff --git a/shaders/gbuffers_all_particles.fsh b/shaders/gbuffers_all_particles.fsh deleted file mode 100644 index c24337c..0000000 --- a/shaders/gbuffers_all_particles.fsh +++ /dev/null @@ -1,177 +0,0 @@ -// #version 120 -varying vec4 lmtexcoord; -varying vec4 color; - -flat varying vec3 averageSkyCol_Clouds; -// flat varying vec3 averageSkyCol; - -flat varying vec4 lightCol; //main light source color (rgb),used light source(1=sun,-1=moon) -// flat varying vec3 sunColor; -// flat varying vec3 moonColor; - -uniform vec3 sunVec; -flat varying vec3 WsunVec; - -uniform sampler2D texture; -uniform sampler2DShadow shadow; -uniform sampler2D gaux1; -uniform sampler2D noisetex; -uniform float frameTimeCounter; -uniform ivec2 eyeBrightnessSmooth; - -uniform float far; -uniform float near; -uniform vec2 texelSize; -uniform float rainStrength; -uniform mat4 gbufferProjectionInverse; -uniform mat4 gbufferModelViewInverse; -uniform mat4 gbufferModelView; -uniform mat4 shadowModelView; -uniform mat4 shadowProjection; -uniform vec3 cameraPosition; - - -#include "/lib/settings.glsl" -#include "/lib/Shadow_Params.glsl" -#include "/lib/res_params.glsl" -#include "/lib/sky_gradient.glsl" -#include "/lib/volumetricClouds.glsl" - -#define OVERWORLD_SHADER -#include "/lib/diffuse_lighting.glsl" - -//faster and actually more precise than pow 2.2 -vec3 toLinear(vec3 sRGB){ - return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); -} - -#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) -#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) -vec3 toScreenSpace(vec3 p) { - vec4 iProjDiag = vec4(gbufferProjectionInverse[0].x, gbufferProjectionInverse[1].y, gbufferProjectionInverse[2].zw); - vec3 p3 = p * 2. - 1.; - vec4 fragposition = iProjDiag * p3.xyzz + gbufferProjectionInverse[3]; - return fragposition.xyz / fragposition.w; -} - -uniform int framemod8; -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); - -float shadow2D_bicubic(sampler2DShadow tex, vec3 sc) -{ - vec2 uv = sc.xy*shadowMapResolution; - vec2 iuv = floor( uv ); - vec2 fuv = fract( uv ); - - float g0x = g0(fuv.x); - float g1x = g1(fuv.x); - float h0x = h0(fuv.x); - float h1x = h1(fuv.x); - float h0y = h0(fuv.y); - float h1y = h1(fuv.y); - - vec2 p0 = vec2(iuv.x + h0x, iuv.y + h0y)/shadowMapResolution - 0.5/shadowMapResolution; - vec2 p1 = vec2(iuv.x + h1x, iuv.y + h0y)/shadowMapResolution - 0.5/shadowMapResolution; - vec2 p2 = vec2(iuv.x + h0x, iuv.y + h1y)/shadowMapResolution - 0.5/shadowMapResolution; - vec2 p3 = vec2(iuv.x + h1x, iuv.y + h1y)/shadowMapResolution - 0.5/shadowMapResolution; - - return g0(fuv.y) * (g0x * shadow2D(tex, vec3(p0,sc.z)).x + - g1x * shadow2D(tex, vec3(p1,sc.z)).x) + - g1(fuv.y) * (g0x * shadow2D(tex, vec3(p2,sc.z)).x + - g1x * shadow2D(tex, vec3(p3,sc.z)).x); -} - -vec3 normVec (vec3 vec){ - return vec*inversesqrt(dot(vec,vec)); -} - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -/* DRAWBUFFERS:29 */ -void main() { - - vec4 TEXTURE = texture2D(texture, lmtexcoord.xy) * color; - - vec2 tempOffset = offsets[framemod8]; - vec3 fragpos = toScreenSpace(gl_FragCoord.xyz*vec3(texelSize/RENDER_SCALE,1.0)-vec3(vec2(tempOffset)*texelSize*0.5,0.0)); - vec3 p3 = mat3(gbufferModelViewInverse) * fragpos; - vec3 np3 = normVec(p3); - - float cloudOcclusion = 0.0; - - if(TEXTURE.a > 0.0) cloudOcclusion = 1.0 - GetCloudSkyOcclusion(p3 + cameraPosition)*0.8; - gl_FragData[1].a = TEXTURE.a * cloudOcclusion ; // for bloomy rain and stuff - -#ifndef WEATHER - gl_FragData[1].a = 1.0 - TEXTURE.a; - - #ifdef LIT - gl_FragData[1].a = 0.0; - #endif - - gl_FragData[0].a = TEXTURE.a; - - vec3 Albedo = toLinear(TEXTURE.rgb); - - // do the maths only if the pixels exist.... - if(TEXTURE.a > 0.0){ - - float Shadows = 1.0; - - vec3 p3_shadow = mat3(gbufferModelViewInverse) * fragpos + gbufferModelViewInverse[3].xyz; - vec3 projectedShadowPosition = mat3(shadowModelView) * p3_shadow + shadowModelView[3].xyz; - projectedShadowPosition = diagonal3(shadowProjection) * projectedShadowPosition + shadowProjection[3].xyz; - - //apply distortion - float distortFactor = calcDistort(projectedShadowPosition.xy); - projectedShadowPosition.xy *= distortFactor; - int shadowmapindicator = 0; - //do shadows only if on shadow map - if (abs(projectedShadowPosition.x) < 1.0-1.5/shadowMapResolution && abs(projectedShadowPosition.y) < 1.0-1.5/shadowMapResolution){ - - projectedShadowPosition = projectedShadowPosition * vec3(0.5,0.5,0.5/6.0) + vec3(0.5); - - Shadows = shadow2D_bicubic(shadow,vec3(projectedShadowPosition + vec3(0.0,0.0,0.0))); - - shadowmapindicator = 1; - } - - if(shadowmapindicator < 1) Shadows = clamp((lmtexcoord.w-0.8) * 5,0,1); - - #ifdef CLOUDS_SHADOWS - Shadows *= GetCloudShadow(p3); - #endif - - vec3 AmbientLightColor = averageSkyCol_Clouds; - vec3 DirectLightColor = lightCol.rgb/80.0; - - AmbientLightColor += (lightningEffect * 10) * pow(lmtexcoord.w,2); - - float lightleakfix = clamp(eyeBrightnessSmooth.y/240.0,0.0,1.0); - float phase = phaseg(clamp(dot(np3, WsunVec),0.0,1.0),(1.0-gl_FragData[0].a) * 0.8 + 0.1) + 1.0 ; - vec3 Direct_lighting = DoDirectLighting(DirectLightColor, Shadows, 1.0, 0.0) * phase * lightleakfix; - vec3 Torch_Color = vec3(TORCH_R,TORCH_G,TORCH_B); - - #ifdef LIT - Torch_Color *= LIT_PARTICLE_BRIGHTNESS; - #endif - - vec3 Indirect_lighting = DoAmbientLighting(AmbientLightColor, Torch_Color, clamp(lmtexcoord.zw,0.0,1.0), 5.0); - - // gl_FragData[0].a = TEXTURE.a; - - gl_FragData[0].rgb = (Direct_lighting + Indirect_lighting) * Albedo; - - } -#endif -} \ No newline at end of file diff --git a/shaders/gbuffers_all_particles.vsh b/shaders/gbuffers_all_particles.vsh deleted file mode 100644 index 4fb1f9d..0000000 --- a/shaders/gbuffers_all_particles.vsh +++ /dev/null @@ -1,110 +0,0 @@ -// #version 120 -//#extension GL_EXT_gpu_shader4 : disable -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" -#include "/lib/bokeh.glsl" - -/* -!! DO NOT REMOVE !! -This code is from Chocapic13' shaders -Read the terms of modification and sharing before changing something below please ! -!! DO NOT REMOVE !! -*/ - -varying vec4 lmtexcoord; -varying vec4 color; -varying vec4 normalMat; - -#ifdef MC_NORMAL_MAP - varying vec4 tangent; - attribute vec4 at_tangent; - varying vec3 FlatNormals; -#endif - -flat varying vec3 WsunVec; -flat varying vec4 lightCol; //main light source color (rgb),used light source(1=sun,-1=moon) - -flat varying vec3 averageSkyCol_Clouds; -// flat varying vec3 averageSkyCol; - -uniform mat4 gbufferModelViewInverse; -uniform vec3 sunPosition; -uniform float sunElevation; -uniform sampler2D colortex4; - -uniform int frameCounter; -uniform float far; -uniform float aspectRatio; -uniform float viewHeight; -uniform float viewWidth; -uniform int hideGUI; -uniform float screenBrightness; - -uniform vec2 texelSize; -uniform int framemod8; - const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - lmtexcoord.xy = (gl_MultiTexCoord0).xy; - - vec2 lmcoord = gl_MultiTexCoord1.xy/255.; - lmtexcoord.zw = lmcoord; - - gl_Position = ftransform(); - color = gl_Color; - - averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(0,37),0).rgb; - // averageSkyCol = texelFetch2D(colortex4,ivec2(1,37),0).rgb; - - vec3 sc = texelFetch2D(colortex4,ivec2(6,37),0).rgb; - lightCol.a = float(sunElevation > 1e-5)*2-1.; - lightCol.rgb = sc; - - WsunVec = lightCol.a*normalize(mat3(gbufferModelViewInverse) *sunPosition); - - - FlatNormals = normalize(gl_NormalMatrix *gl_Normal); - - #ifdef MC_NORMAL_MAP - tangent = vec4(normalize(gl_NormalMatrix *at_tangent.rgb),at_tangent.w); - #endif - - normalMat = vec4(normalize(gl_NormalMatrix *gl_Normal),1.0); - - #ifdef TAA_UPSCALING - gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w; - #endif - #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; - #endif - - #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 -} diff --git a/shaders/gbuffers_all_solid.fsh b/shaders/gbuffers_all_solid.fsh deleted file mode 100644 index 3e3b8c1..0000000 --- a/shaders/gbuffers_all_solid.fsh +++ /dev/null @@ -1,582 +0,0 @@ -//#extension GL_EXT_gpu_shader4 : disable -//#extension GL_ARB_shader_texture_lod : disable - -#include "/lib/settings.glsl" - -flat varying int NameTags; - -#ifdef HAND -#undef POM -#endif - -#ifndef USE_LUMINANCE_AS_HEIGHTMAP -#ifndef MC_NORMAL_MAP -#undef POM -#endif -#endif - -#ifdef POM -#define MC_NORMAL_MAP -#endif - - -varying float VanillaAO; - -const float mincoord = 1.0/4096.0; -const float maxcoord = 1.0-mincoord; - -const float MAX_OCCLUSION_DISTANCE = MAX_DIST; -const float MIX_OCCLUSION_DISTANCE = MAX_DIST*0.9; -const int MAX_OCCLUSION_POINTS = MAX_ITERATIONS; - -uniform vec2 texelSize; -uniform int framemod8; - -// #ifdef POM -varying vec4 vtexcoordam; // .st for add, .pq for mul -varying vec4 vtexcoord; - -vec2 dcdx = dFdx(vtexcoord.st*vtexcoordam.pq)*exp2(Texture_MipMap_Bias); -vec2 dcdy = dFdy(vtexcoord.st*vtexcoordam.pq)*exp2(Texture_MipMap_Bias); -// #endif - -#include "/lib/res_params.glsl" -varying vec4 lmtexcoord; - -varying vec4 color; - -uniform float far; - - -uniform float wetness; -varying vec4 normalMat; - - -#ifdef MC_NORMAL_MAP - uniform sampler2D normals; - varying vec4 tangent; - varying vec3 FlatNormals; -#endif - - -uniform sampler2D specular; - - - -uniform sampler2D texture; -uniform sampler2D colortex1;//albedo(rgb),material(alpha) RGBA16 -uniform float frameTimeCounter; -uniform int frameCounter; -uniform mat4 gbufferProjectionInverse; -uniform mat4 gbufferModelView; -uniform mat4 gbufferProjection; -uniform mat4 gbufferModelViewInverse; -uniform vec3 cameraPosition; -uniform float rainStrength; -uniform sampler2D noisetex;//depth -uniform sampler2D depthtex0; - -uniform vec4 entityColor; - -in vec3 velocity; - -flat varying int PHYSICSMOD_SNOW; -flat varying float blockID; - -flat varying float SSSAMOUNT; -flat varying float EMISSIVE; -flat varying int LIGHTNING; -flat varying int PORTAL; -flat varying int SIGN; - - -flat varying float HELD_ITEM_BRIGHTNESS; -uniform float noPuddleAreas; - - -// float interleaved_gradientNoise(){ -// return fract(52.9829189*fract(0.06711056*gl_FragCoord.x + 0.00583715*gl_FragCoord.y)+frameTimeCounter*51.9521); -// } -float interleaved_gradientNoise_temp(){ - vec2 alpha = vec2(0.75487765, 0.56984026); - vec2 coord = vec2(alpha.x * gl_FragCoord.x,alpha.y * gl_FragCoord.y)+ 1.0/1.6180339887 * frameCounter; - float noise = fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y)); - return noise; -} -float interleaved_gradientNoise(){ - vec2 coord = gl_FragCoord.xy; - float noise = fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y)); - return noise; -} -float blueNoise(){ - return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter); -} -float R2_dither(){ - vec2 alpha = vec2(0.75487765, 0.56984026); - return fract(alpha.x * gl_FragCoord.x + alpha.y * gl_FragCoord.y + 1.0/1.6180339887 * frameCounter) ; -} - -mat3 inverse(mat3 m) { - float a00 = m[0][0], a01 = m[0][1], a02 = m[0][2]; - float a10 = m[1][0], a11 = m[1][1], a12 = m[1][2]; - float a20 = m[2][0], a21 = m[2][1], a22 = m[2][2]; - - float b01 = a22 * a11 - a12 * a21; - float b11 = -a22 * a10 + a12 * a20; - float b21 = a21 * a10 - a11 * a20; - - float det = a00 * b01 + a01 * b11 + a02 * b21; - - return mat3(b01, (-a22 * a01 + a02 * a21), (a12 * a01 - a02 * a11), - b11, (a22 * a00 - a02 * a20), (-a12 * a00 + a02 * a10), - b21, (-a21 * a00 + a01 * a20), (a11 * a00 - a01 * a10)) / det; -} - -vec3 viewToWorld(vec3 viewPosition) { - vec4 pos; - pos.xyz = viewPosition; - pos.w = 0.0; - pos = gbufferModelViewInverse * pos; - return pos.xyz; -} -vec3 worldToView(vec3 worldPos) { - vec4 pos = vec4(worldPos, 0.0); - pos = gbufferModelView * pos; - return pos.xyz; -} -vec4 encode (vec3 n, vec2 lightmaps){ - n.xy = n.xy / dot(abs(n), vec3(1.0)); - n.xy = n.z <= 0.0 ? (1.0 - abs(n.yx)) * sign(n.xy) : n.xy; - vec2 encn = clamp(n.xy * 0.5 + 0.5,-1.0,1.0); - - return vec4(encn,vec2(lightmaps.x,lightmaps.y)); -} - -//encoding by jodie -float encodeVec2(vec2 a){ - const vec2 constant1 = vec2( 1., 256.) / 65535.; - vec2 temp = floor( a * 255. ); - return temp.x*constant1.x+temp.y*constant1.y; -} -float encodeVec2(float x,float y){ - return encodeVec2(vec2(x,y)); -} - -#ifdef MC_NORMAL_MAP - vec3 applyBump(mat3 tbnMatrix, vec3 bump, float puddle_values){ - float bumpmult = clamp(puddle_values,0.0,1.0); - bump = bump * vec3(bumpmult, bumpmult, bumpmult) + vec3(0.0f, 0.0f, 1.0f - bumpmult); - return normalize(bump*tbnMatrix); - } -#endif - - -#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) -#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) - -vec3 toScreenSpace(vec3 p) { - vec4 iProjDiag = vec4(gbufferProjectionInverse[0].x, gbufferProjectionInverse[1].y, gbufferProjectionInverse[2].zw); - vec3 p3 = p * 2. - 1.; - vec4 fragposition = iProjDiag * p3.xyzz + gbufferProjectionInverse[3]; - return fragposition.xyz / fragposition.w; -} -vec3 toClipSpace3(vec3 viewSpacePosition) { - return projMAD(gbufferProjection, viewSpacePosition) / -viewSpacePosition.z * 0.5 + 0.5; -} - -#ifdef POM - vec4 readNormal(in vec2 coord) - { - return texture2DGradARB(normals,fract(coord)*vtexcoordam.pq+vtexcoordam.st,dcdx,dcdy); - } - vec4 readTexture(in vec2 coord) - { - return texture2DGradARB(texture,fract(coord)*vtexcoordam.pq+vtexcoordam.st,dcdx,dcdy); - } -#endif - - -float luma(vec3 color) { - return dot(color,vec3(0.21, 0.72, 0.07)); -} - - -vec3 toLinear(vec3 sRGB){ - return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); -} - - -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); -vec3 srgbToLinear2(vec3 srgb){ - return mix( - srgb / 12.92, - pow(.947867 * srgb + .0521327, vec3(2.4) ), - step( .04045, srgb ) - ); -} -vec3 blackbody2(float Temp) -{ - float t = pow(Temp, -1.5); - float lt = log(Temp); - - vec3 col = vec3(0.0); - col.x = 220000.0 * t + 0.58039215686; - col.y = 0.39231372549 * lt - 2.44549019608; - col.y = Temp > 6500. ? 138039.215686 * t + 0.72156862745 : col.y; - col.z = 0.76078431372 * lt - 5.68078431373; - col = clamp(col,0.0,1.0); - col = Temp < 1000. ? col * Temp * 0.001 : col; - - return srgbToLinear2(col); -} - -uniform float near; - - -float ld(float dist) { - return (2.0 * near) / (far + near - dist * (far - near)); -} - - -vec4 readNoise(in vec2 coord){ - // return texture2D(noisetex,coord*vtexcoordam.pq+vtexcoord.st); - return texture2DGradARB(noisetex,coord*vtexcoordam.pq + vtexcoordam.st,dcdx,dcdy); -} -float EndPortalEffect( - inout vec4 ALBEDO, - vec3 FragPos, - vec3 WorldPos, - mat3 tbnMatrix -){ - - int maxdist = 25; - int quality = 35; - - vec3 viewVec = normalize(tbnMatrix*FragPos); - 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 coord = vec3(WorldPos.xz , 1.0); - coord += interval; - - for (int loopCount = 0; (loopCount < quality) && (1.0 - Depth + Depth * ( 1.0-readNoise(coord.st).r - readNoise(-coord.st*3).b*0.2 ) ) < coord.p && coord.p >= 0.0; ++loopCount) { - coord = coord+interval ; - endportalGLow += (0.3/quality); - } - - ALBEDO.rgb = vec3(0.5,0.75,1.0) * sqrt(endportalGLow); - - return clamp(pow(endportalGLow*3.5,3),0,1); - } -} - -float bias(){ - return (Texture_MipMap_Bias + (blueNoise()-0.5)*0.5) - (1.0-RENDER_SCALE.x) * 2.0; -} -vec4 texture2D_POMSwitch( - sampler2D sampler, - vec2 lightmapCoord, - vec4 dcdxdcdy, - bool ifPOM -){ - if(ifPOM){ - return texture2DGradARB(sampler, lightmapCoord, dcdxdcdy.xy, dcdxdcdy.zw); - }else{ - return texture2D(sampler, lightmapCoord, bias()); - } -} - - - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -/* RENDERTARGETS: 1,7,8,15 */ -void main() { - - - bool ifPOM = false; - - #ifdef POM - ifPOM = true; - #endif - - if(SIGN > 0) ifPOM = false; - - vec3 normal = normalMat.xyz; - - #ifdef MC_NORMAL_MAP - vec3 tangent2 = normalize(cross(tangent.rgb,normal)*tangent.w); - mat3 tbnMatrix = mat3(tangent.x, tangent2.x, normal.x, - tangent.y, tangent2.y, normal.y, - tangent.z, tangent2.z, normal.z); - #endif - - vec2 tempOffset=offsets[framemod8]; - - vec3 fragpos = toScreenSpace(gl_FragCoord.xyz*vec3(texelSize/RENDER_SCALE,1.0)-vec3(vec2(tempOffset)*texelSize*0.5,0.0)); - vec3 worldpos = mat3(gbufferModelViewInverse) * fragpos + gbufferModelViewInverse[3].xyz + cameraPosition; - - float torchlightmap = lmtexcoord.z; - - #ifdef Hand_Held_lights - if(HELD_ITEM_BRIGHTNESS > 0.0) torchlightmap = max(torchlightmap, HELD_ITEM_BRIGHTNESS * clamp( pow(max(1.0-length(fragpos)/10,0.0),1.5),0.0,1.0)); - #endif - - float lightmap = clamp( (lmtexcoord.w-0.8) * 10.0,0.,1.); - - float rainfall = rainStrength * noPuddleAreas; - float Puddle_shape = 0.; - - #ifndef ENTITIES - #ifndef HAND - #ifdef WORLD - #ifdef Puddles - Puddle_shape = (1.0 - clamp(exp(-15 * pow(texture2D(noisetex, worldpos.xz * (0.020 * Puddle_Size) ).b ,5)),0,1)) * lightmap ; - Puddle_shape *= clamp( viewToWorld(normal).y*0.5+0.5 ,0.0,1.0); - Puddle_shape *= rainfall; - #endif - #endif - #endif - #endif - - vec2 adjustedTexCoord = lmtexcoord.xy; - -#ifdef POM - #ifdef WORLD - // vec2 tempOffset=offsets[framemod8]; - adjustedTexCoord = fract(vtexcoord.st)*vtexcoordam.pq+vtexcoordam.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(fragpos); - - float maxdist = MAX_OCCLUSION_DISTANCE; - if(!ifPOM) maxdist = 0.0; - - gl_FragDepth = gl_FragCoord.z; - - if (dist < maxdist) { - - float depthmap = readNormal(vtexcoord.st).a; - float used_POM_DEPTH = 1.0; - - if ( viewVector.z < 0.0 && depthmap < 0.9999 && depthmap > 0.00001) { - // float noise = interleaved_gradientNoise_temp(); - #ifdef Adaptive_Step_length - vec3 interval = (viewVector.xyz /-viewVector.z/MAX_OCCLUSION_POINTS * POM_DEPTH) * 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*POM_DEPTH; - #endif - vec3 coord = vec3(vtexcoord.st , 1.0); - - coord += interval * used_POM_DEPTH; - - float sumVec = 0.5; - for (int loopCount = 0; (loopCount < MAX_OCCLUSION_POINTS) && (1.0 - POM_DEPTH + POM_DEPTH * readNormal(coord.st).a ) < coord.p && coord.p >= 0.0; ++loopCount) { - coord = coord + interval * used_POM_DEPTH; - sumVec += 1.0 * used_POM_DEPTH; - } - - if (coord.t < mincoord) { - if (readTexture(vec2(coord.s,mincoord)).a == 0.0) { - coord.t = mincoord; - discard; - } - } - - adjustedTexCoord = mix(fract(coord.st)*vtexcoordam.pq+vtexcoordam.st, adjustedTexCoord, max(dist-MIX_OCCLUSION_DISTANCE,0.0)/(MAX_OCCLUSION_DISTANCE-MIX_OCCLUSION_DISTANCE)); - - vec3 truePos = fragpos + sumVec*inverse(tbnMatrix)*interval; - // #ifdef Depth_Write_POM - gl_FragDepth = toClipSpace3(truePos).z; - // #endif - } - } - #endif -#endif - - if(!ifPOM) adjustedTexCoord = lmtexcoord.xy; - - - //////////////////////////////// //////////////////////////////// - //////////////////////////////// ALBEDO //////////////////////////////// - //////////////////////////////// //////////////////////////////// - - vec4 Albedo = texture2D_POMSwitch(texture, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM) * color; - - if(LIGHTNING > 0) Albedo = vec4(1); - - float ENDPORTAL_EFFECT = 0.0; - #ifndef ENTITIES - ENDPORTAL_EFFECT = PORTAL > 0 ? EndPortalEffect(Albedo, fragpos, worldpos, tbnMatrix) : 0; - #endif - - #ifdef WhiteWorld - Albedo.rgb = vec3(1.0); - #endif - - #ifdef AEROCHROME_MODE - vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631), AEROCHROME_PINKNESS); - float gray = dot(Albedo.rgb, vec3(0.2, 01.0, 0.07)); - if(blockID == 10001 || blockID == 10003 || blockID == 10004 || blockID == 10006) { - // IR Reflective (Pink-red) - Albedo.rgb = mix(vec3(gray), aerochrome_color, 0.7); - } - else if(blockID == 10008) { - // Special handling for grass block - float strength = 1.0 - color.b; - Albedo.rgb = mix(Albedo.rgb, aerochrome_color, strength); - } - #ifdef AEROCHROME_WOOL_ENABLED - else if(blockID == 200) { - // Wool - Albedo.rgb = mix(Albedo.rgb, aerochrome_color, 0.3); - } - #endif - else if(blockID == 8 || blockID == 10002) - { - // IR Absorbsive? Dark. - Albedo.rgb = mix(Albedo.rgb, vec3(0.01, 0.08, 0.15), 0.5); - } - #endif - - #ifdef WORLD - if (Albedo.a > 0.1) Albedo.a = normalMat.a; - else Albedo.a = 0.0; - #endif - - #ifdef HAND - if (Albedo.a > 0.1) Albedo.a = 0.75; - else Albedo.a = 0.0; - #endif - - - //////////////////////////////// //////////////////////////////// - //////////////////////////////// NORMAL //////////////////////////////// - //////////////////////////////// //////////////////////////////// - - #ifdef WORLD - #ifdef MC_NORMAL_MAP - - vec4 NormalTex = texture2D_POMSwitch(normals, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM); - NormalTex.xy = NormalTex.xy*2.0-1.0; - NormalTex.z = clamp(sqrt(1.0 - dot(NormalTex.xy, NormalTex.xy)),0.0,1.0) ; - - if(PHYSICSMOD_SNOW < 1) normal = applyBump(tbnMatrix, NormalTex.xyz, mix(1.0,1-Puddle_shape,rainfall) ); - #endif - #endif - - //////////////////////////////// //////////////////////////////// - //////////////////////////////// SPECULAR //////////////////////////////// - //////////////////////////////// //////////////////////////////// - - #ifdef WORLD - vec4 SpecularTex = texture2D_POMSwitch(specular, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM); - - SpecularTex.r = max(SpecularTex.r, Puddle_shape); - SpecularTex.g = max(SpecularTex.g, Puddle_shape*0.02); - - gl_FragData[2].rg = SpecularTex.rg; - - #if EMISSIVE_TYPE == 0 - gl_FragData[2].a = 0.0; - #endif - - #if EMISSIVE_TYPE == 1 - gl_FragData[2].a = EMISSIVE; - #endif - - #if EMISSIVE_TYPE == 2 - gl_FragData[2].a = SpecularTex.a; - if(SpecularTex.a <= 0.0) gl_FragData[2].a = EMISSIVE; - #endif - - #if EMISSIVE_TYPE == 3 - gl_FragData[2].a = SpecularTex.a; - #endif - - #if SSS_TYPE == 0 - gl_FragData[2].b = 0.0; - #endif - - #if SSS_TYPE == 1 - gl_FragData[2].b = SSSAMOUNT; - #endif - - #if SSS_TYPE == 2 - gl_FragData[2].b = SpecularTex.b; - if(SpecularTex.b < 65.0/255.0) gl_FragData[2].b = SSSAMOUNT; - #endif - - #if SSS_TYPE == 3 - gl_FragData[2].b = SpecularTex.b; - #endif - - #ifndef ENTITIES - if(PORTAL > 0){ - gl_FragData[2].rgb = vec3(0); - gl_FragData[2].a = clamp(ENDPORTAL_EFFECT * 0.9, 0,0.9); - } - #endif - #endif - - // hit glow effect... - #ifdef ENTITIES - Albedo.rgb = mix(Albedo.rgb, entityColor.rgb, entityColor.a); - gl_FragData[2].a = mix(gl_FragData[2].a, 0.9, entityColor.a);; - #endif - - //////////////////////////////// //////////////////////////////// - //////////////////////////////// FINALIZE //////////////////////////////// - //////////////////////////////// //////////////////////////////// - - #ifdef WORLD - - #ifdef Puddles - float porosity = 0.4; - #ifdef Porosity - porosity = SpecularTex.z >= 64.5/255.0 ? 0.0 : (SpecularTex.z*255.0/64.0)*0.65; - #endif - if(SpecularTex.g < 229.5/255.0) Albedo.rgb = mix(Albedo.rgb, vec3(0), Puddle_shape*porosity); - #endif - - // apply noise to lightmaps to reduce banding. - vec2 PackLightmaps = vec2(torchlightmap,lmtexcoord.w); - - #ifndef ENTITIES - #ifndef HAND - PackLightmaps = max(PackLightmaps*blueNoise()*0.05 + PackLightmaps,0.0); - #endif - #endif - - vec4 data1 = clamp( encode(viewToWorld(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[1].a = 0.0; - #endif - - - - #ifdef WORLD - - // #ifdef ENTITIES - // gl_FragData[5].xyz = velocity *0.5+0.5; - // #endif - - gl_FragData[3] = vec4(FlatNormals * 0.5 + 0.5, VanillaAO); - #endif -} \ No newline at end of file diff --git a/shaders/gbuffers_all_solid.vsh b/shaders/gbuffers_all_solid.vsh deleted file mode 100644 index 99a24d8..0000000 --- a/shaders/gbuffers_all_solid.vsh +++ /dev/null @@ -1,402 +0,0 @@ -//#extension GL_EXT_gpu_shader4 : disable -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" -#include "/lib/bokeh.glsl" - -/* -!! DO NOT REMOVE !! -This code is from Chocapic13' shaders -Read the terms of modification and sharing before changing something below please ! -!! DO NOT REMOVE !! -*/ - - -#ifdef HAND -#undef POM -#endif - -#ifndef USE_LUMINANCE_AS_HEIGHTMAP -#ifndef MC_NORMAL_MAP -#undef POM -#endif -#endif - -#ifdef POM -#define MC_NORMAL_MAP -#endif - - -varying vec4 color; -varying float VanillaAO; - -varying vec4 lmtexcoord; -varying vec4 normalMat; - -// #ifdef POM - varying vec4 vtexcoordam; // .st for add, .pq for mul - varying vec4 vtexcoord; -// #endif - -#ifdef MC_NORMAL_MAP - varying vec4 tangent; - attribute vec4 at_tangent; - varying vec3 FlatNormals; -#endif - -uniform float frameTimeCounter; -const float PI48 = 150.796447372*WAVY_SPEED; -float pi2wt = PI48*frameTimeCounter; - -attribute vec4 mc_Entity; -uniform int blockEntityId; -uniform int entityId; -flat varying float blockID; - -uniform int heldItemId; -uniform int heldItemId2; -flat varying float HELD_ITEM_BRIGHTNESS; - - - -flat varying int PHYSICSMOD_SNOW; -flat varying int NameTags; - -uniform int frameCounter; -uniform float far; -uniform float aspectRatio; -uniform float viewHeight; -uniform float viewWidth; -uniform int hideGUI; -uniform float screenBrightness; - -flat varying float SSSAMOUNT; -flat varying float EMISSIVE; -flat varying int LIGHTNING; -flat varying int PORTAL; -flat varying int SIGN; - -in vec3 at_velocity; -out vec3 velocity; - - - -uniform mat4 gbufferModelView; -uniform mat4 gbufferModelViewInverse; -attribute vec4 mc_midTexCoord; -uniform vec3 cameraPosition; -uniform vec2 texelSize; -uniform int framemod8; - -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); - -#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); -} - -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.*WAVY_STRENGTH; -} - -vec3 calcWaveLeaves(in vec3 pos, in float fm, in float mm, in float ma, in float f0, in float f1, in float f2, in float f3, in float f4, in float f5) { - - float magnitude = abs(sin(dot(vec4(frameTimeCounter, pos),vec4(1.0,0.005,0.005,0.005)))*0.5+0.72)*0.013; - vec3 ret = (sin(pi2wt*vec3(0.0063,0.0224,0.0015)*1.5 - pos))*magnitude; - - return ret; -} - -vec3 calcMoveLeaves(in vec3 pos, in float f0, in float f1, in float f2, in float f3, in float f4, in float f5, in vec3 amp1, in vec3 amp2) { - vec3 move1 = calcWaveLeaves(pos , 0.0054, 0.0400, 0.0400, 0.0127, 0.0089, 0.0114, 0.0063, 0.0224, 0.0015) * amp1; - return move1*5.*WAVY_STRENGTH; -} -vec3 srgbToLinear2(vec3 srgb){ - return mix( - srgb / 12.92, - pow(.947867 * srgb + .0521327, vec3(2.4) ), - step( .04045, srgb ) - ); -} -vec3 blackbody2(float Temp) -{ - float t = pow(Temp, -1.5); - float lt = log(Temp); - - vec3 col = vec3(0.0); - col.x = 220000.0 * t + 0.58039215686; - col.y = 0.39231372549 * lt - 2.44549019608; - col.y = Temp > 6500. ? 138039.215686 * t + 0.72156862745 : col.y; - col.z = 0.76078431372 * lt - 5.68078431373; - col = clamp(col,0.0,1.0); - col = Temp < 1000. ? col * Temp * 0.001 : col; - - return srgbToLinear2(col); -} -// float luma(vec3 color) { -// return dot(color,vec3(0.21, 0.72, 0.07)); -// } - -#define SEASONS_VSH -#include "/lib/climate_settings.glsl" - - -uniform sampler2D noisetex;//depth -float densityAtPos(in vec3 pos){ - pos /= 18.; - pos.xz *= 0.5; - vec3 p = floor(pos); - vec3 f = fract(pos); - vec2 uv = p.xz + f.xz + p.y * vec2(0.0,193.0); - vec2 coord = uv / 512.0; - - //The y channel has an offset to avoid using two textures fetches - vec2 xy = texture2D(noisetex, coord).yx; - - return mix(xy.r,xy.g, f.y); -} -float luma(vec3 color) { - return dot(color,vec3(0.21, 0.72, 0.07)); -} - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - - -void main() { - - gl_Position = ftransform(); - - vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; - - - - /////// ----- COLOR STUFF ----- /////// - color = 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. - - - - - /////// ----- RANDOM STUFF ----- /////// - - lmtexcoord.xy = (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); - vtexcoord.xy = sign(texcoordminusmid)*0.5+0.5; - // #endif - - vec2 lmcoord = gl_MultiTexCoord1.xy / 255.0; // is this even correct? lol' - lmtexcoord.zw = lmcoord; - - - - #ifdef MC_NORMAL_MAP - tangent = vec4(normalize(gl_NormalMatrix *at_tangent.rgb),at_tangent.w); - #endif - - normalMat = vec4(normalize(gl_NormalMatrix *gl_Normal), 1.0); - FlatNormals = normalMat.xyz; - - blockID = mc_Entity.x; - velocity = at_velocity; - - if(mc_Entity.x == 10009) normalMat.a = 0.60; - - - PORTAL = 0; - SIGN = 0; - - #ifdef WORLD - // disallow POM to work on signs. - if(blockEntityId == 2200) SIGN = 1; - - if(blockEntityId == 2100) PORTAL = 1; - #endif - - NameTags = 0; - PHYSICSMOD_SNOW = 0; - -#ifdef ENTITIES - // disallow POM to work on item frames. - if(entityId == 2300) SIGN = 1; - - #ifdef ENTITY_PHYSICSMOD_SNOW - if(entityId == 829925) PHYSICSMOD_SNOW = 1; - #endif - - - // 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(gl_Color.a >= 0.24 && gl_Color.a <= 0.25 ) gl_Position = vec4(10,10,10,1); - - if(entityId == 1100 || entityId == 1200 || entityId == 2468) normalMat.a = 0.45; - -#endif - - if(mc_Entity.x == 10003) normalMat.a = 0.55; - - /////// ----- EMISSIVE STUFF ----- /////// - EMISSIVE = 0.0; - LIGHTNING = 0; - // if(NameTags > 0) EMISSIVE = 0.9; - - // normal block lightsources - if(mc_Entity.x == 10005) EMISSIVE = 0.5; - - // special cases light lightning and beacon beams... - #ifdef ENTITIES - if(entityId == 12345){ - LIGHTNING = 1; - normalMat.a = 0.50; - } - #endif - - /////// ----- SSS STUFF ----- /////// - SSSAMOUNT = 0.0; - - HELD_ITEM_BRIGHTNESS = 0.0; - - #ifdef Hand_Held_lights - if(heldItemId == 100 || heldItemId2 == 100) HELD_ITEM_BRIGHTNESS = 0.9; - #endif - - -#ifdef WORLD - - - /////// ----- SSS ON BLOCKS ----- /////// - // strong - if(mc_Entity.x == 10001 || mc_Entity.x == 10003 || mc_Entity.x == 10004 || mc_Entity.x == 10009) SSSAMOUNT = 1.0; - - // medium - if(mc_Entity.x == 10006 || mc_Entity.x == 200) SSSAMOUNT = 0.75; - - // low - - #ifdef MISC_BLOCK_SSS - if(mc_Entity.x == 10007 || mc_Entity.x == 10008) SSSAMOUNT = 0.5; // weird SSS on blocks like grass and stuff - #endif - - #ifdef ENTITIES - #ifdef MOB_SSS - /////// ----- SSS ON MOBS----- /////// - // strong - if(entityId == 1100) SSSAMOUNT = 0.75; - - // medium - - // low - if(entityId == 1200) SSSAMOUNT = 0.3; - #endif - #endif - - #ifdef BLOCKENTITIES - /////// ----- SSS ON BLOCK ENTITIES----- /////// - // strong - - // medium - if(blockEntityId == 10010) SSSAMOUNT = 0.4; - - // low - - #endif - - - #ifdef WAVY_PLANTS - bool istopv = gl_MultiTexCoord0.t < mc_midTexCoord.t; - - // #ifdef WORLD - // #ifndef HAND - // vec3 worldpos = mat3(gbufferModelViewInverse) * position + gbufferModelViewInverse[3].xyz + cameraPosition; - // // worldpos.xyz += (densityAtPos(worldpos*255 )*2) - cameraPosition; - // worldpos.xyz += sin(worldpos) - cameraPosition; - // position = mat3(gbufferModelView) * worldpos + gbufferModelView[3].xyz; - // #endif - // #endif - - if ((mc_Entity.x == 10001 || mc_Entity.x == 10009) && istopv && abs(position.z) < 64.0) { - vec3 worldpos = mat3(gbufferModelViewInverse) * position + gbufferModelViewInverse[3].xyz + cameraPosition; - worldpos.xyz += calcMovePlants(worldpos.xyz)*lmtexcoord.w - cameraPosition; - position = mat3(gbufferModelView) * worldpos + gbufferModelView[3].xyz; - } - - - - if (mc_Entity.x == 10003 && abs(position.z) < 64.0) { - vec3 worldpos = mat3(gbufferModelViewInverse) * position + gbufferModelViewInverse[3].xyz + cameraPosition; - worldpos.xyz += calcMoveLeaves(worldpos.xyz, 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 - cameraPosition; - position = mat3(gbufferModelView) * worldpos + gbufferModelView[3].xyz; - } - #endif - - gl_Position = toClipSpace3(position); - -#endif - - #ifdef Seasons - #ifdef WORLD - #ifndef BLOCKENTITIES - #ifndef ENTITIES - #ifndef HAND - float blank = 0.0; - YearCycleColor(color.rgb, gl_Color.rgb, blank); - #endif - #endif - #endif - #endif - #endif - - #ifdef TAA_UPSCALING - gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w; - #endif - #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w * texelSize; - #endif - - -#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 -} diff --git a/shaders/gbuffers_all_translucent.fsh b/shaders/gbuffers_all_translucent.fsh deleted file mode 100644 index a244ce1..0000000 --- a/shaders/gbuffers_all_translucent.fsh +++ /dev/null @@ -1,521 +0,0 @@ -// #version 120 -//#extension GL_EXT_gpu_shader4 : disable - -varying vec4 lmtexcoord; -varying vec4 color; - - -uniform sampler2D normals; -varying vec4 tangent; - -varying vec4 normalMat; -varying vec3 binormal; - - -varying vec3 viewVector; - -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" - - -uniform sampler2D texture; -uniform sampler2D noisetex; -uniform sampler2DShadow shadow; -// uniform sampler2D gaux2; -// uniform sampler2D gaux1; - -// uniform sampler2D colortex4; -uniform sampler2D colortex5; -uniform sampler2D depthtex1; - - -uniform vec3 sunVec; -uniform float frameTimeCounter; -uniform float lightSign; -uniform float near; -uniform float far; -uniform float moonIntensity; -uniform float sunIntensity; -uniform vec3 sunColor; -uniform vec3 nsunColor; -uniform vec3 upVec; -uniform float sunElevation; -uniform float fogAmount; -uniform vec2 texelSize; -uniform float rainStrength; -uniform float skyIntensityNight; -uniform float skyIntensity; -flat varying vec3 WsunVec; -uniform mat4 gbufferPreviousModelView; -uniform vec3 previousCameraPosition; -uniform int framemod8; -uniform sampler2D specular; -uniform int frameCounter; -uniform int isEyeInWater; -uniform ivec2 eyeBrightness; -uniform ivec2 eyeBrightnessSmooth; - - -flat varying vec4 lightCol; //main light source color (rgb),used light source(1=sun,-1=moon) - -flat varying vec3 averageSkyCol_Clouds; -// flat varying vec3 averageSkyCol; - - - -#include "/lib/Shadow_Params.glsl" -#include "/lib/color_transforms.glsl" -#include "/lib/projections.glsl" -#include "/lib/sky_gradient.glsl" -#include "/lib/waterBump.glsl" -#include "/lib/clouds.glsl" -#include "/lib/stars.glsl" -#include "/lib/volumetricClouds.glsl" -#define OVERWORLD_SHADER -#include "/lib/diffuse_lighting.glsl" - - -float blueNoise(){ - return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter); -} -float R2_dither(){ - vec2 alpha = vec2(0.75487765, 0.56984026); - return fract(alpha.x * gl_FragCoord.x + alpha.y * gl_FragCoord.y + 1.0/1.6180339887 * frameCounter) ; -} -float interleaved_gradientNoise(){ - vec2 coord = gl_FragCoord.xy + (frameCounter%40000); - // vec2 coord = gl_FragCoord.xy + frameTimeCounter; - // vec2 coord = gl_FragCoord.xy; - float noise = fract( 52.9829189 * fract( (coord.x * 0.06711056) + (coord.y * 0.00583715)) ); - return noise ; -} -float interleaved_gradientNoise(float temporal){ - vec2 coord = gl_FragCoord.xy; - float noise = fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y)+temporal); - return noise; -} - -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); - - - - - - - -#define PW_DEPTH 1.0 //[0.5 1.0 1.5 2.0 2.5 3.0] -#define PW_POINTS 1 //[2 4 6 8 16 32] - -vec3 getParallaxDisplacement(vec3 posxz, float iswater,float bumpmult,vec3 viewVec) { - float waveZ = mix(20.0,0.25,iswater); - float waveM = mix(0.0,4.0,iswater); - - vec3 parallaxPos = posxz; - vec2 vec = viewVector.xy * (1.0 / float(PW_POINTS)) * 22.0 * PW_DEPTH; - float waterHeight = getWaterHeightmap(posxz.xz, waveM, waveZ, iswater) ; - - parallaxPos.xz += waterHeight * vec; - - return parallaxPos; - -} - -vec3 applyBump(mat3 tbnMatrix, vec3 bump, float puddle_values){ - float bumpmult = 1; - bump = bump * vec3(bumpmult, bumpmult, bumpmult) + vec3(0.0f, 0.0f, 1.0f - bumpmult); - return normalize(bump*tbnMatrix); -} - -vec2 tapLocation(int sampleNumber,int nb, float nbRot,float jitter,float distort) -{ - float alpha = (sampleNumber+jitter)/nb; - float angle = jitter*6.28 + alpha * nbRot * 6.28; - - float sin_v, cos_v; - - sin_v = sin(angle); - cos_v = cos(angle); - - return vec2(cos_v, sin_v)*sqrt(alpha); -} - - -vec3 viewToWorld(vec3 viewPosition) { - vec4 pos; - pos.xyz = viewPosition; - pos.w = 0.0; - pos = gbufferModelViewInverse * pos; - return pos.xyz; -} - -vec3 worldToView(vec3 worldPos) { - vec4 pos = vec4(worldPos, 0.0); - pos = gbufferModelView * pos; - return pos.xyz; -} -vec4 encode (vec3 n, vec2 lightmaps){ - n.xy = n.xy / dot(abs(n), vec3(1.0)); - n.xy = n.z <= 0.0 ? (1.0 - abs(n.yx)) * sign(n.xy) : n.xy; - vec2 encn = clamp(n.xy * 0.5 + 0.5,-1.0,1.0); - - return vec4(encn,vec2(lightmaps.x,lightmaps.y)); -} - -//encoding by jodie -float encodeVec2(vec2 a){ - const vec2 constant1 = vec2( 1., 256.) / 65535.; - vec2 temp = floor( a * 255. ); - return temp.x*constant1.x+temp.y*constant1.y; -} -float encodeVec2(float x,float y){ - return encodeVec2(vec2(x,y)); -} - - -float invLinZ (float lindepth){ - return -((2.0*near/lindepth)-far-near)/(far-near); -} -float ld(float dist) { - return (2.0 * near) / (far + near - dist * (far - near)); -} - -vec3 rayTrace(vec3 dir,vec3 position,float dither, float fresnel, bool inwater){ - - float quality = mix(15,SSR_STEPS,fresnel); - vec3 clipPosition = toClipSpace3(position); - float rayLength = ((position.z + dir.z * far*sqrt(3.)) > -near) ? - (-near -position.z) / dir.z : far*sqrt(3.); - vec3 direction = normalize(toClipSpace3(position+dir*rayLength)-clipPosition); //convert to clip space - direction.xy = normalize(direction.xy); - - //get at which length the ray intersects with the edge of the screen - vec3 maxLengths = (step(0.,direction)-clipPosition) / direction; - float mult = min(min(maxLengths.x,maxLengths.y),maxLengths.z); - - - vec3 stepv = direction * mult / quality*vec3(RENDER_SCALE,1.0); - - - vec3 spos = clipPosition*vec3(RENDER_SCALE,1.0) + stepv*dither; - float minZ = clipPosition.z; - float maxZ = spos.z+stepv.z*0.5; - - spos.xy += offsets[framemod8]*texelSize*0.5/RENDER_SCALE; - - float dist = 1.0 + clamp(position.z*position.z/50.0,0,2); // shrink sample size as distance increases - for (int i = 0; i <= int(quality); i++) { - #ifdef USE_QUARTER_RES_DEPTH - // decode depth buffer - float sp = sqrt(texelFetch2D(colortex4,ivec2(spos.xy/texelSize/4),0).w/65000.0); - sp = invLinZ(sp); - - if(sp <= max(maxZ,minZ) && sp >= min(maxZ,minZ)) return vec3(spos.xy/RENDER_SCALE,sp); - #else - float sp = texelFetch2D(depthtex1,ivec2(spos.xy/texelSize),0).r; - if(sp <= max(maxZ,minZ) && sp >= min(maxZ,minZ)) return vec3(spos.xy/RENDER_SCALE,sp); - - - #endif - - spos += stepv; - //small bias - minZ = maxZ-(0.0001/dist)/ld(spos.z); - if(inwater) minZ = maxZ-0.0004/ld(spos.z); - maxZ += stepv.z; - } - - return vec3(1.1); -} - -vec3 GGX (vec3 n, vec3 v, vec3 l, float r, vec3 F0) { - r = pow(r,2.5); -// r*=r; - - vec3 h = l + v; - float hn = inversesqrt(dot(h, h)); - - float dotLH = clamp(dot(h,l)*hn,0.,1.); - float dotNH = clamp(dot(h,n)*hn,0.,1.) ; - float dotNL = clamp(dot(n,l),0.,1.); - float dotNHsq = dotNH*dotNH; - - float denom = dotNHsq * r - dotNHsq + 1.; - float D = r / (3.141592653589793 * denom * denom); - vec3 F = F0 + (1. - F0) * exp2((-5.55473*dotLH-6.98316)*dotLH); - float k2 = .25 * r; - - return dotNL * D * F / (dotLH*dotLH*(1.0-k2)+k2); -} - - - -#define PHYSICSMOD_FRAGMENT -#include "/lib/oceans.glsl" - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -/* RENDERTARGETS:2,7,11,14 */ -void main() { -if (gl_FragCoord.x * texelSize.x < RENDER_SCALE.x && gl_FragCoord.y * texelSize.y < RENDER_SCALE.y ) { - vec2 tempOffset = offsets[framemod8]; - vec3 fragpos = toScreenSpace(gl_FragCoord.xyz*vec3(texelSize/RENDER_SCALE,1.0)-vec3(vec2(tempOffset)*texelSize*0.5,0.0)); - - gl_FragData[0] = texture2D(texture, lmtexcoord.xy, Texture_MipMap_Bias) * color; - vec3 Albedo = toLinear(gl_FragData[0].rgb); - - float UnchangedAlpha = gl_FragData[0].a; - - float iswater = normalMat.w; - - #ifdef HAND - iswater = 0.1; - #endif - - #ifdef Vanilla_like_water - if (iswater > 0.5) { - gl_FragData[0].a = luma(Albedo.rgb); - Albedo = color.rgb * sqrt(luma(Albedo.rgb)); - } - #else - if (iswater > 0.9) { - Albedo = vec3(0.0); - gl_FragData[0] = vec4(vec3(0.0),1.0/255.0); - } - #endif - - - vec4 COLORTEST = vec4(Albedo,UnchangedAlpha); - - - vec3 p3 = mat3(gbufferModelViewInverse) * fragpos + gbufferModelViewInverse[3].xyz; - - vec3 normal = normalMat.xyz; - vec2 TangentNormal = vec2(0); // for refractions - - vec3 tangent2 = normalize(cross(tangent.rgb,normal)*tangent.w); - mat3 tbnMatrix = mat3(tangent.x, tangent2.x, normal.x, - tangent.y, tangent2.y, normal.y, - tangent.z, tangent2.z, normal.z); - - - - - /// ------ NORMALS ------ /// - - vec4 NormalTex = texture2D(normals, lmtexcoord.xy, Texture_MipMap_Bias).rgba; - NormalTex.xy = NormalTex.xy*2.0-1.0; - NormalTex.z = clamp(sqrt(1.0 - dot(NormalTex.xy, NormalTex.xy)),0.0,1.0) ; - TangentNormal = NormalTex.xy*0.5+0.5; - - normal = applyBump(tbnMatrix, NormalTex.xyz, 1.0); - - if (iswater > 0.95){ - #ifdef PhysicsMod_support - if(physics_iterationsNormal < 1.0){ - #endif - float bumpmult = 1.0; - vec3 bump = vec3(0); - vec3 posxz = p3+cameraPosition; - - posxz.xz -= posxz.y; - posxz.xyz = getParallaxDisplacement(posxz,iswater,bumpmult,normalize(tbnMatrix*fragpos)) ; - - bump = normalize(getWaveHeight(posxz.xz,iswater)); - - TangentNormal = bump.xy*0.5+0.5; // tangent space normals for refraction - - bump = bump * vec3(bumpmult, bumpmult, bumpmult) + vec3(0.0f, 0.0f, 1.0f - bumpmult); - normal = normalize(bump * tbnMatrix); - - #ifdef PhysicsMod_support - }else{ - /// ------ PHYSICS MOD OCEAN SHIT ------ /// - - WavePixelData wave = physics_wavePixel(physics_localPosition.xz, physics_localWaviness, physics_iterationsNormal, physics_gameTime); - // float Foam = wave.foam; - - // Albedo = mix(Albedo,vec3(1),Foam); - // gl_FragData[0].a = Foam; - - - normal = normalize(worldToView(wave.normal) + mix(normal, vec3(0.0), clamp(physics_localWaviness,0.0,1.0))); - - vec3 worldSpaceNormal = normal; - - vec3 bitangent = normalize(cross(tangent.xyz, worldSpaceNormal)); - mat3 tbn_new = mat3(tangent.xyz, binormal, worldSpaceNormal); - vec3 tangentSpaceNormal = worldSpaceNormal * tbn_new; - - TangentNormal = tangentSpaceNormal.xy * 0.5 + 0.5; - } - #endif - } - - gl_FragData[2] = vec4(encodeVec2(TangentNormal), encodeVec2(COLORTEST.rg), encodeVec2(COLORTEST.ba), UnchangedAlpha); - - - float NdotL = clamp(lightSign*dot(normal,sunVec) ,0.0,1.0); - NdotL = clamp((-15 + NdotL*255.0) / 240.0 ,0.0,1.0); - - float Shadows = 1.0; - int shadowmapindicator = 0; - //compute shadows only if not backface - if (NdotL > 0.001) { - vec3 p3 = mat3(gbufferModelViewInverse) * fragpos + gbufferModelViewInverse[3].xyz; - vec3 projectedShadowPosition = mat3(shadowModelView) * p3 + shadowModelView[3].xyz; - projectedShadowPosition = diagonal3(shadowProjection) * projectedShadowPosition + shadowProjection[3].xyz; - - //apply distortion - float distortFactor = calcDistort(projectedShadowPosition.xy); - projectedShadowPosition.xy *= distortFactor; - //do shadows only if on shadow map - if (abs(projectedShadowPosition.x) < 1.0-1.5/shadowMapResolution && abs(projectedShadowPosition.y) < 1.0-1.5/shadowMapResolution){ - - Shadows = 0.0; - projectedShadowPosition = projectedShadowPosition * vec3(0.5,0.5,0.5/6.0) + vec3(0.5,0.5,0.5); - - #ifdef BASIC_SHADOW_FILTER - const float threshMul = max(2048.0/shadowMapResolution*shadowDistance/128.0,0.95); - float distortThresh = (sqrt(1.0-NdotL*NdotL)/NdotL+0.7)/distortFactor; - float diffthresh = distortThresh/6000.0*threshMul; - - float noise = blueNoise(); - float rdMul = 4.0/shadowMapResolution; - - for(int i = 0; i < 9; i++){ - vec2 offsetS = tapLocation(i,9, 1.618,noise,0.0); - - float weight = 1.0+(i+noise)*rdMul/9.0*shadowMapResolution; - Shadows += shadow2D(shadow,vec3(projectedShadowPosition + vec3(rdMul*offsetS,-diffthresh*weight))).x/9.0; - } - #else - Shadows = shadow2D(shadow, projectedShadowPosition + vec3(0.0,0.0,-0.0001)).x; - #endif - - shadowmapindicator = 1; - } - } - - if(shadowmapindicator < 1) Shadows = clamp((lmtexcoord.w-0.8) * 5,0,1); - - #ifdef CLOUDS_SHADOWS - Shadows *= GetCloudShadow(p3); - #endif - - vec3 AmbientLightColor = averageSkyCol_Clouds; - vec3 DirectLightColor = lightCol.rgb/80.0; - - vec3 WS_normal = viewToWorld(normal); - vec3 ambientCoefs = WS_normal/dot(abs(WS_normal),vec3(1.)); - float skylight = clamp(ambientCoefs.y + 0.5,0.25,2.0); - - vec2 lightmaps2 = lmtexcoord.zw; - - - float lightleakfix = clamp(pow(eyeBrightnessSmooth.y/240. + lightmaps2.y,2) ,0.0,1.0); - - AmbientLightColor += (lightningEffect * 10) * skylight * pow(lightmaps2.y,2); - - vec3 Indirect_lighting = DoAmbientLighting(AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmaps2, skylight); - vec3 Direct_lighting = DoDirectLighting(DirectLightColor, Shadows, NdotL, 0.0); - - vec3 FinalColor = (Direct_lighting + Indirect_lighting) * Albedo; - - #ifdef Glass_Tint - float alphashit = min(pow(gl_FragData[0].a,2.0),1.0); - FinalColor *= alphashit; - #endif - - #ifdef WATER_REFLECTIONS - vec2 SpecularTex = texture2D(specular, lmtexcoord.xy, Texture_MipMap_Bias).rg; - - SpecularTex = (iswater > 0.0 && iswater < 0.9) && SpecularTex.r > 0.0 && SpecularTex.g < 0.9 ? SpecularTex : vec2(1.0,0.1); - - float roughness = max(pow(1.0-SpecularTex.r,2.0),0.05); - float f0 = SpecularTex.g; - - if (iswater > 0.0){ - vec3 Reflections_Final = vec3(0.0); - vec4 Reflections = vec4(0.0); - vec3 SkyReflection = vec3(0.0); - vec3 SunReflection = vec3(0.0); - - float indoors = clamp((lmtexcoord.w-0.6)*5.0, 0.0,1.0); - - vec3 reflectedVector = reflect(normalize(fragpos), normal); - float normalDotEye = dot(normal, normalize(fragpos)); - float fresnel = pow(clamp(1.0 + normalDotEye,0.0,1.0), 5.0); - - // snells window looking thing - #ifdef PhysicsMod_support - if(isEyeInWater == 1 && physics_iterationsNormal > 0.0) fresnel = clamp( 1.0 - (pow( normalDotEye * 1.66 ,25)),0.02,1.0); - #else - if(isEyeInWater == 1 ) fresnel = pow(clamp(1.66 + normalDotEye,0.0,1.0), 25.0); - #endif - - fresnel = mix(f0, 1.0, fresnel); - - vec3 wrefl = mat3(gbufferModelViewInverse)*reflectedVector; - - // SSR, Sky, and Sun reflections - #ifdef WATER_BACKGROUND_SPECULAR - SkyReflection = skyCloudsFromTex(wrefl,colortex4).rgb / 30.0; - if(isEyeInWater == 1) SkyReflection = vec3(0.0); - #endif - - #ifdef WATER_SUN_SPECULAR - SunReflection = Direct_lighting * GGX(normal, -normalize(fragpos), lightSign*sunVec, roughness, vec3(f0)); - #endif - #ifdef SCREENSPACE_REFLECTIONS - if(iswater > 0.0){ - vec3 rtPos = rayTrace(reflectedVector,fragpos.xyz, interleaved_gradientNoise(), fresnel, isEyeInWater == 1); - if (rtPos.z < 1.){ - vec3 previousPosition = mat3(gbufferModelViewInverse) * toScreenSpace(rtPos) + gbufferModelViewInverse[3].xyz + cameraPosition-previousCameraPosition; - previousPosition = mat3(gbufferPreviousModelView) * previousPosition + gbufferPreviousModelView[3].xyz; - previousPosition.xy = projMAD(gbufferPreviousProjection, previousPosition).xy / -previousPosition.z * 0.5 + 0.5; - if (previousPosition.x > 0.0 && previousPosition.y > 0.0 && previousPosition.x < 1.0 && previousPosition.x < 1.0) { - Reflections.a = 1.0; - Reflections.rgb = texture2D(colortex5,previousPosition.xy).rgb; - } - } - } - #endif - - float visibilityFactor = clamp(exp2((pow(roughness,3.0) / f0) * -4),0,1); - - Reflections_Final = mix(SkyReflection*indoors, Reflections.rgb, Reflections.a); - Reflections_Final = mix(FinalColor, Reflections_Final, fresnel * visibilityFactor); - Reflections_Final += SunReflection * lightleakfix; - - gl_FragData[0].rgb = Reflections_Final; - - //correct alpha channel with fresnel - gl_FragData[0].a = mix(gl_FragData[0].a, 1.0, fresnel); - - if (gl_FragData[0].r > 65000.) gl_FragData[0].rgba = vec4(0.); - - } else { - gl_FragData[0].rgb = FinalColor; - } - #else - gl_FragData[0].rgb = FinalColor; - #endif - - #ifndef HAND - gl_FragData[1] = vec4(Albedo,iswater); - #endif - - gl_FragData[3].a = max(lmtexcoord.w*blueNoise()*0.05 + lmtexcoord.w,0.0); -} -} \ No newline at end of file diff --git a/shaders/gbuffers_all_translucent.vsh b/shaders/gbuffers_all_translucent.vsh deleted file mode 100644 index eb824b0..0000000 --- a/shaders/gbuffers_all_translucent.vsh +++ /dev/null @@ -1,183 +0,0 @@ -// #version 120 -//#extension GL_EXT_gpu_shader4 : disable -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" -#include "/lib/bokeh.glsl" - -/* -!! DO NOT REMOVE !! -This code is from Chocapic13' shaders -Read the terms of modification and sharing before changing something below please ! -!! DO NOT REMOVE !! -*/ - -flat varying vec3 averageSkyCol_Clouds; -flat varying vec3 averageSkyCol; - -flat varying vec4 lightCol; - - -varying vec4 lmtexcoord; -varying vec4 color; -varying vec4 normalMat; -varying vec3 binormal; -varying vec4 tangent; - -uniform mat4 gbufferModelViewInverse; -varying vec3 viewVector; - -flat varying int glass; - -attribute vec4 at_tangent; -attribute vec4 mc_Entity; - -uniform sampler2D colortex4; - -uniform vec3 sunPosition; -flat varying vec3 WsunVec; -uniform float sunElevation; - -varying vec4 tangent_other; - -uniform int frameCounter; -uniform float far; -uniform float aspectRatio; -uniform float viewHeight; -uniform float viewWidth; -uniform int hideGUI; -uniform float screenBrightness; - -uniform vec2 texelSize; -uniform int framemod8; - const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); -#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); -} - - - - - - - - -#define PHYSICSMOD_VERTEX -#include "/lib/oceans.glsl" - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - - vec4 Swtich_gl_vertex = gl_Vertex; - - #ifdef PhysicsMod_support - if(physics_iterationsNormal > 0.0){ - // basic texture to determine how shallow/far away from the shore the water is - physics_localWaviness = texelFetch(physics_waviness, ivec2(gl_Vertex.xz) - physics_textureOffset, 0).r; - // transform gl_Vertex (since it is the raw mesh, i.e. not transformed yet) - vec4 finalPosition = vec4(gl_Vertex.x, gl_Vertex.y + physics_waveHeight(gl_Vertex.xz, PHYSICS_ITERATIONS_OFFSET, physics_localWaviness, physics_gameTime), gl_Vertex.z, gl_Vertex.w); - // pass this to the fragment shader to fetch the texture there for per fragment normals - physics_localPosition = finalPosition.xyz; - - Swtich_gl_vertex.xyz = finalPosition.xyz ; - } - #endif - - lmtexcoord.xy = (gl_MultiTexCoord0).xy; - vec2 lmcoord = gl_MultiTexCoord1.xy / 255.0; // is this even correct? lol - lmtexcoord.zw = lmcoord; - - - - vec3 position = mat3(gl_ModelViewMatrix) * vec3(Swtich_gl_vertex) + gl_ModelViewMatrix[3].xyz; - gl_Position = toClipSpace3(position); - - color = vec4(gl_Color.rgb,1.0); - - float mat = 0.0; - - if(mc_Entity.x == 8.0) { - mat = 1.0; - - gl_Position.z -= 1e-4; - } - - if (mc_Entity.x == 10002) mat = 0.2; - if (mc_Entity.x == 72) mat = 0.5; - - #ifdef ENTITIES - mat = 0.2; - #endif - - - tangent = vec4(normalize(gl_NormalMatrix *at_tangent.rgb),at_tangent.w); - - normalMat = vec4(normalize(gl_NormalMatrix *gl_Normal), 1.0); - normalMat.a = mat; - - - - - - vec3 tangent2 = normalize( gl_NormalMatrix *at_tangent.rgb); - binormal = normalize(cross(tangent2.rgb,normalMat.xyz)*at_tangent.w); - - mat3 tbnMatrix = mat3(tangent2.x, binormal.x, normalMat.x, - tangent2.y, binormal.y, normalMat.y, - tangent2.z, binormal.z, normalMat.z); - - viewVector = ( gl_ModelViewMatrix * Swtich_gl_vertex).xyz; - viewVector = normalize(tbnMatrix * viewVector); - - - - #ifdef TAA_UPSCALING - gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w; - #endif - #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; - #endif - - vec3 sc = texelFetch2D(colortex4,ivec2(6,37),0).rgb; - - - lightCol.a = float(sunElevation > 1e-5)*2-1.; - lightCol.rgb = sc; - - WsunVec = lightCol.a*normalize(mat3(gbufferModelViewInverse) *sunPosition); - - #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 - - averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(0,37),0).rgb; - // averageSkyCol = texelFetch2D(colortex4,ivec2(1,37),0).rgb; - -} diff --git a/shaders/gbuffers_armor_glint.fsh b/shaders/gbuffers_armor_glint.fsh deleted file mode 100644 index 430bda4..0000000 --- a/shaders/gbuffers_armor_glint.fsh +++ /dev/null @@ -1,25 +0,0 @@ -#version 120 - -#include "/lib/settings.glsl" - -varying vec4 lmtexcoord; -varying vec4 color; -uniform sampler2D texture; - -//faster and actually more precise than pow 2.2 -vec3 toLinear(vec3 sRGB){ - return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); -} - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -/* DRAWBUFFERS:2 */ - -void main() { - - gl_FragData[0] = vec4(toLinear( texture2D(texture, lmtexcoord.xy).rgb * color.rgb), 0.1); - -} diff --git a/shaders/gbuffers_armor_glint.vsh b/shaders/gbuffers_armor_glint.vsh deleted file mode 100644 index acb4c70..0000000 --- a/shaders/gbuffers_armor_glint.vsh +++ /dev/null @@ -1,47 +0,0 @@ -#version 120 - -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" - -/* -!! DO NOT REMOVE !! -This code is from Chocapic13' shaders -Read the terms of modification and sharing before changing something below please ! -!! DO NOT REMOVE !! -*/ - -varying vec4 lmtexcoord; -varying vec4 color; - -uniform vec2 texelSize; -uniform int framemod8; -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - gl_Position = ftransform(); - - lmtexcoord.xy = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; - - vec2 lmcoord = gl_MultiTexCoord1.xy/255.; - - lmtexcoord.zw = lmcoord*lmcoord; - - color = gl_Color; - - #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; - #endif -} diff --git a/shaders/gbuffers_basic.fsh b/shaders/gbuffers_basic.fsh deleted file mode 100644 index 77dd9a3..0000000 --- a/shaders/gbuffers_basic.fsh +++ /dev/null @@ -1,5 +0,0 @@ -#version 120 - -#define ENTITIES -#define WORLD -#include "gbuffers_all_solid.fsh" \ No newline at end of file diff --git a/shaders/gbuffers_basic.vsh b/shaders/gbuffers_basic.vsh deleted file mode 100644 index e1bf378..0000000 --- a/shaders/gbuffers_basic.vsh +++ /dev/null @@ -1,5 +0,0 @@ -#version 120 - -#define ENTITIES -#define WORLD -#include "gbuffers_all_solid.vsh" \ No newline at end of file diff --git a/shaders/gbuffers_beaconbeam.fsh b/shaders/gbuffers_beaconbeam.fsh deleted file mode 100644 index 4ddf770..0000000 --- a/shaders/gbuffers_beaconbeam.fsh +++ /dev/null @@ -1,47 +0,0 @@ -#version 120 - - -varying vec4 color; -varying vec2 texcoord; - -uniform sampler2D texture; - -//faster and actually more precise than pow 2.2 -vec3 toLinear(vec3 sRGB){ - return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); -} - -vec4 encode (vec3 n, vec2 lightmaps){ - n.xy = n.xy / dot(abs(n), vec3(1.0)); - n.xy = n.z <= 0.0 ? (1.0 - abs(n.yx)) * sign(n.xy) : n.xy; - vec2 encn = clamp(n.xy * 0.5 + 0.5,-1.0,1.0); - - return vec4(encn,vec2(lightmaps.x,lightmaps.y)); -} - -//encoding by jodie -float encodeVec2(vec2 a){ - const vec2 constant1 = vec2( 1., 256.) / 65535.; - vec2 temp = floor( a * 255. ); - return temp.x*constant1.x+temp.y*constant1.y; -} -float encodeVec2(float x,float y){ - return encodeVec2(vec2(x,y)); -} - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -/* DRAWBUFFERS:28 */ - -void main() { - - vec4 Albedo = vec4(texture2D(texture, texcoord).rgb*5.0,1.0); - Albedo *= color; - Albedo.rgb = toLinear(Albedo.rgb); - - gl_FragData[0] = Albedo; - gl_FragData[1] = vec4(0.0,0.0,0.0,0.9); -} \ No newline at end of file diff --git a/shaders/gbuffers_beaconbeam.vsh b/shaders/gbuffers_beaconbeam.vsh deleted file mode 100644 index 845f4ba..0000000 --- a/shaders/gbuffers_beaconbeam.vsh +++ /dev/null @@ -1,48 +0,0 @@ -#version 120 -//#extension GL_EXT_gpu_shader4 : disable - -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" - -/* -!! DO NOT REMOVE !! -This code is from Chocapic13' shaders -Read the terms of modification and sharing before changing something below please ! -!! DO NOT REMOVE !! -*/ - -varying vec4 color; -varying vec2 texcoord; - -uniform vec2 texelSize; -uniform int framemod8; -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - - gl_Position = ftransform(); - - if(gl_Color.a < 1.0 ) gl_Position = vec4(10,10,10,1); - - texcoord = (gl_MultiTexCoord0).xy; - color = gl_Color; - - #ifdef TAA_UPSCALING - gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w; - #endif - #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; - #endif -} diff --git a/shaders/gbuffers_block.fsh b/shaders/gbuffers_block.fsh deleted file mode 100644 index c7c36b4..0000000 --- a/shaders/gbuffers_block.fsh +++ /dev/null @@ -1,5 +0,0 @@ -#version 120 - -#define WORLD -#define BLOCKENTITIES -#include "gbuffers_all_solid.fsh" \ No newline at end of file diff --git a/shaders/gbuffers_block.vsh b/shaders/gbuffers_block.vsh deleted file mode 100644 index 5decf09..0000000 --- a/shaders/gbuffers_block.vsh +++ /dev/null @@ -1,5 +0,0 @@ -#version 120 - -#define WORLD -#define BLOCKENTITIES -#include "gbuffers_all_solid.vsh" \ No newline at end of file diff --git a/shaders/gbuffers_clouds.vsh b/shaders/gbuffers_clouds.vsh deleted file mode 100644 index d83bef7..0000000 --- a/shaders/gbuffers_clouds.vsh +++ /dev/null @@ -1,5 +0,0 @@ -#version 120 - -void main() { - gl_Position.xyz = vec3(-1.0); -} diff --git a/shaders/gbuffers_damagedblock.fsh b/shaders/gbuffers_damagedblock.fsh deleted file mode 100644 index ef97bfc..0000000 --- a/shaders/gbuffers_damagedblock.fsh +++ /dev/null @@ -1,4 +0,0 @@ -#version 120 - -#define WORLD -#include "gbuffers_all_translucent.fsh" \ No newline at end of file diff --git a/shaders/gbuffers_damagedblock.vsh b/shaders/gbuffers_damagedblock.vsh deleted file mode 100644 index dca46e5..0000000 --- a/shaders/gbuffers_damagedblock.vsh +++ /dev/null @@ -1,4 +0,0 @@ -#version 120 - -#define WORLD -#include "gbuffers_all_translucent.vsh" \ No newline at end of file diff --git a/shaders/gbuffers_entities.fsh b/shaders/gbuffers_entities.fsh deleted file mode 100644 index 2576694..0000000 --- a/shaders/gbuffers_entities.fsh +++ /dev/null @@ -1,8 +0,0 @@ -#version 120 - -#define WORLD -#define ENTITIES - -#define ENTITY_PHYSICSMOD_SNOW 829925 - -#include "gbuffers_all_solid.fsh" \ No newline at end of file diff --git a/shaders/gbuffers_entities.vsh b/shaders/gbuffers_entities.vsh deleted file mode 100644 index 2182ca9..0000000 --- a/shaders/gbuffers_entities.vsh +++ /dev/null @@ -1,7 +0,0 @@ -#version 120 - -#define WORLD -#define ENTITIES - -#define ENTITY_PHYSICSMOD_SNOW 829925 -#include "gbuffers_all_solid.vsh" \ No newline at end of file diff --git a/shaders/gbuffers_hand.fsh b/shaders/gbuffers_hand.fsh deleted file mode 100644 index d8f099d..0000000 --- a/shaders/gbuffers_hand.fsh +++ /dev/null @@ -1,9 +0,0 @@ -#version 120 - -#define WORLD -#define HAND - -// #define GETNORMAL -// #define GETSPECULAR - -#include "gbuffers_all_solid.fsh" \ No newline at end of file diff --git a/shaders/gbuffers_hand.vsh b/shaders/gbuffers_hand.vsh deleted file mode 100644 index 191e977..0000000 --- a/shaders/gbuffers_hand.vsh +++ /dev/null @@ -1,6 +0,0 @@ -#version 120 - -#define WORLD -#define HAND - -#include "gbuffers_all_solid.vsh" \ No newline at end of file diff --git a/shaders/gbuffers_hand_water.fsh b/shaders/gbuffers_hand_water.fsh deleted file mode 100644 index ddf178d..0000000 --- a/shaders/gbuffers_hand_water.fsh +++ /dev/null @@ -1,5 +0,0 @@ -#version 120 - -#define HAND -// #define WORLD -#include "gbuffers_all_translucent.fsh" \ No newline at end of file diff --git a/shaders/gbuffers_hand_water.vsh b/shaders/gbuffers_hand_water.vsh deleted file mode 100644 index 05dca80..0000000 --- a/shaders/gbuffers_hand_water.vsh +++ /dev/null @@ -1,5 +0,0 @@ -#version 120 - -#define HAND -// #define WORLD -#include "gbuffers_all_translucent.vsh" \ No newline at end of file diff --git a/shaders/gbuffers_skytextured.vsh b/shaders/gbuffers_skytextured.vsh deleted file mode 100644 index 7166e51..0000000 --- a/shaders/gbuffers_skytextured.vsh +++ /dev/null @@ -1,5 +0,0 @@ -#version 120 - -void main() { - gl_Position.xyz = vec3(-10.0); -} \ No newline at end of file diff --git a/shaders/gbuffers_terrain.fsh b/shaders/gbuffers_terrain.fsh deleted file mode 100644 index 97072f6..0000000 --- a/shaders/gbuffers_terrain.fsh +++ /dev/null @@ -1,4 +0,0 @@ -#version 120 - -#define WORLD -#include "gbuffers_all_solid.fsh" \ No newline at end of file diff --git a/shaders/gbuffers_terrain.vsh b/shaders/gbuffers_terrain.vsh deleted file mode 100644 index 5078151..0000000 --- a/shaders/gbuffers_terrain.vsh +++ /dev/null @@ -1,4 +0,0 @@ -#version 120 - -#define WORLD -#include "gbuffers_all_solid.vsh" \ No newline at end of file diff --git a/shaders/gbuffers_textured.fsh b/shaders/gbuffers_textured.fsh deleted file mode 100644 index bcc6769..0000000 --- a/shaders/gbuffers_textured.fsh +++ /dev/null @@ -1,5 +0,0 @@ -#version 120 - -// #define WEATHER -#define PARTICLES -#include "gbuffers_all_particles.fsh" \ No newline at end of file diff --git a/shaders/gbuffers_textured.vsh b/shaders/gbuffers_textured.vsh deleted file mode 100644 index 1381905..0000000 --- a/shaders/gbuffers_textured.vsh +++ /dev/null @@ -1,5 +0,0 @@ -#version 120 - -// #define WEATHER -#define PARTICLES -#include "gbuffers_all_particles.vsh" \ No newline at end of file diff --git a/shaders/gbuffers_textured_lit.fsh b/shaders/gbuffers_textured_lit.fsh deleted file mode 100644 index b867265..0000000 --- a/shaders/gbuffers_textured_lit.fsh +++ /dev/null @@ -1,6 +0,0 @@ -#version 120 - -#define LIT -// #define WEATHER -#define PARTICLES -#include "gbuffers_all_particles.fsh" \ No newline at end of file diff --git a/shaders/gbuffers_textured_lit.vsh b/shaders/gbuffers_textured_lit.vsh deleted file mode 100644 index 1381905..0000000 --- a/shaders/gbuffers_textured_lit.vsh +++ /dev/null @@ -1,5 +0,0 @@ -#version 120 - -// #define WEATHER -#define PARTICLES -#include "gbuffers_all_particles.vsh" \ No newline at end of file diff --git a/shaders/gbuffers_water.fsh b/shaders/gbuffers_water.fsh deleted file mode 100644 index 9208bed..0000000 --- a/shaders/gbuffers_water.fsh +++ /dev/null @@ -1,4 +0,0 @@ -#version 120 - -// #define WORLD -#include "gbuffers_all_translucent.fsh" \ No newline at end of file diff --git a/shaders/gbuffers_water.vsh b/shaders/gbuffers_water.vsh deleted file mode 100644 index 5228fab..0000000 --- a/shaders/gbuffers_water.vsh +++ /dev/null @@ -1,4 +0,0 @@ -#version 120 - -// #define WORLD -#include "gbuffers_all_translucent.vsh" \ No newline at end of file diff --git a/shaders/gbuffers_weather.fsh b/shaders/gbuffers_weather.fsh deleted file mode 100644 index eba2476..0000000 --- a/shaders/gbuffers_weather.fsh +++ /dev/null @@ -1,5 +0,0 @@ -#version 120 - -#define WEATHER -#define PARTICLES -#include "gbuffers_all_particles.fsh" \ No newline at end of file diff --git a/shaders/gbuffers_weather.vsh b/shaders/gbuffers_weather.vsh deleted file mode 100644 index b63e120..0000000 --- a/shaders/gbuffers_weather.vsh +++ /dev/null @@ -1,5 +0,0 @@ -#version 120 - -#define WEATHER -#define PARTICLES -#include "gbuffers_all_particles.vsh" \ No newline at end of file diff --git a/shaders/lang/en_us.lang b/shaders/lang/en_us.lang index 6e987a5..6e2557b 100644 --- a/shaders/lang/en_us.lang +++ b/shaders/lang/en_us.lang @@ -121,8 +121,7 @@ screen.Fog = Fog Settings option.Evening_Cloudy_Fog = Cloudy Evening Fog Density option.Night_Cloudy_Fog = Cloudy Night Fog Density - screen.Biome_Fog = Biome Specific Fog - option.Biome_specific_environment = Biome Specific Fog + option.PER_BIOME_ENVIRONMENT = Per Biome Environments screen.Cave_Fog = Cave Fog option.Cave_Fog = Cave Fog @@ -190,7 +189,30 @@ screen.Climate = Climate Settings option.Spring_Leaf_R = Red Amount (for leaves) option.Spring_Leaf_G = Green Amount (for leaves) option.Spring_Leaf_B = Blue Amount (for leaves) + + screen.SWAMP = Swamp + option.SWAMP_ENV = Swamp Environment + option.SWAMP_UNIFORM_DENSITY = Uniform Fog Density + option.SWAMP_CLOUDY_DENSITY = Cloudy Fog Density + option.SWAMP_R = Red Amount + option.SWAMP_G = Green Amount + option.SWAMP_B = Blue Amount + screen.JUNGLE = Jungle + option.JUNGLE_ENV = Jungle Environment + option.JUNGLE_UNIFORM_DENSITY = Uniform Fog Density + option.JUNGLE_CLOUDY_DENSITY = Cloudy Fog Density + option.JUNGLE_R = Red Amount + option.JUNGLE_G = Green Amount + option.JUNGLE_B = Blue Amount + + screen.DARKFOREST = Dark Forest + option.DARKFOREST_ENV = Dark Forest Environment + option.DARKFOREST_UNIFORM_DENSITY = Uniform Fog Density + option.DARKFOREST_CLOUDY_DENSITY = Cloudy Fog Density + option.DARKFOREST_R = Red Amount + option.DARKFOREST_G = Green Amount + option.DARKFOREST_B = Blue Amount screen.World = World screen.Water = Water Settings @@ -252,6 +274,7 @@ screen.LabPBR = Lab PBR screen.POM = Parallax Occlusion Mapping / POM + option.HEIGTHMAP_DEPTH_OFFSET = Heightmap in Depth option.POM = Parallax Occlusion Mapping option.MAX_ITERATIONS = Quality option.POM_DEPTH = Depth @@ -358,6 +381,7 @@ screen.Emissives.comment = §bWhat is this?§r Emissiveness is just how much lig option.Emissive_Curve.comment = This determines how quickly the emissive texture reaches its brightest point. 1.0 is linear. screen.POM.comment = Configure settings related to parallax occlusion mapping that uses information provided by a resourcepack. + option.HEIGTHMAP_DEPTH_OFFSET.comment = §bWhat is this?§r This makes the resourcepack provided "heightmap" offset the depth that a lot of effects use. This allows for finer details nearby, and can work as a "budget POM". §aPERFORMANCE COST:§r low to medium - use this if POM is too hard to run. option.POM.comment = §bWhat is this?§r This effect attempts to create 3D geometry where there previously was none, by using a special image from a resourcepack. This effect basically only pushes inwards, so some artifacts can exist when looking at steep angles. §aPERFORMANCE COST:§r medium to high option.MAX_ITERATIONS.comment = Configure the quality of the parallax occlusion mapping effect. if you see individual layers when looking up close, inscreasing this makes more layers, so they will become harder to see. §aPERFORMANCE COST:§r high option.POM_DEPTH.comment = How deep the parallax occlusion mapping effect can go into a surface. §aPERFORMANCE COST:§r very low @@ -382,9 +406,6 @@ screen.Fog.comment = Configure settings related to the raymarched volumetric fog screen.TOD_fog.comment = Configure the density of fog that appears at specific times of the day. option.TOD_Fog_mult.comment = Configure how much total fog there is that appears at specific times during the day. this does not effect the atmospheric haze. - screen.Biome_Fog.comment = Configure settings for fog that appear only in specific biomes. - option.Biome_specific_environment.comment = Toggle fog that only appears in specific biomes. §aPERFORMANCE COST:§r low - screen.Cave_Fog.comment = Configure settings for fog that appears when you are in very dark places such as caves. option.Cave_Fog.comment = Toggle the fog that appears in dark places. It is impossible to accurately tell when you are in a cave with a shader, so this fog might appear in places that are not a cave. §aPERFORMANCE COST:§r low option.CaveFogFallOff.comment = Configure how quickly the fog gradient reaches its brightest part. @@ -428,6 +449,18 @@ screen.Climate.comment = Configure settings related to the climate, like seasona screen.Fall_colors.comment = Configure the colors of vegetation during fall. screen.Winter_colors.comment = Configure the colors of vegetation during winter. screen.Spring_colors.comment = Configure the colors of vegetation during spring. + + option.PER_BIOME_ENVIRONMENT.comment = Toggle all special environments that only appear in some biomes. §aPERFORMANCE COST:§r low + + screen.SWAMP.comment = Configure the environment in this biome type. + option.SWAMP_ENV.comment = Toggle the environment only for this biome type. The other biome environments remain active even if this one is disabled. + + screen.JUNGLE.comment = Configure the environment in this biome type. + option.JUNGLE_ENV.comment = Toggle the environment only for this biome type. The other biome environments remain active even if this one is disabled. + + screen.DARKFOREST.comment = Configure the environment in this biome type. + 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. option.WAVY_PLANTS.comment = Toggle waving plants. §aPERFORMANCE COST:§r very low diff --git a/shaders/lang/pt_br.lang b/shaders/lang/pt_br.lang index 55a281d..f6873bf 100644 --- a/shaders/lang/pt_br.lang +++ b/shaders/lang/pt_br.lang @@ -13,7 +13,7 @@ screen.Misc_Settings = Configurações Diversas option.ambientLight_only=Apenas Luz Ambiente option.Glass_Tint=Tintura de Vidro option.display_LUT=Mostrar LUT - option.ambientSSS_view=Visualização de SSS vindo do Céu + option.SSS_view=Visualização de SSS vindo do Céu screen.Sun_and_Moon_Colors = Cores Lua/Sol option.sunPathRotation = Ângulo do Sol @@ -138,8 +138,7 @@ screen.Fog = Ajustes da Névoa option.Evening_Cloudy_Fog = Densidade da Nublagem à Tarde option.Night_Cloudy_Fog = Densidade da Nublagem à Noite - screen.Biome_Fog = Névoa Própria de Bioma - option.Biome_specific_environment = Névoa Própria de Bioma + option.PER_BIOME_ENVIRONMENT = Névoa Própria de Bioma screen.Cave_Fog = Névoa em Caverna option.Cave_Fog = Névoa em Caverna @@ -423,8 +422,7 @@ screen.Fog.comment = Ajustes relacionados à névoa volumétrica ou névoa dista screen.TOD_fog.comment = Ajusta a densidade da névoa que aparece em horários especifícos do dia. option.TOD_Fog_mult.comment = Ajusta quantidade total de névoa que aparece em horários especifícos do dia. Isso não afeta a névoa atmosférica. - screen.Biome_Fog.comment = Ajustes para a névoa que apenas aparece em biomas especifícos. - option.Biome_specific_environment.comment = Habilita uma névoa que apenas aparece em biomas especifícos. §aCUSTO DE PERFORMANCE:§r Baixo + option.PER_BIOME_ENVIRONMENT.comment = Habilita uma névoa que apenas aparece em biomas especifícos. §aCUSTO DE PERFORMANCE:§r Baixo screen.Cave_Fog.comment = Ajustes para a névoa que aparece em lugares escuros, como cavernas. option.Cave_Fog = Névoa de Caverna diff --git a/shaders/lang/zh_cn.lang b/shaders/lang/zh_cn.lang index de3ca95..b1e26c5 100644 --- a/shaders/lang/zh_cn.lang +++ b/shaders/lang/zh_cn.lang @@ -119,8 +119,7 @@ screen.Fog = 雾气设置 option.Night_Uniform_Fog = 夜晚 - 雾气密度 option.Night_Cloudy_Fog =夜 晚 - 云雾密度 - screen.Biome_Fog = 群系雾 - option.Biome_specific_environment = 生物群系特定雾气 + option.PER_BIOME_ENVIRONMENT = 生物群系特定雾气 screen.Cave_Fog = 洞穴雾气 option.Cave_fog = 洞穴雾气 @@ -378,8 +377,7 @@ screen.Fog.comment = 配置和光线行进体积雾, 基于距离的雾气相关 screen.TOD_fog.comment = 配置一天中特定时间出现的雾气的密度. option.TOD_Fog_mult.comment = 配置一天中特定时间出现的总体雾气量. 本选项不影响大气雾霾密度. - screen.Biome_Fog.comment = 配置仅出现在特定群系的的雾气. - option.Biome_specific_environment.comment = 特定群系的特殊雾气效果开关. §a性能消耗水平:§r 低. + option.PER_BIOME_ENVIRONMENT.comment = 特定群系的特殊雾气效果开关. §a性能消耗水平:§r 低. screen.Cave_Fog.comment = 配置仅出现在黑暗区域的雾气设置, 例如洞穴. option.Cave_Fog.comment = 仅出现在黑暗区域的雾气. 因为光影不可能准确地判断出你是否在一个洞穴里, 所以这种雾气可能会出现在不是洞穴的地方. §a性能消耗水平:§r 低. @@ -564,7 +562,7 @@ screen.Post_Processing.comment = 配置所有后处理效果设置, 从抗锯齿 option.Glass_Tint=玻璃色调 option.Glass_Tint.comment=背景通过混合玻璃本身的颜色获得强烈的色调. option.display_LUT=显示 LUT - option.ambientSSS_view=天空光次表面散射视图 + option.SSS_view=天空光次表面散射视图 #Climate diff --git a/shaders/lib/DailyWeatherSettings.glsl b/shaders/lib/DailyWeatherSettings.glsl new file mode 100644 index 0000000..bb31c23 --- /dev/null +++ b/shaders/lib/DailyWeatherSettings.glsl @@ -0,0 +1,3 @@ +#if Cumulus_coverage == 1.0 + variable.float.VariableCoverage = 1.0 +#endif \ No newline at end of file diff --git a/shaders/lib/PhotonGTAO.glsl b/shaders/lib/PhotonGTAO.glsl index dd3478a..d196543 100644 --- a/shaders/lib/PhotonGTAO.glsl +++ b/shaders/lib/PhotonGTAO.glsl @@ -122,7 +122,7 @@ float calculate_maximum_horizon_angle( for (int i = 0; i < GTAO_HORIZON_STEPS; ++i, ray_pos += ray_step) { - float depth = texelFetch(depthtex1, ivec2(clamp(ray_pos,0.0,1.0) * view_res * taau_render_scale - 0.5), 0).x; + float depth = texelFetch2D(depthtex1, ivec2(clamp(ray_pos,0.0,1.0) * view_res * taau_render_scale - 0.5), 0).x; if (depth == 1.0 || depth < hand_depth || depth == screen_pos.z) continue; @@ -142,9 +142,8 @@ float calculate_maximum_horizon_angle( return fast_acos(clamp(max_cos_theta, -1.0, 1.0)); } -float ambient_occlusion(vec3 screen_pos, vec3 view_pos, vec3 view_normal, vec2 dither , inout vec3 debug) { +float ambient_occlusion(vec3 screen_pos, vec3 view_pos, vec3 view_normal, vec2 dither) { float ao = 0.0; - vec3 bent_normal = vec3(0.0); // Construct local working space vec3 viewer_dir = normalize(-view_pos); @@ -176,11 +175,9 @@ float ambient_occlusion(vec3 screen_pos, vec3 view_pos, vec3 view_normal, vec2 d max_horizon_angles = gamma + clamp(vec2(-1.0, 1.0) * max_horizon_angles - gamma, -half_pi, half_pi) ; - vec3 max_horizon_angles2 = mat3(gbufferModelViewInverse) * projected_normal; - ao += integrate_arc(max_horizon_angles, gamma, cos_gamma) * len_sq * norm * max_horizon_angles.y ; + ao += integrate_arc(max_horizon_angles, gamma, cos_gamma) * len_sq * norm ; } - ao *= rcp(float(GTAO_SLICES)); - return ao; + return ao*(ao*0.5+0.5); } diff --git a/shaders/lib/ROBOBO_sky.glsl b/shaders/lib/ROBOBO_sky.glsl index b6a67cb..507e248 100644 --- a/shaders/lib/ROBOBO_sky.glsl +++ b/shaders/lib/ROBOBO_sky.glsl @@ -95,19 +95,19 @@ vec3 sky_transmittance(vec3 position, vec3 direction, const float steps) { vec3 calculateAtmosphere(vec3 background, vec3 viewVector, vec3 upVector, vec3 sunVector, vec3 moonVector, out vec2 pid, out vec3 transmittance, const int iSteps, float noise) { const int jSteps = 4; - vec3 viewPosition = (sky_planetRadius + eyeAltitude) * upVector; + vec3 viewPos = (sky_planetRadius + eyeAltitude) * upVector; - vec2 aid = rsi(viewPosition, viewVector, sky_atmosphereRadius); + vec2 aid = rsi(viewPos, viewVector, sky_atmosphereRadius); if (aid.y < 0.0) {transmittance = vec3(1.0); return vec3(0.0);} - pid = rsi(viewPosition, viewVector, sky_planetRadius * 0.998); + pid = rsi(viewPos, viewVector, sky_planetRadius * 0.998); bool planetIntersected = pid.y >= 0.0; vec2 sd = vec2((planetIntersected && pid.x < 0.0) ? pid.y : max(aid.x, 0.0), (planetIntersected && pid.x > 0.0) ? pid.x : aid.y); float stepSize = (sd.y - sd.x) * (1.0 / iSteps); vec3 increment = viewVector * stepSize; - vec3 position = viewVector * sd.x + viewPosition; + vec3 position = viewVector * sd.x + viewPos; position += increment * (0.34*noise); vec2 phaseSun = sky_phase(dot(viewVector, sunVector ), 0.8); diff --git a/shaders/lib/Shadow_Params.glsl b/shaders/lib/Shadow_Params.glsl index 7f5e5e3..569a972 100644 --- a/shaders/lib/Shadow_Params.glsl +++ b/shaders/lib/Shadow_Params.glsl @@ -1,4 +1,3 @@ - const float k = 1.8; const float d0 = 0.04; const float d1 = 0.61; @@ -12,8 +11,63 @@ vec4 BiasShadowProjection(in vec4 projectedShadowSpacePosition) { return projectedShadowSpacePosition; } - - float calcDistort(vec2 worldpos){ return 1.0/(log(length(worldpos)*b+a)*k); } + +uniform float far; + +/* +mat4 BuildOrthoProjectionMatrix(const in float width, const in float height, const in float zNear, const in float zFar) { + return mat4( + vec4(2.0 / width, 0.0, 0.0, 0.0), + vec4(0.0, 2.0 / height, 0.0, 0.0), + vec4(0.0, 0.0, -2.0 / (zFar - zNear), 0.0), + vec4(0.0, 0.0, -(zFar + zNear)/(zFar - zNear), 1.0)); +} + +mat4 BuildTranslationMatrix(const in vec3 delta) { + return mat4( + vec4(1.0, 0.0, 0.0, 0.0), + vec4(0.0, 1.0, 0.0, 0.0), + vec4(0.0, 0.0, 1.0, 0.0), + vec4(delta, 1.0)); +} + + +vec3 LightDir = vec3(0.0, 1.0, 0.0); + +// vec3 LightDir = vec3(sin(frameTimeCounter*10), 0.2, -cos(frameTimeCounter*10)); +uniform vec3 CamPos; +const float shadowIntervalSize = 2.0f; +vec3 GetShadowIntervalOffset() { + return fract(CamPos / shadowIntervalSize) * shadowIntervalSize - vec3(3,0,1); +} + +mat4 BuildShadowViewMatrix(const in vec3 localLightDir) { + //#ifndef WORLD_END + // return shadowModelView; + //#else + const vec3 worldUp = vec3(0, 0, -1); + + vec3 zaxis = localLightDir; + vec3 xaxis = normalize(cross(worldUp, zaxis)); + vec3 yaxis = normalize(cross(zaxis, xaxis)); + + mat4 shadowModelViewEx = mat4(1.0); + shadowModelViewEx[0].xyz = vec3(xaxis.x, yaxis.x, zaxis.x); + shadowModelViewEx[1].xyz = vec3(xaxis.y, yaxis.y, zaxis.y); + shadowModelViewEx[2].xyz = vec3(xaxis.z, yaxis.z, zaxis.z); + + vec3 intervalOffset = GetShadowIntervalOffset(); + mat4 translation = BuildTranslationMatrix(intervalOffset); + + return shadowModelViewEx * translation ; + //#endif +} + +mat4 BuildShadowProjectionMatrix() { + float maxDist = min(shadowDistance, far); + return BuildOrthoProjectionMatrix(maxDist, maxDist, -far, far); +} +*/ \ No newline at end of file diff --git a/shaders/lib/Shadows.glsl b/shaders/lib/Shadows.glsl new file mode 100644 index 0000000..a5e09ae --- /dev/null +++ b/shaders/lib/Shadows.glsl @@ -0,0 +1,23 @@ +// Emin's and Gri's combined ideas to stop peter panning and light leaking, also has little shadowacne so thats nice +// https://www.complementary.dev/reimagined +// https://github.com/gri573 +void GriAndEminShadowFix( + inout vec3 WorldPos, + vec3 FlatNormal, + float VanillaAO, + float SkyLightmap, + bool Entities +){ + + float DistanceOffset = clamp(0.17 + length(WorldPos) / (shadowMapResolution*0.20), 0.0,1.0) ; + vec3 Bias = FlatNormal * DistanceOffset; // adjust the bias thingy's strength as it gets farther away. + + vec3 finalBias = Bias; + + // stop lightleaking + vec2 scale = vec2(0.5); scale.y *= 0.5; + vec3 zoomShadow = scale.y - scale.x * fract(WorldPos + cameraPosition + Bias*scale.y); + if(SkyLightmap < 0.1 && !Entities) finalBias = mix(Bias, zoomShadow, clamp(VanillaAO*5,0,1)); + + WorldPos += finalBias; +} \ No newline at end of file diff --git a/shaders/lib/climate_settings.glsl b/shaders/lib/climate_settings.glsl index 72fbdbf..e2e67bb 100644 --- a/shaders/lib/climate_settings.glsl +++ b/shaders/lib/climate_settings.glsl @@ -144,45 +144,64 @@ ///////////////////////////// BIOME SPECIFICS ///////////////////////////////// /////////////////////////////////////////////////////////////////////////////// -#ifdef Biome_specific_environment + uniform float nightVision; + uniform float isJungles; uniform float isSwamps; - // uniform float isLush; - // uniform float isDeserts; - + uniform float isDarkForests; uniform float sandStorm; uniform float snowStorm; - + +#ifdef PER_BIOME_ENVIRONMENT + void BiomeFogColor( inout vec3 FinalFogColor - ){ + ){ + + // this is a little complicated? lmao - vec3 BiomeColors; - BiomeColors.r = isSwamps*0.7 + isJungles*0.5 + sandStorm*1.0 + snowStorm*0.5; - BiomeColors.g = isSwamps*1.0 + isJungles*1.0 + sandStorm*0.5 + snowStorm*0.6; - BiomeColors.b = isSwamps*0.35 + isJungles*0.8 + sandStorm*0.3 + snowStorm*1.0; + vec3 BiomeColors = vec3(0.0); + BiomeColors.r = isSwamps*SWAMP_R + isJungles*JUNGLE_R + isDarkForests*DARKFOREST_R + sandStorm*1.0 + snowStorm*0.6; + BiomeColors.g = isSwamps*SWAMP_G + isJungles*JUNGLE_G + isDarkForests*DARKFOREST_G + sandStorm*0.5 + snowStorm*0.8; + BiomeColors.b = isSwamps*SWAMP_B + isJungles*JUNGLE_B + isDarkForests*DARKFOREST_B + sandStorm*0.3 + snowStorm*1.0; // insure the biome colors are locked to the fog shape and lighting, but not its orignal color. - BiomeColors *= dot(FinalFogColor,vec3(0.33333)); + BiomeColors *= max(dot(FinalFogColor,vec3(0.33333)), MIN_LIGHT_AMOUNT*0.025 + nightVision*0.2); // these range 0.0-1.0. they will never overlap. - float Inbiome = isJungles+isSwamps+sandStorm; + float Inbiome = isJungles+isSwamps+isDarkForests+sandStorm+snowStorm; // interpoloate between normal fog colors and biome colors. the transition speeds are conrolled by the biome uniforms. FinalFogColor = mix(FinalFogColor, BiomeColors, Inbiome); } + void BiomeSunlightColor( + inout vec3 FinalSunlightColor + ){ + // this is a little complicated? lmao + vec3 BiomeColors = vec3(0.0); + BiomeColors.r = isSwamps*SWAMP_R + isJungles*JUNGLE_R + isDarkForests*DARKFOREST_R + sandStorm*1.0 + snowStorm*0.6; + BiomeColors.g = isSwamps*SWAMP_G + isJungles*JUNGLE_G + isDarkForests*DARKFOREST_G + sandStorm*0.5 + snowStorm*0.8; + BiomeColors.b = isSwamps*SWAMP_B + isJungles*JUNGLE_B + isDarkForests*DARKFOREST_B + sandStorm*0.3 + snowStorm*1.0; + + // these range 0.0-1.0. they will never overlap. + float Inbiome = isJungles+isSwamps+isDarkForests+sandStorm+snowStorm; + + // interpoloate between normal fog colors and biome colors. the transition speeds are conrolled by the biome uniforms. + FinalSunlightColor = mix(FinalSunlightColor, FinalSunlightColor * (BiomeColors*0.8+0.2), Inbiome); + } + void BiomeFogDensity( inout vec4 UniformDensity, inout vec4 CloudyDensity ){ // these range 0.0-1.0. they will never overlap. - float Inbiome = isJungles+isSwamps+sandStorm+snowStorm; - - vec2 BiomeFogDensity; // x = uniform || y = cloudy - BiomeFogDensity.x = isSwamps*1 + isJungles*5 + sandStorm*15 + snowStorm*15; - BiomeFogDensity.y = isSwamps*5 + isJungles*2 + sandStorm*255 + snowStorm*100; + float Inbiome = isJungles+isSwamps+isDarkForests+sandStorm+snowStorm; + vec2 BiomeFogDensity = vec2(0.0); // x = uniform || y = cloudy + BiomeFogDensity.x = isSwamps*SWAMP_UNIFORM_DENSITY + isJungles*JUNGLE_UNIFORM_DENSITY + isDarkForests*DARKFOREST_UNIFORM_DENSITY + sandStorm*15 + snowStorm*150; + BiomeFogDensity.y = isSwamps*SWAMP_CLOUDY_DENSITY + isJungles*JUNGLE_CLOUDY_DENSITY + isDarkForests*DARKFOREST_CLOUDY_DENSITY + sandStorm*255 + snowStorm*255; + UniformDensity = mix(UniformDensity, vec4(BiomeFogDensity.x), Inbiome); CloudyDensity = mix(CloudyDensity, vec4(BiomeFogDensity.y), Inbiome); } @@ -196,7 +215,7 @@ // uniform int worldTime; void TimeOfDayFog(inout float Uniform, inout float Cloudy) { - float Time = (worldTime%24000)*1.0; + float Time = worldTime%24000; // set schedules for fog to appear at specific ranges of time in the day. float Morning = clamp((Time-22000)/2000,0,1) + clamp((2000-Time)/2000,0,1); @@ -213,7 +232,7 @@ DailyWeather_FogDensity(UniformDensity, CloudyDensity); // let daily weather influence fog densities. #endif - #ifdef Biome_specific_environment + #ifdef PER_BIOME_ENVIRONMENT BiomeFogDensity(UniformDensity, CloudyDensity); // let biome fog hijack to control densities, and overrride any other density controller... #endif diff --git a/shaders/lib/clouds.glsl b/shaders/lib/clouds.glsl index abd35ef..3c0cd79 100644 --- a/shaders/lib/clouds.glsl +++ b/shaders/lib/clouds.glsl @@ -1,10 +1,10 @@ -vec3 cloud2D(vec3 fragpos,vec3 col){ - vec3 wpos = fragpos; +vec3 cloud2D(vec3 viewPos,vec3 col){ + vec3 wpos = viewPos; float wind = frameTimeCounter/200.; vec2 intersection = ((2000.0-cameraPosition.y)*wpos.xz*inversesqrt(wpos.y+cameraPosition.y/512.-50./512.) + cameraPosition.xz+wind)/40000.; - float phase = pow(clamp(dot(fragpos,sunVec),0.,1.),2.)*0.5+0.5; + float phase = pow(clamp(dot(viewPos,sunVec),0.,1.),2.)*0.5+0.5; float fbm = clamp((texture2D(noisetex,intersection*vec2(1.,1.5)).a + texture2D(noisetex,intersection*vec2(2.,7.)+wind*0.4).a/2.)-0.5*(1.0-rainStrength),0.,1.) ; diff --git a/shaders/lib/diffuse_lighting.glsl b/shaders/lib/diffuse_lighting.glsl index fc96bd7..4f4b882 100644 --- a/shaders/lib/diffuse_lighting.glsl +++ b/shaders/lib/diffuse_lighting.glsl @@ -1,6 +1,6 @@ // in this here file im doing all the lighting for sunlight, ambient light, torches, for solids and translucents. -uniform float nightVision; +// uniform float nightVision; void DoRTAmbientLighting (vec3 TorchColor, vec2 Lightmap, inout float SkyLM, inout vec3 TorchLight, inout vec3 SkyLight){ @@ -66,13 +66,14 @@ void DoRTAmbientLighting (vec3 TorchColor, vec2 Lightmap, inout float SkyLM, ino TorchLight *= TORCH_AMOUNT; - FogColor = (FogColor / pow(0.00001 + dot(FogColor,vec3(0.3333)),1.0) ) * 0.1; + FogColor = FogColor / max(dot(FogColor,vec3(0.3333)),0.05); - vec3 FogTint = FogColor*clamp(1.1 + dot(Normal,np3),0.0,1.0) * 0.05; + vec3 FogTint = FogColor*clamp(1.1 + dot(Normal,np3),0.0,1.0) * 0.1; - vec3 AmbientLight = max(vec3(0.5,0.75,1.0) * 0.05, (MIN_LIGHT_AMOUNT*0.01 + nightVision*0.5) ); + vec3 AmbientLight = max(vec3(0.5,0.75,1.0)* 0.1, (MIN_LIGHT_AMOUNT*0.01 + nightVision*0.5) ); - return TorchLight + AmbientLight + FogTint; + return TorchLight + AmbientLight;// + AmbientLight + FogTint; } + #endif \ No newline at end of file diff --git a/shaders/lib/end_fog.glsl b/shaders/lib/end_fog.glsl index cc16f75..2dc3ef2 100644 --- a/shaders/lib/end_fog.glsl +++ b/shaders/lib/end_fog.glsl @@ -1,63 +1,91 @@ -vec3 srgbToLinear2(vec3 srgb){ - return mix( - srgb / 12.92, - pow(.947867 * srgb + .0521327, vec3(2.4) ), - step( .04045, srgb ) - ); -} -vec3 blackbody2(float Temp) -{ - float t = pow(Temp, -1.5); - float lt = log(Temp); +// Hash without Sine +// MIT License... +/* Copyright (c)2014 David Hoskins. - vec3 col = vec3(0.0); - col.x = 220000.0 * t + 0.58039215686; - col.y = 0.39231372549 * lt - 2.44549019608; - col.y = Temp > 6500. ? 138039.215686 * t + 0.72156862745 : col.y; - col.z = 0.76078431372 * lt - 5.68078431373; - col = clamp(col,0.0,1.0); - col = Temp < 1000. ? col * Temp * 0.001 : col; +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - return srgbToLinear2(col); -} +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE.*/ +//---------------------------------------------------------------------------------------- + vec3 hash31(float p) + { + vec3 p3 = fract(vec3(p) * vec3(.1031, .1030, .0973)); + p3 += dot(p3, p3.yzx+33.33); + return fract((p3.xxy+p3.yzz)*p3.zyx); + } + + float hash11(float p) + { + p = fract(p * .1031); + p *= p + 33.33; + p *= p + p; + return fract(p); + } + +//---------------------------------------------------------------------------------------- // Integer Hash - II // - Inigo Quilez, Integer Hash - II, 2017 // https://www.shadertoy.com/view/XlXcW4 -uvec3 iqint2(uvec3 x) -{ - const uint k = 1103515245u; +//---------------------------------------------------------------------------------------- - x = ((x>>8U)^x.yzx)*k; - x = ((x>>8U)^x.yzx)*k; - x = ((x>>8U)^x.yzx)*k; + uvec3 iqint2(uvec3 x) + { + const uint k = 1103515245u; - return x; -} + x = ((x>>8U)^x.yzx)*k; + x = ((x>>8U)^x.yzx)*k; + x = ((x>>8U)^x.yzx)*k; -uvec3 hash(vec2 s) -{ + return x; + } - uvec4 u = uvec4(s, uint(s.x) ^ uint(s.y), uint(s.x) + uint(s.y)); // Play with different values for 3rd and 4th params. Some hashes are okay with constants, most aren't. - - return iqint2(u.xyz); -} -vec3 hash31(float p) -{ - vec3 p3 = fract(vec3(p) * vec3(.1031, .1030, .0973)); - p3 += dot(p3, p3.yzx+33.33); - return fract((p3.xxy+p3.yzz)*p3.zyx); -} + uvec3 hash(vec2 s) + { + uvec4 u = uvec4(s, uint(s.x) ^ uint(s.y), uint(s.x) + uint(s.y)); // Play with different values for 3rd and 4th params. Some hashes are okay with constants, most aren't. + return iqint2(u.xyz); + } -///////////////// POSITION -///////////////// POSITION -///////////////// POSITION +//---------------------------------------------------------------------------------------- -vec3 RandomPosition = hash31(frameTimeCounter); +// vec3 RandomPosition = hash31(frameTimeCounter); vec3 ManualLightPos = vec3(ORB_X, ORB_Y, ORB_Z); +void LightSourcePosition(vec3 WorldPos, vec3 CameraPos, inout vec3 Pos1, inout vec3 Pos2){ + + Pos1 = WorldPos - vec3(0,200,0); + + vec3 Origin = WorldPos - CameraPos - ManualLightPos; + + + float cellSize = 200; + vec3 cellPos = CameraPos ; + + Origin += fract(cellPos/cellSize)*cellSize - cellSize*0.5; + // Origin -= vec3(sin(frameTimeCounter),0,-cos(frameTimeCounter)) * 20; + + vec3 randomPos = texelFetch2D(colortex4,ivec2(2,1),0).xyz / 150.0; + + Origin -= (randomPos * 2.0 - 1.0); + + + Pos2 = Origin; +} + float densityAtPosFog(in vec3 pos){ pos /= 18.; pos.xz *= 0.5; @@ -72,264 +100,215 @@ float densityAtPosFog(in vec3 pos){ return mix(xy.r,xy.g, f.y); } -vec3 LightSourcePosition(vec3 WorldPos, vec3 CameraPos){ - - vec3 Origin = WorldPos ; - // make the swirl only happen within a radius - float SwirlBounds = clamp(sqrt(length(vec3(Origin.x,Origin.y-100,Origin.z)) / 150.0 - 1.0) ,0.0,1.0); +// Create a rising swirl centered around some origin. +void SwirlAroundOrigin(inout vec3 alteredOrigin, vec3 origin){ - if( SwirlBounds < 1.0) { - Origin.y -= 260; - } else { - - Origin = WorldPos - CameraPos ; - - #ifdef THE_ORB - if(ManualLightPos == vec3(0.0)){ - #endif - - float nosie = (densityAtPosFog(Origin / 30 + sin(frameTimeCounter/5)*100)-0.15) * 15 ; - Origin.xz += vec2( sin(nosie),-cos(nosie) )*50; - Origin.y -= sin(nosie)*100; - - #ifdef THE_ORB - } else { - Origin -= ManualLightPos; - } - #endif - - float cellSize = 100.0; - vec3 cellPos = CameraPos - vec3(0,10,0) ; - // cellPos += vec3(frameTimeCounter,0,0)*25.0; - - Origin += (fract(cellPos/cellSize)*cellSize - cellSize*0.5); - } - - return Origin; -} - -///////////////// COLOR -///////////////// COLOR -///////////////// COLOR -vec3 LightSourceColor(float SwirlBounds){ - - vec3 Color = vec3(0.7, 0.8, 1.0); - - #ifndef THE_ORB - if( SwirlBounds < 1.0) { - - // Color = vec3(0.5, 0.5, 1.0); - } else { - - // #ifdef THE_ORB - // Color = vec3(ORB_R, ORB_G, ORB_B) * ORB_ColMult; - // #endif - - - // Color *= blackbody2(RandomPosition.y*4000 + 1000); - - float Timing = dot(RandomPosition, vec3(1.0/3.0)); - float Flash = max(sin(frameTimeCounter) * cos(Timing) ,0.0); - Color *= Flash; - } - #else - Color = vec3(ORB_R, ORB_G, ORB_B) * ORB_ColMult; - #endif - - - return Color; -} - -///////////////// SHAPE -///////////////// SHAPE -///////////////// SHAPE -vec3 LightSourceShape(vec3 WorldPos){ - - vec3 Shapes = vec3(0.0); - vec3 Origin = WorldPos ; + float radiance = 2.39996 + alteredOrigin.y/1.5 + frameTimeCounter/50; + mat2 rotationMatrix = mat2(vec2(cos(radiance), -sin(radiance)), vec2(sin(radiance), cos(radiance))); // make the swirl only happen within a radius - float SwirlBounds = clamp(sqrt(length(Origin) / 200.0 - 1.0) ,0.0,1.0); + float SwirlBounds = clamp(sqrt(length(vec3(origin.x, origin.y-100,origin.z)) / 200.0 - 1.0) ,0.0,1.0); + + alteredOrigin.xz = mix(alteredOrigin.xz * rotationMatrix, alteredOrigin.xz, SwirlBounds); +} - if( SwirlBounds < 1.0) { - // vec3 Origin = WorldPos; - Origin.y -= 200; +// control where the fog volume should and should not be using a sphere. +void VolumeBounds(inout float Volume, vec3 Origin){ - vec3 Origin2 = Origin; - Origin2.y = (Origin2.y + 100.0) * 0.8; + vec3 Origin2 = (Origin - vec3(0,100,0)); + Origin2.y *= 0.8; + float Center1 = length(Origin2); - float Center = length(Origin); - float AltCenter = length(Origin2); - - // the max of a sphere is another smaller sphere. this creates a hollow sphere. - Shapes.r = max(1.0 - AltCenter / 75.0, max(AltCenter / 150.0 - 1.0, 0.0)); - - // donut to make the hurricane shape - float radius = 200.0; - float thickness = 25.0 * radius; - Shapes.r = (thickness - clamp( pow( length( vec2(length(Origin2.xz) - radius, Origin2.y*0.75) ),2.0) - radius, 0.0, thickness) ) / thickness; - - Shapes.r = max(Shapes.r, max(1.0 - AltCenter / 75.0, 0.0)); + float Bounds = max(1.0 - Center1 / 75.0, 0.0) * 5.0; + float radius = 150.0; + float thickness = 50.0 * radius; + float Torus = (thickness - clamp( pow( length( vec2(length(Origin.xz) - radius, Origin2.y) ),2.0) - radius, 0.0, thickness) ) / thickness; + + Origin2.xz *= 0.3; + Origin2.y -= 100; - // debug donut - // radius = 50.0; - // thickness = 5.0 * radius; - // Shapes.b = (thickness - clamp( pow( length( vec2(length(Origin2.xy) - radius, Origin2.z*0.75) ),2.0) - radius, 0.0, thickness) ) / thickness; - } + float orb = clamp((1.0 - length(Origin2) / 15.0) * 1.5,0.0,1.0); + Volume = max(Volume - Bounds - Torus, orb); + +} - return Shapes; +// create the volume shape +float cloudVol(in vec3 pos){ + + float Output = 0.0; + vec3 samplePos = pos*vec3(1.0,1./48.,1.0); + + // swirly swirly :DDDDDDDDDDD + SwirlAroundOrigin(samplePos, pos); + + float NoisePlane = texture2D(noisetex, samplePos.xz/1024 ).b; + + float MainShape = clamp(max(0.5 - densityAtPosFog(samplePos * 16),0.0) * 2,0.0,1.0); + float Erosion = abs(0.6 - densityAtPosFog(samplePos * (160. - MainShape*50) - vec3(0,frameTimeCounter*3,0) )); + + + Output = MainShape; + Output = max(Output - Erosion*0.5,0.0); + // apply limts + VolumeBounds(Output, pos); + + // Output = max(max(100 - pos.y,0.0) - NoisePlane * 50 ,0.0); + return Output; +} + +float EndLightMie(vec3 LightPos){ + + float mie = exp(length(LightPos) / -150); + mie *= mie; + mie *= mie; + mie *= 100; + + return mie; +} + +void LightSourceColors(inout vec3 Color1, inout vec3 Color2){ + Color1 = vec3(0.7,0.88,1.0); + Color2 = vec3(ORB_R,ORB_G,ORB_B); +} + +vec3 LightSourceLighting( vec3 WorldPos, vec3 LightPos, float Dither, float VolumeDensity, vec3 LightColor, float Phase ){ + + float Mie = EndLightMie(LightPos); + float Shadow = 0.0; + + for (int j=0; j < 3; j++){ + vec3 shadowSamplePos = WorldPos - LightPos * (0.05 + j * (0.25 + Dither*0.15)); + Shadow += cloudVol(shadowSamplePos); + } + + vec3 FinalLighting = LightColor * Mie * exp(Shadow * -5.0) ; + + FinalLighting += LightColor * exp2(-5 * max(2.5-Shadow,0.0) * vec3(1.2,1.0,0.8+VolumeDensity*0.4)) * (Mie*Mie) * clamp((1.0 - length(LightPos) / 100.0),0.0,1.0); + + return FinalLighting; } - - -float cloudVol(in vec3 pos, int LOD){ - - - // THE OOOOOOOOOOOOOOOOOOOOOORB - vec3 Shapes = LightSourceShape(pos); - - vec3 samplePos = pos*vec3(1.0,1./32.,1.0); - vec3 samplePos2 = pos*vec3(1.0,1./48.,1.0); - - // #ifndef THE_ORB - float radiance = 2.39996 + samplePos.y + frameTimeCounter/10; - mat2 rotationMatrix = mat2(vec2(cos(radiance), -sin(radiance)), vec2(sin(radiance), cos(radiance))); - - // make the swirl only happen within a radius - float SwirlBounds = clamp(sqrt(length(vec3(pos.x,pos.y-100,pos.z)) / 200.0 - 1.0) ,0.0,1.0); - - samplePos.xz = mix(samplePos.xz * rotationMatrix, samplePos.xz, SwirlBounds); - samplePos2.xz = mix(samplePos2.xz * rotationMatrix, samplePos2.xz, SwirlBounds); - // #endif - - samplePos2.y -= frameTimeCounter/15; - - float finalfog = 0.0; - finalfog += max(0.6-densityAtPosFog(samplePos * 16.0) * 2,0.0); - - float smallnoise = max(densityAtPosFog(samplePos2 * (160. - finalfog*3))-0.1,0.0); - finalfog -= ((1-smallnoise) - max(0.15 - abs(smallnoise * 2.0 - 0.55) * 0.5,0.0)*1.5) * 0.3; - - // make the eye of the swirl have no fog, so you can actually see. - finalfog = max(finalfog - Shapes.r, 0.0); - - finalfog += Shapes.b; - - - return finalfog; -} - +#define lightsourceCount 2 // [1 2] vec4 GetVolumetricFog( - vec3 fragpos, - float dither, - float dither2 -) { - int SAMPLES = 16; - //project pixel position into projected shadowmap space - vec3 wpos = mat3(gbufferModelViewInverse) * fragpos + gbufferModelViewInverse[3].xyz; + vec3 viewPos, + float dither, + float dither2 +){ + int SAMPLES = 32; + vec3 vL = vec3(0.0); + float absorbance = 1.0; + + //project pixel position into projected shadowmap space + vec3 wpos = mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz; vec3 fragposition = mat3(shadowModelView) * wpos + shadowModelView[3].xyz; fragposition = diagonal3(shadowProjection) * fragposition + shadowProjection[3].xyz; - //project view origin into projected shadowmap space vec3 start = vec3(0.0); //rayvector into projected shadow map space //we can use a projected vector because its orthographic projection //however we still have to send it to curved shadow map space every step - vec3 dV = (fragposition-start); + vec3 dV = fragposition-start; vec3 dVWorld = (wpos-gbufferModelViewInverse[3].xyz); float maxLength = min(length(dVWorld),32.0 * 12.0)/length(dVWorld); + dV *= maxLength; dVWorld *= maxLength; - //apply dither - vec3 progress = start.xyz; - vec3 progressW = gbufferModelViewInverse[3].xyz+cameraPosition; - vec3 vL = vec3(0.); float dL = length(dVWorld); + vec3 fogcolor = (gl_Fog.color.rgb / max(dot(gl_Fog.color.rgb,vec3(0.3333)),0.05)) ; + + vec3 LightCol1 = vec3(0); vec3 LightCol2 = vec3(0); + LightSourceColors(LightCol1, LightCol2); + + float Flashing = texelFetch2D(colortex4,ivec2(1,1),0).x/150.0; + // LightCol1 *= Flashing; + LightCol2 *= Flashing; + + + vec3 LightPos1 = vec3(0); vec3 LightPos2 = vec3(0); + + LightSourcePosition(cameraPosition, cameraPosition, LightPos1, LightPos2); + + float Phase1 = sqrt(1.0 - clamp( dot(normalize(dVWorld), normalize(-LightPos1)),0.0,1.0)); + Phase1 = exp(Phase1 * -5.0) * 10; + + float Phase2 = sqrt(1.0 - clamp( dot(normalize(dVWorld), normalize(-LightPos2)),0.0,1.0)); + Phase2 = exp(Phase2 * -5.0) * 10; + - float absorbance = 1.0; float expFactor = 11.0; - - vec3 fogColor = (gl_Fog.color.rgb / max(pow(dot(gl_Fog.color.rgb,vec3(0.3333)),1.1),0.01) ) ; - for (int i=0;i= 0 && offset.y >= 0 && offset.x < viewWidth*RENDER_SCALE.x && offset.y < viewHeight*RENDER_SCALE.y ) { + vec3 t0 = toScreenSpace(vec3(offset*texelSize+acc+0.5*texelSize, texelFetch2D(depthtex1, offset,0).x) * vec3(1.0/RENDER_SCALE, 1.0) ); + vec3 vec = (t0.xyz - viewPos); + float dsquared = dot(vec, vec); + + if (dsquared > 1e-5){ + if (dsquared < maxR2){ + float NdotV = clamp(dot(vec*inversesqrt(dsquared), normalize(normal)),0.,1.); + occlusion += NdotV * clamp(1.0-dsquared/maxR2,0.0,1.0); + } + + #ifdef Ambient_SSS + if(dsquared > maxR2_2){ + float NdotV = 1.0 - clamp(dot(vec*dsquared, normalize(normal)),0.,1.); + sss += max((NdotV - (1.0-NdotV)) * clamp(1.0-maxR2_2/dsquared,0.0,1.0) ,0.0); + } + #endif + + n += 1; + } + } + } + return max(1.0 - vec2(occlusion, sss)/n, 0.0); +} +float ScreenSpace_SSS( + vec3 viewPos, vec3 normal, bool hand, bool leaves +){ + if(hand) return 1.0; + + // float radius[7] = float[]( + // 0.15, + // 0.15, + // 0.15, + // 0.15, + // 0.15, + // 0.15, + // 0.15 + // ); + + float dist = 1.0 + clamp(viewPos.z*viewPos.z/50.0,0,5); // shrink sample size as distance increases + float mulfov2 = gbufferProjection[1][1]/(3 * dist); + + float maxR2_2 = viewPos.z*viewPos.z*mulfov2*2.*2./50.0; + + float dist3 = clamp(1-exp( viewPos.z*viewPos.z / -50),0,1); + if(leaves) maxR2_2 = mix(10, maxR2_2, dist3); + + vec2 acc = -(TAA_Offset*(texelSize/2))*RENDER_SCALE ; + + int seed = (frameCounter%40000) * 2 + (1+frameCounter); + float samplePos = fract(R2_samples(seed).x + blueNoise(gl_FragCoord.xy).x) * 1.61803398874; + + int samples = 7; + + float sss = 0.0; + int n = 0; + for (int i = 0; i < samples; i++) { + + vec2 sp = tapLocation_alternate(i, 0.0, samples, 20, samplePos)* 0.2; + float rd = mulfov2 ; + + vec2 sampleOffset = sp * rd; + ivec2 offset = ivec2(gl_FragCoord.xy + sampleOffset*vec2(viewWidth,viewHeight*aspectRatio)*RENDER_SCALE); + + if (offset.x >= 0 && offset.y >= 0 && offset.x < viewWidth*RENDER_SCALE.x && offset.y < viewHeight*RENDER_SCALE.y ) { + vec3 t0 = toScreenSpace(vec3(offset*texelSize+acc+0.5*texelSize, texelFetch2D(depthtex1, offset,0).x) * vec3(1.0/RENDER_SCALE, 1.0) ); + vec3 vec = (t0.xyz - viewPos); + float dsquared = dot(vec, vec); + + if (dsquared > 1e-5){ + + if(dsquared > maxR2_2){ + float NdotV = 1.0 - clamp(dot(vec*dsquared, normalize(normal)),0.,1.); + sss += max((NdotV - (1.0-NdotV)) * clamp(1.0-maxR2_2/dsquared,0.0,1.0) ,0.0); + } + + n += 1; + } + } + } + return max(1.0 - sss/n, 0.0); +} + +//////////////////////////////////////////////////////////////////// +///////////////////////////// RTAO/SSGI //////////////////////// +//////////////////////////////////////////////////////////////////// +vec3 rayTrace_GI(vec3 dir,vec3 position,float dither, float quality){ + + vec3 clipPosition = toClipSpace3(position); + float rayLength = ((position.z + dir.z * far*sqrt(3.)) > -near) ? + (-near -position.z) / dir.z : far*sqrt(3.); + vec3 direction = normalize(toClipSpace3(position+dir*rayLength)-clipPosition); //convert to clip space + direction.xy = normalize(direction.xy); + + //get at which length the ray intersects with the edge of the screen + vec3 maxLengths = (step(0.,direction)-clipPosition) / direction; + float mult = maxLengths.y; + + vec3 stepv = direction * mult / quality*vec3(RENDER_SCALE,1.0) * dither; + vec3 spos = clipPosition*vec3(RENDER_SCALE,1.0) ; + + spos.xy += TAA_Offset*texelSize*0.5/RENDER_SCALE; + + float biasdist = clamp(position.z*position.z/50.0,1,2); // shrink sample size as distance increases + + for(int i = 0; i < int(quality); i++){ + spos += stepv; + float sp = sqrt(texelFetch2D(colortex4,ivec2(spos.xy/texelSize/4),0).w/65000.0); + float currZ = linZ(spos.z); + + if( sp < currZ) { + float dist = abs(sp-currZ)/currZ; + if (abs(dist) < biasdist*0.05) return vec3(spos.xy, invLinZ(sp))/vec3(RENDER_SCALE,1.0); + } + spos += stepv; + } + return vec3(1.1); +} + +vec3 RT(vec3 dir, vec3 position, float noise, float stepsizes){ + float dist = 1.0 + clamp(position.z*position.z/50.0,0,2); // shrink sample size as distance increases + + float stepSize = stepsizes / dist; + int maxSteps = STEPS; + vec3 clipPosition = toClipSpace3(position); + float rayLength = ((position.z + dir.z * sqrt(3.0)*far) > -sqrt(3.0)*near) ? + (-sqrt(3.0)*near -position.z) / dir.z : sqrt(3.0)*far; + vec3 end = toClipSpace3(position+dir*rayLength) ; + vec3 direction = end-clipPosition ; //convert to clip space + + float len = max(abs(direction.x)/texelSize.x,abs(direction.y)/texelSize.y)/stepSize; + //get at which length the ray intersects with the edge of the screen + vec3 maxLengths = (step(0.,direction)-clipPosition) / direction; + + float mult = min(min(maxLengths.x,maxLengths.y),maxLengths.z)*2000.0; + + vec3 stepv = direction/len; + + int iterations = min(int(min(len, mult*len)-2), maxSteps); + + //Do one iteration for closest texel (good contact shadows) + vec3 spos = clipPosition*vec3(RENDER_SCALE,1.0) ; + spos.xy += TAA_Offset*texelSize*0.5*RENDER_SCALE; + spos += stepv/(stepSize/2); + + float distancered = 1.0 + clamp(position.z*position.z/50.0,0,2); // shrink sample size as distance increases + + for(int i = 0; i < iterations; i++){ + if (spos.x < 0.0 || spos.y < 0.0 || spos.z < 0.0 || spos.x > 1.0 || spos.y > 1.0 || spos.z > 1.0) return vec3(1.1); + spos += stepv*noise; + + float sp = sqrt(texelFetch2D(colortex4,ivec2(spos.xy/ texelSize/4),0).w/65000.0); + float currZ = linZ(spos.z); + + if( sp < currZ) { + float dist = abs(sp-currZ)/currZ; + if (dist <= 0.1) return vec3(spos.xy, invLinZ(sp))/vec3(RENDER_SCALE,1.0); + } + } + return vec3(1.1); +} + +vec3 cosineHemisphereSample(vec2 Xi, float roughness){ + float r = sqrt(Xi.x); + float theta = 2.0 * 3.14159265359 * Xi.y; + + float x = r * cos(theta); + float y = r * sin(theta); + + return vec3(x, y, sqrt(clamp(1.0 - Xi.x,0.,1.))); +} + +vec3 TangentToWorld(vec3 N, vec3 H, float roughness){ + vec3 UpVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); + vec3 T = normalize(cross(UpVector, N)); + vec3 B = cross(N, T); + + return vec3((T * H.x) + (B * H.y) + (N * H.z)); +} + +void ApplySSRT(inout vec3 lighting, vec3 normal,vec2 noise,vec3 viewPos, vec2 lightmaps, vec3 skylightcolor, vec3 torchcolor, bool isGrass){ + int nrays = RAY_COUNT; + + vec3 radiance = vec3(0.0); + + vec3 occlusion = vec3(0.0); + vec3 skycontribution = vec3(0.0); + + vec3 occlusion2 = vec3(0.0); + vec3 skycontribution2 = vec3(0.0); + + float skyLM = 0.0; + vec3 torchlight = vec3(0.0); + DoRTAmbientLighting(torchcolor, lightmaps, skyLM, torchlight, skylightcolor); + + for (int i = 0; i < nrays; i++){ + int seed = (frameCounter%40000)*nrays+i; + vec2 ij = fract(R2_samples(seed) + noise ); + + vec3 rayDir = TangentToWorld(normal, normalize(cosineHemisphereSample(ij,1.0)) ,1.0); + + #ifdef HQ_SSGI + vec3 rayHit = rayTrace_GI( mat3(gbufferModelView) * rayDir, viewPos, blueNoise(), 50.); // ssr rt + #else + vec3 rayHit = RT(mat3(gbufferModelView)*rayDir, viewPos, blueNoise(), 30.); // choc sspt + #endif + + #ifdef SKY_CONTRIBUTION_IN_SSRT + if(isGrass) rayDir.y = clamp(rayDir.y + 0.5,-1,1); + skycontribution = (skyCloudsFromTex(rayDir, colortex4).rgb / 15.0) * skyLM + torchlight; + #else + if(isGrass) rayDir.y = clamp(rayDir.y + 0.25,-1,1); + + skycontribution = skylightcolor * 2 * (max(rayDir.y,0.0)*0.9+0.1) + torchlight; + + #if indirect_effect == 4 + skycontribution2 = skylightcolor + torchlight; + #endif + + #endif + + if (rayHit.z < 1.){ + + #if indirect_effect == 4 + 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; + + if (previousPosition.x > 0.0 && previousPosition.y > 0.0 && previousPosition.x < 1.0 && previousPosition.x < 1.0){ + radiance += (texture2D(colortex5,previousPosition.xy).rgb + skycontribution) * GI_Strength; + } else{ + radiance += skycontribution; + } + + #else + radiance += skycontribution; + #endif + + occlusion += skycontribution * GI_Strength; + + #if indirect_effect == 4 + occlusion2 += skycontribution2 * GI_Strength; + #endif + + } else { + radiance += skycontribution; + } + } + + occlusion *= AO_Strength; + + #if indirect_effect == 4 + lighting = max(radiance/nrays - max(occlusion, occlusion2*0.5)/nrays, 0.0); + #else + lighting = max(radiance/nrays - occlusion/nrays, 0.0); + #endif +} \ No newline at end of file diff --git a/shaders/lib/lightning_stuff.glsl b/shaders/lib/lightning_stuff.glsl new file mode 100644 index 0000000..9f14b2b --- /dev/null +++ b/shaders/lib/lightning_stuff.glsl @@ -0,0 +1,62 @@ +uniform vec3 lightningEffect; +#ifdef IS_IRIS + uniform vec4 lightningBoltPosition; +#else + vec4 lightningBoltPosition = vec4(0.0, 100.0, 0.0, lightningEffect.x); +#endif + +vec3 Iris_Lightningflash(vec3 feetPlayerPos, vec3 lightningBoltPos, vec3 WorldSpace_normal, inout float Phase){ +if(lightningBoltPosition.w > 0.0){ + vec3 LightningPos = feetPlayerPos - vec3(lightningBoltPosition.x, clamp(feetPlayerPos.y, lightningBoltPosition.y+16, lightningBoltPosition.y+116.0),lightningBoltPosition.z); + + // point light, max distance is ~500 blocks (the maximim entity render distance) + float lightDistance = 300.0 ; + float lightningLight = max(1.0 - length(LightningPos) / lightDistance, 0.0); + + // the light above ^^^ is a linear curve. me no likey. here's an exponential one instead. + lightningLight = exp((1.0 - lightningLight) * -10.0); + + // a phase for subsurface scattering. + vec3 PhasePos = normalize(feetPlayerPos) + vec3(lightningBoltPosition.x, lightningBoltPosition.y + 60, lightningBoltPosition.z); + float PhaseOrigin = 1.0 - clamp(dot(normalize(feetPlayerPos), normalize(PhasePos)),0.0,1.0); + Phase = exp(sqrt(PhaseOrigin) * -2.0) * 5.0 * lightningLight; + + // good old NdotL. only normals facing towards the lightning bolt origin rise to 1.0 + float NdotL = clamp(dot(LightningPos, -WorldSpace_normal), 0.0, 1.0); + + return lightningEffect * lightningLight * NdotL; +}else return vec3(0.0); +} + +vec3 Iris_Lightningflash_VLcloud(vec3 feetPlayerPos, vec3 lightningBoltPos){ +if(lightningBoltPosition.w > 0.0){ + vec3 LightningPos = feetPlayerPos - vec3(lightningBoltPosition.x, clamp(feetPlayerPos.y, lightningBoltPosition.y, lightningBoltPosition.y+116.0),lightningBoltPosition.z); + + float lightDistance = 400.0; + float lightningLight = max(1.0 - length(LightningPos) / lightDistance, 0.0); + + lightningLight = exp((1.0 - lightningLight) * -10.0); + + return lightningEffect * lightningLight; +}else return vec3(0.0); +} + +vec3 Iris_Lightningflash_VLfog(vec3 feetPlayerPos, vec3 lightningBoltPos){ +if(lightningBoltPosition.w > 0.0){ + if(lightningBoltPosition.w < 1.0) return vec3(0.0); + + vec3 LightningPos = feetPlayerPos - vec3(lightningBoltPosition.x, clamp(feetPlayerPos.y, lightningBoltPosition.y, lightningBoltPosition.y+116.0),lightningBoltPosition.z); + + #ifdef TEST + float lightningLight = max(1.0 - length(LightningPos) / 50, 0.0); + lightningLight = exp((1.0 - lightningLight) * -15.0) ; + #else + float lightDistance = 300.0; + float lightningLight = max(1.0 - length(LightningPos) / lightDistance, 0.0) ; + + lightningLight = exp((1.0 - lightningLight) * -15.0) ; + #endif + + return lightningEffect * lightningLight; +}else return vec3(0.0); +} diff --git a/shaders/lib/nether_fog.glsl b/shaders/lib/nether_fog.glsl index 5699734..5e37566 100644 --- a/shaders/lib/nether_fog.glsl +++ b/shaders/lib/nether_fog.glsl @@ -37,7 +37,7 @@ float cloudVol(in vec3 pos){ } vec4 GetVolumetricFog( - vec3 fragpos, + vec3 viewPos, float dither, float dither2 ){ @@ -46,7 +46,7 @@ vec4 GetVolumetricFog( float absorbance = 1.0; //project pixel position into projected shadowmap space - vec3 wpos = mat3(gbufferModelViewInverse) * fragpos + gbufferModelViewInverse[3].xyz; + vec3 wpos = mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz; vec3 fragposition = mat3(shadowModelView) * wpos + shadowModelView[3].xyz; fragposition = diagonal3(shadowProjection) * fragposition + shadowProjection[3].xyz; @@ -84,13 +84,13 @@ vec4 GetVolumetricFog( // do background fog lighting - float Air = 0.01; + float AirDensity = 0.01; vec3 vL1 = fogcolor / 20.0; - vL += (vL1 - vL1*exp(-Air*dd*dL)) * absorbance; + vL += (vL1 - vL1*exp(-AirDensity*dd*dL)) * absorbance; vL += (vL0 - vL0*exp(-Density*dd*dL)) * absorbance; - absorbance *= exp(-(Density+Air)*dd*dL); + absorbance *= exp(-(Density+AirDensity)*dd*dL); if (absorbance < 1e-5) break; } diff --git a/shaders/lib/settings.glsl b/shaders/lib/settings.glsl index 2faca47..79ed682 100644 --- a/shaders/lib/settings.glsl +++ b/shaders/lib/settings.glsl @@ -36,10 +36,10 @@ #define WAVY_STRENGTH 1.0 // [0.1 0.25 0.5 0.75 1.0 1.25 1.5 1.75 2.0] #define WAVY_SPEED 1.0 // [0.001 0.01 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 1.0 1.25 1.5 2.0 3.0 4.0] -#define Seasons +// #define Seasons #define Season_Length 24 // [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 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] #define Start_Season 0 // [0 1 2 3] -#define Snowy_Winter +// #define Snowy_Winter #define Summer_R 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] #define Summer_G 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] @@ -75,11 +75,9 @@ #define MIN_LIGHT_AMOUNT 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 4.0 5.0 6.0 7.0 8.0 9.0 10.0] #define ambient_brightness 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 ] -#define ambient_colortype 0 // [0 1] -#define ambient_temp 9000 // [1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 15000 50000] -#define AmbientLight_R 0.91 // [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 AmbientLight_G 0.86 // [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 AmbientLight_B 1.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 AmbientLight_R 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] +#define AmbientLight_G 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] +#define AmbientLight_B 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] #define Hand_Held_lights #define TORCH_AMOUNT 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 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7.0 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9.0 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10.0] @@ -176,7 +174,41 @@ const float sunPathRotation = -35; //[-90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -8 // #define BorderFog #define SEA_LEVEL 70 // [0 10 20 30 40 50 60 70 80 90 100 110 120 130 150 170 190] -#define Biome_specific_environment +////////////////////////////////////////////////////// +// ----- BIOME SPECIFIC ENVIORNMENTS SETTINGS ----- // +////////////////////////////////////////////////////// + +#define PER_BIOME_ENVIRONMENT + +#define SWAMP_ENV +#define SWAMP_UNIFORM_DENSITY 50 // [0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 75.0 100.0 125.0 150.0 175.0 200.0 255.] +#define SWAMP_CLOUDY_DENSITY 0 // [0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 75.0 100.0 125.0 150.0 175.0 200.0 255.] +#define SWAMP_R 0.15 // [0.00 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 SWAMP_G 0.25 // [0.00 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 SWAMP_B 0.05 // [0.00 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 JUNGLE_ENV +#define JUNGLE_UNIFORM_DENSITY 10 // [0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 75.0 100.0 125.0 150.0 175.0 200.0 255.] +#define JUNGLE_CLOUDY_DENSITY 150 // [0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 75.0 100.0 125.0 150.0 175.0 200.0 255.] +#define JUNGLE_R 0.5 // [0.00 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 JUNGLE_G 1.0 // [0.00 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 JUNGLE_B 0.5 // [0.00 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 DARKFOREST_ENV +#define DARKFOREST_UNIFORM_DENSITY 15 // [0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 75.0 100.0 125.0 150.0 175.0 200.0 255.] +#define DARKFOREST_CLOUDY_DENSITY 0 // [0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 75.0 100.0 125.0 150.0 175.0 200.0 255.] +#define DARKFOREST_R 0.3 // [0.00 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 DARKFOREST_G 0.4 // [0.00 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 DARKFOREST_B 1.0 // [0.00 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] + + +// i have to do this so it shows up in the menu lmao +#ifdef SWAMP_ENV +#endif +#ifdef JUNGLE_ENV +#endif +#ifdef DARKFOREST_ENV +#endif /////////////////////////////////////////////////// // ----- LABPBR MATERIALS RELATED SETTINGS ----- // @@ -187,7 +219,7 @@ const float sunPathRotation = -35; //[-90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -8 // #define Sky_reflection // #define Rough_reflections #define Dynamic_SSR_quality -#define Sun_specular_Strength 3 // [1 2 3 4 5 6 7 8 9 10] +#define Sun_specular_Strength 1 // [0 1 2 3 4 5 6 7 8 9 10] #define reflection_quality 30 // [6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 55.0 60.0 65.0 70.0 75.0 80.0 85.0 90.0 95.0 100.0 ] #define Roughness_Threshold 1.5 // [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 ] @@ -207,6 +239,11 @@ const float sunPathRotation = -35; //[-90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -8 #define MAX_ITERATIONS 35 // [5 10 15 20 25 30 40 50 60 70 80 90 100 125 150 200 400] #define MAX_DIST 25.0 // [5.0 10.0 15.0 20.0 25.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 125.0 150.0 200.0 400.0] +// #define HEIGTHMAP_DEPTH_OFFSET + +#ifdef POM + #undef HEIGTHMAP_DEPTH_OFFSET +#endif #define SSS_TYPE 2 // [0 1 2 3] #define LabSSS_Curve 1.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 ] @@ -292,13 +329,14 @@ uniform int moonPhase; #define Cumulus_density 0.5 // [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.00] #define Cumulus_height 250 // [-100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450 460 470 480 490 500 510 520 530 540 550 560 570 580 590 600 700 800 900 1000] + #define Altostratus #define Alto_coverage 0.1 // [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] #define Alto_density 0.1 // [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.00] #define Rain_coverage 1.1 // [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] -#define fbmAmount 0.50 // [0.00 0.02 0.04 0.06 0.08 0.10 0.12 0.14 0.16 0.18 0.20 0.22 0.24 0.26 0.28 0.30 0.32 0.34 0.36 0.38 0.40 0.42 0.44 0.46 0.48 0.50 0.52 0.54 0.56 0.58 0.60 0.62 0.64 0.66 0.68 0.70 0.72 0.74 0.76 0.78 0.80 0.82 0.84 0.86 0.88 0.90 0.92 0.94 0.96 0.98 1.00 1.02 1.04 1.06 1.08 1.10 1.12 1.14 1.16 1.18 1.20 1.22 1.24 1.26 1.28 1.30 1.32 1.34 1.36 1.38 1.40 1.42 1.44 1.46 1.48 1.50 1.52 1.54 1.56 1.58 1.60 1.62 1.64 1.66 1.68 1.70 1.72 1.74 1.76 1.78 1.80 1.82 1.84 1.86 1.88 1.90 1.92 1.94 1.96 1.98 2.00 2.02 2.04 2.06 2.08 2.10 2.12 2.14 2.16 2.18 2.20 2.22 2.24 2.26 2.28 2.30 2.32 2.34 2.36 2.38 2.40 2.42 2.44 2.46 2.48 2.50 2.52 2.54 2.56 2.58 2.60 2.62 2.64 2.66 2.68 2.70 2.72 2.74 2.76 2.78 2.80 2.82 2.84 2.86 2.88 2.90 2.92 2.94 2.96 2.98 3.00] +#define fbmAmount 0.5 // [0.00 0.02 0.04 0.06 0.08 0.10 0.12 0.14 0.16 0.18 0.20 0.22 0.24 0.26 0.28 0.30 0.32 0.34 0.36 0.38 0.40 0.42 0.44 0.46 0.48 0.50 0.52 0.54 0.56 0.58 0.60 0.62 0.64 0.66 0.68 0.70 0.72 0.74 0.76 0.78 0.80 0.82 0.84 0.86 0.88 0.90 0.92 0.94 0.96 0.98 1.00 1.02 1.04 1.06 1.08 1.10 1.12 1.14 1.16 1.18 1.20 1.22 1.24 1.26 1.28 1.30 1.32 1.34 1.36 1.38 1.40 1.42 1.44 1.46 1.48 1.50 1.52 1.54 1.56 1.58 1.60 1.62 1.64 1.66 1.68 1.70 1.72 1.74 1.76 1.78 1.80 1.82 1.84 1.86 1.88 1.90 1.92 1.94 1.96 1.98 2.00 2.02 2.04 2.06 2.08 2.10 2.12 2.14 2.16 2.18 2.20 2.22 2.24 2.26 2.28 2.30 2.32 2.34 2.36 2.38 2.40 2.42 2.44 2.46 2.48 2.50 2.52 2.54 2.56 2.58 2.60 2.62 2.64 2.66 2.68 2.70 2.72 2.74 2.76 2.78 2.80 2.82 2.84 2.86 2.88 2.90 2.92 2.94 2.96 2.98 3.00] #define fbmPower1 3.00 // [1.0 1.50 1.52 1.54 1.56 1.58 1.60 1.62 1.64 1.66 1.68 1.70 1.72 1.74 1.76 1.78 1.80 1.82 1.84 1.86 1.88 1.90 1.92 1.94 1.96 1.98 2.00 2.02 2.04 2.06 2.08 2.10 2.12 2.14 2.16 2.18 2.20 2.22 2.24 2.26 2.28 2.30 2.32 2.34 2.36 2.38 2.40 2.42 2.44 2.46 2.48 2.50 2.52 2.54 2.56 2.58 2.60 2.62 2.64 2.66 2.68 2.70 2.72 2.74 2.76 2.78 2.80 2.82 2.84 2.86 2.88 2.90 2.92 2.94 2.96 2.98 3.00 3.02 3.04 3.06 3.08 3.10 3.12 3.14 3.16 3.18 3.20 3.22 3.24 3.26 3.28 3.30 3.32 3.34 3.36 3.38 3.40 3.42 3.44 3.46 3.48 3.50 3.52 3.54 3.56 3.58 3.60 3.62 3.64 3.66 3.68 3.70 3.72 3.74 3.76 3.78 3.80 3.82 3.84 3.86 3.88 3.90 3.92 3.94 3.96 3.98 4.00 5. 6. 7. 8. 9. 10.] #define fbmPower2 2.50 // [1.00 1.50 1.52 1.54 1.56 1.58 1.60 1.62 1.64 1.66 1.68 1.70 1.72 1.74 1.76 1.78 1.80 1.82 1.84 1.86 1.88 1.90 1.92 1.94 1.96 1.98 2.00 2.02 2.04 2.06 2.08 2.10 2.12 2.14 2.16 2.18 2.20 2.22 2.24 2.26 2.28 2.30 2.32 2.34 2.36 2.38 2.40 2.42 2.44 2.46 2.48 2.50 2.52 2.54 2.56 2.58 2.60 2.62 2.64 2.66 2.68 2.70 2.72 2.74 2.76 2.78 2.80 2.82 2.84 2.86 2.88 2.90 2.92 2.94 2.96 2.98 3.00 3.02 3.04 3.06 3.08 3.10 3.12 3.14 3.16 3.18 3.20 3.22 3.24 3.26 3.28 3.30 3.32 3.34 3.36 3.38 3.40 3.42 3.44 3.46 3.48 3.50 3.52 3.54 3.56 3.58 3.60 3.62 3.64 3.66 3.68 3.70 3.72 3.74 3.76 3.78 3.80 3.82 3.84 3.86 3.88 3.90 3.92 3.94 3.96 3.98 4.00 5. 6. 7. 8. 9. 10.] @@ -313,8 +351,6 @@ uniform int moonPhase; #define HQ_CLOUDS - - ////////////////////////////////////// // ----- TAA RELATED SETTINGS ----- // ////////////////////////////////////// @@ -415,7 +451,7 @@ uniform int moonPhase; // #define DEBUG_endfog // #define THE_ORB #define ORB_X 0 // [-200 -195 -190 -185 -180 -175 -170 -165 -160 -155 -150 -145 -140 -135 -130 -125 -120 -115 -110 -105 -100 -95 -90 -85 -80 -75 -70 -65 -60 -55 -50 -45 -40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 155 160 165 170 175 180 185 190 195 200] -#define ORB_Y 0 // [-200 -195 -190 -185 -180 -175 -170 -165 -160 -155 -150 -145 -140 -135 -130 -125 -120 -115 -110 -105 -100 -95 -90 -85 -80 -75 -70 -65 -60 -55 -50 -45 -40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 155 160 165 170 175 180 185 190 195 200] +#define ORB_Y 0 // [-200 -195 -190 -185 -180 -175 -170 -165 -160 -155 -150 -145 -140 -135 -130 -125 -120 -115 -110 -105 -100 -95 -90 -85 -80 -75 -70 -65 -60 -55 -50 -45 -40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 155 160 165 170 175 180 185 190 195 200 210 220 230 240 250] #define ORB_Z 0 // [-200 -195 -190 -185 -180 -175 -170 -165 -160 -155 -150 -145 -140 -135 -130 -125 -120 -115 -110 -105 -100 -95 -90 -85 -80 -75 -70 -65 -60 -55 -50 -45 -40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 155 160 165 170 175 180 185 190 195 200] #define ORB_R 1.0 // [0.00 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] @@ -434,7 +470,7 @@ uniform int moonPhase; // #define WhiteWorld // THIS IS A DEBUG VIEW. uses to see AO easier. used to see fake GI better (green light) // #define Compositing_Sky // make the sky some color to make compositing a sky in some photoediting software easier. // #define display_LUT -// #define ambientSSS_view +// #define SSS_view #define Texture_MipMap_Bias 0.0 // [-5.00 -4.75 -4.50 -4.25 -4.00 -3.75 -3.50 -3.25 -3.00 -2.75 -2.50 -2.25 -2.00 -1.75 -1.50 -1.25 -1.00 -0.75 -0.50 -0.25 0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00] @@ -446,4 +482,11 @@ uniform int moonPhase; // #define OLD_LIGHTLEAK_FIX -#define LIT_PARTICLE_BRIGHTNESS 2.0 // [1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 100.] \ No newline at end of file +#define LIT_PARTICLE_BRIGHTNESS 2.0 // [1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 100.] + +#define HURT_AND_DEATH_EFFECT + +#define LIGHTNING_FLASH // FOR OPTIFINE USERS. some mods change the sky color, which can trigger the lightning flash detection. + +#ifdef LIGHTNING_FLASH +#endif \ No newline at end of file diff --git a/shaders/lib/sky_gradient.glsl b/shaders/lib/sky_gradient.glsl index d66e512..49cc5d0 100644 --- a/shaders/lib/sky_gradient.glsl +++ b/shaders/lib/sky_gradient.glsl @@ -1,23 +1,38 @@ - - #define ffstep(x,y) clamp((y - x) * 1e35,0.0,1.0) + vec3 drawSun(float cosY, float sunInt,vec3 nsunlight,vec3 inColor){ return inColor+nsunlight/0.0008821203*pow(smoothstep(cos(0.0093084168595*3.2),cos(0.0093084168595*1.8),cosY),3.)*0.62; } -const float pi = 3.141592653589793238462643383279502884197169; -vec2 sphereToCarte(vec3 dir) { - float lonlat = atan(-dir.x, -dir.z); - return vec2(lonlat * (0.5/pi) +0.5,0.5*dir.y+0.5); + +vec3 drawMoon(vec3 PlayerPos, vec3 WorldSunVec, vec3 Color, inout vec3 occludeStars){ + + float Shape = clamp((exp(1 + -1000 * dot(WorldSunVec+PlayerPos,PlayerPos)) - 1.5),0.0,25.0); + occludeStars *= max(1.0-Shape*5,0.0); + + float shape2 = pow(exp(Shape * -10),0.15) * 255.0; + + vec3 sunNormal = vec3(dot(WorldSunVec+PlayerPos, vec3(shape2,0,0)), dot(PlayerPos+WorldSunVec, vec3(0,shape2,0)), -dot(WorldSunVec, PlayerPos) * 15.0); + + + // even has a little tilt approximation haha.... yeah.... + vec3[8] phase = vec3[8]( + vec3( -1.0, -0.5, 1.0 ), + vec3( -1.0, -0.5, 0.35 ), + vec3( -1.0, -0.5, 0.2 ), + vec3( -1.0, -0.5, 0.1 ), + vec3( 1.0, 0.25, -1.0 ), + vec3( 1.0, 0.25, 0.1 ), + vec3( 1.0, 0.25, 0.2 ), + vec3( 1.0, 0.25, 0.35 ) + ); + + vec3 LightDir = phase[moonPhase]; + + return Shape * pow(clamp(dot(sunNormal,LightDir)/5,0.0,1.5),5) * Color + clamp(Shape * 4.0 * pow(shape2/200,2.0),0.0,1.0)*0.004; } -vec3 skyFromTex(vec3 pos,sampler2D sampler){ - vec2 p = sphereToCarte(pos); - return texture2D(sampler,p*texelSize*256.+vec2(18.5,1.5)*texelSize).rgb; -} -vec3 skyFromTexLOD(vec3 pos,sampler2D sampler, float LOD){ - vec2 p = sphereToCarte(pos); - return texture2DLod(sampler,p*texelSize*256.+vec2(18.5,1.5)*texelSize,LOD).rgb; -} +const float pi = 3.141592653589793238462643383279502884197169; + float w0(float a) @@ -84,6 +99,19 @@ vec4 texture2D_bicubic(sampler2D tex, vec2 uv) g1(fuv.y) * (g0x * texture2D(tex, p2) + g1x * texture2D(tex, p3)); } +vec2 sphereToCarte(vec3 dir) { + float lonlat = atan(-dir.x, -dir.z); + return vec2(lonlat * (0.5/pi) +0.5,0.5*dir.y+0.5); +} + +vec3 skyFromTex(vec3 pos,sampler2D sampler){ + vec2 p = sphereToCarte(pos); + return texture2D(sampler,p*texelSize*256.+vec2(18.5,1.5)*texelSize).rgb; +} +vec3 skyFromTexLOD(vec3 pos,sampler2D sampler, float LOD){ + vec2 p = sphereToCarte(pos); + return texture2DLod(sampler,p*texelSize*256.+vec2(18.5,1.5)*texelSize,LOD).rgb; +} vec4 skyCloudsFromTex(vec3 pos,sampler2D sampler){ vec2 p = sphereToCarte(pos); return texture2D(sampler,p*texelSize*256.+vec2(18.5+257.,1.5)*texelSize); @@ -92,12 +120,8 @@ vec4 skyCloudsFromTexLOD(vec3 pos,sampler2D sampler, float LOD){ vec2 p = sphereToCarte(pos); return texture2DLod(sampler,p*texelSize*256. + vec2(18.5 + 257., 1.5)*texelSize,LOD); } - // vec2 p = clamp(floor(gl_FragCoord.xy-vec2(18.+257,1.))/256.+tempOffsets/256.,0.0,1.0); - // vec2 p = clamp(floor(gl_FragCoord.xy-vec2(256*0.75,256*0.25))/150.+tempOffsets/150.,0.0,1.0); - - // vec2 p = clamp(floor(gl_FragCoord.xy-fogPos)/256.+tempOffsets/256.,-0.33,1.0); vec4 skyCloudsFromTexLOD2(vec3 pos,sampler2D sampler, float LOD){ vec2 p = sphereToCarte(pos); return texture2DLod(sampler,p*texelSize*256. + vec2(256.0 - 256.0*0.12,1.5)*texelSize,LOD); -} +} \ No newline at end of file diff --git a/shaders/lib/specular.glsl b/shaders/lib/specular.glsl index 28ed9a8..83edcbc 100644 --- a/shaders/lib/specular.glsl +++ b/shaders/lib/specular.glsl @@ -1,4 +1,3 @@ - uniform int framemod8; const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), @@ -10,11 +9,11 @@ const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), vec2(3,7.)/8., vec2(7.,-7.)/8.); -vec3 mix_vec3(vec3 X, vec3 Y, float A){ +vec3 lerp(vec3 X, vec3 Y, float A){ return X * (1.0 - A) + Y * A; } -float mix_float(float X, float Y, float A){ +float lerp(float X, float Y, float A){ return X * (1.0 - A) + Y * A; } @@ -22,14 +21,14 @@ float square(float x){ return x*x; } -float invLinZ (float lindepth){ - return -((2.0*near/lindepth)-far-near)/(far-near); -} + vec3 toClipSpace3(vec3 viewSpacePosition) { return projMAD(gbufferProjection, viewSpacePosition) / -viewSpacePosition.z * 0.5 + 0.5; } - +float invLinZ (float lindepth){ + return -((2.0*near/lindepth)-far-near)/(far-near); +} float linZ(float depth) { return (2.0 * near) / (far + near - depth * (far - near)); // l = (2*n)/(f+n-d(f-n)) @@ -57,11 +56,6 @@ mat3 CoordBase(vec3 n){ return mat3(x,y,n); } -float unpackRoughness(float x){ - float r = 1.0 - x; - return clamp(r*r,0,1); -} - vec2 R2_Sample(int n){ vec2 alpha = vec2(0.75487765, 0.56984026); return fract(alpha * n); @@ -194,7 +188,8 @@ void DoSpecularReflections( Lightmap = clamp((Lightmap-0.6)*5.0, 0.0,1.0); - Roughness = unpackRoughness(Roughness); + // Roughness = unpackRoughness(Roughness); + Roughness = 1.0 - Roughness; Roughness *= Roughness; F0 = F0 == 0.0 ? 0.02 : F0; // Roughness = 0.0; @@ -214,7 +209,7 @@ void DoSpecularReflections( vec3 L = Basis * Ln; float Fresnel = pow(clamp(1.0 + dot(-Ln, SamplePoints),0.0,1.0), 5.0); // Schlick's approximation - float RayContribution = mix_float(F0, 1.0, Fresnel); // ensure that when the angle is 0 that the correct F0 is used. + float RayContribution = lerp(F0, 1.0, Fresnel); // ensure that when the angle is 0 that the correct F0 is used. #ifdef Rough_reflections if(Hand) RayContribution = RayContribution * pow(1.0-Roughness,3.0); @@ -225,7 +220,7 @@ void DoSpecularReflections( bool hasReflections = Roughness_Threshold == 1.0 ? true : F0 * (1.0 - Roughness * Roughness_Threshold) > 0.01; // mulitply all reflections by the albedo if it is a metal. - vec3 Metals = F0 > 229.5/255.0 ? mix_vec3(Albedo, vec3(1.0), Fresnel) : vec3(1.0); + vec3 Metals = F0 > 229.5/255.0 ? lerp(Albedo, vec3(1.0), Fresnel) : vec3(1.0); // --------------- BACKGROUND REFLECTIONS // apply background reflections to the final color. make sure it does not exist based on the lightmap @@ -238,7 +233,7 @@ void DoSpecularReflections( #endif // take fresnel and lightmap levels into account and write to the final color - Final_Reflection = mix_vec3(Output, Background_Reflection, Lightmap * RayContribution); + Final_Reflection = lerp(Output, Background_Reflection, Lightmap * RayContribution); #endif // --------------- SCREENSPACE REFLECTIONS @@ -246,15 +241,17 @@ void DoSpecularReflections( #ifdef Screen_Space_Reflections if(hasReflections){ #ifdef Dynamic_SSR_quality - float SSR_Quality = mix_float(reflection_quality, 6.0, RayContribution); // Scale quality with ray contribution + float SSR_Quality = lerp(reflection_quality, 6.0, RayContribution); // Scale quality with ray contribution #else float SSR_Quality = reflection_quality; #endif float reflectLength = 0.0; - vec3 RaytracePos = rayTraceSpeculars(mat3(gbufferModelView) * L, FragPos, Noise.z, SSR_Quality, Hand, reflectLength); + vec3 RaytracePos = rayTraceSpeculars(mat3(gbufferModelView) * L, FragPos, Noise.z, float(SSR_Quality), Hand, reflectLength); float LOD = clamp(pow(reflectLength, pow(1.0-sqrt(Roughness),5.0) * 3.0) * 6.0, 0.0, 6.0); // use higher LOD as the reflection goes on, to blur it. this helps denoise a little. + if(Roughness <= 0.0) LOD = 0.0; + if (RaytracePos.z < 1.0){ vec3 previousPosition = mat3(gbufferModelViewInverse) * toScreenSpace(RaytracePos) + gbufferModelViewInverse[3].xyz + cameraPosition-previousCameraPosition; previousPosition = mat3(gbufferPreviousModelView) * previousPosition + gbufferPreviousModelView[3].xyz; @@ -266,10 +263,10 @@ void DoSpecularReflections( } } // make sure it takes the fresnel into account for SSR. - SS_Reflections.rgb = mix_vec3(Output, SS_Reflections.rgb, RayContribution); + SS_Reflections.rgb = lerp(Output, SS_Reflections.rgb, RayContribution); // occlude the background with the SSR and write to the final color. - Final_Reflection = mix_vec3(Final_Reflection, SS_Reflections.rgb, SS_Reflections.a); + Final_Reflection = lerp(Final_Reflection, SS_Reflections.rgb, SS_Reflections.a); } #endif @@ -277,7 +274,7 @@ void DoSpecularReflections( // slap the main lightsource reflections to the final color. #ifdef LIGHTSOURCE_REFLECTION Lightsource_Reflection = Diffuse * GGX(Normal, -WorldPos, LightPos, Roughness, F0) * Metals; - Final_Reflection += Lightsource_Reflection; + Final_Reflection += Lightsource_Reflection * Sun_specular_Strength; #endif Output = Final_Reflection; diff --git a/shaders/lib/stars.glsl b/shaders/lib/stars.glsl index 44d42e7..b4309ed 100644 --- a/shaders/lib/stars.glsl +++ b/shaders/lib/stars.glsl @@ -39,10 +39,10 @@ float StableStarField( in vec2 vSamplePos, float fThreshhold ) return StarVal; } -float stars(vec3 fragpos){ +float stars(vec3 viewPos){ - float elevation = clamp(fragpos.y,0.,1.); - vec2 uv = fragpos.xz/(1.5+elevation); + float elevation = clamp(viewPos.y,0.,1.); + vec2 uv = viewPos.xz/(1.5+elevation); - return StableStarField(uv*1000.,0.999)*0.5*(0.3-0.3*rainStrength); + return StableStarField(uv*1000.,0.999)*0.5*0.3; } diff --git a/shaders/lib/volumetricClouds.glsl b/shaders/lib/volumetricClouds.glsl index 7f0a394..e0673c0 100644 --- a/shaders/lib/volumetricClouds.glsl +++ b/shaders/lib/volumetricClouds.glsl @@ -14,19 +14,13 @@ const int cloudShadowLoD = cloud_ShadowLevelOfDetailLQ; #endif -uniform float viewHeight; -uniform float viewWidth; - -uniform sampler2D colortex4;//Skybox +// uniform float viewHeight; +// uniform float viewWidth; +uniform int worldTime; #define WEATHERCLOUDS - -uniform int worldTime; #include "/lib/climate_settings.glsl" -// #ifdef Daily_Weather - // uniform float CloudHeight; -// #endif float CumulusHeight = Cumulus_height; float MaxCumulusHeight = CumulusHeight + 100; float AltostratusHeight = 2000; @@ -56,6 +50,7 @@ float cloudCov(in vec3 pos,vec3 samplePos){ float CloudLarge = texture2D(noisetex, (samplePos.xz + cloud_movement) / 5000 ).b; float CloudSmall = texture2D(noisetex, (samplePos.xz - cloud_movement) / 500 ).r; + float Topshape = max(pos.y - (MaxCumulusHeight - 75), 0.0) / 200; Topshape += max(exp((pos.y - MaxCumulusHeight) / 10.0 ), 0.0) ; @@ -63,10 +58,10 @@ float cloudCov(in vec3 pos,vec3 samplePos){ float FinalShape = DailyWeather_Cumulus(coverage) - Topshape; // cap the top and bottom for reasons - float capbase = sqrt(max((CumulusHeight+12.5) - pos.y, 0.0)/50) ; + float capbase = sqrt(max((CumulusHeight+12.5) - pos.y, 0.0)/50) * (1-rainStrength); float captop = max(pos.y - MaxCumulusHeight, 0.0); - FinalShape = max(FinalShape - capbase - captop, 0.0); + FinalShape = max(FinalShape - capbase - captop , 0.0); return FinalShape; } @@ -83,26 +78,24 @@ float cloudVol(in vec3 pos,in vec3 samplePos,in float cov, in int LoD){ samplePos.xz += pow( max(pos.y - (CumulusHeight+20), 0.0) / 20.0,1.50); noise += 1.0-densityAtPos(samplePos * 200.) ; - - float smallnoise = densityAtPos(samplePos * 600.); - if (LoD > 0) noise += ((1-smallnoise) - max(0.15 - abs(smallnoise * 2.0 - 0.55) * 0.5,0.0)*1.5) * 0.5; + float smallnoise = densityAtPos(samplePos * 600.); + if (LoD > 0) noise += ((1-smallnoise) - max(0.15 - abs(smallnoise * 2.0 - 0.55) * 0.5,0.0)*1.5) * 0.6 * sqrt(noise); noise *= 1.0-cov; + noise = noise*noise; float cloud = max(cov - noise*noise*fbmAmount,0.0); return cloud; } - float GetCumulusDensity(in vec3 pos, in int LoD){ vec3 samplePos = pos*vec3(1.0,1./48.,1.0)/4; - + float coverageSP = cloudCov(pos,samplePos); - if (coverageSP > 0.001) { if (LoD < 0) return max(coverageSP - 0.27*fbmAmount,0.0); return cloudVol(pos,samplePos,coverageSP,LoD); @@ -113,9 +106,12 @@ float GetAltostratusDensity(vec3 pos){ float large = texture2D(noisetex, (pos.xz + cloud_movement)/100000. ).b; float small = texture2D(noisetex, (pos.xz - cloud_movement)/10000. - vec2(-large,1-large)/5).b; - + float shape = (small + pow((1.0-large),2.0))/2.0; + // float erode = 1-texture2D(noisetex, (pos.xz / ((1-small)*0.5+1.0) - cloud_movement)/1000. + vec2(-small,1-small)/5).b; + // float shape = max((small + pow((1.0-large),2.0))/2.0 - erode*0.05,0.0); + float Coverage; float Density; DailyWeather_Alto(Coverage, Density); @@ -125,6 +121,17 @@ float GetAltostratusDensity(vec3 pos){ return shape; } +#ifndef CLOUDSHADOWSONLY + +uniform sampler2D colortex4;//Skybox + + + +//Mie phase function +float phaseg(float x, float g){ + float gg = g * g; + return (gg * -0.25 + 0.25) * pow(-2.0 * (g * x) + (gg + 1.0), -1.5) / 3.14; +} // random magic number bullshit go! @@ -142,9 +149,8 @@ vec3 Cloud_lighting( vec3 pos, float time ){ - float coeeff = -30; // float powder = 1.0 - exp((CloudShape*CloudShape) * -800); - float powder = 1.0 - exp(CloudShape * coeeff/3); + float powder = 1.0 - exp(CloudShape * -10); float lesspowder = powder*0.4+0.6; vec3 skyLighting = SkyColors; @@ -154,45 +160,31 @@ vec3 Cloud_lighting( float cov = 0.0; float den = 0.0; DailyWeather_Alto(cov, den); - skyLighting += (sunContributionMulti * exp(-SunShadowing)) * clamp( 1.0 - pow( abs(den - 0.35) * 4.0 , 5.0) ,0.0,1.0) * cov; + + skyLighting += sunContributionMulti * 0.3 * exp2(AmbientShadow * SkyShadowing * -20) * clamp( 1.0 - pow( abs(den - 0.35) * 4.0 , 5.0) ,0.0,1.0) * cov; #endif - skyLighting *= exp(SkyShadowing * AmbientShadow * coeeff/2.0 ) * lesspowder ; + // skyLighting *= (1.0 - sqrt(exp2((1.0-SkyShadowing) * AmbientShadow * -10))) * lesspowder ; + skyLighting *= exp2((AmbientShadow*AmbientShadow) * SkyShadowing * -35) * lesspowder; + + + vec3 sunLighting = exp(SunShadowing * -15 + powder ) * sunContribution ; + sunLighting += exp(SunShadowing * -4) * sunContributionMulti * (powder*0.7+0.3); + + vec3 moonLighting = exp(MoonShadowing * -7 + powder) * moonContribution; + if(cloudType == 1){ - coeeff = -10; - skyLighting = SkyColors * exp(SkyShadowing * coeeff/15) * lesspowder; + skyLighting = SkyColors * exp(-sqrt(SkyShadowing)) * lesspowder; + + sunLighting = exp(SunShadowing * -5 ) * sunContribution; + sunLighting += exp(SunShadowing * -1) * sunContributionMulti * powder; } - vec3 sunLighting = exp(SunShadowing * coeeff + powder) * sunContribution; - sunLighting += exp(SunShadowing * coeeff/4 + powder*2) * sunContributionMulti; - - vec3 moonLighting = exp(MoonShadowing * coeeff/4 + powder) * moonContribution; - - return skyLighting + moonLighting + sunLighting ; + return skyLighting + moonLighting + sunLighting ; } - -//Mie phase function -float phaseg(float x, float g){ - float gg = g * g; - return (gg * -0.25 + 0.25) * pow(-2.0 * (g * x) + (gg + 1.0), -1.5) / 3.14; -} - -float CustomPhase(float LightPos, float S_1, float S_2){ - float SCALE = S_2 + 0.001; // remember the epislons 0.001 is fine. - float N = S_1; - float N2 = N / SCALE; - - float R = 1; - float A = pow(1.0 - pow(max(R-LightPos,0.0), N2 ),N); - - return A; -} - -uniform vec3 lightningEffect; - vec4 renderClouds( vec3 FragPosition, vec2 Dither, @@ -203,66 +195,80 @@ vec4 renderClouds( #ifndef VOLUMETRIC_CLOUDS return vec4(0.0,0.0,0.0,1.0); #endif + + + float total_extinction = 1.0; vec3 color = vec3(0.0); //project pixel position into projected shadowmap space - vec4 fragpos = normalize(gbufferModelViewInverse*vec4(FragPosition,1.0)); + vec4 viewPos = normalize(gbufferModelViewInverse*vec4(FragPosition,1.0)); + vec3 eyeplayepos = normalize(mat3(gbufferModelViewInverse) * FragPosition.xyz); - maxIT_clouds = int(clamp( maxIT_clouds / sqrt(exp2(fragpos.y)),0.0, maxIT)); + maxIT_clouds = int(clamp(maxIT_clouds / sqrt(exp2(viewPos.y)),0.0, maxIT)); - vec3 dV_view = normalize(fragpos.xyz); + vec3 dV_view = normalize(viewPos.xyz); + vec3 dV_view2 = dV_view; dV_view.y += 0.05; - vec3 dV_view2 = dV_view; - float mult2 = length(dV_view2); - //setup ray to start at the start of the cloud plane and end at the end of the cloud plane dV_view *= max(MaxCumulusHeight - CumulusHeight, 0.0)/abs(dV_view.y)/maxIT_clouds; + float mult = length(dV_view); // i want the samples to stay at one point in the world, but as the height coordinates go negative everything goes insideout, so this is a work around.... float startFlip = mix(max(cameraPosition.y - MaxCumulusHeight,0.0), max(CumulusHeight-cameraPosition.y,0), clamp(dV_view.y,0,1)); - // vec3 progress_view = dV_view*Dither.x + cameraPosition + (dV_view/abs(dV_view.y))*startFlip; - vec3 progress_view = dV_view*Dither.x + cameraPosition + (dV_view/abs(dV_view.y))*startFlip; + vec3 progress_view = dV_view*Dither.x + cameraPosition + (dV_view/abs(dV_view.y))*startFlip ; - // thank you emin for this world interseciton thing // float lViewPosM = length(FragPosition) < far * 1.5 ? length(FragPosition) - 1.0 : 1000000000.0; // bool IntersecTerrain = false; - ////// lighitng stuff + ////// lighting stuff float shadowStep = 200.; - vec3 dV_Sun = normalize(mat3(gbufferModelViewInverse)*sunVec)*shadowStep; - vec3 dV_Sun_small = dV_Sun/shadowStep; + // vec3 dV_Sun = normalize(mat3(gbufferModelViewInverse)*sunVec)*shadowStep; + + vec3 dV_Sun = WsunVec*shadowStep; + // vec3 dV_Sun_small = dV_Sun/shadowStep; - float SdotV = dot(sunVec,normalize(FragPosition)); + float SdotV = dot(mat3(gbufferModelView)*WsunVec,normalize(FragPosition)); - SkyColor *= clamp(abs(dV_Sun.y)/100.,0.75,1.0); + SkyColor *= clamp(abs(dV_Sun.y)/100.,0.5,1.0); SunColor = SunColor * clamp(dV_Sun.y ,0.0,1.0); MoonColor *= clamp(-dV_Sun.y,0.0,1.0); if(dV_Sun.y/shadowStep < -0.1) dV_Sun = -dV_Sun; - float mieDay = phaseg(SdotV, 0.75) * 3.14; - float mieDayMulti = phaseg(SdotV, 0.35) * 2; + float mieDay = phaseg(SdotV, 0.75); + float mieDayMulti = (phaseg(SdotV, 0.35) + phaseg(-SdotV, 0.35) * 0.5) ; - vec3 sunContribution = SunColor * mieDay; - vec3 sunContributionMulti = SunColor * mieDayMulti ; + vec3 sunContribution = SunColor * mieDay * 3.14; + vec3 sunContributionMulti = SunColor * mieDayMulti * 4.0; float mieNight = (phaseg(-SdotV,0.8) + phaseg(-SdotV, 0.35)*4); vec3 moonContribution = MoonColor * mieNight; float timing = 1.0 - clamp(pow(abs(dV_Sun.y)/150.0,2.0),0.0,1.0); - vec3 lightningColor = lightningEffect * 4.0; + + #ifdef Cumulus + + // float shadowStepSize[3] = float[]( + // 0.05, + // 0.25 + Dither.y*0.1, + // 0.50 + Dither.y*0.1 + // ); + for(int i=0;i lViewPosM; // if(IntersecTerrain) break; - float cumulus = GetCumulusDensity(progress_view, 1); + + float cumulus = GetCumulusDensity(progress_view, 1) ; + // cumulus = max(cumulus - (1-texture2D(noisetex, (eyeplayepos + cameraPosition / 500).xz*10).b)*0.1, 0.0 ); float alteredDensity = Cumulus_density * clamp(exp( (progress_view.y - (MaxCumulusHeight - 75)) / 9.0 ),0.0,1.0); @@ -271,16 +277,16 @@ vec4 renderClouds( float Sunlight = 0.0; float MoonLight = 0.0; - for (int j=0; j < 3; j++){ - vec3 shadowSamplePos = progress_view + (dV_Sun * 0.15) * (1 + Dither.y/2 + j); + // vec3 shadowSamplePos = progress_view + dV_Sun * (shadowStepSize[j] + Dither.y*shadowdither[j]); + // float shadow = GetCumulusDensity(shadowSamplePos, max(1-j,0)) * Cumulus_density; + vec3 shadowSamplePos = progress_view + dV_Sun * (0.1 + j * (0.1 + Dither.y*0.05)); float shadow = GetCumulusDensity(shadowSamplePos, 0) * Cumulus_density; - Sunlight += shadow / (1 + j); + Sunlight += shadow; MoonLight += shadow; - } #ifdef Altostratus @@ -291,15 +297,19 @@ vec4 renderClouds( #endif - float ambientlightshadow = 1.0 - clamp(exp((progress_view.y - (MaxCumulusHeight - 50)) / 100.0),0.0,1.0) ; + // float ambientlightshadow = 1.0 - clamp(exp((progress_view.y - (MaxCumulusHeight - 50)) / 100.0),0.0,1.0) ; + float ambientlightshadow = clamp((MaxCumulusHeight - progress_view.y - 50) / 100.0, 0.0,1.0); + + vec3 S = Cloud_lighting(muE, cumulus*Cumulus_density, Sunlight, MoonLight, SkyColor, sunContribution, sunContributionMulti, moonContribution, ambientlightshadow, 0, progress_view, WsunVec.y); + + #ifndef TEST + S += Iris_Lightningflash_VLcloud(progress_view - cameraPosition, lightningBoltPosition.xyz) * ambientlightshadow * exp(muE * -10.0) ; + #endif - vec3 S = Cloud_lighting(muE, cumulus*Cumulus_density, Sunlight, MoonLight, SkyColor, sunContribution, sunContributionMulti, moonContribution, ambientlightshadow, 0, progress_view, 1); - S += lightningColor * exp((1.0-cumulus) * -10) * ambientlightshadow; - - vec3 Sint = (S - S * exp(-mult*muE)) / muE; + vec3 Sint = (S - S * exp(-mult*muE)) / max(muE,1e-5); color += max(muE*Sint*total_extinction,0.0); - total_extinction *= max(exp(-mult*muE),0.0); - + total_extinction *= max(exp(-mult*muE),0.0); + if (total_extinction < 1e-5) break; } progress_view += dV_view; @@ -318,80 +328,101 @@ vec4 renderClouds( if(altostratus > 1e-5){ for (int j = 0; j < 2; j++){ - vec3 shadowSamplePos_high = progress_view_high + dV_Sun * float(j+Dither.y); + + vec3 shadowSamplePos_high = progress_view_high + (dV_Sun * (1.0 - abs(WsunVec.y))) * (1 + j + Dither.y); float shadow = GetAltostratusDensity(shadowSamplePos_high); - Sunlight += shadow; + Sunlight += shadow / (1 + j); + + // vec3 shadowSamplePos_high = progress_view_high + dV_Sun * float(j+Dither.y); + // float shadow = GetAltostratusDensity(shadowSamplePos_high); + // Sunlight += shadow; } vec3 S = Cloud_lighting(altostratus, altostratus, Sunlight, MoonLight, SkyColor, sunContribution, sunContributionMulti, moonContribution, 1, 1, progress_view_high, timing); - vec3 Sint = (S - S * exp(-20*altostratus)) / altostratus; + vec3 Sint = (S - S * exp(-mult*altostratus)) / max(altostratus,1e-5); color += max(altostratus*Sint*total_extinction,0.0); - total_extinction *= max(exp(-20*altostratus),0.0); + total_extinction *= max(exp(-mult*altostratus),0.0); + } } #endif vec3 normView = normalize(dV_view); + // Assume fog color = sky gradient at long distance - vec3 fogColor = skyFromTex(normView, colortex4)/150. * 5.0; - float dist = max(cameraPosition.y+CumulusHeight,max(CumulusHeight,150))/(abs(normView.y)+0.001); - float fog = exp(dist / -5000.0 * (1.0+rainCloudwetness*8.)); - - return mix(vec4(fogColor,0.0), vec4(color,total_extinction), fog); - // return vec4(color,total_extinction); + vec4 fogColor = vec4(skyFromTex(normView, colortex4)/30.0, 0.0); + float fog = clamp(abs(max(cameraPosition.y, 255.0) + MaxCumulusHeight) / max(abs(CumulusHeight-cameraPosition.y),0.00001) * abs(normView.y/1.5),0,1); + + // fog = pow(1.0 - exp(fog * -(5 - rainStrength*3)),2.0); + fog = 1.0 - clamp(exp((fog*fog) * -5.0),0.0,1.0); + + // fog = 1.0; + + // if(IntersecTerrain) fog = 1.0; + // return vec4(vec3(fog),0.0); + return mix(fogColor, vec4(color, total_extinction), clamp(fog,0.0,1.0)); } +#endif +float GetCloudShadow(vec3 feetPlayerPos){ +#ifdef CLOUDS_SHADOWS + vec3 playerPos = feetPlayerPos + cameraPosition; -float GetCloudShadow(vec3 eyePlayerPos){ - vec3 playerPos = eyePlayerPos + cameraPosition; - playerPos.y += 0.05; float shadow = 0.0; // assume a flat layer of cloud, and stretch the sampled density along the sunvector, starting from some vertical layer in the cloud. #ifdef Cumulus vec3 lowShadowStart = playerPos + WsunVec/abs(WsunVec.y) * max((MaxCumulusHeight - 70) - playerPos.y,0.0) ; - shadow += GetCumulusDensity(lowShadowStart,1)*Cumulus_density; + shadow += GetCumulusDensity(lowShadowStart, 1)*Cumulus_density; #endif #ifdef Altostratus vec3 highShadowStart = playerPos + WsunVec/abs(WsunVec.y) * max(AltostratusHeight - playerPos.y,0.0); - shadow += GetAltostratusDensity(highShadowStart); + shadow += GetAltostratusDensity(highShadowStart) * 0.5; #endif - shadow = shadow/2.0; // perhaps i should average the 2 shadows being added.... - shadow = clamp(exp(-shadow*20.0),0.0,1.0); + shadow = clamp(shadow,0.0,1.0); + shadow *= shadow; + + shadow = exp2(shadow * -100.0); return shadow; + +#else + return 1.0; +#endif } float GetCloudShadow_VLFOG(vec3 WorldPos, vec3 WorldSpace_sunVec){ - +#ifdef CLOUDS_SHADOWS float shadow = 0.0; // assume a flat layer of cloud, and stretch the sampled density along the sunvector, starting from some vertical layer in the cloud. #ifdef Cumulus vec3 lowShadowStart = WorldPos + WorldSpace_sunVec/abs(WorldSpace_sunVec.y) * max((MaxCumulusHeight - 60) - WorldPos.y,0.0) ; - shadow += max(GetCumulusDensity(lowShadowStart,0) - 0.2,0.0)*Cumulus_density; + shadow += max(GetCumulusDensity(lowShadowStart, 0) , 0.0)*Cumulus_density; #endif #ifdef Altostratus vec3 highShadowStart = WorldPos + WorldSpace_sunVec/abs(WorldSpace_sunVec.y) * max(AltostratusHeight - WorldPos.y,0.0); - shadow += GetAltostratusDensity(highShadowStart); + shadow += GetAltostratusDensity(highShadowStart)*0.5; #endif - // shadow = shadow/2.0; // perhaps i should average the 2 shadows being added.... - - shadow = clamp(exp(-shadow*255.0),0.0,1.0); + shadow = clamp(shadow,0.0,1.0); + shadow *= shadow; - // do not allow it to exist above the lowest cloud plane - // shadow *= clamp(((MaxCumulusHeight + CumulusHeight)*0.435 - WorldPos.y)/100,0.0,1.0) ; + shadow = exp2(shadow * -150.0); return shadow; + +#else + return 1.0; +#endif } float GetCloudSkyOcclusion(vec3 WorldPos){ - +#ifdef CLOUDS_SHADOWS float shadow = 0.0; vec3 shadowDir = vec3(0,1,0); @@ -407,4 +438,7 @@ float GetCloudSkyOcclusion(vec3 WorldPos){ shadow = clamp(exp(-shadow*25.0) ,0.0,1.0); return shadow; +#else + return 1.0; +#endif } \ No newline at end of file diff --git a/shaders/lib/volumetricFog.glsl b/shaders/lib/volumetricFog.glsl index ed27cc8..c1237f8 100644 --- a/shaders/lib/volumetricFog.glsl +++ b/shaders/lib/volumetricFog.glsl @@ -2,8 +2,6 @@ vec3 normVec (vec3 vec){ return vec*inversesqrt(dot(vec,vec)); } - - float phaseRayleigh(float cosTheta) { const vec2 mul_add = vec2(0.1, 0.28) /acos(-1.0); return cosTheta * mul_add.x + mul_add.y; // optimized version from [Elek09], divided by 4 pi for energy conservation @@ -27,23 +25,24 @@ float cloudVol(in vec3 pos){ vec3 samplePos = pos*vec3(1.0,1./24.,1.0); vec3 samplePos2 = pos*vec3(1.0,1./48.,1.0); + float fogYstart = SEA_LEVEL-6; - float mult = exp( -max((pos.y - SEA_LEVEL) / 35.,0.0)); + float mult = exp( -max((pos.y - fogYstart) / 35.,0.0)); float fog_shape = 1.0 - densityAtPosFog(samplePos * 24.0 ); float fog_eroded = 1.0 - densityAtPosFog(samplePos2 * 200.0 ); // float CloudyFog = max( (fog_shape*2.0 - fog_eroded*0.5) - 1.2, max(fog_shape-0.8,0.0)) * mult; - float heightlimit = exp2( -max((pos.y - SEA_LEVEL) / 25.,0.0)); + float heightlimit = exp2( -max((pos.y - fogYstart * (1.0+snowStorm)) / 25.,0.0)); float CloudyFog = max((fog_shape*1.2 - fog_eroded*0.2) - 0.75,0.0) * heightlimit ; - - float UniformFog = exp2( -max((pos.y - SEA_LEVEL) / 25.,0.0)); + float UniformFog = exp( max(pos.y - fogYstart,0.0) / -25) + 0.05; + // UniformFog = 1.0; - float RainFog = max(fog_shape*10. - 7.,0.5) * exp2( -max((pos.y - SEA_LEVEL) / 25.,0.0)) * 5. * rainStrength * noPuddleAreas * RainFog_amount; + // float RainFog = max(fog_shape*10. - 7.,0.5) * exp2( -max((pos.y - SEA_LEVEL) / 25.,0.0)) * 72. * rainStrength * noPuddleAreas * RainFog_amount; + float RainFog = (2 + max(fog_shape*10. - 7.,0.5)*2.0) * UniformFog * rainStrength * noPuddleAreas * RainFog_amount; - - #ifdef Biome_specific_environment + #ifdef PER_BIOME_ENVIRONMENT // sandstorms and snowstorms if(sandStorm > 0 || snowStorm > 0) CloudyFog = mix(CloudyFog, max(densityAtPosFog((samplePos2 - vec3(frameTimeCounter,0,frameTimeCounter)*10) * 100.0 ) - 0.2,0.0) * heightlimit, sandStorm+snowStorm); #endif @@ -53,27 +52,50 @@ float cloudVol(in vec3 pos){ return CloudyFog + UniformFog + RainFog; } +// // uniform vec4 lightningBoltPosition; +// float Iris_Lightningflash_VLfog(vec3 feetPlayerPos, vec3 lightningBoltPos){ -vec4 getVolumetricRays( - vec3 fragpos, +// vec3 LightningPos = feetPlayerPos - vec3(lightningBoltPosition.x, clamp(feetPlayerPos.y, lightningBoltPosition.y, lightningBoltPosition.y+116.0),lightningBoltPosition.z); + +// // point light, max distance is ~500 blocks (the maximim entity render distance) +// float lightDistance = 300.0; + +// #ifdef TEST +// float lightningLight = 0.0; +// #else + +// float lightningLight = max(1.0 - length(LightningPos) / lightDistance, 0.0) ; + +// lightningLight = exp((1.0 - lightningLight) * -15.0) ; +// #endif + +// // lightningLight = pow(lightningLight,5.0); + +// return lightningLight ; +// } + +uniform bool inSpecialBiome; +vec4 GetVolumetricFog( + vec3 viewPosition, float dither, + vec3 LightColor, vec3 AmbientColor ){ //project pixel position into projected shadowmap space - vec3 wpos = mat3(gbufferModelViewInverse) * fragpos + gbufferModelViewInverse[3].xyz; + vec3 wpos = mat3(gbufferModelViewInverse) * viewPosition + gbufferModelViewInverse[3].xyz; vec3 fragposition = mat3(shadowModelView) * wpos + shadowModelView[3].xyz; fragposition = diagonal3(shadowProjection) * fragposition + shadowProjection[3].xyz; //project view origin into projected shadowmap space - vec3 start = toShadowSpaceProjected(vec3(0.)); + vec3 start = toShadowSpaceProjected(vec3(0.0)); //rayvector into projected shadow map space //we can use a projected vector because its orthographic projection //however we still have to send it to curved shadow map space every step - vec3 dV = fragposition-start; + vec3 dV = fragposition - start; vec3 dVWorld = (wpos-gbufferModelViewInverse[3].xyz); - float maxLength = min(length(dVWorld),far)/length(dVWorld); + float maxLength = min(length(dVWorld), far)/length(dVWorld); dV *= maxLength; dVWorld *= maxLength; @@ -82,33 +104,42 @@ vec4 getVolumetricRays( vec3 vL = vec3(0.); - float SdotV = dot(sunVec,normalize(fragpos))*lightCol.a; + float SdotV = dot(sunVec,normalize(viewPosition))*lightCol.a; float dL = length(dVWorld); //Mie phase + somewhat simulates multiple scattering (Horizon zero down cloud approx) - float mie = phaseg(SdotV,0.7)*5.0 + 1.0; + float mie = phaseg(SdotV,0.7)*5.0 + 0.1; float rayL = phaseRayleigh(SdotV); - - // Makes fog more white idk how to simulate it correctly - vec3 sunColor = lightCol.rgb / 80.0; - vec3 skyCol0 = AmbientColor / 150. * 5. ; // * max(abs(WsunVec.y)/150.0,0.); - - vec3 lightningColor = (lightningEffect / 10) * (max(eyeBrightnessSmooth.y,0)/240.); - - vec3 np3 = normVec(wpos); - float ambfogfade = clamp(exp(np3.y* 2 - 2),0.0,1.0) * 4 ; - skyCol0 += lightningColor * ambfogfade; - - - #ifdef Biome_specific_environment - // recolor change sun and sky color to some color, but make sure luminance is preserved. - BiomeFogColor(sunColor); - BiomeFogColor(skyCol0); - #endif - vec3 rC = vec3(fog_coefficientRayleighR*1e-6, fog_coefficientRayleighG*1e-5, fog_coefficientRayleighB*1e-5); vec3 mC = vec3(fog_coefficientMieR*1e-6, fog_coefficientMieG*1e-6, fog_coefficientMieB*1e-6); + + // Makes fog more white idk how to simulate it correctly + vec3 LightSourceColor = LightColor; + vec3 skyCol0 = AmbientColor / 2.0; + + // recolor change sun and sky color to a color, but make sure luminance is preserved. + #ifdef PER_BIOME_ENVIRONMENT + BiomeFogColor(LightSourceColor); + BiomeFogColor(skyCol0); + #endif + + // float upGradient = 1.0 - (normalize(wpos).y*0.5 + 0.5); + // skyCol0 *= exp(upGradient * -5.0)*1.5 + 0.5; + + // float upGradient = np3.y; + // skyCol0 = max(skyCol0 + skyCol0*upGradient,0.0); + + // #if defined Cave_fog && defined TEST + // vec3 cavefogCol = vec3(CaveFogColor_R,CaveFogColor_G,CaveFogColor_B); + + // #ifdef PER_BIOME_ENVIRONMENT + // BiomeFogColor(cavefogCol); + // #endif + + // cavefogCol = cavefogCol * clamp(1.0 - normalize(wpos).y, 0.0, 1.0) * 0.001 ; + // #endif + float mu = 1.0; float muS = mu; @@ -117,7 +148,7 @@ vec4 getVolumetricRays( vec3 WsunVec = mat3(gbufferModelViewInverse) * sunVec * lightCol.a; - vec3 progressW = gbufferModelViewInverse[3].xyz+cameraPosition; + vec3 progressW = gbufferModelViewInverse[3].xyz + cameraPosition; float lightleakfix = clamp(pow(eyeBrightnessSmooth.y/240.,2) ,0.0,1.0); for (int i=0;i TORCH_R TORCH_G TORCH_B screen.Ambient_Colors.columns=1 - screen.Ambient_Colors = ambient_brightness MIN_LIGHT_AMOUNT ambient_colortype ambient_temp AmbientLight_R AmbientLight_G AmbientLight_B + screen.Ambient_Colors = ambient_brightness MIN_LIGHT_AMOUNT AmbientLight_R AmbientLight_G AmbientLight_B @@ -100,17 +117,23 @@ PhysicsMod_support [LabPBR] screen.Waving_Stuff = WAVY_PLANTS WAVY_STRENGTH WAVY_SPEED ## POM screen.POM.columns=1 - screen.POM = POM Adaptive_Step_length MAX_ITERATIONS POM_DEPTH MAX_DIST Horrible_slope_normals + screen.POM = HEIGTHMAP_DEPTH_OFFSET POM Adaptive_Step_length MAX_ITERATIONS POM_DEPTH MAX_DIST Horrible_slope_normals ######## CLIMATE screen.Climate.columns=1 - screen.Climate = [Seasons] Biome_specific_environment Daily_Weather + screen.Climate = Daily_Weather [Seasons] PER_BIOME_ENVIRONMENT [SWAMP] [JUNGLE] [DARKFOREST] ## BIOME SPECIFICS - screen.Biome_Fog.columns=1 - screen.Biome_Fog = Biome_specific_environment + screen.SWAMP.columns=1 + screen.SWAMP = SWAMP_ENV SWAMP_UNIFORM_DENSITY SWAMP_CLOUDY_DENSITY SWAMP_R SWAMP_G SWAMP_B + + screen.JUNGLE.columns=1 + screen.JUNGLE = JUNGLE_ENV JUNGLE_UNIFORM_DENSITY JUNGLE_CLOUDY_DENSITY JUNGLE_R JUNGLE_G JUNGLE_B + + screen.DARKFOREST.columns=1 + screen.DARKFOREST = DARKFOREST_ENV DARKFOREST_UNIFORM_DENSITY DARKFOREST_CLOUDY_DENSITY DARKFOREST_R DARKFOREST_G DARKFOREST_B ## SEASONS @@ -132,7 +155,7 @@ PhysicsMod_support [LabPBR] ######## ATMOSPHERICS screen.Atmospherics.columns=1 - screen.Atmospherics = [Sky] [Fog] [Biome_Fog] [Clouds] Altostratus Cumulus_Clouds Allow_Vanilla_sky + screen.Atmospherics = [Sky] [Fog] [Clouds] Altostratus Cumulus_Clouds Allow_Vanilla_sky ### SKY screen.Sky.columns=1 @@ -147,7 +170,7 @@ PhysicsMod_support [LabPBR] ### FOG screen.Fog.columns=2 - screen.Fog = VL_RENDER_RESOLUTION Haze_amount VL_SAMPLES RainFog_amount BLOOMY_FOG [TOD_fog] Cloud_Fog [Biome_Fog] BorderFog [Cave_Fog] [NETHER_END_FOG] + screen.Fog = VL_RENDER_RESOLUTION Haze_amount VL_SAMPLES RainFog_amount BLOOMY_FOG [TOD_fog] Cloud_Fog BorderFog [Cave_Fog] [NETHER_END_FOG] screen.TOD_fog.columns=2 @@ -197,7 +220,7 @@ PhysicsMod_support [LabPBR] ######## MISC SETTINGS screen.Misc_Settings.columns=1 - screen.Misc_Settings = [the_orb] WhiteWorld ambientLight_only Glass_Tint display_LUT ambientSSS_view LIT_PARTICLE_BRIGHTNESS + screen.Misc_Settings = [the_orb] display_LUT WhiteWorld SSS_view ambientLight_only Glass_Tint LIGHTNING_FLASH HURT_AND_DEATH_EFFECT LIT_PARTICLE_BRIGHTNESS screen.the_orb.columns = 1 screen.the_orb = THE_ORB ORB_X ORB_Y ORB_Z ORB_ColMult ORB_R ORB_G ORB_B @@ -216,12 +239,16 @@ PhysicsMod_support [LabPBR] screen.Advanced = Dirt_Scatter_R Dirt_Scatter_G Dirt_Scatter_B Dirt_Absorb_R Dirt_Absorb_G Dirt_Absorb_B Water_Absorb_R Water_Absorb_G Water_Absorb_B -######## moonphase based weather + + +##################################### +####### WEATHER RELATED STUFF ####### +##################################### # in seconds... -variable.int.TransitionTime = 30 +variable.int.WeatherTransitionTime = 30 -uniform.float.Cumulus_Cov = smooth(1, if( \ +uniform.float.Cumulus_Cov = smooth(if( \ moonPhase == 0, 0.7, \ moonPhase == 1, 0.9, \ moonPhase == 2, 0.0, \ @@ -229,9 +256,9 @@ uniform.float.Cumulus_Cov = smooth(1, if( \ moonPhase == 4, 0.0, \ moonPhase == 5, 1.2, \ moonPhase == 6, 0.6, \ - 0.0 ), TransitionTime, TransitionTime) + 0.0 ), WeatherTransitionTime, WeatherTransitionTime) -uniform.float.Alto_Cov = smooth(2, if( \ +uniform.float.Alto_Cov = smooth(if( \ moonPhase == 0, 0.1, \ moonPhase == 1, 1.0, \ moonPhase == 2, 1.0, \ @@ -239,9 +266,9 @@ uniform.float.Alto_Cov = smooth(2, if( \ moonPhase == 4, 0.3, \ moonPhase == 5, 0.0, \ moonPhase == 6, 1.5, \ - 0.0 ), TransitionTime, TransitionTime) + 0.0 ), WeatherTransitionTime, WeatherTransitionTime) -uniform.float.Alto_Den = smooth(3, if( \ +uniform.float.Alto_Den = smooth(if( \ moonPhase == 0, 0.1, \ moonPhase == 1, 0.25, \ moonPhase == 2, 0.1, \ @@ -249,73 +276,101 @@ uniform.float.Alto_Den = smooth(3, if( \ moonPhase == 4, 0.7, \ moonPhase == 5, 0.0, \ moonPhase == 6, 0.05, \ - 0.0 ), TransitionTime, TransitionTime) + 0.0 ), WeatherTransitionTime, WeatherTransitionTime) -uniform.float.Uniform_Den = smooth(4, if( \ +uniform.float.Uniform_Den = smooth(if( \ moonPhase == 0, 0, \ moonPhase == 1, 0, \ - moonPhase == 2, 4, \ + moonPhase == 2, 10, \ moonPhase == 3, 0, \ moonPhase == 4, 0, \ moonPhase == 5, 0, \ - moonPhase == 6, 2, \ - 0 ), TransitionTime, TransitionTime) + moonPhase == 6, 5, \ + 0 ), WeatherTransitionTime, WeatherTransitionTime) -uniform.float.Cloudy_Den = smooth(5, if( \ +uniform.float.Cloudy_Den = smooth(if( \ moonPhase == 0, 0, \ moonPhase == 1, 0, \ moonPhase == 2, 0, \ moonPhase == 3, 0, \ moonPhase == 4, 0, \ moonPhase == 5, 0, \ - moonPhase == 6, 5, \ - 0 ), TransitionTime, TransitionTime) - -# uniform.float.CloudHeight = smooth(5, if( \ -# moonPhase == 0, 1.0, \ -# moonPhase == 1, 0.5, \ -# moonPhase == 2, 1.0, \ -# moonPhase == 3, 1.5, \ -# moonPhase == 4, 1.0, \ -# moonPhase == 5, 1.0, \ -# moonPhase == 6, 1.0, \ -# 1.0 ), TransitionTime, TransitionTime) - - -# Biome uniforms - -variable.int.BiomeTransitionTime = 30 - -uniform.float.isJungles = smooth(6, if(in(biome,23,24,25), 1,0), BiomeTransitionTime,BiomeTransitionTime) -uniform.float.isSwamps = smooth(7, if(in(biome,6,7,52), 1,0), BiomeTransitionTime,BiomeTransitionTime) - -uniform.float.sandStorm = smooth(8, if(in(biome,5,26,27,28), rainStrength,0), 15,15) -uniform.float.snowStorm = smooth(9, if(in(biome,31,32,33,34), rainStrength,0), 15,15) - -uniform.float.noPuddleAreas = smooth(10, if(in(biome,5,16,17,18,26, 27, 28, 3, 4, 16,31,32,33,34, 37, 39, 48), 0,1), 5,5) - + moonPhase == 6, 50, \ + 0 ), WeatherTransitionTime, WeatherTransitionTime) # uniform.float.ifEndBoss = smooth(if(bossBattle == 2, 1, 0 ), 1, 1) - # uniform.float.EndSequence1 = smooth(if(hideGUI == 1, 1.0, 0.0), 30, 0) - # uniform.float.EndSequence2 = smooth(if(EndSequence1 > 0.95, 1.0, 0.0), 1.25, 0) -# uniform.float.Winter = smooth(14, if( worldDay > 0 && worldDay < 10), 5, 5) - - # thank you sixthsurge! -uniform.float.lightningFlash = smooth(16,if(equals(skyColor.r, skyColor.g, 0.01) && skyColor.r > 0.3, 1.0, 0.0), 0.0, 0.2) +#ifdef LIGHTNING_FLASH + #ifdef IS_IRIS + variable.float.lightningFlash = smooth(if(lightningBoltPosition.w > 0.0, 1.0, 0.0), 0.0, 0.0) + #else + variable.float.lightningFlash = smooth(if(equals(skyColor.r, skyColor.g, 0.01) && skyColor.r > 0.3, 1.0, 0.0), 0.0, 0.0) + #endif +#else + variable.float.lightningFlash = 0.0 +#endif -uniform.vec3.lightningEffect = vec3(77.0*lightningFlash, 153.0*lightningFlash, 255.0*lightningFlash) +uniform.vec3.lightningEffect = vec3(77.0 * lightningFlash, 153.0 * lightningFlash, 255.0 * lightningFlash) -texture.noise=texture/noises.png -texture.composite.colortex6=texture/blueNoise.png -separateAo=true -alphaTest.shadow= GREATER 0.1 -beacon.beam.depth=true -rain.depth=false + +################################### +####### BIOME RELATED STUFF ####### +################################### + +variable.int.BiomeTransitionTime = 1 + +#ifdef SWAMP_ENV + uniform.float.isSwamps = smooth(if(in(biome, 6, 52, 7), 1,0), BiomeTransitionTime, BiomeTransitionTime) +#else + uniform.float.isSwamps = 0.0 +#endif + +#ifdef JUNGLE_ENV + uniform.float.isJungles = smooth(if(in(biome, 23, 24, 25), 1,0), BiomeTransitionTime, BiomeTransitionTime) +#else + uniform.float.isJungles = 0.0 +#endif + +#ifdef DARKFOREST_ENV + uniform.float.isDarkForests = smooth(if(in(biome, 11), 1,0), BiomeTransitionTime, BiomeTransitionTime) +#else + uniform.float.isDarkForests = 0.0 +#endif + +#ifdef MANGROVE_ENV + uniform.float.isMangroveSwamp = smooth(if(in(biome, 7), 1,0), BiomeTransitionTime, BiomeTransitionTime) +#else + uniform.float.isMangroveSwamp = 0.0 +#endif + +# set to only happen in dry deserts. +uniform.float.sandStorm = smooth(if(in(biome, 5, 26, 27, 28), rainStrength, 0), 15,30) + +# set to only happen in cold mountains. +uniform.float.snowStorm = smooth(if(in(biome, 31, 32, 33, 34), rainStrength, 0), 15,30) + +uniform.float.noPuddleAreas = smooth(if(in(biome, 3, 4, 16, 37, 39, 48, 49, 31, 32, 33, 34, 5, 17, 18, 26, 27, 28), 0,1), 5,5) + + + +############################ +####### RANDOM STUFF ####### +############################ + +#ifdef HURT_AND_DEATH_EFFECT + uniform.float.hurt = smooth(if(is_hurt,1,0),0,1) + uniform.float.dying = smooth(if(!is_alive,2,0),3,0) + uniform.float.dead = smooth(if(dying >= 1.99, 1,0),1,0) +#endif + +uniform.vec3.CamPos = vec3(cameraPosition.x,cameraPosition.y,cameraPosition.z) + +texture.noise = texture/noises.png +texture.composite.colortex6 = texture/blueNoise.png variable.float.texelSizeX = 1.0/viewWidth variable.float.texelSizeY = 1.0/viewHeight diff --git a/shaders/world-1/composite.vsh b/shaders/world-1/composite.vsh deleted file mode 100644 index 5d659b9..0000000 --- a/shaders/world-1/composite.vsh +++ /dev/null @@ -1,5 +0,0 @@ -#version 120 - -#define NETHER_SHADER - -#include "/dimensions/composite.vsh" \ No newline at end of file diff --git a/shaders/world-1/composite10.fsh b/shaders/world-1/composite10.fsh new file mode 100644 index 0000000..6fdc6a5 --- /dev/null +++ b/shaders/world-1/composite10.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define NETHER_SHADER + +#include "/dimensions/composite10.fsh" \ No newline at end of file diff --git a/shaders/world-1/composite10.vsh b/shaders/world-1/composite10.vsh new file mode 100644 index 0000000..7a5a31a --- /dev/null +++ b/shaders/world-1/composite10.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define NETHER_SHADER + +#include "/dimensions/composite10.vsh" \ No newline at end of file diff --git a/shaders/world-1/composite11.fsh b/shaders/world-1/composite11.fsh new file mode 100644 index 0000000..c8dd09f --- /dev/null +++ b/shaders/world-1/composite11.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define NETHER_SHADER + +#include "/dimensions/composite11.fsh" \ No newline at end of file diff --git a/shaders/world-1/composite11.vsh b/shaders/world-1/composite11.vsh new file mode 100644 index 0000000..ae59f60 --- /dev/null +++ b/shaders/world-1/composite11.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define NETHER_SHADER + +#include "/dimensions/composite11.vsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_armor_glint.fsh b/shaders/world-1/gbuffers_armor_glint.fsh index 430bda4..5501d52 100644 --- a/shaders/world-1/gbuffers_armor_glint.fsh +++ b/shaders/world-1/gbuffers_armor_glint.fsh @@ -1,25 +1,5 @@ #version 120 -#include "/lib/settings.glsl" +#define ENCHANT_GLINT -varying vec4 lmtexcoord; -varying vec4 color; -uniform sampler2D texture; - -//faster and actually more precise than pow 2.2 -vec3 toLinear(vec3 sRGB){ - return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); -} - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -/* DRAWBUFFERS:2 */ - -void main() { - - gl_FragData[0] = vec4(toLinear( texture2D(texture, lmtexcoord.xy).rgb * color.rgb), 0.1); - -} +#include "/dimensions/all_vanilla_emissives.fsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_armor_glint.vsh b/shaders/world-1/gbuffers_armor_glint.vsh index acb4c70..87ad965 100644 --- a/shaders/world-1/gbuffers_armor_glint.vsh +++ b/shaders/world-1/gbuffers_armor_glint.vsh @@ -1,47 +1,5 @@ #version 120 -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" +#define ENCHANT_GLINT -/* -!! DO NOT REMOVE !! -This code is from Chocapic13' shaders -Read the terms of modification and sharing before changing something below please ! -!! DO NOT REMOVE !! -*/ - -varying vec4 lmtexcoord; -varying vec4 color; - -uniform vec2 texelSize; -uniform int framemod8; -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - gl_Position = ftransform(); - - lmtexcoord.xy = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; - - vec2 lmcoord = gl_MultiTexCoord1.xy/255.; - - lmtexcoord.zw = lmcoord*lmcoord; - - color = gl_Color; - - #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; - #endif -} +#include "/dimensions/all_vanilla_emissives.vsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_basic.fsh b/shaders/world-1/gbuffers_basic.fsh index b6c50e0..524ea00 100644 --- a/shaders/world-1/gbuffers_basic.fsh +++ b/shaders/world-1/gbuffers_basic.fsh @@ -1,9 +1,7 @@ #version 120 -// #define ENTITIES -#define BLOCKENTITIES -#define WORLD +#define LINES #define NETHER_SHADER -#include "/dimensions/all_solid.fsh" \ No newline at end of file +#include "/dimensions/all_particles.fsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_basic.vsh b/shaders/world-1/gbuffers_basic.vsh index 47026d7..9b48b38 100644 --- a/shaders/world-1/gbuffers_basic.vsh +++ b/shaders/world-1/gbuffers_basic.vsh @@ -1,10 +1,7 @@ #version 120 -// #define ENTITIES -// #define LINE -#define BLOCKENTITIES -#define WORLD +#define LINES #define NETHER_SHADER -#include "/dimensions/all_solid.vsh" \ No newline at end of file +#include "/dimensions/all_particles.vsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_beaconbeam.fsh b/shaders/world-1/gbuffers_beaconbeam.fsh index 6c6a7bf..3e666de 100644 --- a/shaders/world-1/gbuffers_beaconbeam.fsh +++ b/shaders/world-1/gbuffers_beaconbeam.fsh @@ -1,29 +1,5 @@ #version 120 -#include "/lib/settings.glsl" +#define BEACON_BEAM -varying vec4 lmtexcoord; -varying vec2 texcoord; -varying vec4 color; -uniform sampler2D texture; - -//faster and actually more precise than pow 2.2 -vec3 toLinear(vec3 sRGB){ - return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); -} - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -/* DRAWBUFFERS:28 */ - -void main() { - - vec4 Albedo = texture2D(texture, texcoord.xy) * color * 1.5; - - gl_FragData[0] = vec4(toLinear(Albedo.rgb), 1.0); - gl_FragData[1] = vec4(0.0, 0.0, 0.0, 0.5); - -} +#include "/dimensions/all_vanilla_emissives.fsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_beaconbeam.vsh b/shaders/world-1/gbuffers_beaconbeam.vsh index 32726c5..f285c00 100644 --- a/shaders/world-1/gbuffers_beaconbeam.vsh +++ b/shaders/world-1/gbuffers_beaconbeam.vsh @@ -1,44 +1,5 @@ #version 120 -//#extension GL_EXT_gpu_shader4 : disable -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" +#define BEACON_BEAM -/* -!! DO NOT REMOVE !! -This code is from Chocapic13' shaders -Read the terms of modification and sharing before changing something below please ! -!! DO NOT REMOVE !! -*/ - -varying vec4 color; -varying vec2 texcoord; - -uniform vec2 texelSize; -uniform int framemod8; -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - - gl_Position = ftransform(); - if(gl_Color.a < 1.0 ) gl_Position = vec4(10,10,10,1); - - texcoord = (gl_MultiTexCoord0).xy; - color = gl_Color; - - #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; - #endif -} +#include "/dimensions/all_vanilla_emissives.vsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_damagedblock.fsh b/shaders/world-1/gbuffers_damagedblock.fsh index d51ec5d..bae444a 100644 --- a/shaders/world-1/gbuffers_damagedblock.fsh +++ b/shaders/world-1/gbuffers_damagedblock.fsh @@ -1,116 +1,6 @@ #version 120 -//#extension GL_EXT_gpu_shader4 : disable -#define PCF +#define DAMAGE_BLOCK_EFFECT +#define NETHER_SHADER - - - -varying vec4 lmtexcoord; -varying vec4 color; -varying vec4 normalMat; - - -uniform sampler2D texture; -uniform sampler2D gaux1; -uniform vec4 lightCol; -uniform vec3 sunVec; -uniform vec3 upVec; - -uniform vec2 texelSize; -uniform float skyIntensityNight; -uniform float skyIntensity; -uniform float sunElevation; -uniform float rainStrength; -uniform mat4 gbufferProjectionInverse; -uniform mat4 gbufferModelViewInverse; -uniform mat4 shadowModelView; -uniform mat4 shadowProjection; - -//faster and actually more precise than pow 2.2 -vec3 toLinear(vec3 sRGB){ - return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); -} - -#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) -#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) -vec3 toScreenSpace(vec3 p) { - vec4 iProjDiag = vec4(gbufferProjectionInverse[0].x, gbufferProjectionInverse[1].y, gbufferProjectionInverse[2].zw); - vec3 p3 = p * 2. - 1.; - vec4 fragposition = iProjDiag * p3.xyzz + gbufferProjectionInverse[3]; - return fragposition.xyz / fragposition.w; -} -float interleaved_gradientNoise(float temporal){ - vec2 coord = gl_FragCoord.xy; - float noise = fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y)+temporal); - return noise; -} - -#ifdef PCF -const vec2 shadowOffsets[4] = vec2[4](vec2( 0.1250, 0.0000 ), -vec2( -0.1768, -0.1768 ), -vec2( -0.0000, 0.3750 ), -vec2( 0.3536, -0.3536 ) -); -#endif -float facos(float sx){ - float x = clamp(abs( sx ),0.,1.); - float a = sqrt( 1. - x ) * ( -0.16882 * x + 1.56734 ); - return sx > 0. ? a : 3.14159265359 - a; -} - - -vec2 tapLocation(int sampleNumber, float spinAngle,int nb, float nbRot) -{ - float startJitter = (spinAngle/6.28); - float alpha = sqrt(sampleNumber + startJitter/nb ); - float angle = alpha * (nbRot * 6.28) + spinAngle*2.; - - float ssR = alpha; - float sin_v, cos_v; - - sin_v = sin(angle); - cos_v = cos(angle); - - return vec2(cos_v, sin_v)*ssR; -} -uniform int framemod8; -uniform int framecouter; - const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); - - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -/* DRAWBUFFERS:2 */ -void main() { - - gl_FragData[0] = texture2D(texture, lmtexcoord.xy)*color; - vec2 tempOffset=offsets[framemod8]; - - if (gl_FragData[0].a>0.1){ - vec3 albedo = toLinear(gl_FragData[0].rgb); - - vec3 normal = normalMat.xyz; - - - vec3 ambient = texture2D(gaux1,(lmtexcoord.zw*15.+0.5)*texelSize).rgb; - - vec3 diffuseLight = ambient; - - - gl_FragData[0].rgb = diffuseLight*albedo*8./1500.*0.1; - } - - - -} +#include "/dimensions/all_translucent.fsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_damagedblock.vsh b/shaders/world-1/gbuffers_damagedblock.vsh index 7b641d2..1cf93e3 100644 --- a/shaders/world-1/gbuffers_damagedblock.vsh +++ b/shaders/world-1/gbuffers_damagedblock.vsh @@ -1,54 +1,6 @@ #version 120 -//#extension GL_EXT_gpu_shader4 : disable -#define TAA -/* -!! DO NOT REMOVE !! -This code is from Chocapic13' shaders -Read the terms of modification and sharing before changing something below please ! -!! DO NOT REMOVE !! -*/ +#define DAMAGE_BLOCK_EFFECT +#define NETHER_SHADER -varying vec4 lmtexcoord; -varying vec4 color; -varying vec4 normalMat; -#ifdef MC_NORMAL_MAP -varying vec4 tangent; -attribute vec4 at_tangent; -#endif - -uniform vec2 texelSize; -uniform int framemod8; - const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - lmtexcoord.xy = (gl_MultiTexCoord0).xy; - - vec2 lmcoord = gl_MultiTexCoord1.xy/255.; - lmtexcoord.zw = lmcoord; - - gl_Position = ftransform(); - color = gl_Color; - - - #ifdef MC_NORMAL_MAP - tangent = vec4(normalize(gl_NormalMatrix *at_tangent.rgb),at_tangent.w); - #endif - - normalMat = vec4(normalize(gl_NormalMatrix *gl_Normal),1.0); - #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; - #endif -} +#include "/dimensions/all_translucent.vsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_entities_glowing.fsh b/shaders/world-1/gbuffers_entities_glowing.fsh new file mode 100644 index 0000000..2f75507 --- /dev/null +++ b/shaders/world-1/gbuffers_entities_glowing.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define GLOWING + +#include "/dimensions/all_vanilla_emissives.fsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_entities_glowing.vsh b/shaders/world-1/gbuffers_entities_glowing.vsh new file mode 100644 index 0000000..a8a4292 --- /dev/null +++ b/shaders/world-1/gbuffers_entities_glowing.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define GLOWING + +#include "/dimensions/all_vanilla_emissives.vsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_hand_water.fsh b/shaders/world-1/gbuffers_hand_water.fsh index 27407c9..f5f3ea6 100644 --- a/shaders/world-1/gbuffers_hand_water.fsh +++ b/shaders/world-1/gbuffers_hand_water.fsh @@ -1,7 +1,6 @@ #version 120 -#define NETHER - +#define HAND #define NETHER_SHADER #include "/dimensions/all_translucent.fsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_hand_water.vsh b/shaders/world-1/gbuffers_hand_water.vsh index 1aaf6cc..6bc5096 100644 --- a/shaders/world-1/gbuffers_hand_water.vsh +++ b/shaders/world-1/gbuffers_hand_water.vsh @@ -1,7 +1,6 @@ #version 120 -#define NETHER - +#define HAND #define NETHER_SHADER #include "/dimensions/all_translucent.vsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_spidereyes.fsh b/shaders/world-1/gbuffers_spidereyes.fsh index 8255274..538421d 100644 --- a/shaders/world-1/gbuffers_spidereyes.fsh +++ b/shaders/world-1/gbuffers_spidereyes.fsh @@ -1,29 +1,5 @@ #version 120 -#include "/lib/settings.glsl" +#define SPIDER_EYES -varying vec4 lmtexcoord; -varying vec2 texcoord; -varying vec4 color; -uniform sampler2D texture; - -//faster and actually more precise than pow 2.2 -vec3 toLinear(vec3 sRGB){ - return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); -} - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -/* DRAWBUFFERS:28 */ - -void main() { - - vec4 Albedo = texture2D(texture, texcoord.xy) * color; - - gl_FragData[0] = vec4(toLinear(Albedo.rgb), Albedo.a); - gl_FragData[1] = vec4(0.0, 0.0, 0.0, 0.5); - -} +#include "/dimensions/all_vanilla_emissives.fsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_spidereyes.vsh b/shaders/world-1/gbuffers_spidereyes.vsh index 70f53ae..ad968cc 100644 --- a/shaders/world-1/gbuffers_spidereyes.vsh +++ b/shaders/world-1/gbuffers_spidereyes.vsh @@ -1,43 +1,5 @@ #version 120 -//#extension GL_EXT_gpu_shader4 : disable -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" +#define SPIDER_EYES -/* -!! DO NOT REMOVE !! -This code is from Chocapic13' shaders -Read the terms of modification and sharing before changing something below please ! -!! DO NOT REMOVE !! -*/ - -varying vec4 color; -varying vec2 texcoord; - -uniform vec2 texelSize; -uniform int framemod8; -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - - gl_Position = ftransform(); - - texcoord = (gl_MultiTexCoord0).xy; - color = gl_Color; - - #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; - #endif -} +#include "/dimensions/all_vanilla_emissives.vsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_terrain.fsh b/shaders/world-1/gbuffers_terrain.fsh index 620bdc2..6277091 100644 --- a/shaders/world-1/gbuffers_terrain.fsh +++ b/shaders/world-1/gbuffers_terrain.fsh @@ -1,7 +1,6 @@ #version 120 +#define WORLD #define NETHER_SHADER -#define WORLD - #include "/dimensions/all_solid.fsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_terrain.vsh b/shaders/world-1/gbuffers_terrain.vsh index ee6cf82..f09d3fe 100644 --- a/shaders/world-1/gbuffers_terrain.vsh +++ b/shaders/world-1/gbuffers_terrain.vsh @@ -1,7 +1,7 @@ #version 120 +#define WORLD #define NETHER_SHADER -#define WORLD #include "/dimensions/all_solid.vsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_textured.fsh b/shaders/world-1/gbuffers_textured.fsh index a9b24b2..4c1dc0c 100644 --- a/shaders/world-1/gbuffers_textured.fsh +++ b/shaders/world-1/gbuffers_textured.fsh @@ -1,6 +1,6 @@ #version 120 - +#define PARTICLES #define NETHER_SHADER #include "/dimensions/all_particles.fsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_textured.vsh b/shaders/world-1/gbuffers_textured.vsh index d5d05e9..480a2c8 100644 --- a/shaders/world-1/gbuffers_textured.vsh +++ b/shaders/world-1/gbuffers_textured.vsh @@ -1,6 +1,7 @@ #version 120 +#define PARTICLES #define NETHER_SHADER #include "/dimensions/all_particles.vsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_textured_lit.fsh b/shaders/world-1/gbuffers_textured_lit.fsh index b86b50a..3256567 100644 --- a/shaders/world-1/gbuffers_textured_lit.fsh +++ b/shaders/world-1/gbuffers_textured_lit.fsh @@ -1,5 +1,7 @@ #version 120 +#define LIT +#define PARTICLES #define NETHER_SHADER -#include "/dimensions/all_particles.fsh" \ No newline at end of file +#include "/dimensions/all_particles.fsh" diff --git a/shaders/world-1/gbuffers_textured_lit.vsh b/shaders/world-1/gbuffers_textured_lit.vsh index e484278..a8f3ebb 100644 --- a/shaders/world-1/gbuffers_textured_lit.vsh +++ b/shaders/world-1/gbuffers_textured_lit.vsh @@ -1,8 +1,7 @@ #version 120 -// #define WEATHER +#define LIT #define PARTICLES - #define NETHER_SHADER #include "/dimensions/all_particles.vsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_weather.fsh b/shaders/world-1/gbuffers_weather.fsh index f169e8b..6202ff0 100644 --- a/shaders/world-1/gbuffers_weather.fsh +++ b/shaders/world-1/gbuffers_weather.fsh @@ -1,49 +1,6 @@ #version 120 +#define WEATHER +#define NETHER_SHADER -varying vec4 lmtexcoord; -varying vec4 color; - -uniform sampler2D texture; -uniform sampler2D gaux1; -uniform vec4 lightCol; -uniform vec3 sunVec; - -uniform vec2 texelSize; -uniform float skyIntensityNight; -uniform float skyIntensity; -uniform float rainStrength; - -uniform mat4 gbufferProjectionInverse; - -#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) -#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) -vec3 toLinear(vec3 sRGB){ - return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); -} - - -vec3 toScreenSpaceVector(vec3 p) { - vec4 iProjDiag = vec4(gbufferProjectionInverse[0].x, gbufferProjectionInverse[1].y, gbufferProjectionInverse[2].zw); - vec3 p3 = p * 2. - 1.; - vec4 fragposition = iProjDiag * p3.xyzz + gbufferProjectionInverse[3]; - return normalize(fragposition.xyz); -} -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { -/* DRAWBUFFERS:2 */ - gl_FragData[0] = texture2D(texture, lmtexcoord.xy)*color; - gl_FragData[0].a = clamp(gl_FragData[0].a -0.1,0.0,1.0)*0.5; - vec3 albedo = toLinear(gl_FragData[0].rgb*color.rgb); - vec3 ambient = texture2D(gaux1,(lmtexcoord.zw*15.+0.5)*texelSize).rgb; - - gl_FragData[0].rgb = dot(albedo,vec3(1.0))*ambient*10./3.0/150.*0.1; - - - -} +#include "/dimensions/all_particles.fsh" \ No newline at end of file diff --git a/shaders/world-1/gbuffers_weather.vsh b/shaders/world-1/gbuffers_weather.vsh index b7c44aa..4cc6ec6 100644 --- a/shaders/world-1/gbuffers_weather.vsh +++ b/shaders/world-1/gbuffers_weather.vsh @@ -1,44 +1,6 @@ #version 120 -#define TAA -/* -!! DO NOT REMOVE !! -This code is from Chocapic13' shaders -Read the terms of modification and sharing before changing something below please ! -!! DO NOT REMOVE !! -*/ +#define WEATHER +#define NETHER_SHADER -varying vec4 lmtexcoord; -varying vec4 color; - -uniform vec2 texelSize; -uniform int framemod8; - const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - - lmtexcoord.xy = (gl_MultiTexCoord0).xy; - - vec2 lmcoord = gl_MultiTexCoord1.xy/255.; - lmtexcoord.zw = lmcoord*lmcoord; - - - gl_Position = ftransform(); - - color = gl_Color; - #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; - #endif -} \ No newline at end of file +#include "/dimensions/all_particles.vsh" \ No newline at end of file diff --git a/shaders/world-1/composite.fsh b/shaders/world0/composite.fsh similarity index 67% rename from shaders/world-1/composite.fsh rename to shaders/world0/composite.fsh index 6f2293a..4392112 100644 --- a/shaders/world-1/composite.fsh +++ b/shaders/world0/composite.fsh @@ -1,5 +1,5 @@ #version 120 -#define NETHER_SHADER +#define OVERWORLD_SHADER #include "/dimensions/composite.fsh" \ No newline at end of file diff --git a/shaders/world1/composite.vsh b/shaders/world0/composite.vsh similarity index 67% rename from shaders/world1/composite.vsh rename to shaders/world0/composite.vsh index 032f8fa..481d1c6 100644 --- a/shaders/world1/composite.vsh +++ b/shaders/world0/composite.vsh @@ -1,5 +1,5 @@ #version 120 -#define END_SHADER +#define OVERWORLD_SHADER #include "/dimensions/composite.vsh" \ No newline at end of file diff --git a/shaders/world0/composite1.fsh b/shaders/world0/composite1.fsh new file mode 100644 index 0000000..46e557b --- /dev/null +++ b/shaders/world0/composite1.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite1.fsh" \ No newline at end of file diff --git a/shaders/world0/composite1.vsh b/shaders/world0/composite1.vsh new file mode 100644 index 0000000..36d76b5 --- /dev/null +++ b/shaders/world0/composite1.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite1.vsh" \ No newline at end of file diff --git a/shaders/world0/composite10.fsh b/shaders/world0/composite10.fsh new file mode 100644 index 0000000..684023c --- /dev/null +++ b/shaders/world0/composite10.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite10.fsh" \ No newline at end of file diff --git a/shaders/world0/composite10.vsh b/shaders/world0/composite10.vsh new file mode 100644 index 0000000..497490c --- /dev/null +++ b/shaders/world0/composite10.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite10.vsh" \ No newline at end of file diff --git a/shaders/world0/composite11.fsh b/shaders/world0/composite11.fsh new file mode 100644 index 0000000..56efeb7 --- /dev/null +++ b/shaders/world0/composite11.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite11.fsh" \ No newline at end of file diff --git a/shaders/world0/composite11.vsh b/shaders/world0/composite11.vsh new file mode 100644 index 0000000..03e95e7 --- /dev/null +++ b/shaders/world0/composite11.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite11.vsh" \ No newline at end of file diff --git a/shaders/world0/composite2.fsh b/shaders/world0/composite2.fsh new file mode 100644 index 0000000..df6c56d --- /dev/null +++ b/shaders/world0/composite2.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite2.fsh" \ No newline at end of file diff --git a/shaders/world0/composite2.vsh b/shaders/world0/composite2.vsh new file mode 100644 index 0000000..a54cc5c --- /dev/null +++ b/shaders/world0/composite2.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite2.vsh" \ No newline at end of file diff --git a/shaders/world0/composite3.fsh b/shaders/world0/composite3.fsh new file mode 100644 index 0000000..704ae81 --- /dev/null +++ b/shaders/world0/composite3.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite3.fsh" \ No newline at end of file diff --git a/shaders/world0/composite3.vsh b/shaders/world0/composite3.vsh new file mode 100644 index 0000000..3b5fa07 --- /dev/null +++ b/shaders/world0/composite3.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite3.vsh" \ No newline at end of file diff --git a/shaders/world0/composite4.fsh b/shaders/world0/composite4.fsh new file mode 100644 index 0000000..16de56b --- /dev/null +++ b/shaders/world0/composite4.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite4.fsh" \ No newline at end of file diff --git a/shaders/world0/composite4.vsh b/shaders/world0/composite4.vsh new file mode 100644 index 0000000..8fcd849 --- /dev/null +++ b/shaders/world0/composite4.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite4.vsh" \ No newline at end of file diff --git a/shaders/world0/composite5.fsh b/shaders/world0/composite5.fsh new file mode 100644 index 0000000..48ea36a --- /dev/null +++ b/shaders/world0/composite5.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite5.fsh" \ No newline at end of file diff --git a/shaders/world0/composite5.vsh b/shaders/world0/composite5.vsh new file mode 100644 index 0000000..719c1ce --- /dev/null +++ b/shaders/world0/composite5.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite5.vsh" \ No newline at end of file diff --git a/shaders/world0/composite6.fsh b/shaders/world0/composite6.fsh new file mode 100644 index 0000000..b749c02 --- /dev/null +++ b/shaders/world0/composite6.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite6.fsh" \ No newline at end of file diff --git a/shaders/world0/composite6.vsh b/shaders/world0/composite6.vsh new file mode 100644 index 0000000..8569ecc --- /dev/null +++ b/shaders/world0/composite6.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite6.vsh" \ No newline at end of file diff --git a/shaders/world0/composite7.fsh b/shaders/world0/composite7.fsh new file mode 100644 index 0000000..5847d03 --- /dev/null +++ b/shaders/world0/composite7.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite7.fsh" \ No newline at end of file diff --git a/shaders/world0/composite7.vsh b/shaders/world0/composite7.vsh new file mode 100644 index 0000000..d517409 --- /dev/null +++ b/shaders/world0/composite7.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite7.vsh" \ No newline at end of file diff --git a/shaders/world0/composite8.fsh b/shaders/world0/composite8.fsh new file mode 100644 index 0000000..cab88f9 --- /dev/null +++ b/shaders/world0/composite8.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite8.fsh" \ No newline at end of file diff --git a/shaders/world0/composite8.vsh b/shaders/world0/composite8.vsh new file mode 100644 index 0000000..cf1f994 --- /dev/null +++ b/shaders/world0/composite8.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite8.vsh" \ No newline at end of file diff --git a/shaders/world0/composite9.fsh b/shaders/world0/composite9.fsh new file mode 100644 index 0000000..7f12057 --- /dev/null +++ b/shaders/world0/composite9.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite9.fsh" \ No newline at end of file diff --git a/shaders/world0/composite9.vsh b/shaders/world0/composite9.vsh new file mode 100644 index 0000000..803cf3b --- /dev/null +++ b/shaders/world0/composite9.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/composite9.vsh" \ No newline at end of file diff --git a/shaders/world0/deferred.fsh b/shaders/world0/deferred.fsh new file mode 100644 index 0000000..c72bd8a --- /dev/null +++ b/shaders/world0/deferred.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/deferred.fsh" \ No newline at end of file diff --git a/shaders/world0/deferred.vsh b/shaders/world0/deferred.vsh new file mode 100644 index 0000000..ef2d3ae --- /dev/null +++ b/shaders/world0/deferred.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/deferred.vsh" \ No newline at end of file diff --git a/shaders/world0/deferred1.fsh b/shaders/world0/deferred1.fsh new file mode 100644 index 0000000..4a8b2df --- /dev/null +++ b/shaders/world0/deferred1.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/deferred1.fsh" \ No newline at end of file diff --git a/shaders/world0/deferred1.vsh b/shaders/world0/deferred1.vsh new file mode 100644 index 0000000..c120dd3 --- /dev/null +++ b/shaders/world0/deferred1.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/deferred1.vsh" \ No newline at end of file diff --git a/shaders/world0/deferred2.fsh b/shaders/world0/deferred2.fsh new file mode 100644 index 0000000..0ccb382 --- /dev/null +++ b/shaders/world0/deferred2.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/deferred2.fsh" \ No newline at end of file diff --git a/shaders/world0/deferred2.vsh b/shaders/world0/deferred2.vsh new file mode 100644 index 0000000..53f7634 --- /dev/null +++ b/shaders/world0/deferred2.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/deferred2.vsh" \ No newline at end of file diff --git a/shaders/world0/final.fsh b/shaders/world0/final.fsh new file mode 100644 index 0000000..c5f8c4f --- /dev/null +++ b/shaders/world0/final.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/final.fsh" \ No newline at end of file diff --git a/shaders/world0/final.vsh b/shaders/world0/final.vsh new file mode 100644 index 0000000..e447a55 --- /dev/null +++ b/shaders/world0/final.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/final.vsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_armor_glint.fsh b/shaders/world0/gbuffers_armor_glint.fsh new file mode 100644 index 0000000..5501d52 --- /dev/null +++ b/shaders/world0/gbuffers_armor_glint.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define ENCHANT_GLINT + +#include "/dimensions/all_vanilla_emissives.fsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_armor_glint.vsh b/shaders/world0/gbuffers_armor_glint.vsh new file mode 100644 index 0000000..87ad965 --- /dev/null +++ b/shaders/world0/gbuffers_armor_glint.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define ENCHANT_GLINT + +#include "/dimensions/all_vanilla_emissives.vsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_basic.fsh b/shaders/world0/gbuffers_basic.fsh new file mode 100644 index 0000000..5dc1306 --- /dev/null +++ b/shaders/world0/gbuffers_basic.fsh @@ -0,0 +1,7 @@ +#version 120 + + +#define LINES +#define OVERWORLD_SHADER + +#include "/dimensions/all_particles.fsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_basic.vsh b/shaders/world0/gbuffers_basic.vsh new file mode 100644 index 0000000..a7735a3 --- /dev/null +++ b/shaders/world0/gbuffers_basic.vsh @@ -0,0 +1,7 @@ +#version 120 + + +#define LINES +#define OVERWORLD_SHADER + +#include "/dimensions/all_particles.vsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_beaconbeam.fsh b/shaders/world0/gbuffers_beaconbeam.fsh new file mode 100644 index 0000000..3e666de --- /dev/null +++ b/shaders/world0/gbuffers_beaconbeam.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define BEACON_BEAM + +#include "/dimensions/all_vanilla_emissives.fsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_beaconbeam.vsh b/shaders/world0/gbuffers_beaconbeam.vsh new file mode 100644 index 0000000..f285c00 --- /dev/null +++ b/shaders/world0/gbuffers_beaconbeam.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define BEACON_BEAM + +#include "/dimensions/all_vanilla_emissives.vsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_block.fsh b/shaders/world0/gbuffers_block.fsh new file mode 100644 index 0000000..348ea12 --- /dev/null +++ b/shaders/world0/gbuffers_block.fsh @@ -0,0 +1,8 @@ +#version 120 + +#define WORLD +#define BLOCKENTITIES + +#define OVERWORLD_SHADER + +#include "/dimensions/all_solid.fsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_block.vsh b/shaders/world0/gbuffers_block.vsh new file mode 100644 index 0000000..dba7f49 --- /dev/null +++ b/shaders/world0/gbuffers_block.vsh @@ -0,0 +1,8 @@ +#version 120 + +#define WORLD +#define BLOCKENTITIES + +#define OVERWORLD_SHADER + +#include "/dimensions/all_solid.vsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_damagedblock.fsh b/shaders/world0/gbuffers_damagedblock.fsh new file mode 100644 index 0000000..49c7bb0 --- /dev/null +++ b/shaders/world0/gbuffers_damagedblock.fsh @@ -0,0 +1,6 @@ +#version 120 + +#define OVERWORLD_SHADER +#define DAMAGE_BLOCK_EFFECT + +#include "/dimensions/all_translucent.fsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_damagedblock.vsh b/shaders/world0/gbuffers_damagedblock.vsh new file mode 100644 index 0000000..f063bd6 --- /dev/null +++ b/shaders/world0/gbuffers_damagedblock.vsh @@ -0,0 +1,6 @@ +#version 120 + +#define OVERWORLD_SHADER +#define DAMAGE_BLOCK_EFFECT + +#include "/dimensions/all_translucent.vsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_entities.fsh b/shaders/world0/gbuffers_entities.fsh new file mode 100644 index 0000000..5952881 --- /dev/null +++ b/shaders/world0/gbuffers_entities.fsh @@ -0,0 +1,8 @@ +#version 120 + +#define WORLD +#define ENTITIES + +#define OVERWORLD_SHADER + +#include "/dimensions/all_solid.fsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_entities.vsh b/shaders/world0/gbuffers_entities.vsh new file mode 100644 index 0000000..330a017 --- /dev/null +++ b/shaders/world0/gbuffers_entities.vsh @@ -0,0 +1,9 @@ +#version 120 + + +// #define WORLD +#define ENTITIES + +#define OVERWORLD_SHADER + +#include "/dimensions/all_solid.vsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_entities_glowing.fsh b/shaders/world0/gbuffers_entities_glowing.fsh new file mode 100644 index 0000000..2f75507 --- /dev/null +++ b/shaders/world0/gbuffers_entities_glowing.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define GLOWING + +#include "/dimensions/all_vanilla_emissives.fsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_entities_glowing.vsh b/shaders/world0/gbuffers_entities_glowing.vsh new file mode 100644 index 0000000..a8a4292 --- /dev/null +++ b/shaders/world0/gbuffers_entities_glowing.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define GLOWING + +#include "/dimensions/all_vanilla_emissives.vsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_hand.fsh b/shaders/world0/gbuffers_hand.fsh new file mode 100644 index 0000000..3cfa9af --- /dev/null +++ b/shaders/world0/gbuffers_hand.fsh @@ -0,0 +1,8 @@ +#version 120 + +#define WORLD +#define HAND + +#define OVERWORLD_SHADER + +#include "/dimensions/all_solid.fsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_hand.vsh b/shaders/world0/gbuffers_hand.vsh new file mode 100644 index 0000000..06b7be5 --- /dev/null +++ b/shaders/world0/gbuffers_hand.vsh @@ -0,0 +1,8 @@ +#version 120 + +#define WORLD +#define HAND + +#define OVERWORLD_SHADER + +#include "/dimensions/all_solid.vsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_hand_water.fsh b/shaders/world0/gbuffers_hand_water.fsh new file mode 100644 index 0000000..50e69eb --- /dev/null +++ b/shaders/world0/gbuffers_hand_water.fsh @@ -0,0 +1,6 @@ +#version 120 + +#define HAND +#define OVERWORLD_SHADER + +#include "/dimensions/all_translucent.fsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_hand_water.vsh b/shaders/world0/gbuffers_hand_water.vsh new file mode 100644 index 0000000..e2cb1f3 --- /dev/null +++ b/shaders/world0/gbuffers_hand_water.vsh @@ -0,0 +1,6 @@ +#version 120 + +#define HAND +#define OVERWORLD_SHADER + +#include "/dimensions/all_translucent.vsh" \ No newline at end of file diff --git a/shaders/gbuffers_clouds.fsh b/shaders/world0/gbuffers_skybasic.fsh similarity index 95% rename from shaders/gbuffers_clouds.fsh rename to shaders/world0/gbuffers_skybasic.fsh index 8b76841..9bdb083 100644 --- a/shaders/gbuffers_clouds.fsh +++ b/shaders/world0/gbuffers_skybasic.fsh @@ -2,4 +2,4 @@ void main() { discard; -} \ No newline at end of file +} diff --git a/shaders/world0/gbuffers_skybasic.vsh b/shaders/world0/gbuffers_skybasic.vsh new file mode 100644 index 0000000..0a2f94b --- /dev/null +++ b/shaders/world0/gbuffers_skybasic.vsh @@ -0,0 +1,5 @@ +#version 120 + +void main() { + gl_Position = ftransform(); +} diff --git a/shaders/gbuffers_skytextured.fsh b/shaders/world0/gbuffers_skytextured.fsh similarity index 95% rename from shaders/gbuffers_skytextured.fsh rename to shaders/world0/gbuffers_skytextured.fsh index 8b76841..9bdb083 100644 --- a/shaders/gbuffers_skytextured.fsh +++ b/shaders/world0/gbuffers_skytextured.fsh @@ -2,4 +2,4 @@ void main() { discard; -} \ No newline at end of file +} diff --git a/shaders/world0/gbuffers_skytextured.vsh b/shaders/world0/gbuffers_skytextured.vsh new file mode 100644 index 0000000..0a2f94b --- /dev/null +++ b/shaders/world0/gbuffers_skytextured.vsh @@ -0,0 +1,5 @@ +#version 120 + +void main() { + gl_Position = ftransform(); +} diff --git a/shaders/world0/gbuffers_spidereyes.fsh b/shaders/world0/gbuffers_spidereyes.fsh new file mode 100644 index 0000000..538421d --- /dev/null +++ b/shaders/world0/gbuffers_spidereyes.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define SPIDER_EYES + +#include "/dimensions/all_vanilla_emissives.fsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_spidereyes.vsh b/shaders/world0/gbuffers_spidereyes.vsh new file mode 100644 index 0000000..ad968cc --- /dev/null +++ b/shaders/world0/gbuffers_spidereyes.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define SPIDER_EYES + +#include "/dimensions/all_vanilla_emissives.vsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_terrain.fsh b/shaders/world0/gbuffers_terrain.fsh new file mode 100644 index 0000000..c87cd88 --- /dev/null +++ b/shaders/world0/gbuffers_terrain.fsh @@ -0,0 +1,7 @@ +#version 120 + +#define OVERWORLD_SHADER + +#define WORLD + +#include "/dimensions/all_solid.fsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_terrain.vsh b/shaders/world0/gbuffers_terrain.vsh new file mode 100644 index 0000000..43043a3 --- /dev/null +++ b/shaders/world0/gbuffers_terrain.vsh @@ -0,0 +1,7 @@ +#version 120 + +#define OVERWORLD_SHADER + +#define WORLD + +#include "/dimensions/all_solid.vsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_textured.fsh b/shaders/world0/gbuffers_textured.fsh new file mode 100644 index 0000000..7b3352f --- /dev/null +++ b/shaders/world0/gbuffers_textured.fsh @@ -0,0 +1,7 @@ +#version 120 + + +#define PARTICLES +#define OVERWORLD_SHADER + +#include "/dimensions/all_particles.fsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_textured.vsh b/shaders/world0/gbuffers_textured.vsh new file mode 100644 index 0000000..73e3207 --- /dev/null +++ b/shaders/world0/gbuffers_textured.vsh @@ -0,0 +1,7 @@ +#version 120 + + +#define PARTICLES +#define OVERWORLD_SHADER + +#include "/dimensions/all_particles.vsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_textured_lit.fsh b/shaders/world0/gbuffers_textured_lit.fsh new file mode 100644 index 0000000..f6b24c8 --- /dev/null +++ b/shaders/world0/gbuffers_textured_lit.fsh @@ -0,0 +1,7 @@ +#version 120 + +#define LIT +#define PARTICLES +#define OVERWORLD_SHADER + +#include "/dimensions/all_particles.fsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_textured_lit.vsh b/shaders/world0/gbuffers_textured_lit.vsh new file mode 100644 index 0000000..785116c --- /dev/null +++ b/shaders/world0/gbuffers_textured_lit.vsh @@ -0,0 +1,7 @@ +#version 120 + +#define LIT +#define PARTICLES +#define OVERWORLD_SHADER + +#include "/dimensions/all_particles.vsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_water.fsh b/shaders/world0/gbuffers_water.fsh new file mode 100644 index 0000000..a6005b4 --- /dev/null +++ b/shaders/world0/gbuffers_water.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/all_translucent.fsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_water.vsh b/shaders/world0/gbuffers_water.vsh new file mode 100644 index 0000000..afb2f14 --- /dev/null +++ b/shaders/world0/gbuffers_water.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define OVERWORLD_SHADER + +#include "/dimensions/all_translucent.vsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_weather.fsh b/shaders/world0/gbuffers_weather.fsh new file mode 100644 index 0000000..dabb41b --- /dev/null +++ b/shaders/world0/gbuffers_weather.fsh @@ -0,0 +1,6 @@ +#version 120 + +#define WEATHER +#define OVERWORLD_SHADER + +#include "/dimensions/all_particles.fsh" \ No newline at end of file diff --git a/shaders/world0/gbuffers_weather.vsh b/shaders/world0/gbuffers_weather.vsh new file mode 100644 index 0000000..8e24a6c --- /dev/null +++ b/shaders/world0/gbuffers_weather.vsh @@ -0,0 +1,6 @@ +#version 120 + +#define WEATHER +#define OVERWORLD_SHADER + +#include "/dimensions/all_particles.vsh" \ No newline at end of file diff --git a/shaders/shadow.fsh b/shaders/world0/shadow.fsh similarity index 95% rename from shaders/shadow.fsh rename to shaders/world0/shadow.fsh index 6ab0a6b..6d43fc3 100644 --- a/shaders/shadow.fsh +++ b/shaders/world0/shadow.fsh @@ -1,6 +1,6 @@ #version 120 //#extension GL_ARB_shader_texture_lod : disable -//#extension GL_EXT_gpu_shader4 : disable +#extension GL_EXT_gpu_shader4 : enable #include "/lib/settings.glsl" diff --git a/shaders/shadow.vsh b/shaders/world0/shadow.vsh similarity index 85% rename from shaders/shadow.vsh rename to shaders/world0/shadow.vsh index 93c82bd..0d49ee4 100644 --- a/shaders/shadow.vsh +++ b/shaders/world0/shadow.vsh @@ -1,5 +1,5 @@ #version 120 -//#extension GL_EXT_gpu_shader4 : disable +#extension GL_EXT_gpu_shader4 : enable /* @@ -98,8 +98,17 @@ bool intersectCone(float coneHalfAngle, vec3 coneTip , vec3 coneAxis, vec3 rayOr vec4 toClipSpace3(vec3 viewSpacePosition) { return vec4(projMAD(gl_ProjectionMatrix, viewSpacePosition),1.0); } + + + + + + + + void main() { + vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; // HHHHHHHHH ITS THE JITTER DOF HERE TO SAY HELLO @@ -138,25 +147,33 @@ void main() { // } // #endif - #ifdef WAVY_PLANTS - bool istopv = gl_MultiTexCoord0.t < mc_midTexCoord.t; - if ((mc_Entity.x == 10001&&istopv) && length(position.xy) < 24.0) { - vec3 worldpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz; - worldpos.xyz += calcMovePlants(worldpos.xyz + cameraPosition)*gl_MultiTexCoord1.y; - position = mat3(shadowModelView) * worldpos + shadowModelView[3].xyz ; - } + #ifdef WAVY_PLANTS + bool istopv = gl_MultiTexCoord0.t < mc_midTexCoord.t; + if ((mc_Entity.x == 10001&&istopv) && length(position.xy) < 24.0) { + vec3 worldpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz; + worldpos.xyz += calcMovePlants(worldpos.xyz + cameraPosition)*gl_MultiTexCoord1.y; + position = mat3(shadowModelView) * worldpos + shadowModelView[3].xyz ; + } - if ((mc_Entity.x == 10003) && length(position.xy) < 24.0) { - vec3 worldpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz; - worldpos.xyz += calcMoveLeaves(worldpos.xyz + 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))*gl_MultiTexCoord1.y; - position = mat3(shadowModelView) * worldpos + shadowModelView[3].xyz ; - } - #endif + if ((mc_Entity.x == 10003) && length(position.xy) < 24.0) { + vec3 worldpos = mat3(shadowModelViewInverse) * position + shadowModelViewInverse[3].xyz; + worldpos.xyz += calcMoveLeaves(worldpos.xyz + 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))*gl_MultiTexCoord1.y; + position = mat3(shadowModelView) * worldpos + shadowModelView[3].xyz ; + } + #endif + + + + + // mat4 Custom_ViewMatrix = BuildShadowViewMatrix(LightDir); + // mat4 Custom_ProjectionMatrix = BuildShadowProjectionMatrix(); + + // vec3 position = mat3(Custom_ViewMatrix) * vec3(gl_Vertex) + Custom_ViewMatrix[3].xyz; + // vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; - // gl_Position = BiasShadowProjection_altered(toClipSpace3(position),mat3(shadowProjection),mat3(shadowModelView), gl_NormalMatrix * gl_Normal); - gl_Position = BiasShadowProjection(toClipSpace3(position)); + texcoord.xy = gl_MultiTexCoord0.xy; if(mc_Entity.x == 8 || mc_Entity.x == 9) gl_Position.w = -1.0; @@ -173,4 +190,7 @@ void main() { } gl_Position.z /= bias; + + + } diff --git a/shaders/world1/composite.fsh b/shaders/world1/composite.fsh deleted file mode 100644 index 598bc16..0000000 --- a/shaders/world1/composite.fsh +++ /dev/null @@ -1,5 +0,0 @@ -#version 120 - -#define END_SHADER - -#include "/dimensions/composite.fsh" \ No newline at end of file diff --git a/shaders/world1/composite10.fsh b/shaders/world1/composite10.fsh new file mode 100644 index 0000000..ee3281f --- /dev/null +++ b/shaders/world1/composite10.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define END_SHADER + +#include "/dimensions/composite10.fsh" \ No newline at end of file diff --git a/shaders/world1/composite10.vsh b/shaders/world1/composite10.vsh new file mode 100644 index 0000000..f2237a9 --- /dev/null +++ b/shaders/world1/composite10.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define END_SHADER + +#include "/dimensions/composite10.vsh" \ No newline at end of file diff --git a/shaders/world1/composite11.fsh b/shaders/world1/composite11.fsh new file mode 100644 index 0000000..cd9deae --- /dev/null +++ b/shaders/world1/composite11.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define END_SHADER + +#include "/dimensions/composite11.fsh" \ No newline at end of file diff --git a/shaders/world1/composite11.vsh b/shaders/world1/composite11.vsh new file mode 100644 index 0000000..6d5a44b --- /dev/null +++ b/shaders/world1/composite11.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define END_SHADER + +#include "/dimensions/composite11.vsh" \ No newline at end of file diff --git a/shaders/world1/gbuffers_armor_glint.fsh b/shaders/world1/gbuffers_armor_glint.fsh index 430bda4..5501d52 100644 --- a/shaders/world1/gbuffers_armor_glint.fsh +++ b/shaders/world1/gbuffers_armor_glint.fsh @@ -1,25 +1,5 @@ #version 120 -#include "/lib/settings.glsl" +#define ENCHANT_GLINT -varying vec4 lmtexcoord; -varying vec4 color; -uniform sampler2D texture; - -//faster and actually more precise than pow 2.2 -vec3 toLinear(vec3 sRGB){ - return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); -} - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -/* DRAWBUFFERS:2 */ - -void main() { - - gl_FragData[0] = vec4(toLinear( texture2D(texture, lmtexcoord.xy).rgb * color.rgb), 0.1); - -} +#include "/dimensions/all_vanilla_emissives.fsh" \ No newline at end of file diff --git a/shaders/world1/gbuffers_armor_glint.vsh b/shaders/world1/gbuffers_armor_glint.vsh index acb4c70..87ad965 100644 --- a/shaders/world1/gbuffers_armor_glint.vsh +++ b/shaders/world1/gbuffers_armor_glint.vsh @@ -1,47 +1,5 @@ #version 120 -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" +#define ENCHANT_GLINT -/* -!! DO NOT REMOVE !! -This code is from Chocapic13' shaders -Read the terms of modification and sharing before changing something below please ! -!! DO NOT REMOVE !! -*/ - -varying vec4 lmtexcoord; -varying vec4 color; - -uniform vec2 texelSize; -uniform int framemod8; -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - gl_Position = ftransform(); - - lmtexcoord.xy = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; - - vec2 lmcoord = gl_MultiTexCoord1.xy/255.; - - lmtexcoord.zw = lmcoord*lmcoord; - - color = gl_Color; - - #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; - #endif -} +#include "/dimensions/all_vanilla_emissives.vsh" \ No newline at end of file diff --git a/shaders/world1/gbuffers_beaconbeam.fsh b/shaders/world1/gbuffers_beaconbeam.fsh index 6c6a7bf..3e666de 100644 --- a/shaders/world1/gbuffers_beaconbeam.fsh +++ b/shaders/world1/gbuffers_beaconbeam.fsh @@ -1,29 +1,5 @@ #version 120 -#include "/lib/settings.glsl" +#define BEACON_BEAM -varying vec4 lmtexcoord; -varying vec2 texcoord; -varying vec4 color; -uniform sampler2D texture; - -//faster and actually more precise than pow 2.2 -vec3 toLinear(vec3 sRGB){ - return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); -} - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -/* DRAWBUFFERS:28 */ - -void main() { - - vec4 Albedo = texture2D(texture, texcoord.xy) * color * 1.5; - - gl_FragData[0] = vec4(toLinear(Albedo.rgb), 1.0); - gl_FragData[1] = vec4(0.0, 0.0, 0.0, 0.5); - -} +#include "/dimensions/all_vanilla_emissives.fsh" \ No newline at end of file diff --git a/shaders/world1/gbuffers_beaconbeam.vsh b/shaders/world1/gbuffers_beaconbeam.vsh index 32726c5..f285c00 100644 --- a/shaders/world1/gbuffers_beaconbeam.vsh +++ b/shaders/world1/gbuffers_beaconbeam.vsh @@ -1,44 +1,5 @@ #version 120 -//#extension GL_EXT_gpu_shader4 : disable -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" +#define BEACON_BEAM -/* -!! DO NOT REMOVE !! -This code is from Chocapic13' shaders -Read the terms of modification and sharing before changing something below please ! -!! DO NOT REMOVE !! -*/ - -varying vec4 color; -varying vec2 texcoord; - -uniform vec2 texelSize; -uniform int framemod8; -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - - gl_Position = ftransform(); - if(gl_Color.a < 1.0 ) gl_Position = vec4(10,10,10,1); - - texcoord = (gl_MultiTexCoord0).xy; - color = gl_Color; - - #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; - #endif -} +#include "/dimensions/all_vanilla_emissives.vsh" \ No newline at end of file diff --git a/shaders/world1/gbuffers_damagedblock.fsh b/shaders/world1/gbuffers_damagedblock.fsh index d51ec5d..117d0f4 100644 --- a/shaders/world1/gbuffers_damagedblock.fsh +++ b/shaders/world1/gbuffers_damagedblock.fsh @@ -1,116 +1,6 @@ #version 120 -//#extension GL_EXT_gpu_shader4 : disable -#define PCF +#define END_SHADER +#define DAMAGE_BLOCK_EFFECT - - - -varying vec4 lmtexcoord; -varying vec4 color; -varying vec4 normalMat; - - -uniform sampler2D texture; -uniform sampler2D gaux1; -uniform vec4 lightCol; -uniform vec3 sunVec; -uniform vec3 upVec; - -uniform vec2 texelSize; -uniform float skyIntensityNight; -uniform float skyIntensity; -uniform float sunElevation; -uniform float rainStrength; -uniform mat4 gbufferProjectionInverse; -uniform mat4 gbufferModelViewInverse; -uniform mat4 shadowModelView; -uniform mat4 shadowProjection; - -//faster and actually more precise than pow 2.2 -vec3 toLinear(vec3 sRGB){ - return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); -} - -#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) -#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) -vec3 toScreenSpace(vec3 p) { - vec4 iProjDiag = vec4(gbufferProjectionInverse[0].x, gbufferProjectionInverse[1].y, gbufferProjectionInverse[2].zw); - vec3 p3 = p * 2. - 1.; - vec4 fragposition = iProjDiag * p3.xyzz + gbufferProjectionInverse[3]; - return fragposition.xyz / fragposition.w; -} -float interleaved_gradientNoise(float temporal){ - vec2 coord = gl_FragCoord.xy; - float noise = fract(52.9829189*fract(0.06711056*coord.x + 0.00583715*coord.y)+temporal); - return noise; -} - -#ifdef PCF -const vec2 shadowOffsets[4] = vec2[4](vec2( 0.1250, 0.0000 ), -vec2( -0.1768, -0.1768 ), -vec2( -0.0000, 0.3750 ), -vec2( 0.3536, -0.3536 ) -); -#endif -float facos(float sx){ - float x = clamp(abs( sx ),0.,1.); - float a = sqrt( 1. - x ) * ( -0.16882 * x + 1.56734 ); - return sx > 0. ? a : 3.14159265359 - a; -} - - -vec2 tapLocation(int sampleNumber, float spinAngle,int nb, float nbRot) -{ - float startJitter = (spinAngle/6.28); - float alpha = sqrt(sampleNumber + startJitter/nb ); - float angle = alpha * (nbRot * 6.28) + spinAngle*2.; - - float ssR = alpha; - float sin_v, cos_v; - - sin_v = sin(angle); - cos_v = cos(angle); - - return vec2(cos_v, sin_v)*ssR; -} -uniform int framemod8; -uniform int framecouter; - const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); - - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -/* DRAWBUFFERS:2 */ -void main() { - - gl_FragData[0] = texture2D(texture, lmtexcoord.xy)*color; - vec2 tempOffset=offsets[framemod8]; - - if (gl_FragData[0].a>0.1){ - vec3 albedo = toLinear(gl_FragData[0].rgb); - - vec3 normal = normalMat.xyz; - - - vec3 ambient = texture2D(gaux1,(lmtexcoord.zw*15.+0.5)*texelSize).rgb; - - vec3 diffuseLight = ambient; - - - gl_FragData[0].rgb = diffuseLight*albedo*8./1500.*0.1; - } - - - -} +#include "/dimensions/all_translucent.fsh" \ No newline at end of file diff --git a/shaders/world1/gbuffers_damagedblock.vsh b/shaders/world1/gbuffers_damagedblock.vsh index 7b641d2..5b3e965 100644 --- a/shaders/world1/gbuffers_damagedblock.vsh +++ b/shaders/world1/gbuffers_damagedblock.vsh @@ -1,54 +1,6 @@ #version 120 -//#extension GL_EXT_gpu_shader4 : disable -#define TAA -/* -!! DO NOT REMOVE !! -This code is from Chocapic13' shaders -Read the terms of modification and sharing before changing something below please ! -!! DO NOT REMOVE !! -*/ +#define END_SHADER +#define DAMAGE_BLOCK_EFFECT -varying vec4 lmtexcoord; -varying vec4 color; -varying vec4 normalMat; -#ifdef MC_NORMAL_MAP -varying vec4 tangent; -attribute vec4 at_tangent; -#endif - -uniform vec2 texelSize; -uniform int framemod8; - const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - lmtexcoord.xy = (gl_MultiTexCoord0).xy; - - vec2 lmcoord = gl_MultiTexCoord1.xy/255.; - lmtexcoord.zw = lmcoord; - - gl_Position = ftransform(); - color = gl_Color; - - - #ifdef MC_NORMAL_MAP - tangent = vec4(normalize(gl_NormalMatrix *at_tangent.rgb),at_tangent.w); - #endif - - normalMat = vec4(normalize(gl_NormalMatrix *gl_Normal),1.0); - #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; - #endif -} +#include "/dimensions/all_translucent.vsh" \ No newline at end of file diff --git a/shaders/world1/gbuffers_entities_glowing.fsh b/shaders/world1/gbuffers_entities_glowing.fsh new file mode 100644 index 0000000..2f75507 --- /dev/null +++ b/shaders/world1/gbuffers_entities_glowing.fsh @@ -0,0 +1,5 @@ +#version 120 + +#define GLOWING + +#include "/dimensions/all_vanilla_emissives.fsh" \ No newline at end of file diff --git a/shaders/world1/gbuffers_entities_glowing.vsh b/shaders/world1/gbuffers_entities_glowing.vsh new file mode 100644 index 0000000..a8a4292 --- /dev/null +++ b/shaders/world1/gbuffers_entities_glowing.vsh @@ -0,0 +1,5 @@ +#version 120 + +#define GLOWING + +#include "/dimensions/all_vanilla_emissives.vsh" \ No newline at end of file diff --git a/shaders/world1/gbuffers_hand_water.fsh b/shaders/world1/gbuffers_hand_water.fsh index 9b0ad76..f0eebaf 100644 --- a/shaders/world1/gbuffers_hand_water.fsh +++ b/shaders/world1/gbuffers_hand_water.fsh @@ -1,5 +1,6 @@ #version 120 +#define HAND #define END_SHADER #include "/dimensions/all_translucent.fsh" \ No newline at end of file diff --git a/shaders/world1/gbuffers_hand_water.vsh b/shaders/world1/gbuffers_hand_water.vsh index 9a4a869..37d503d 100644 --- a/shaders/world1/gbuffers_hand_water.vsh +++ b/shaders/world1/gbuffers_hand_water.vsh @@ -1,5 +1,6 @@ #version 120 +#define HAND #define END_SHADER #include "/dimensions/all_translucent.vsh" \ No newline at end of file diff --git a/shaders/world1/gbuffers_spidereyes.fsh b/shaders/world1/gbuffers_spidereyes.fsh index 8255274..538421d 100644 --- a/shaders/world1/gbuffers_spidereyes.fsh +++ b/shaders/world1/gbuffers_spidereyes.fsh @@ -1,29 +1,5 @@ #version 120 -#include "/lib/settings.glsl" +#define SPIDER_EYES -varying vec4 lmtexcoord; -varying vec2 texcoord; -varying vec4 color; -uniform sampler2D texture; - -//faster and actually more precise than pow 2.2 -vec3 toLinear(vec3 sRGB){ - return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); -} - -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -/* DRAWBUFFERS:28 */ - -void main() { - - vec4 Albedo = texture2D(texture, texcoord.xy) * color; - - gl_FragData[0] = vec4(toLinear(Albedo.rgb), Albedo.a); - gl_FragData[1] = vec4(0.0, 0.0, 0.0, 0.5); - -} +#include "/dimensions/all_vanilla_emissives.fsh" \ No newline at end of file diff --git a/shaders/world1/gbuffers_spidereyes.vsh b/shaders/world1/gbuffers_spidereyes.vsh index 70f53ae..ad968cc 100644 --- a/shaders/world1/gbuffers_spidereyes.vsh +++ b/shaders/world1/gbuffers_spidereyes.vsh @@ -1,43 +1,5 @@ #version 120 -//#extension GL_EXT_gpu_shader4 : disable -#include "/lib/settings.glsl" -#include "/lib/res_params.glsl" +#define SPIDER_EYES -/* -!! DO NOT REMOVE !! -This code is from Chocapic13' shaders -Read the terms of modification and sharing before changing something below please ! -!! DO NOT REMOVE !! -*/ - -varying vec4 color; -varying vec2 texcoord; - -uniform vec2 texelSize; -uniform int framemod8; -const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), - vec2(-1.,3.)/8., - vec2(5.0,1.)/8., - vec2(-3,-5.)/8., - vec2(-5.,5.)/8., - vec2(-7.,-1.)/8., - vec2(3,7.)/8., - vec2(7.,-7.)/8.); -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// -//////////////////////////////VOID MAIN////////////////////////////// - -void main() { - - gl_Position = ftransform(); - - texcoord = (gl_MultiTexCoord0).xy; - color = gl_Color; - - #ifdef TAA - gl_Position.xy += offsets[framemod8] * gl_Position.w*texelSize; - #endif -} +#include "/dimensions/all_vanilla_emissives.vsh" \ No newline at end of file diff --git a/yarhar.zip b/yarhar.zip new file mode 100644 index 0000000000000000000000000000000000000000..5d67676728e70f773eed6f29b1479d6b80e136dc GIT binary patch literal 1622244 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

G1BEltaVYnhz}a^ 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

`N3vox_5-@HSyr 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%0A!PGk*HykRGqZ(1gU~Vp{bx`)1hYw#}&Zqs$h7W zp%*y&3mqI@BJL~j9q{Z2@Y6t5JzG56{T{)c&hB!A^bAJ~V)Hr#D5*b3>%9!}~;WwCffFW+}w4C)UrGiQD6T?e_ynUp>S{Kh{a8YIpr=lW( z3br*NTo1TuVB(OZ)J{d8J1n6T`xZ!CLi|5eVb3JgceK~&+n6ZkNpueb?Rf>)2ETt1 zJ`IHL`}|o;61@qSr4=#D6kE9nz$G!ACFTVrr5i?zuZKxN$ku{iFY)>BV%L)h))a>y z`2M-@216X`c>eYF@zvZ?_&vhk9~0rWl2pPlQd6vqhmC`i;|S-9OiCc)r0DLGWc8!rX zoxbHK4&M>j(#P4vN8^ar2_o23(cY84u84PH@!9-cFIayi({rN7;? z$E9sa_~o2y28Xv{iiEUmn@F_F40&WuCuHoaCl4^D_XwBb+joyE~5Vta&hM$eK+h4(P zQv%y#M4ZgvqY3=~p}#X>Jx|`ak<0};RhZZ&HliE`AIrk5c)qy3i!%IxR`7IRxH(jH0}`Eqh(x{95$iKk0(|2qi@gwaViGCk7~F5 z`MA4ec)JuPmxY7So_GBOZ7tanC#jZKVBMlw32|m4UzZMrGG6}*+YO4uC3kaN+eeIQ z=8I>t--Wvow5=$7U7=Usgx9n%-d_Q9nBaeQByJ1-!^}8>Ya!8HP8(0GEUW11ixYYI z=y(47L5%N*o9uA^2hQ}ykCbA6OtJ70eXI$SS@gd&|GbqUF2gPi108X*9RB7Ft2AJz z9z3O_{fpUO1LxoMj2STZG`!V;{bjgyAAEccZ*BBtiI^m3^Ydro+VVc)`80oR6pICl zlJasu?in$R&QiY#C zRB4jId6iH{jSmKp!@yXDqxy1YI|=V^PH6}TO9UzxfxiS0Lk`3xP~mLjunlTTVEUaC zG7IFXcj6`}9d%~ggYiI`F{;kW0JE6kJ2|Gt?YKUEq2i*8#PcAhr{eV4o-_Db+(j*k z&U_8X*^sjXfv6rnJpf-TU|ZN7Apog1#})RRQ!1skK)x`nzgHdgS9KK>yzOD4q5nD& z)Tw}anLn}s_!y&}A0^XTNV95FJdgPa_x~1v3!K-HZjL}E2at0}*x$XMYh%a#2*9qa zL}MCXbo@OYCKFD6yYFT^c&BxEB`iqY1*|4fTmx9`RGEtbr7oMtu>DP9`qZlUsyI1c zw*bmB{@bp2dQd@gkucN*l8s>lctM3%}k4xV@59Xa2gV@ED`N zZ%Zay#5_Bn%_0oR`TBPd-jEKyVx-59-*zW3d{4vwS%~C3!k^du(tmSi{oVp;3s6vz}~@<|1067m4ae>rs$89ik#(Pd7R4s;fisY;H8%F%!uR|YU|0=?tW z(~TsD$>QHdK~GaX|3hIVd3?tMAIBs z--nZ1jpBapDPiypiS>Jir`wImkZVH1}i)b!a=nPb#{7g*e62({HDhIy) zjuWj7Hu5W^X24NRcHDuHLhP=pAny=fV^32E@o`>>uj{Zl;V`o{zxy-pO`lyN{s;~} zqbGl{aS2;ni17^^+zUS&aI1zs|L6Z%ipwB&>;IzKzejiu)LPl7js|Zi^deRiS6U z@pVCdooHZm>(Tf|tb>>zR!mmKmxlbd2A|3+AQyx;$$0%!SWTr5lcvTcuwU{;V%#0E zJx<2`MocoajqCoyk-={$o_=W-X3*m--;R1Jo-+H8cGns}4N{<74fCq-ptru)p-*Gj zu_?TDmCMdZ*h|7(H8zcL|8bg{3ugy--o1qJO>ZcYpQPD?aAZE+@5rZrZ;gj}HK750 z!X#|D<9o@x?4WppZSq`k8D{zE@ob4Jw6s4xuRu%2v8!&-LGgH)zlR=(^RW^nCR&q_ zt=P|T(!(CYP+v86xqJN9m%c*$_Ey!yGIQ<^Mh1m7*o-k*!-Oi;+fK#SQYiBgy;PyV50!Or{r{v*l&C;o{V^2f_a7Te2BmW2z7<942uAM5t~mhAk2jAy`d#w;AB+$_;ftAsv4F(UQ$nhbXr&180?#}F%;nwl48SoaYURLdBb zg@w}?_vrV-d@+k1FTp~hGI1->@Tw`NBvch~Ca~cU@FkMS3TXcZfBXo@lN1P#Nt~w$ z+jhlZHY2_1d{JO!+}d-Dd*9^yQZQ8$Ayy(z!W!%&I{Cu4UkSV&lI2q9jX|XQ*nCJr ze30+@DKt(RQI-bmWK$w;iV@(4joM!$a=Rt@g2Zv)iTK_9NB(FKzL&$}3bs~7*o5Wd zo(;dK_~(2RUyU|UL``SYpAW_z^d9ERPb87``tk>nO$%2eai_@Q1ovJSlks21SDtP8 z?l%}cO%Og&thC+}Pf{yK5IV7Cyuzc3MA(KM<=H=9QoGES$6Y&u$fwfAvXOCZ??ZW3SlI;`P`&ChzhCc@q zv4+HJ7W;DH{vm==NFjVJyzPOl-4aS2zmLYxRr*>@0hJFX=Mk8v;ou)!?8?{a_-aGd z_&R>1BgD+2Nd$;GL=!x5k;oD;PB%JJ%6uZLxLwGZumervhgTGc0s`1q5L2fhp7WYfWC&c#=akxQ4y1`;9wp5f;v%>!0vn)=!YR}M5fOkW9U4V4= zipFYc9FnY6q5b)0JlgdZ;4MJ*;tZ)2W{n3?VEhv**ZU;5!z$oq4C)|A`vCes0W3r8 zmvUMzK)i-LpD-vRJ6yLO|bVG@GIKeElHXc)YR}qp?-$sUIh=_AjVye+09<|$Icl>NHgROnE z^EF%35{C`0@1Y<0T=O~6*{08#IJ%jDEFjux0DP)of3I3=iWHf{w?FpP0k)(PLP5_x zC}{NnX;WaQ@(urYJqn>Y(q9B3% z@Mb&-@I7MmBwuV~+t_ma3CueQW}^jhLfpH=YkI@DRc6M32<)H6ng-{go}1-E4TVjwI}D2~EW{acDVe|Z6vq{U}v4SO2Od)BewY=HrhB;>d_`5nMk(pzaaF4f>k>Qk*Bz zOCRnhMu$?xoz(W;h|B20k-J9-PHuflt{^T6{m$>a_FE{1Q9hHv=dv93Wpi8HMr-oNSE=U{6id^{3HNBl4jUaISBM>eet-$V7c zcE@-sUN{MGH6G

OGq~zO_1zBRSdh!C0e2II5!0^CibO^?MHu`AeZaSzB+gr#GJ$ zmi*GfO*aXcF(|+>(4@$t0hyfPu#(vwDi$r^IiL!ZelVSEMB;#l3s(cpB?o z{a+d;XtJX{ySB3>hs1k6OazwXYvSIRFmDKN%PQ^?!Pf}fED7J( z%+%0V`fx%VGSK2);=X{bL&7I9dif6je@XX;!(kyB^&`&C=i3T6JK1RcUaB~Oa_)q< ztTy=V1Drg{x5eq?JXraNhQEm?Pr%`FF&V88Js}BA#evS@la3@fdu`kyFX(x@@TLr3 zYw7PgT&E*oq%}%7sV{$8jU5tuWG-W?l-PpA8m1q31u~Q)av#qOG=K_806f zhKJhnaYuQnXjqE)Q=FiFx^&!(X=Hdi1iKs9)k87&OqeT`jTYR9JMQkKBMCYH-(xDU zUW{obP@k))3hG<}z&abw3sP4|I#m z2EPguk$|qWK>ih$(73m+;$SR7yp%JJ3L8m6B^mvz4z&e}-L8EsjJi}=n~e6KFAz5j znoU#_hga@|D?3v4P*}VsF-{JZKL9Q?Qt4Gc&My8*1^zzpRtEIHjhen8ys6kWQ2?tH z{eSWT(Bht(R@-v`=6!&ALBJA*!hvX$ zcv*o|ME{4WoKFLFXI0%k0`s;}!b<&}t-7nE5^HPJoCr`>BT!>O*r$&R^r4>Mk5inK z=AUB{Up5us7DO5nW+~5%Nqdbryhd1_Wp`VBT%vfY8c2>%iTUX}acfL8vKXnooH%|* z&L%!j=yMOGT|j)U^p1OoA0lK;#qYLcRdaaUit-Qr&CK@s3X&>eE`u1(m=R~w{zgo{ zB?R{XCWUs+BJeWy6hN|z$TbNb(o6C~iTWa7ET+#J*wG$omxPH$lGcNg=3#xS%Fh49 zHzCpwBI@J!69T^P>E2x`=RetycX>RBqmqO%jgNMO`5Nux?CuW~CT}PP&+@~E@Kw!- z<2$~5j2|mXO6>?*`cO#mSspfYMuw{Vm6^YedB%4s;_{fz@G((B$swM5;oy#9WwTMk z)8cdvIV*ZbKepc^n5hWcTkgxJK)NLXZX;0j#dwg!@-qDY@?(6fv`hlng;;~a+zt4i zD~9#hpPq1DRfHWN;Gb)&Hos*eJa2?`{fg18l0pKBc!ab0{qOvg=E+dkD7M;Z1&t z_XR#0`Bi+i{iXy|)^!gP+nL0sk>@<-ncEdhH_k=eheM0nONy(Hvt?YIv=+7!?bRyo zj#!27e!}G?_?buF$DYz|pSXd_r&(iCZ5bvLD=<#L-hKkyG|Y5|fe*y#L4Elg9=C|e zfB5;Pn2v#k9|`HpVN?${xnS>$vGF9xuw8OZN$gvKos1yQcHLvJG*latv|U%555vHK z%TZhtvH2hI?dTzJ=pr5=(mAo2(C2#NZgeBr!lL-y&kBJD#R^CvKU(iQjW+ zvwrrtX1+80WQEHE_|^+Y?edj5gg@zA$%V!BO2DWI5{E-qQ=?{_rsx%_bp-+y7C!~5|K zYhrrzGyfJB*Ad#O37=QQydOOHew#Mdr@vz*`G>+hj#KeWjuBx~C4KCP7t>(qAIWno+`Q^}%j?A@ z)py0|MLNEnfBMt8oCY;x6^g0h<|qBXD?xXal#_|oKK-xj|K(!cZUwCfpBwmlAl^S3 z2BvVf4_7k4Etu%{n2zO!FGVJEkR$~6xRv=qB8lH5Y_~|r9e8YPkePdpCEKlW&Ev^ zyLG4+@qHF4x(MugK}!tOAJmPnP1X{MwgRz3pg-~8h6FMn@mk+1o+tgMYAcn*I)n3i zscK&K{|MxGR*<_RdU7^>1T=pF-d-JEquRb^QfFpBO#|i^p5l6_o!ijcpZsb zdv*c^#$rN{n=_9hMb@tIB&oWBu?YE(YImSfQRA>?9?15n^6~~@QuXc-pi;m)*7FO6 zekzJCN~oz^`?|tl86kL?;5;Uo{w{z!Gsc~tR)o(dVN#=FDNorrN-8JuoFy(9pOVax z@hHIF6QGB*^NiqL91&lmbx0rq<&B#leeQV;!gp(;vYcQ{bK8VvOPu$}?-?_L` zTYn_G&6m&DjVmLzg(WPWJIe2~{a)muII^ihXfE^JJngpu?lLOXS98a?1|1)a>uXye zFUnCMt^eP$=S8*-Bt(f9#;s}h5dE+Dv>4pqlDInP zdtI?81S|as>;}G_0Rx4@s7ldTTXG&lNOvRkH9l&nFkHdLz67YWSdHbA-26W<2rwIW zu&+ar_;xH2A2vA|PqO?0_b$C2CsHncPi!Qzq<7*3ur-Q`$^_{M{7+)Td+aUCzHEef zme?gDWW{lM(0y@4xQ#E9^54Yo;t71I30Q4h{fCAe!jsL~NGvg*g7ZCiSx}KNB2QfY zSlqKSl#L_WkbEkN*RbDXqAsOiUEMIAPFhegIj=PyN%X4-_MUukZ~eDu#%Xx{Sl{=u zqy2?Ax8ZP@i$bs7#hqJ3GQYNW>PK4%;VIXBqX_wmHvOO|$qK7qD7^CG@wH@ed+ZUe zYeRqTh<5|e$%v2rwOiA34$!g$ZDX=&i+d;erKf%*r460n?7!j!KTPBb^I8aZT|Ris zpyD|(+gvg(xta&d8Tk7;F1;;wi6!sqDdWazZTY2vB6E6p`xcg#iGLR((^3-PY`z?b z&v)=-IlEd)f=|$e+3Y_go;~pPKN$N`p}bSv|MHBQa9$d>a=NFB1o~B&4CfgeY2a81 zC4X4n3#Tpf#-pjfg{Pi;Usep3N_1)Q;-&)hHyF4dzLwLvS8#feqNmA z1l9_Mce(d+n3*nKX%$vq(6uZueqKNN{ly<_y{9i5uf};2Vb6&p;?p2u+*|gJ}Dfu3WFwXRK&}flI$-Z#$}5YVC{Z> zd97buI$jyZ+Q@4UX@97^R>6onFI_ysUo-VFDc}DQ-ZqqvD}uu5d(-8Ke2SC=l`Yr+gQBQZ3_qIg-K2-ngt$^szUs} zzS#}kCBv*5--RH>{C|=|*KlwPNi&*(UJT*fnxc8D{BOAy!guFs&7dtY@|hLeX0 z!eV53GJH3ZNY)axJ>h$>XH1u{Y9intgk+P-`NMsL8Oe9C@l9fLE_^FO!o&!Ag#$hX zq6g2$Dy@!6^^*Wt3E&E`8mM}!>Dq@l{+roRaQbUwKY(`;xTGr8k>UHYK0U;tC)k=m z<<|=#t`V+uK)#)W-$13s!+nagFyg ziiMvgz7~n%ag&{=#lugE0dEs+?g02_2+%9;dkdk5*NDfcRuG$nY&bbHo^ddOct2Jl z9-5MLPCWB^3O_yrsAt(c8mV89+!E=};K$?9nb`n%3-AwDcvND`CxG$;5jYA5B?wV# z)&E)r;48>~L+objUuCg7qmRk>c^qJ8Co~6O;t3@9=kvIE#rk*SmdfwJLlflu9+vWn z;kTagxk@%$c;ldrR79;PksPYB{wrZ5<4f#cA#qKYln*zHXSwf?-2T(QF|L17JhPUK z%M@#P{vAc*Kz{xDYTTzhylNfG=G=t*KK|K&EG1RY$@yXwo7V70OFkRR-Xs!AK{5Ko zwZ|pTM-@GFOUBo(?bw{f|3{X^RWISx!MkCmGT)ctqwnA$7e94#eVLwdnOX;ZY6ib2 zLsfqmCWzU27<*X)9mLNIVWJF7T~yFyW8?Tg;wC&5*?$X?z(j?nW6#;V<%IDh0xlP^jb3bKBx7gO&Vs4aN%j{{-9G!+bwt_9|YaRs6JN(_qQ= zIfH8@=6XD-YUEv9(X|F{PD%_l%Es@hqZLL+#igqD z(kglyu(^T(O`EOp-1IO9qss7j4#*?ov|B%)PZYOFE-*QsZuy43mZdu%ri$Az*W#0L z=i)gja}q8@nu83sO{VVYbZw>~=Hzq5? zDk#26s{cdzqt%IcBIWm8;@h7_67_FA;%T2hh0&#cUh}L6`Q$A&6_w~y!`AcKc@w_o zX?HUJoZ_n=@TCaN{ZLZ>P5X&GuLhl1f%93}I)b+3g|*4_r%@Qq!rHrGqNilKR?=w; zV`pG;hrUk3^-DO}Rq{T>$9E*qjP!G$>Uz0LWy2z!5!3(_j+m$>Gl0pTuK zE{Id#!*=%>@gTIqV!V>QCq1u=9C7FCH~}%8{}0iC3kIRH@o^XJ?8Qe7={` z(bjk2d=t$4=H7Z@klui?pKI57_Jn%zfUF(# zGd|$6Gjt{se%w-wH-fS4d{$1M5A(^w({ZQPuv2PDg>(*ublREGXD{Q=bvl+p{yhzs zt>9-N%_|dD6u`+pG;a-!DIjl-fWvEwxs3|nytvmI#-7&hPvV+|u5}jYt2jGco_J0l zva|i3g5gE6NN`G$&Z@d!FOhcAk(?T-#940v?m5PPrZA|(@U&qg2_uWil41dsN?oJ( z*+#+{B&8C>@@GPt-^gY$Xa0k1A8}%Jfb8mFvpsx-#P+KZ?2ZGiQlObme2IfZ%3Hvwv`Ip}hi2r=zRZCwo5vy*VKTpy)t)II?+=$Lo0RJ1C9`=ltgtNN>>3Gi= z!^Zya3K!FWx2)t+mnd8mi_c&#U7NVK#3}bA1LR>yeHF196SL*wdux7tRs1geB+-{+ zV%l2K^XTN50AH0fGb8&{q;DaPuYDBPEixxLHuG*eg({YLiau2rO~I>l3ZTDKcE;o%GS@S$L)k) zR)n2mYezUaz%L)U{!zF;wJ6S0$;fxd6u9O2xFvDU0^hax=UqkC@|xVt30sQ|bd3A)%Ng*lFhF6H*SNeX2 zz@{XIQ~A0Pp_;ER`@W9nAACVP|KXd>lEfone+z?z^2rqi z*|T9uwF0q|{!|LfS^LK0Z@19t!HSpaUESxI&s7y4U-9{9oIDlgDB)FN+WSdZ$-qB9iN)vI zUP2oN;r0aBYe?f0RinGw+Q1L*C{nH(C_SRjQ~2VdCEI4KrYFr0cq6jqCQ?i1jXyVsZE~;D%MWo&%$N#OpWhg_K=vh*N;{I#!cE1v``I=C1eNB#=Xc~~FS#BE^S!oX2Te+1EPxOO0iZquPQi23Q)aees!9l2k}KhyYTz$mCgD+MNb z*nNnQJ!xcep8!uo_#A-0>)W_n(gcaLL;bkRRYs(&%IF-7---BR1^5eqxM(y}Ka9XU z_e7((pZr{b{FrdR$L1#h^){f42fkDnP#n%;d2CK=82&b&llnDgi5`udP+k zy@^;dK-)wV@~iMG2~G;OHk0^rYwLZZfH8z>GhfWr-%s)ZH$q?kB+fS9z_$OA$4yMa zgpcsOEF7>AHey+s+%%8~DAGp2-%E#UNaTqld%FAN+u)ufDA7>&jH(IMDf$t!u*NOH@$)PIS z281PXVd4jY`I-n{{5;O+Eh;glQM`P=J{~D~M1MLF$aIzBQj>fHqrLlXuxX{yM|}d6 z8mK=d#JLq)Bf=6swolfNHm-Y3g4iWCrB$dIf&L?-(r?0=ZlaciIPBz~VPVN;>Ua)9 zKQ^}@{F;v~7_$kSds+YuulO!tQAmtn31?Cpoy zOQF~#cir_t#+a^fPe2Zt_9uj&bv= zJPNbx1aK!VH|4k4a8VLo6S1KHk!m#w`*HTXq}KR9F%Xm15@tSF?u-k&2;?JtUl#8!i`$CAasJ16oGy+_ zP55WJ;^w3%JVY25?1>Zdaw_shxi6`9dwcfl3Wk62dI(Ov zDG{zEdif=^eYl@kp?1RP@x6e}=i`ZlgCv|9V%*I$lMw4a>D9xuX?=Jrq5o&KUzz{E zn-qJTC7%zO{Fjq`rr79H=%oHD!i*mSOc!aLyBsN_bD3I53lRF zXA$2&Ad$YPA79bZ$F)@s@6*CW55E3f(pejpF2cY9h1CJNoCJQmREhHhc1uLBvimW= z-4LT_JZ%RwftN6QXSn>5~EY`vsv1C!As(Z=LoxQp>A2N>CH{Ge zU%!?k^T|Dzd&RBrD=8|6C`9VO)n_=he?**299BXcfu&Ii;!)~F=+4A2xzsaT()Bv@ zsTg|`!R`m*u&ZG>;giu7fb5nB7v`A$1mUs^R_gG$@U47qdf+ zr@ZAH7e|F$iq(qo4t}}xK z>8b?s?Xz0KBGztB=I9O~+EDjN6MA;DDdBmzV?o0PpHb?05`o4s4r027{ij614WV%siwc}!} zy{kx>S8OX+7DEL@=C9)U5)~%J8Q&AMeFwQ0hF5%ubHaTYU}qO_et|fp;U$y4OcV2e zC8G2&S2Tc^h&CoZUrM?^v#q!G(kl8oAblSHe?sU>@ySet8tM5-5xOt2EyuPxFj9#4 zE$6$3kgE}Y{Kk&7{Qf7>trMTYlEAA9unK%Mim6g8A3phDzH*0Q2I!G4L$!6&$~msU*p3G`tdx!{v+v*x)9Ho zD5dXr3C;k|C~!2s=AQI+Og1;fuMSZt;JzfpQe3nSeP4GJvFQi-=f_% z`0$)W)KC$9l`Y@E>S=qOf1AuZj8ND7|J%Kdw*#Qhhl^o#A5qH8y3 zRdcvKb0p3edAx00WtCn+I#2N5r#ox-zP*H319!@LZnj?W^I~ut^d($8Pn-XNrT1O84KK67QNJ~D-~LHrbvhKy`Qil6upRDr$@WpY zyHjaS}Fds^t&}5{Fy8scl)^$E{=QI@{)Eg@$D%3*@1RkRCz_#{V9SJ2_U;xfN#JOwn7LgCBsmJ{~h+ZR{JeM(oh$UnW<`bU>| ztnqq9`DHd9q!-!rYg&kt9FkVNXX1K4_`3k3wG~}i4GcaC^R@V-guJjpf3CBmpm?vO zwO#4(vur2~n~89%2VU9FP{{nh5GbX+c-yK0&ef%g9qtw zBROad?Y@vT4({?O(r)F8r?ifvzkkz~8j7fV+D~wvh%6V3cNmqJs4f!ZOkswz1hsW#HY`cHDlugd^bd@(m+N?LhVQu<*K&s$^uvMftUweAugZw?3e{mXWV#95y|nW= zlGl_F%PTY%14dd7{1Wi8g-Jps<6%bSfUh1=-wD_!!z4n5!q)=$K0*HhVRITK9Y>J# z?47P(-NI~AqqGvSC7`7}V>G`Wkp%LErEf%XdGEMq^%wy@DGqInpbPT* zLB5zm2ovki`+Rptp_bk~p8@wrAts33i*08@TmbG65ML1dg5SpPQFV~41Rqc0oAQ8u z1E3QtZu0PDN3kC-hGmP!Z{Q=tC`1)`TWnte=1qirf`petqWc0-cX>`B1<6K5;sEy4 zX3q{I%<`)Fb^0*KZde-;Lmg2H9}BC?Eh34yee7jTH<+~;z^Rz zjO=m}@izMPvF9%SBF6t)u^1tawZeoYSes9v|71%-p1iA{$ zT+0`CN879bJx6R8OSz{l&Btpk8}ER zAWVEB${C34aH8?1V)PI{d}yTcLglzbv^au(!yk|HMK1{_8{Azss;r_g>6|-$`}_QhZ{JWpBb&l|NP?|L?AujE}Dx3C-ez6Jz4h$$4OE5yF<%{*?FPnd}vj zxSrUq!>_j`%rcVOV`AArY^QFCTUVEt5VFByV~M^B|Mylv9EFdE_+Llv3<{n>{WOZqhUsYT<3$5!Y72+k1T0`Sn<6Ra2<_ z&Azt@=d1d=OaYREu&yIgpYdTr@n0^M_m;%tttYW38Cz@O-Bs-U$1lT84~GUahioQ zMI?dl`kGC99mHlF9jhbWm$kdSW1JM2Q-T~PHaGFOm{@&!Kc2M_RugO`tgpiTYPK%8 z5Ej}*IF;?=}+-p0jg`kDr(yC^OTC}!Kj@2dLo zJoodb;%R?h!(AzU_z`wKG0HneD~pG>ZvEm8nuGLlo_0284Li2QbK~DNs?Ug@RpE3a z-(F|SY%wg?B%XWn3O^>55I^;dnK1jad-}3@y|ymm*nXIqB^D{^;ca&1RU;PqK;9EjJ{(*^xu+ojs&fr?%|KcWHufzVqC2@=LR$&%9y*(dR z6O4?@8WYm1LzANpZx^$M%j3Bm?d7cd{E=47=7xO_9*Vnq9+wm!lwbON9zP#fWyeCg z{Q+D}XGb2_pHoz%(w8nY@Uf{0{`(is+R&vnp-{k$v>D>|<^?>nIX*mVpz)cu+T+k5 zdXNgYYvRDU!|{-^m%{Q>{N66tBoV7A-|3gadbwnsTyfBq&em3(4R&vPHe`g0-{sUz zI5&#+zY1$}<*FY z5b&EI7#ds?CSnZspc{0Ix>tFlq3LW=>Pu@BB`Q6$|G1UweuMO zCL~Uu7||XA)aC%2k`w9z{$w3V8`hpm;MIuB4?5J9)2{(m4nP`VJ{7$!~od zLLXKqs1Q#8e`!_UHT~&(F7EUG7eQPMnE52X37om%YTRKgywVIu6;~&wyCtO79R6h2 zIQeD8&bUlp`2sSYJg5cfIGSW4uYo+%XAQ7Ht;+nnZ5sOd>iue>6lE; z`+s((xSS^JpZ%t1EOl*KV69Cgz9(+Uj4p?0qna4JvnTGu-kM1LDFN)@^9S{#FHx8+ zq3^2{H~q=1x?G@$xS-8f^`Vqlo&cbwMz%c^As4&F{o$V*9zPRw8W2x={EZKvln5SC zoQyJZdi6q>Q5shZEM@!eL}i8%%Lv%YaWYP98KeESY@Ffx@A*D4Uv)+Nru>7=B%40#UYVm{0+t35PUg*B+erV=gWUcJpU&lJkTm` z-F-XErI9F(xxcIU6eZvTTg4sPrn2{}LN$S;wA6DZ;8PDdC|Zj{oHORkgDqQ=Axem?pigfX&Rlzxe)TINKCH z$?$OpzCEu9ebKYKPmLQYP4|0YzIbVU{M=N5t-IK8z>&<@$~^k(s(xA6T|QH{g~$r=i~YG zwQ}h=&n5lc_>KJ;n!ZL{8p3Ch^KmEG^|ULuWP8W8eN)gs*HR|=um2f)Vp%P zeVm<)dzr<2FrF-vP^aySpNx*cO+Ll_R{WX}-gty%n%b+N$Sf#F{Sf9<83Z)vqmpbr zitpL=sWlE)g4GH1Z5BOA18c*>1YbqLNj7$5>&x=jC`HLe*S)|epY!cD_H;p_J+6O+m2tt zTML-1;l4{WqKRCzg3b@d|2$#O6!~lpT$a=CI0}}042XFqczgs*Wp2cJ9%xaMhd-%URmU-2N$W? z^(%ququ?k9J0s!lAJ{m^*0luddCw?8Bo6a^wsLWs-#5f9nRqXU!5?Ae2ocJpzjpw7 z+|;;qHS8l^!bs)5XD<&krPIg5Ln^`MIPv(6NaZaNKc##EW9{FHMbjN5>WSc+!V*__ zXi8K@!SFo&t`+8VXlpHh{ZIQd2zB-CaX*Fc{NGpM*i1pRo_HmLxh(K;LI1n#io1}t zHnLm8pJ(}eF@N3U!@+P`U%SVMLPrHkF8FOCj+-U5BDgR_fm@A#)(?pjWLJ9jNVfil zOPh@@a`1T?zaLK;H!vwB*1O<*G{5u?>xyBZno;GamE->EDZ_V9wio=_$g+GaS}XBO z+g@<3pq>q{N!&Yz_$3>ewUek}k z^W)m;jd(UoA6N28QR3Ol$o?)L>>xBJ72kyvi-Tb2M{T~1k8RjKbY?uz*JQKt0cF^t>YdeALBtGMbGd2Hp~4F8vX83Fr*Nt&uCh8-0IJ^OylE8qsi&fRC<(6 zq0(B?m?^&729E5+D#1)BjD?21xk1PXvN;D z66H8pI4I#|FbG-~mSX=DS58!=lP%c%GyBRba5mxARRz`yaJCyaQ?HM2nZu;#`(eqb zb{o--tbB4kBE;egi zUzzsZqQk}b;HdJPzi1!+06^Z^3^fX=qMd{yNN8qameA#ZSeF;OjJ-a^T%?*VGZS zg05e(ITqvT6x1W&JV85&EhV5-e+sbwZ;4v?vtrM<%pgphN`kO`kgdeUIJ5Czl$uN50;KzXbWrX+>>CzzS0mS}EWjg>E+7YT;VX};%b_bqf zL}t{icpmb@ii@U_!5^x*x|}jFys`$i1HhF;0{;t$Ye>MKX=^Xi7F9Vf=a5~1kO*l< z3;xkCCtzSai#!EKeyrnl^y?w_{3mE@3EH1wRy87x(3b|B^X}RBO*TxJ*u&97kthTE zwoAIXCB8vyngvwt1m||exCzf;#C@P>JUubIGO7~R*{_X<_Bp08JOO zHzdG3h|pN&`H^^6m5df>cLeb(H7D-jFb*hR(dQIwtBK_O5o5Da*Hi92$5-!2s6QK> zJSbVVCV*QMeTR(}3n(uCLxhju?0>o97NcJ)>I(5)YB=c&J6{pr<@#{HP(1N(+sJs} z)PV5%l-)0dZ>~n`#fi>Fm2^`A)`$JmVB|Cm4Moa43bILvnEgsT1N;&UKc~2w@nSqB zt+6D15(Y9VF!IC2zAJHZVv?3|^PN8i$HMUeqopGXvYtdJ)ubqh10~fr%EgH{pS!kf z{kX~{jD$as*bgdn7V5)ozABWPkn!U{7|yNlmD#uxcQO&Kg2ZCDIG4wp&j?~dBi-(B zI!}LY!d+%?WC4jT_=bBi&N+9Y!6(_f?6psrM`GYy* zw%xC4_eSTqE_|es-Btd`AeQe0KJj0!m2vjRRx$ikJ^qG(4-XTP3K4@K=x@4l3q5iF-27`iOlm^Is(eO*Vd*&X28dFResBSrU3! zOs~N5>M&=+bM|heKVtMILEgL|KC_h=pVz0Sa4~(ls5hI#WKyy16J}52QyMr~ujuG{ zF>W|h6UNuT(g3{4T|90b-jZE=`C*{`mY^^9+*4^#JYygkp&h7b=moQD-;Wzv-N((G zlHYE&Ug7($@V^OBkl+9?|NBhlA{f!~Sj({SHKe{P6z1x0Ie;yMh*zjy763ZDl`b-Y5L_ET7+D^I(1N1bY7*d`!{~;qj)J2<~G5^ ze`1}ddt4(_hxxCqL^}UYJmvF! z`qu!SfA#!{c(E8ZAEt4q`L+xkB~jD>X+W009?B}7{JL53G>w*|HF&B=f3GVFn#0U` zcq!?>d$2J*B(gB~0S?RIY_=)!7~0ePnbatMKHoQyz>9hAc^WoBY#xzpm(z%0Vx5ey zJD-m$(fZ?C5k=5C&u^;$Tp$5{h#%=;^v|%uNj!EZ#B(@*8@I1~5f9l~!j}5u;_8Bg zH2p)|y;vl!COK3ko|qR-QM^W*GmCkDF`8ollAR4b^<}wdURS7mA{H-)PZM%iQrg;> z?mb15c65k?!;|`$TaGEm2c6xQ&@(0~6#jNyKlap-3sZ+tdst}!YngB=9}drl%}V_J zAFX_w{hQ&Urr0K>GhP0Or_sJnn^POuysO{U*}nu9M@@(m!NYkf{}=$Kr@1o~u0P@5 z8`I;)d?&(ZB9VuoyT74~xqz)@i(i zByh+>=Sk{~!>epyIj{%7oWC2g# zh2RKKnF{fgrFn!V8vr*()+MU)p9$X(RrLI>ao$1L@hNqoRV z6}Gp+UI)VPx0sJ%cZ-MO=bOa*S|8Cb@k7pFH=muBxU1^_ONjpz%zZ3D?1r-w;+U3z zbS7{!;G`u%yTVuV>&BDzw!_KYY;j-o21NWAF686CFTajEcKu9{=RWElqW6XSSBUrB z^KruECcMh}XIwV8fS4R$(_qhQ1h1V4emQL)fzP)UJXs~Dr-{@&;_;HizFPYwGR04R zyNqWZm(RE z5Z^Q~n8d!{iRC)}d`bb)fKXn9mv7*rg#H}y-xvZ^4*nJp(3>!nGt4+Q+N-NT$wH47 zoQo5on!wI&*X9DgbKs@5K7T+jYWRH;JNweFqsikbn_(ho6U9%L zwsb`CP+wvzK_gb-MK{mf!G_$w#T8J=6%eNtW{>d4-ygH1Q#=dglKyRklM&jRtKHrT z%vE8Mt7|Xw>njrKX-Rqo`#zM!Qt<0|Sjyqv=jdKneQiR+`s@FG@t-J8^>Fkfyep&+ zyA5PUyc`SaI*Q0`<>N8lVK7rj0eB2|=Fs>maD57QJ`3yJ<%H*6k4MVy?Hy0XTn*== z;3nr=arIe|I&pu4j{29!^ZtV8vfsve7?0`uTA1n3A)eXt4SYUD6T0DSL%#fjFMjr% zVYImQ2XRNr6k@$cE_jolH_-08G@yrA{th3n)7S-KJP_V4X*V+tkEA5lL}sdd~)C>*^V<`+yK6z55W6=k2)h(}fL4cGba$4YTY>MZsgqFt@z z*sL^aAD>L=AI~mX3VTNtB8BkprbJ)m(YU){IQ_D=Vq+cse^0I{1|wZUu`SLA%f$`Q zzJmY!`d7bVI1AvVII%0t^zEvl20(mSr~3(do*MBL?W@3C#e?%{sEc5HqI!D3Lyqc1 zYl(N1N_CfjB;ur|DvaVfeV8E&3DrB{^`g#o)aKs=q6FcdWW;tK0Fnzv!G-Z;rAvhV z4bEw(;#!Gd43y4P(~t2CWyyWhZh0q88*&SP_*9^ zmm$uSU8~ze?2hv3I%aI})Ftf$IXGJV-Em^Tj&gJ5C(B zA>%%YC8_KB0ozlAWt`&ZmELiJ*HnJE@A^*&^9{RYvJ425*Rp?C|19B0kfUBew#X;RP`|toh}jG71Kgt zG9Cf?n*9^*MBr5>K5vYOugXgpRUKv1`(pArQTS6VU*?l*;@j;rB$Nc#NvNgZG2N4K zhHYDw?jA%)A?9_E;X}6lMp&;Aj@Kl{!jkkN2{U1?I1;=mmOqt6f*kRzfPabE2B1%( z5V{KQV~OhF!*SwJXTO~$$ZK3*HGI0@pCR?**4K|p2n!JY8N}JJI!^3drVk@R@?&eS zu$EhLTMbLO`FQH2I4ip+8*1?N1X$dxP&tBxCE#w1xU5tBR98r3_#(d9*>6OUmHnf_ zw@EgptQ)txuF1aKV*3^xrXp(l^*>iw9;t6t*!eyjCMJGmCCYY$IS1kRN;192zvJ*R z9~{jja2q^tko$lCFYb~41zY}7aMa+37UJ}+_EL+*Cb)g^Mm&V2vqYQ%-sj_Zv)pm! z_YTEPdp_x}Xk4QZtsP!z>(erLC|@d`T@ZE{%z%&mB&h|z#aGrN#dv?+_!_w;`;+Q- zC;i(_IMWS}uam#k|Fe=;LIOCDFs@G+SFcQ=54FW(8NZh%qUVj+>WkL`g>OlH{W83w zX6prQCf0sY_x~4)FF0LCls}bZv%2;aJICS9++^|KsqEr4iYQK-9w+ubN0+w2X>1|Yew8P5``tlun9^&uE*xZ6$J@EGDYjFdeM0hX* zPnWT~tD^RiFd%@%=jSOXJnv`x8w*pX*g2FI*Op8s<6{qc^bK2wh1cE^=MIJ5sHO26 zb2vfovfsDyU+ZacdD#eYT93bFv~?H;A5y6GQ&ha{zjUscQT-W5J) znSiC5aqrtgbzJ@J9K55rfU(^%5}L9**DMlIxt#c-Bb zB7T!LJ_3suaJV^qex;4Ra!48X-ZnV-R68@73dW@HxUnM!Nd~n>O;p7h%vP$GwUR z3-SF?*qI(yRVfHt!PYZ0@)3S$LW4`SiSvxc(~<-gJ@EUmtV+Okt%^qiC*t^y9B?93 z#{ha0Q3evc%t*D0BQGLZVTodfVD$2!JCb!iz?_4iYg8@60i~TP^F_cKRVJ=mzk;w2 zYrn6+d@rH42;Wo))CWLyFnrHefi(m8KlSNv|4ou;w*pXG2{|oWMhe#7M$;SEQsaqu zYF-&&Z4MwGan@oKt`oHOpYH&LHf324c%w9KeG^YFL<&Jm(HSVA~2 zpji;+MYfa=qBtpT;L((S9sul)s^WzNaJY*5RoAX0VpXce6RTcQAbnRa&UUUR*aw7Ca&$V9z-7fw9T)h7zo{JP2-xG<}K>9YYWp~dm?GAL`4PcujffVMSbo|-9 zeH5dzMv_U8e<2Y$ra;KWhs^+TBYboP^eg;divMz|PLC@luZrnRMa<6o7}-B$(|!Pb?cMk}VIkq@&1a7T^;%f0R41N*7>*-t#W!Wbyac|TNT3F=a}U3q zm6Sf=^DmJ%i+h?LiR-2-z}BQTaikU|zkR^xTN1>CcaJRvi28>=vW-t0hsk$g#EsMq z=EM<6HUj>!`@1W?{_*TKo>LQ+7K_K-UXqLC*^$^@R>*C|iIw2 zj7RjRkwkwUrlv|pk1HM_)P-i)%oCD@A$np><6$#zq%6ebbP&t06vr!7jbve z_ISi>Sb{nd9@dC`199I26OW#W%fKoq6mEG=Uf3GXH>Kd@?+kHL)PPS3bdR`+SY!Sy z2#aUJ89T-_cPDxqaT$F0A4s5Kc8J=_bd9GM}pf$ z*o*V|79xHc&hl)HTT1U!Xm(Xhf5BHL=-_~Jc&1Nni0Hj=9WO%DNH7>C(PZ!6+>NSPOer-?DhkUTo4-X%Lo1&iELh{J+ zj6zkhTL`aCN+69=#-jNj?LCC2r4?PxwY9*t59@nneR~VO6VigKbTSX$@1k*Ywf7Hx zjuY#Gbayu2R?zRglJ&p*{zdp?0>4AT(lvd^Uq4QI-e>e(H>?12ZECUm^3}LK^x~oM zjYF33Usmyet12|MkA(QDXRV@F$0fLD@$OQX|09Wg$BsOTnLb(L+tqa9^*!A?A}O}u zn`uvN!-&W%w1Dl z?V-1+*i^#*UFm$*FXN}R2k@*(Y0vk2MTNN0KA-(cfQw$iuig150mi8IC*XV#kf2%pLm>c?;?0DrrnKfZAn*_!Qfpw zuot$g(8X0@u%I|T?zzJj#Fcl~VKBSc)_4CBzPSBae0%X74M;LKaNyGe#^NeL ze~IEt&bt`arxVw2Jh*0%s&aP(};-JS{2*Zf#9`=L>zaW6WyEm_3w0I*DHEf^}Ht~5^LRzgOrGY1}0DmZGy9ij# zk#U>VL)-E2Nl9e!C0<<;+{OhH$s0rt3ry}0R z0eyGcDDIQa#dX@>B5!NYEXw|M0)Il`lb0ATL!eLj{!fL`=4z64` zs_S<~g3+l&d=>ch#<*|(pROJ2c`ry%J;QQ90Nkx#laS@T!f{mef+VmXI9CJY+xnl3 zz0V`eDDmvUulYTHU6@(z`q9Y$1m9;Ahc6X`Rgh>nVLzz94T%3~Kz@%OGD*nYh{w_uQkXsVdoWCeN2B28-3Iwn7zbfG~DJF<5r&Wd&wyD;ZUWJjGt;2_f?&b_0B;1Q(j*g`MEKK%*oelgtTfCFv=mD{Lo?U?HxOBLdT)n6sZp^wHwdMn|-#-@sJnd#Yh;LrLn0g|mn`S?q5IJr3{-~!tE zT0zmsGkzgnqln*?XXDnvS=l}tXVPouJqc!Y?zqQCFMfZP-PsjeL&W_#iQs4c%%JTl z;{Pk#7U4#3g-30ixT%mE?Ae`-j$eS$l@fPw5$JT}LA>D5467+22NK zwb}BHxa?Jw6!OfEQ^$g<1YN7jrp*R21Bbhr3#$F z`*XSClD~@Ld&7U5**<{ge7z-ZcvTLz67l(TN$@c~JLI=slGh1ZTV!6G2Xa@jx*rE; zYp({K{2Vu4gOlVm{8`1`kNR~6rt0xW2foOvh-|KJ1;k|=zP3pfx4!-ip6`XvKd|&s zKA5Z?H{t1sqaTKmvqB{S+x}CuOvL5fl3F8Lb<6!zdc-{wa^uE0&&(iE4)M$*VNJTi z;dtTZxDj1giPJ?)Gm2Mn8h8)hpW(X{ z8RAK%&*@87cpDeygNXGs1A`p2eWW)2(e6X^c&Z$dE^%=ddpxV2yfO%`e}62_+Z*;l)XhF} zMJn1}OP*SxxM)K|vcdYTunM4&(NKDUc#1Q6Nvz{JznW}4#Qcge7W;v|tj6{eZ`6gXREQDokcoj%IEAhioBgf^)Q{YtGV_+QtEW(}#`o&!p zcM*WG5_)Y3?MXtFi9h-Zbb0^h6!bAW<3zD%2~Ghv{iNU7CC!oi_aC25dRc7zU(54$ zx%VOebqB_ZfO9ZRdKnsD?d@h)7th`nM#0PCtNQjT)b&VE6flPnp|JDgZ3*yG0=sH@ z+>xyVJ6;sCa(ui8&?k8Q5oArG{n6!+7ogW(irWhh2clZpmEi7)aiy?sJFE~v(Cfr8sf70f za-0v7CAF10jPeOnHAFdyBz^t&9fBlR@RUQ$-z2NKu%8DG-hhYVp7#LZy%%Qa6Tvk6 z`Xd|jyc4%`{zX5^D0*hWVq%5ilb&CfZ;y&YD($z2g=}nlq1(S~`Vv2@0HHyZ4?c&nSg6!VTZxzE5Q#h|j$bSwK8~Jl_SRd~B z$FIa?Pg&q$G#t0o&XNUjnQ%C9Z?O3M6cV{-Hc;e@RBWb@+@Hp=dkULbl0^qGZYDu| zp~!kd;y9$gIHpOZg`mUR0N8wh+v|?0xu;$oKGu;Z43>3q#d$@0Nab{NY zwMiH!Wo8S>2i8VQED8B$*1@=ac;M73Tu3WFazB)6VRZ4^?zDe86|GX!}sSE zQD?$jsxc%%Z8P2gBre|#pIy??wBNhM&qd2%pXZ`=$mvv!UtYQB~)NAqDi z*x&3~&Ee%@SPc_w4y(*wj^~&>PTzWjxmmb<6b}}JeE>d1mS2hLCO|m;Xq>s5ks}6c zuw59rs{Y3!R#VA&y(;Hj0qmrqT*SE)hc_i24-&$T5>62g-4bTM0>e@SeN|8gAVDS$ zehM(|Ox2zMH&E3q*Y4l$Z3nb9IP(*rcuPf;jx#C}%k1u3`*b`!Emcc$8myRT~bTbEPmo>$eH=I zyGy_O6XR9DlOU|eb={YKf020SL$aQNm>J<;A@*koTtR}{JFI6`@qVuFZ~hwrK7&1t zRl7Mj`-aMRp~~%P&*%bdkA?{)?3^+yt}FgoKkEWr7k#-I5~84-XLBDQor8qW0ZUiO zD4}QUMqH?JNo(6k@z{`0z#A`2#JiOUID^d1nE75NGVy&V|z6u&a8iv z2~Z<|nrVbk5?~Jy-fL`}3ap!eEd#Q4)&H7&x}JYJ>gQugq9C{6qy2o5P$9HK(X&!a zZ}IIHV))&5S9UIv*oR4a}5O-Dk z9sXPK>t?Z9BlBH9z}Uy`|68J6)F&QwdI1-DvuQqGJ`i3l z*NsUlzrNm6j2$GFFB#3Hmo#q~r5;A^^^4;^6nTkJM@7#<*zQBDYlXK6-^a;ip~yLj zCvC)OPpgQbvqb(mfBw$L z1H>euM13B1*GsS&6qkLKBCVRaO)2^{|7go7te8G zor5ji>0V34#{ckql{lVY{qt-p9d;p$|^h>(5kl;t-B?(Clx{OOFp?mK~E=ow2zx( zt%r%Hd&Fab-wG2>#k;te9grV3=830Z7FAIFB_8eIb}5^Fq$ShblMUv6;s1n^&2att z0cQ_r_Zv3t>>1~|G!4rmv&ZvL{{LAHVL2z;s;7yQ%EySyYc%Uaecy+B;}6GACAs+I zJw?+CbnQR?FO#2g>&tWnd*YjM&Q5tY=fsKa^sSaSehlX?(66rY!y2(Z_I}*u^SnZE zx7^drNPP(Gbc3Ti;S(UczJjMM>`5g)b?Ed{VQx!~xDne01Lf?rr6=AV3rmPo#LpRp za>jw_j*M}~*#-D{7=8-i#%p|hfS$k0AO91xc{p^JrgsUp(~Z+?xK4`}($9~@@>v?V ziv17M<_-#@Q?zFipWnsBC+O>1xO$c!^U94K6d5z%`U(B7MkBwYmmR|@4bK~QEuMKZ zgHOxhcW!y1CcGvHvoFI4B{@L1A`Ekl{$AqHl|Xw1`Tvl7zfSCC1{cuDii|zPF`pvU zRz&ztP_7`~EDozdEQg#F96gnqhOD0<;TeGI4LlXX%uXVfkYE=g z!c(;OFESh;8smWfarX>Yfu%1T5Ayj?5=koAjT4|Pp7*OH*v`meDlonHOWdjJF9B)E z*$LQj2dKYPbYv2Ut_qH?1-}T84fCvThsE8}DgtvWqEJ-7XR+^D$$SSVzY~_isJ4$O zcIHZ;)z-w5y+UJgEff9T+Lvmd+ zCr)B%1s{XODJMG)vF9CaRbbx?1RJc++a;`%p7pl)ZXz6e#O4Lp9&Z^XKBN081j2qckQomm%9NQF1Szx-JyDWqJv;pPRp* zAzVlJXcj)#2{XzG{|SOtPQSin+YPvAtHAhNvg*(OO~o#AcsqbUzq%kcRaI*I5i3L48k{O{M?;BZl7D5E~L{& zX?)*;&)53JRSWN3a+2{ zv%KWp`QP~6`I7kNh21IibZEl38fCl0F)F;p3M(EI78&{Zu0+_RQGA781HOy+Z@OgI z3CDgAk5Ajh9q0b}QNP2=8O6i}NxPQ&UZzti=)F*T?r|=||Vr3L;KCNG`E4a?%->Qcy?$k z5MSrJ4Ya-h9M+J`e`*pBE_xa+a(mtY{+dO%+QZj(`q6;iWOynr{jQ0#N%(XOjcTA+ zD+>RAurrf_xgs5Dq^)9n(0^Rii41(#j6ZMr?`>FmDtyKev)p0ODyesopN7+eCUA9Q zLVUfyUtfEtjT6xi(}e~2{>rj=fLj*2@FMK}tpDf4^at@ya09?+N@xQS=RD%&N4lL7 zQXkGNb2iRuu7>0vAxRE~YVZmr3*?dO?^ZgWe)%r{&yO$8JW&3o1AEsYz6gmGx z=8gH{Tb7fay^@GL&b|%$bOc!Y^IJZ}Q+vh9as3$s2+xS!N5C|7RD2!WK;r7omY3O3 zPG9>GiSLoF7E<)^|2GIwfluob?2*K~@a#CTDyQU>O4~1a-gedGAb|cx@zNknloPXF ze0(f%eB+VqySVoD(?!}3-jy6VA|_fQps&3 zQTaE_JqSq<4%!gH&-uI_9Cc;GNy%>{d=~JWqkJ<>tkZlGmt>AY=8S~qb)7ewr1UW%p8!MY0REan=_~C%?!E^R>8!-Ct##aEAQZOqCF*oY_=xyVf#E)` z+kqrA#eFoN{iX1!t9m|?JD&XZ(W`O7Tqxw~8|nQE3lDFI@eRe$0C=BPG#+`Kb6wmg z;9UB69P%vKSgDXpM0hKS!*ur#!Hcr|HIFE#%^K$)griNH5}mRVc{)W%2iVxAkhpK8 znuQIu@TH#^9U+8wLZK-J`^2jqAD#1m6Z|MOHzv}y+2Snyjl@0E<#v_`g!=su&(KK4pC1#N8~E`& zf4BNRzMTsGs>?^W`s0Cizdjj1-(2?m^wZ)V;4 z;x|}-x_#W7rD{uZO0hbtACKbTEXlVEU7HA(i5`f9q}eCqDD@$Q)-=CYS5&Q7 z7+-HsR-~k1OS5@#;&GUKwo_vH7jNFDrN6`6YH=E|GA_&9A~tmm2#)jnD`GLny;&y2 zZFVP1zCE>>506K~P#Ii10pEjZKudj2$`>18tu}q_Lo2qiCn2A9D^*X=Bvr0Z_ z8GV`6Gpf`1HJ#$AsHw&K4efrfukXU<7`9)QkTcGY=f?EnpJj4iWg4?dK56TD|6}8y zwB`didhv36gZr5Q=CHd8I`^ev%ge6){B%4M=Wp$f2m@8I+AJQ|=w#xtKqP-|C4CvGn)A}Y$qsf z6t)5YbKHopRwq}DC#Qv-;YJJYHWzj#pi2qUP6oFLlRr3MesV`ay9!-I6+& zAP|KZAJFN#s*x!=*29SD8i6S&aBJQ7JE5K?sGEO`2b^@~#DPR4GoqIS=6+}5NmpT$ zgO-)zclxselwUx;8y4pdgpE=@0hG5Tnq-`O92iH3@5%bH6A;S)^^vYqSkFqN zlLF{_*W+5vg&)RO$r&WQmHLq%pr1$bAGMj8KW7_#?epy363tWY|JUzTCDHeQIGf~9 z7I99wrv`y89@bSO-vG&Csy4DASYPqzgixvYw7g30qW&#(ZM87-8}PfS>aywIe#K5} zZIx&gi<@w)Zw?@t16cX}-cAA=N6@wq#C?P`kN%w}>Z|p;Z(SsEPZ`zv3Zj1opo@ud z`V4Wc>6?JHK_9Om^-v^#esVnAWHAv5%(wb z@e=?23fyan?JeS(+;3Bf@cFQehQI#P_b$j&l+RkQZQ0y-_)pk7z7EkWK`0X<#IZ-? zIokih*FJt)CIQuBM^^Z}g6L1<$V#G3-U`z9znnh>ME z#JV#PNT|Tt_gDP3I)Naklqeb-RbN-^6w>}l_q8N~R|>?U=0Se`yJ0Liiw%fxp0>lx z2r(OIg!o7JJ-i_aqhX`5i|*-&TMzsHE5%9`HZPgo+g2zZS3eTt}Vpob9gJBDsGJPvtp^f zSRJ4>t7%SFc6Mb;Y5w2qw+9sD8`#-%cARk4^iZ7Oo4_;I{}Q)ceg>yLqha@4w+0@2 zhk}E>ukza}1E>7TMEG?{PPBUUsurlaW5X4mY7igA|`nhh1;}Kj8@LYiJU~f zg3;j&1Cj^ezNUUIB;>8xdlF9T)6aQyr7i91{zcqFelcvEkvOu$&QS&C0(z7JZ|>kj zOM|RxVKS}wOjd0F54Tz?x~eGbPigm2oZh0p?p47YBHipS9`#{3Esa=&JCkrKza*Z4?ML{vYMS`jX9>TaNfYnRcZ zuCP*adMvz8;O+=o{DQoCO&)qcJjyBn&y|axQ?j*>Z?n&{r?#TtC0v{HLp;0SM{&49 zZ$FiXtNXneE-d7SSKuon9ZS%_4f|TforA)Jv(AhxMpPOA#7qgHg+>z(j$7oGK;C~i zt1r?&Az}XVV?4oVAmA@UtW%6^s@hmXpfUjFAPH<$nEVlDwF<%zfhz5J?-YzH2_BGO zOCZ`K1mpYP;w$2-;d27<$qiJ4jYcaFkBLSi*#P-nz^>-mzY~@W$Z;D8YmJFVL>6a5 z8-Yz5zMUy*dI-Q(&-&ab?MI+qhV*CjF*U;Pc!wAg*5d^INy1Tw$PGcVp6lX-i9=7u zBZ#|ka!$$d6rwjbVtH3mTA+eFf*32=dyYS*>i6S=1;@Nk&r%$HO7DWzDI7#Uwnuf7@7_EhJelH&4#;^UtQdjuMR4e7^zaj{C1$c%va{f5_KM^|J&a`HG((@{CpNu8arW^yNn}90F(MJ?BBm zcTHGE3$rEJKAg~H|2;0Ts;a&Ac#uFc>80q%ApU=Av$@zV{UyF-sILGVrm*>Xy*}Yc zKKwdH5NC<)E%pz7Aa2cDUu+lhNe6w*p}k_bcd9{r_5O@LTrL~mu7t^S{Uy9NVD(q{ zzl1xLacfuLpZLx8`+**Dx#d%|E4w&U&lR_14RM>iE>51EPo&fPuNN--BnFSTrv;HN zM1VKYmrr4E0oxkWgh8-Tvq3yZBdiA6@K@XeBy3!kFRU7Zqs#b}Slma@y(~v*kv`<* zw{_z4ylaO35)Yv%<=LZQ^KFT0lV=o`s8-O~KRl6BNIR6KJC&!IfaPuL3 zt1Th^ps2}kC>~)OPIYZe$8KutNrh1d*EMp_-LK-L+edI^k?XF(MU~od?fWf0+_W;z z_Xr1E&E((a@K*)z=EBQug;sg_VJiI{WH8lA(ee~~_MMIA5sbpGBY4wOOl~SbTZrjO zgN%OSyghv1m%Mw@!`=8=fxnArdkuWHg|8|4c$TfjF2q$8`^3L7ymb!q9psfhG;TQ^ zD9E->csY$7wH2xh6|^_xfCs;bCwM;V+W+8lFl^VwqmFE>r0DqtHVeY(5!fHsGcLgl zpN7KuDuolq!D`nAF+ZGyx!3hI#}{$e$S;GxchXWZzm9_+>HjviCFsuJ$6VMPpb~A@ zNS2tWzm){eFzhyv4Mfy>68YFLn^FVc8|CL9kf#~;hQzc%XX+8^sVbly98pO^oFGZu zmLn(mze?J;);DY#w4317WZVg2f6wz%>eOMR zeoa6|OQ2o9jK}}J%JFkm!@sCFyGaWFsV*CG!sCKC98uO1%9?D|RYb^KHLmCG z%=u{x#oeju?og}<%3MKSn>Q9Cq0(-L{7ZqmuIn=p#n$ef)i`c1yM(ys0h$TR;^}ZJ zkf94Zo>x%ie<$vjo!-du5K*hGZ;$Y6FKrbUmv!2nq+);12z&{WPG{c_?c)-lJ&ypI z=idOjlAGh&|7mi_ov{9QPT2h%lb@Un_}c8%*TI zfwAzAG|b5mr%j0ZzCPcFuL?#ld5PH?zt>=Uv-a^c$MD(as)U{v(TfqYZ;X_FMBFlj z>Z<1*Jr+N0O@*z8iOD7y9mppOU@MJcu@77R467TAD8EwR^e-D%r?eKo$N8-n8>+y_ zHTe26Ojv6Y4R%h_aeAT=BF}8*L=Cw_Q`14JWq5eHNzhtH0m)zaB2WuVC9F&YNj@c6fNpGmhe9dU~B-tpDB{4<_pj zlbHs`JrjPKsMzC!6ztvT|MRq^v_4HY;BAfbFW}&1v7aS&Szd^*+wqAY$JJtG^dOKEbvX1hu|S{~W$AYBv#bJt0toh(b=4-2_B=5CH}v(#leC(}Q+l zwk!u8KO1)<3rjZcac~F8WuFmJZ_c>@_-z#?YXt2Ji7Kz>)a0B2fcL6mXFLI3f+)$^ zHA9u1MMCVZ&yx`GHsSk-aP1E>qJir=Vpa5vuLNqRB=ym?I1w%v!95cSAAZ=*cLfCa zD1vrd9%r8x*WPeK`J8|pQfM?KOmhJ18KC`L8*78O1Nb5%(<1uVgdp7X+!X}yltQVY z1d&3}k0>~5vGsK$h3tTK1|S}jXrJ@@C<#455HHW&nN!l$k59#~3v#UdBrexO6LR!p?_?77S0 ztov78H_0e$SIT%e%y{jlM7~)FeH~7p;fL=Psb5MEH3@4vqP(AwevYtjBG@mIc50+6 z99DPuZ@6pru(8dtxMSokSjfiDJtUqX8{;#J!QeZ%be|9;(?&zQD8*Nk3BpeIbYyb{ zgkQ$*4-vsS?4PVKS<5e{;CuJeQMB7Ax3iDEZJ*HRdo+%it)J;L|piR>H& zSy8e4BFx~|R!h9u5!SO4-G3De6(yTiI8#^*{s~3Y?#P>~Z0LO?zD^7q6Wt|>AF;PC zzFr6uU5U>Rxb?RJvHGTX+GjgO!@m;67|E$N4z|IO)ciOJzmDN*o~v=wm9!FfMcVKk zTtCL<%o6mA;&nA&#Qgsf#cj3!lt9xOS-+!=-*GaLdsf28fokzUt5#3PZK(H1fRhy? zZP&&EXe(Y!51+}zbind>^5_jd{GYadV9RUz{y09D!`G2)X~B>6!|PIoO0pYq6j(vh zY9e88WKTYV`YwOZ)wgX#y$noeJ{~8#{YsOnri{mFKOa``C}dNFPhIT1%#ZsNl-c$B zIJ>@*FuTIS2(d4np3SiM&Cj$H@1FFWaqvEaEnW4!v3oz@zaMewNqW$S{Vn+5b||>V zN1Y2>qaW~J9{-(%)m`xa^owyW#O56FdvMrAE==fc8QzSEN=Nn5WeVm=D9>J`${`D1igB_LkA#4qVf;t>WaiiOt|ozL>koiM?iM*OS~CE+HS zc#jB^j_Fx>nC#2fYxHfjq+LZp(TaaIJ!Uh~tGhW;y}fc;TU80C3&U@e(=%+=4P3ifjPJ&ipb-1DTI_$ge~YZW&rIwmG# z`0HD?rT#MR`!XJ;`Y1XUR?#CXExz;KYg4CpWo_xO7Twcu~9@;M*ciJo|8OG3qv8ECPZqI@n(l9WD{1(AFlE&Ntd0 zKzoj~I7P!kws!fpOAaGUH_9@rpM9_Z(xqO&p^J%Omhj3sigi01(i|Ke)POc<~ zBRH`UQA*FD9b7xd|K9_{&IjY!&>{J?3!`Bb?=MKwSTNS84%@meH=&s8xlgu=Yhw=+ z!2(FvL0?i!wl|3GGb!S>lb<3(PvpGAZ{-Qb*!B9OqJ9U6)25A^ldM6M$ASM{wmrzt zlO_9hgCoE$vttu`2I|{H{YhIhp1jrxDSiwyMC-&gq<8sl1ON{FEcT^2fNWMooFI6M zUyC~nhJ#PSH^iJsSGz_`PKjMJmZ)46+r>uMPleg1bK=1_;h5)v1b?eUco!D(hDmIa z!kYoy2>L1jCzS|qc8@dN!_u7`D*4}xq~77{jzr;qVtZb)Kj{B8e0kZmkBQwj#aIob zKdoP5;4NWTj%M`Mz&%%Y#7`lo-1DpgYcsJpt2mtcPMkn@Od@=AVEjyylF;`GONC%? zJPhAfD3%C?j)dEtNR=h-W02=(zZZwmi!f8203BAultq+(B&hn@Un{0>5#bm4>fKUt z9?30*#xUe5#+R?MHH(;ClvF;1i@A!SJ4EIu?N@}q2I98{Uh@;(amZU&!db6)o5kl% z;r=wzj~1)eVFMce|D9-EBIK`l*4i-fj@TyftUqw#QzOX(1gT7lxUWW2Bpw%D|H4K> z+?yw9AD1*LC`j%Rju#}A+}e2`_P>L%Ok&xLC|&CwUoVH#7RwOghHNT;XDh|04#7IZ z?y=#uzGpWlTwf_riiz7=$z`HvRnxal`1>faU1b#CTihNBD^%P!?3*}YX(wTABrfw5 zZzUzPyao?@*z%qtzPOmJ$QO4c{6L(?iqo8DIB~mq%Bh<=YM{Q+q-6U&qe<&RXimmroY1P*edZ&O?cZ7 zUNL_~e_qi>A~DYcYwh9YF8saAKbi5OGaCvFj0H?JgDXO!fIa> zgYO@woi$;4EPvz*b9@vagK2mn$!!YzTJudM7)|KDy7S|5w*qXw0T%;dqD|xYwlo)x zHRtEFFnG?r`)E&fqw!vN@|r?0DU2PWO-tIv&u?J^n+mjGCz}(sit{kSJ_uR$cb=m3 z7VbCI?^P1|6SQQEKBS>7jcDQI8}Y1*zxkjcpBM0d>s9ewj8midSYEl5G43{bB)sYU z-E$NZD_i3_{mz~?4)lI>{c(Oz3-8~ut1azICefbZ<9=egSZ=xmqa8QJIb;1{?U;UC zz|*1ZS^j1`8T24*&C||6{(VDUNxUYW(3(&Ghw9tbu&RY`oAJ#aalfb^Bk`yaKK!d_ zsmZpGU)vgFmxArhY^lTdi|9$Q8S%|fG8#Sy-wwiLy6bVbz`ZHs^7pwo^Adji4j((F z#tG6>`TqlcJO<0NI>uF4r}6W194|v7dWT{(Y+xn+Sv!|K53d+*Ap1*_*hr2(uexkkKYqJ!BEa)?v?JlG@Am;3|MDM= zAw@L_?$GJDA;(z+n#1||bo3>`9vxn}AXo)Pu0Y5S8FVU)P9%w|t|?b0F6-;2ql?@- zLR*&w?pBmE-)Ve%|8-ClBason1PST~;!s?>gT-;BXIGG@f8p!qVsTy~_>z592wHl? z*`W#@k2Hl{*BxHUSB!hsFC~PXr^d;Z(=W%7>oY{^INS{c)|bO4AEeI$Gqb`cBnk6z z38kBU*XD~HlF0(GY{v(K;p8jDS4BQ+t-UnijRdiMl%TEc6L(xZb}OF1)kyqS5!B&F z;!(J78dZEC28)S(7B(J{)V2`RE?k%QSki*H_61Q&xyG8=rq_`$9K2*I|uP?8NU1C$wpdGm?r!!Ss%sy zWPJY@AN?#wH6*0e3hJgXJEc^dIsR|%Sir3nufeI~Azhtm)i+_J4P#{kw`faNzYpa9 z=k#SQ{Iw959+Ji(LR>|`@Ur&CNsKA^sV<%k@n3iRt&Uq?<77Jc>#B&%tM9ehIiPm@ zjM-k&ZUE<%`Qn=RHO>~ddw!o*-JTL(uZDHzCkgjtu`5?3ZlfDE;tIQE&V$(r__LE= zU%-KcN#o9rTNFigy2a68B{5sUwzjnR=)t%IxqA5SPDlQuaSi$91l}ju9Fu4_{62@5 z$;IYLzWmp7va@F$J5z_XK(Ew!=d%xO|ePY{K_63c)G* zbNx;{Y4a2=wPIh<9Wgmol2DH-^fS}>zxZz(yXW+!T{Gi+kWP|sPI%Zzr@p4q2R!!y z7^+R9yR46M7t(r8PkkDR6BTjiz5;%R=e@(;i4yAd$Kn#*o)YX7*uB7)k2T{{1HE-P z@k-u!QeP$7v6nxJ(VK_AigOrxNt6l1zoGxKD{KlFVEvsc&bk8Urc?T#>< zf!)Ow6xI3WEdz@6>?p|IuUz-Ae(hcxH;Xz6V;{(S-SFsIrntTK>U(j;O>bPg*D0Qr z(3sEih{r!O<1Vhf;3Jv5R1SXXc}`yZx`OwKXz4Y^xMTH3VdW3MEaL?HJZn5{fO=<9D6fs+)|Q z_WxMA@Ax09_YdHN2pJ)=w~|O^2`MWSGD2qA2_a=?XOtDP$w)+*8Ocawg>RCPkz}tT zJATjeIKO{CpZ9&vb*}66dR^DK?=yymSHj3}?_xZsIwgm!8V~`|ii5TQ*kmI3u-RKF z!nH?2=}y3JwT?%phQlJJNt)M?qn?!vC*eqTo;g+ zp{FE;tA3N*fSZ09UrpvCcBu)#TtNRAXg*-a_XMd!m3U3*BgXYBaeInDv}hIgQC8Ic zM8GKgLcG*wCNbI`iW`pmx_vy^tSEtQSTVlh&&b)+C5}}DC8xjl2fD?^RNi=wnmIlK zsHZr7&5C#eT~^Q3@wb;GmG{iNHYq>`NaR@v)Fo9}@vv(^pbxM)sX$Z|=${6~Bsdfh z5)=z7@D+0Dc}J-yqbpjp>+~Q5E977BSwM7`H}cR{1tSfW-tY(UDmFHADKt zY=0Ukdx+UoqS`u7JT`WpHtVq|xv{rmL+`BdTUbNmTo7J65s(q$Ig_{?NBr_P<3TQ; zO19sM-+TPJA8D(w^qZ;5<0<7}LspMiP+ zF&GWR$Lhigaqi=HzYysA>`Rw49?uyTi{+Dmzhl!O*z4)Jk#KWWVVFWf-cNwW5U_h+ z#xob{vG+U0U*66!2``0>U1It>yjIi3BJE!_yGz$L9-$k)o&N`~3&R3W{paSh(+FL` zI7dq8yAf*=AxX~0nycc`rR9mxPRTv7qU_j&crENkqVQL%_zHUxq2F(&lMV(;D`o~F zZSNJhb{Q9)|J-+&%Ii zJB%$qtacEW$`V30V$(<=@npuhf4trG__}k!ws@#kIKi#v&vAxXkl>s#?uC+bYdF1v zGY@*U3tk-nP_%6QYe4CF~ z5$3Y6xlfYLV2m|y#Pc9t;L}ee!+DZeV%*t}yKS|XbxM4Nx{=MLh+Zp+^NwWJjSn~B z&m|(3L?Rih;M&rv(Yc{l4Pi z3%2|f7GH)fllXcEj<=SL2gdBhnJ3}y5KNUehBGD(->`EZ3_ZiwxAMk|wubTllRM&V zpgCzrRqc&oUlFsr#cJc*+-`7#+Ce2P!cdVVOL{2;McBm6nwZyjC!oKEe~Mo*Ki=GWo^ z$Gu^ zu{7QsV>5^i)py1f`|A~w&FaNiEi(REVO^S-bcV^_!q#P&%K<;badZ_--dYros{hP0 zmH0Go__WA|pY_*kcf1+4ks@dt+!pN@-$pc1L|=l-ukOWlIBUf)TiEGE15&{DA^&S$ zIxZ~jCjTrmDVoRLH{^-5I9yIqnj1Hc)6j`w&6qK?VdqTa9t?|r_&EYc$9~|>c4>~=G53(x2z)YxY~s0%gkvIycB>cnDjx}}FC~c|jcb%j zs)?YaArAK>i^3e-f#W}ym>ac=d$c9{g(>)A`3lHQ1mA?G8^y99ce*nZ7#+kpJ6@u!vKJE?fr z`u!QRkE+J{uKx0eMKB0_%~;y$T;@wB+iV$?o!T#VI3dxM6@PYJCN zZad8NL4-#L(0-WOTsZA zC=M@oU@c|X=Bdr6gCI#n--_K~Gqi;cZb}XJfO7u6u z$slc4xRP}0^zpI4tP+(c$>51u=Y|EhtBQ6Oc>Xv3ECSEtQpaPxe>L`z#+8VVU;HaxReOfrKZb(3SKOV`K|Hg3 zA1`QHM&~n?iYxE`_W$Yr-iA*9sgU`xc>Jt2O!2TJ6if6ewSr_JT%VCly6Jx|J%0j* z)`qQh`1g%iJZl_}tdpGde_3*@EhZD>h*HL!RIJ|&Yjbd5J)8IItFgp(hfXClwo;xS zpv^)Gno01Hgl6nh5sNWMghZAknY(6?5pOkn7r3*#&2W(Ls- z@CqB$QbBpq?+znj6Ciy4ySVbQI!BHI`ho^B*lgqbrSTi#DZy+p6Z9Sh3$yXy&5y7s2P+2@X5D9h= zn3aHZ%HLCQ?mVQLh# zo;=b-P9_@DdGDg|J+C!xAg=uNnuR)6$~SY^(vq~&93ysJkP+mM>m`| zUNmf7F^*RyzCrBU*Dmg>y?-j6jid-GroQNFd0#|@l~7fn()~;D?AJAQxr8_Jik;@xya4~ z1Sa{pC?cJKz6F3UGE-aRC(w6OC%A7$s8 zue5&`CbngapB8355zn*8tuSbTFaO}cCU$05%ybw34E()DVyq*vjTDpSVZ4gV4-{^R z2=LSR^(HZ0sn~iIHpeNbvMGYzsd*QQMcwNc<@jx_-To14IX76##4#lBK)YR`0ELi zzbe4)N-AH{m)A2#+}%n}yVzF8m@X-{mMbu;Dt1T1LVbAZL^Gzt!UZ$U%y@M2q4>$D zkFox(sCrc4GYf||i^)rT`UhX-paV_$=ZNP@Dk2wr9T!Qy71p%C{VzZBDcc{!`Km~}S97|=i`h;|PUF~_&sck$i(4ZfF}a#ZTMllDld=o^ z(GzCd^8Y&RydoYC@#kK)j?mskcsN8$Cc@txer%8~9%PmXKH9K(F%7=QSBG$Q79AQf zDW0QJgl=jiA3Sz#-i-z!)0iElBkXFBtOtfg!1SPcSjY_<+v!JQ{2eOqox_t(3YXI2nw~%B@nI3U ztqm@JB(@6_6|b;ijF|lnzk_h2Ap7r$S9yNu4MQi`UM+k!kz3OFU0?rCj-S8t%^2f& zlxD4gnK$Ll#C&>FJKwTvPgpBrY+uucF^Z64e9{uXfs zPI%qSab+2K$>5(P)>Q#$C!my3HH-#|zldOM#X&}iVW7@)>AW-Xzeey9nz1(`ocla; zKg@aszfX8YMu_qg>%Rf{1+%gD8Mt0B3TXcw3FI5W>}%i!`>UQM@+4u;s-)S4gJ$dR zDb9Uf8;8Qeih}V{ldec`4q&Dbf>vGQML!b|sy2{)2sl#-d{Ll(kMowQcJdIP_K5u~ zu#7~$gvPSl%&IJBj;kC4dw~=4s~B4&`A*|KMO=Cs+fWtO{{-(r{mkc^<7OjMe~q`> zW##B40=?aM5(Dllx8tkdX`yl@9BT;d1il?gkjo+EG?igvwp_mu7ZcV-lzCybahLf0 zE8NYzR>4tm`>KY%5Oq zdWuWVrtv#`VZT53z z9PY~+4-h)jJkB2OA@)-Qr41iU)BekdTT+6UDABz&H;Q7$5%C1MAS_4M5?B760)O?- z#Wy(P_^J|2ClSwMh@FoQ&%tB$uoVubC!C7@C~xc!KO0~BZTlvE>KP$sbreQ9iTK3% zF&TE__j~MoO;Q}du5)m>TtAt$)%>G zjQg73r^LmjVpgkboF%?P9OuGS4u#BiW2`|mAK<6^VpYg&{u3g(2&X!UWffd{%=j9z z_wK*(%|m`MTTVnfuyqh$+}D0Vx^|joO@_JtaBxjbiqwi*92dcL0sl)A3I`ayCmE(t zxc`WgC1K?^+;7B=bo^JHUM}I2$Bea3_!Oo1e#scqDh`*>zguvzfgZIp`~HlLWlc)f z;^z#SauN>H?ud7+Y+%FtFx;4pSv=PtFUpGVpW>7e?90y-xLkgPIPC}i7M-}1z zXX7eNcRupWWAt%**b!!ea80a|SB`t{D;Q_aus}`>YAVoX?~P~8gzcS=!TO0u;}Pe5 z!>3bv{+qEE<(IMWwi)+c=Z9NteOrF2EPouK7qj3ypFPxjw2x@qoByL>PsE&j z9Pcy0{*QRs05%hZtp?#+*JufMy$*jNOkD`ZbfmhY>iZBmastUlflDC(vjz7i@!5&^ zMZ#=A@o+={zeem5K>s#zO^&3;*2XO~K@5KRI_~vYxWC@!MwuZ`KBzqBCUdiQwk_zf)_hnr0@eT`lHwY>(J(jsw9&*geD-hdTmZ)Z8X zwd(0{&khFE_{_arOe>refRy__G4$5i^gkjcv1p z*=n-Fgb%jszqB!=LH?6SumP}pn&menen%B5uMo#hVs=r29daVJAU$McZJuFW24|l_VhX{vP4qHO3dUw?i_l3qKda=PG_m&E}zeP?J!6Et!-G zuO0DcJ95qqi;)V)btdij`v3x#lK8Ik(-t#~&ID@#!C1wPvR}ppM*VSTGkdRugv$qS z6Nn}VS|+?k*Zyxe<4%HbKK(qt-Vxr0DH5_G^&$99EWtdl_!?!Lv;004t_>B3iu|8K z(UCj6%^-q@2viMz?P!dP&3?*@YfnO$@N~QYDtzm_f#WUV@;5#oN{C)p?5^eSgKX{# zU*!(OPYpN2+Yj-46IKQ*YNztg1Cq^R*gtQ)508rn4Aqd(#}o9+#IsU3FhxvHR)~uv z!~N5TfxWKI&@vU{jT`bc;$92{@AXcsS3>A zij$YaIvQBm7j|mUg0qrcGX9;UpWG7k@%wS1ZV|jXfVXLA*T0H`qWm-=%%u2nDJ|$T z2A}x(wXg<BWbG;~f?S!^{#l+L*v(dpv$l`AZQqVo+SE{T>WYXZu>ZaCRS_ ziAMo`>IN%GQpEE-c1h%qvFQ!sUtOPh{*EX44Z`)K`YaY^etdL^UGv0t2fn>YcfQ5B zZY^QY_>+n6aN}FcUmeAyDSp<#oelCs4qEV~|6MhPLJE>8nd6qkJ#h80*gYo(y+hG0 z@m6BfLOGxZOz*(0C$)Q=pR(a!_j>VdUzokWL6dsQF$Lt34#rjg?f5C-_hQlin>{xI z1}=!>|Mc6yq-nGG&kqwyK1{);h9)AnX=OHJtAca=U^0V3=cF+{gIg2fA*c9$peTBp z|LQ0t*NIDd-0D|59(BE0{uswcwe&qx(riqhPQXuB#Z9g%ar@p5cK2)_&)naQC#m4C zxg>uMMrPpVuQ1gJ9>yz1e_&ts%<*$+5qi;7TnEdKS?R`C^rtj!ni6y`d=_NGm+TsW zBi;F`9PUof6R*4PfuHs8W#qwl)p8!X{z|oYUGP8{EC{E~6GWdRpapgLWGI_T<9IJI zswT%KHja*LeMBC*6W$UirfZ9L`^9lhR~5cUa7$INN=LmoGA+Zt2(LLAQ%{3wJg`Wh z4u{uRh2oK}ZF|IRS|d5Qt^hvPFJ28BUazMYlu0kfSCZwz0w}*dqx^?oZ! zq!j1YHcLH+=u?4bp@6*pLA*t78DXrTuf_!N7eezGkzOI7+c~8~3?*@nnD5pI$Hy{`Q#63Jcy@qi>ao^7>>{7QYM zGxkan!$6>3$EG>j+sS7S0mZ+PMo!?b%U?zLZVnP(@xN;P+>YO_iOnqIOBMEVtE$fd z;uoszJ^uEDI5#AO-PxZJNner#uJCUb4TvF;#tFBs>4iiQCSwI7f!wSplR zUwsEu^ESm31G5@;P2w^0NIZ3|va!D{IXq^JuMz%1`rM<r<5gIhnMnd9y8ZaPxq_;M7|myUTex`{?ske(vvjdgXou)2VfdKmh8gGL1@XAq zu=4v`xcn2|pA4&c_0f~?p5v>AY2$apbjDpSydM5Ber`x9A^ar)^bwO;;{LQarS<=z z#J;T}B018|=eu{q%z9qDviUH<$}jGVro_)W9Tg6RiFnnptuIkL)v=&4R8(M0HNLLK zzMHT9_M1%#^-=_Q30$1U=T9ZyANZ~tzpgdbX~um9Cm+2P_l?gWEbR%wG2iny_F|A{jg;?%-L6SMTZT#kaH}u1)FM zLYh)lT-U~KEa=jwD5x1y+bD|^4m}`ywNJ2F8LWO)#tZmC*pbW$6k-C@h7pZf<&}i z@=HRnH-<@(qPMKywHD(~#>NA*1}uvFt=u-=Nxw)^?fpL7gqO8*wmd01nt zgJHTn{hBAHN%(NNXB(D^J5PR<4-%TpoQ1c+u)3blM~UyhxG)tzYruL+{4HY=Gf8|_ z$P0V%Z;Y6)(O25A1stcJ;^UOY(?Ma8J0$6!;`Y*y;Nlg1t;DZw#x$HJe!(wi@o0~~ zJ)-tG!?1XENQ2+vV$iKLAtUWODjuuoY%=z2p!ZMm@f@%TC!Nw)DY$zKOyanWk zJX{k9{sGqJ05a@kyi0p^skk4wqS?#T@|cPDG1O@Hv~cDq zycs0H4~a?rtML`ma6Y?8ptmKD01B5SeL@^I5~b2}5s>W@+1d)oZ~5O#grzV493(!S zB)coX@HjxWDi@C`E=D-IkB+{4lF&6Gv{?|YoIWnBj`y%HWZ!3ieY$U4k@?UsBW z_sqDu@t})tfVUix3j=Qr3H4FGze=e4rzeE$nWixKOF{J!AuOn}{;o+(#?6UF9>voG z>En^Y{^h4D;ce-C4R9x>a$5_fr|B77T>qW^-p+u^h}J_h zB2=68SwkF?Axv@DnZd95%pwQ!)fgCSFA<(Xp!X%_k0sHP{PYGDc+rU!kqr~X=eKmZWPbSH=gM)L5!<2lpwN-reI86V)@b@(Sc*^q+5TxtG z>Hu86rkE;b3{xc5YyOvq@RmIm7np@_nxFe^HvajZPZIIvgn#0`^IzC^M-m&9GS0?6 zLBcl(duD}DOMa`y_Wy{%&wJy!0O45cg2LIs(9`~QwcOZVZH%Z1>m@`0{j;{o>g&xpQc`kuT@j< z$M$(JOC1MD8mj_a_RYEk^QnO$<}T07pKQ9%rzFbP;F z9yQIDio^Qn;q^Vc6N-1Rh!(EeE^US^dRKX>wLKK8yzvr_4I zs&=kC7r%dJ#JAnze39+1ibKjuxXO2#6gtK5bSJ##=C2mUxk3?=**Lo@{7UfUgY@o2 z{=7^l-t)U;iocu2*_)OXFbi!DuM^1Rl1MK2-B>y+ zJkqgu3XYbe>utm%Sy*2qwp|p=Q(&zbOeW^LnhK#!aG%PvBWUSi+Sc4eCIxMo9oC7M zNVSshDu<$+{}=jSzQ1WW-dyCb&F3R#!uqmwNpOyTvrDF%@!~kXJjlk8;!mg+EazPhyeLyZ-1ux_Iq9#mtlM6l)zh$sikv@HjgQdm#-z@Re&LL~!;dv7( z$CD158|x3S+0z(z%S|a4#)a6kXj4sCx)9zN;z&7s&W+!xXxVLjZ7dh>d})9WFD8$7 z9+dKYcbapVO}iAUPlhdua}9Vh11kVf0f9Rzp_NwI{KWCyCAF3kWMTySh!}5HA?8aN z&y=4)RJ)&y$DH2r{8*rUTqkvEasYq~N3cW;y++{2tJHRKek#vBRUuv+(pyon((`#4 zdPq>8mKZN1S~`j6BY}Nf!uo;WB{I9bOXw;yKDB^;&xZ2E^CAF^1?qLTWAKMO)%HqK^(o6NZX zlzfT-!G6{HY=BEBL5>QCok*goLZKmPok7B#$oRN%A3?B=f?h0a{UXqR8AE1cs>Q|@ z`{GK~@LKLLf!fT!^#Ex44{>|r(*nObdp!DbMzNTfzb9xp5$xyJ;u?gp`oE)yIS{rp z@nuZ_c_&{y_VX=1tMXFZ-q=B*l1^p4n%##x#y!lrRDyT;?r4~qJ{Iq958u$Yr~;P_ zj>k4X%!hl}(use@8^>>9F(e|52nSuj!dd-4@kBhc|JSgPFl-4T@^=VzGD7?l;!X$) zpx99&?1so0zpYIcyXPgnBY@Zi(H8URbCu%arC~_BBrJ3b-(=afSAt9kKhG?UZ<4l8 zi${`XDj|^p`|)h?a*d}DWRL`2N?Q}zy$JA!NeVqef+s9h;cq`eh7*1H>RUcd&z9!Kz8{&!&4}A$Q-m>^3GCK( zg+@e(=pENbRT%FqPECn&4vB4!B6k-dejLV@>vNx?=~H-IC-ylBaVh;y<^QdN;?=t0 z$mjdw@F^kg0kfwT#DhPYv*)PaUxKloW+$bM^A_BsQZS4VgW`Y3yXcP)fpp?^ozMP< z3scyYnT@~eZzO?Q#Gb$5VQY9*Xl%=VkDv9zSq|smqBDV>ZJf2)@=2!ny>ekVpas7E z({7Dj@!W~;__#vY3UvfW3DIG(UQSf+OE??FA=lKHh)*Vpuhd8Eh;I|0eKKCP8xFvl zrZ6obj*E%v@SUlEgSxcWET za@t2bN0!Bv{WFZ`J2vED`$0v>4vFnCv3mn&iyH4Rr(NCX=?=PDT0CDddtR@P5l7=qw&AwE;yL3@tdr%JOyTXT@jPMD)E}=7htDWs zao|7kv&rLh{d#zF!p1CYUN0t3DQ-W6p(}7$Rid9lgKobTPmydjEuP=3- z&N;i~CpuQENjw>}I1PA=#(X$DzO_%Nt`P3-+Uu<~&Zns=907@5?0NoM8(XFeVXz-}=NGzixyT=7eSzBWeIo zUKQf+fY9wu{4TrA>>?p?djYWT3+719d092ni&)G+$WjU7k-y!vIT*>lCKj&)=mdlQ zA7FKo%$9Lt9c|q3OnX)FVaf0_1IqSbJUQzhB33uNmTMDNX|5H#R0LtH0BmP(Ne){z zBJMSBPb7cl#43WZ9>G79yhYRI?BANmC@~uSj~4@cc%cW+6^8zv&1B->^R&@hZUY3ogbZY{y9swN(E*0rP7_ zEiX|25{K$UCk2wU{U+{@PgolHwtgjIp6nAXME1vE2Rf1^M6~C{vlN4#s6YZivRY~%lu`n{1BPJnt8S*8KBz=Xj=exKv}6WLqaJjuhWV;OID91x4{J-%izKsm`^MMmpDRYrNOIc{ zsmgEhQ^>p`@krf}c$fbF;=E@F)_q+0!r0UJ-A9VDZ{T#2WR+NSW*9Y)%0Z)@FVkZ#a0erpyej4jH8NaOL<077GNeKICzp`;<-xaTmJ#1Y0`L9C}6acC+2nu!a) z604W^;xj(2jibNA$Ct#uE&h$39lwt@$GxMtR2gsYb&l&#!i7W&;rZukao_z1p3Q?_ z8zrV+*-{7|zh%Sg63cFa{QWQSHG38DTAqL4#5Rbb)X53%na7LK?05&VaSjykx!m`eAQT@+&hC%u8)&|ZN7KuemPUC!?_*cQX zJ2&F?-8_;_OLhz-`V&I}&{ooCJ@;}vSS&4!Tr$3fxI4g1`HpeDt<7n)a*@Jrix}_s z_eT^%Up9_$4{y?bQc#_SiTXj{jpeyaaY12n{9K3k<+b0PZ};NuY%}Kmir7#2Zi(1; z)$UsM_W2>+JrWkvhBX@DtwmeozfWVc($wv3V$m87np&x?jK=pdKfcBPa}^%vjjtb^ z6{N+}VW*K8ln}42^fe{lR+Z2%NxW$lU(J4w$2M=GPnqy@LYFvGO)Oqpjq4I0Wl;22 zrFmN<@!sLnz~?cc6=d5%{!c9a6E-SLVLlz6)y1D_JL83CFXHn+ZJ!k1?)?7^98SQs z5B)ujwsYciC1begf0@`i^S$^9wf@+cs28%QzhrxqM&?%ZO~H$VFh78g>#m3wv+Wmy zo;2od#nvsHAGJTed8@{!W%y!j_(U#`?4Z>H==@8tH&KzY+XUe??H|O2oOFH*PSwvA z-v*^pG|a`xa%|sW#$Lp@AK=e@{P$Ye5rfNL)2#pKY4MBkG{)45yPEXsZ+IOBhez+k zH#PU*DFeUk)^?GZ@l1;SCSpzay$?Jb@%v={z6VyO;p%l5XiFPk#qR|;uyJhsjQbZX zCRl?c{{m+=)!i5b?Z~nB+sBoYS#sk8dkZ3+C{$@p7LA zs=)3K$9v#gh1nh3_5<2^WEchrseyC>an7p>dj+7b8{-JoQy1-gk649OZKsfUg`{*( zfZt|+X>DgyC`>n|?h@Z9$@W(Qyh-(zA5reB`d11_ChhNLTOp!XUT`k(&3nn>E9ka} z@EkG@O%bodO*S%Ktvab{T!}gyVantHlzxgLiKMu`n(@mGeIHX{zTj^KH^s4y3Ew9L z_ElpT=J!Rz=LbU9UqabsoTbERu~~Rs&;2S9pER~63cpYFyQX!#R{4dHNF>knK>ar0 z|0@AxMx;R!$TqXeulyzn;>|?jpT*@-1=VN;N^_(+sO`agmAzOzzy3dBk|KN;RvBO9 zo2-({Ed8Yl-`K^m&zyK3{Vn!x0`~MU*Bv-lo{u{%rX`HCu5bo@UcQ^6%>=-FMIxMK ze3inR130;-$jdGcWhJ(&#+6Vq=u5y)6O%~*pN8FUnvI_n&$)`UMz6%hOB3PgO+HAc z2rZ68-|=%pg7~;tbx`2^jZhEq=^qo~eH4!xUqv`S+#@dLsRPgb*tLz=USeZmcKr$G zrNatk7`$fesrha)znA2{ddAcNK3+7-dstsLYsH0_yI~+X(Rz-+^vvAe!#vOc(E6E(#|(K zCEW8Bxb29|J>ou=;Or=5?+hb?l(_A_o5#Fy{!X%8cMqFfm#rml+D*Y?o%Xm&pV*ZUL-Yih*n$MfLdPVKe#yMH}b z3^xCKP9g}O0Ace`SPjnye<@-fQjks4-xjz4X+W00$|M2QWcR}o+Qh=~u$;cIHwzz9 z!}f2Aje>a5f$fWN=v6UI!w35g$Jfl^^v?DE{*i+HB)*O_p=pb=bK&xN7}zZlzwg;6 z=w@kS?kgAkCFb)KMYs5+tODoLERv$%Ey0Ua`rc0m%hHRtle3R+?!f4qd_S*8Ja=H< zn7B^o9WplDbtZh2s6G_1_zxArCDqRUIh*$v;e z(%i{(w6$l~iOKA8aBL!;lYUK75LQtT_4B`cu-!`0^(Q|}F%jrS=N{E}LE5lZE`HwF zzQB#k^tf5&ctFy&B=Nwu!fZX*4202L->s zV3*?5waDL;D2|pOKa@-h3+_yUzK2MTF!LaZr4wB^gsf%tLHwqWA| z{u)k9YD=Jn!onIN`aOc22@8PWYPST_UjLa0*Qh{P=u zay`SRcZup!&*p{o@55_sBuHUAI|=wQ$to9Oj1cP+h;=)>{rK4I6&98#ex4QQQDVD} zAKIE-^hL_EY-vUmA0mjkk@{QDmw~0n6lV1$flcDn4xc{U9#?+9DT#auf48s3SC`?e ziqB#AOjw=I-Y#YW-zt;_OGekis%dst;nz=|jJq4U!&Ga1A6DS)lpH&0>mTDi$mYyq zPzitU8(U{$_2>KXf}8BHR$46PDB%Bvr?KMsJwG>uiz$4Q#JFnU@OO&t#}v_Z;p^`q zaF4%_``vEh@QS~W>>Q6HzI=_HmEx<&XZ>w7{5KhlJwPWjQBDzbV z-ApVu^oZ+Np7<@EB3WNSbX8k(=|@|I!PEM=gv<+=76RHje6JSk!!6?#)Gds^`xo(<%M!qI3Z19I?im>Gq|Yzu$PoU%61IDd zj_Vql5a}9{W}*3U75-MqvJ9T&F)>&SCnppylk!TIiq_S1sgpKlrUtbY-O2 zRHKb|@$Z0Q@Yxyhit%vp*(P!NgRWH9XGfZGmOb^1f5IX9qOaoO^n>`^gXf82_#B=r z5|^Wr%Y&=MKymROpFLSDo+?+5P1o@uDSe!(z}gYcA`sJ*d{M;2qMZcPi@&~mEiQ!o z94_zUNiIpX0Zlt@yrbZJ34d)hu8Ioj^K4zm-zDg17DeeRF!QmZz5V~hkq7wy z0oqcWe`lKr*2)rd&KoqLpImlS{L{cnRlX}he@@b*c8TISDBZ)k2-@F46KBagIoLV| z9tz7_^NjcRuq(`%XDB+m;9l0Suv89t3rEh--|2Eir+ab2_&eR~f!8a-`Wnxkls}S& z-7Ee!iOyAnp^o&lA}Ap*I>M^%El#fMd~Z@fV<(wk-dC8^JXlp z>=V}nd607}XH_z&(}ZXbvOVm_n2|0K$Cw@SL&vD`>$>P24Pq2N9wu%Ari~6}v1V2RJ zm#fDM88RW$#3pg}b)=$pfbT~_*o@2dY)uqiBZu#5#PxRxs2|cKljxce zq0hB@oDGR2puULLNWWVJ{wZzV=C{|`{;X#&gjs=p>vW4%bGVSBs^9ETH2g*QRtoY! z0J}%L8zONIr22wS)+&5%`~6Rn)@(t3LIH7%UndgOfoxoFyf6EGryKFK!PcXXsl}i{Hp%S6p63P!!^YT#h}!vc&+6nm?)ArUQ67GxD5L| zURd<6BwvxRjuOA3o=wEQHAuW)0a2PClkwMI{Ix4AxYO2HBu;|V#SpatEL{ioGKu3& zT20N&7a+-Y;xI2JUBzD009Fs@m+ zbQ6z~hZ!xr7E)Y&kC=}VrJurVwNpH}>Ph0TnMh91cd?Z5kd^|*@|i+okwm;rf=%2d z?!2iT{?3MTFj_=^%LraMNoy<&4P^g%;!w(X65!>Myz!!;^&{gUF>e#*#Bh+8-R1o6 zf*2MJZ+{dY10;qrxH>&qT<`O{M6(iCv#`H2-(Mqa>BV&7ka(W{Je*(8|Fz9Xel|fk z$v-a}$7&jCbMy<1f14y%kkL`+{t9@`~Hac zBg~R?PQl?8zU@r(9xz#Wo&R>VjF(hBLIXMy=!0P&ys>W=qlPdrT7h~R9(EhsYGR+* z40k;3dE>cwD&si`W|st!h43AKiR3WfiXU@J&?Q^N&kAD{aSM0G>uyhr)mpf#jjL@4 z{-v#PVQOWG@;cnUCF!Qbfda-im`|?q^D}S98z5hT_iXq!oZq`EGXGW_lvjv+L+@HC z$j|s)Pwh9!AMa@B4BNMir#AgdEEZ+{i#t~~v7;u=y{VviNFV?9e|7D zP3*cWEWUxG{gUu`oSZf&F18(E3_IcAZGK%zOCHzWX*hX^{blI>RfWPletX||hbcVr z)AP;vd!?r$OrHA&7SFs8-_liM`wcvAI57u9vrX3POhj}O-E}e z7BlkiCjKnX{`;QK+%w))@ed4EJRRS_?ZW#^bbc}19D=onaA~s%z@L@lC*VQG_M61~ z25mh7x8-1O1U*@-{~O}`EKUAi?raAm&%oViZO-AF)c4}8xeajTLE6|>Tdy{XH@?18 zJ08D3T3pVWY?r4U;pX21a^TzI@(sN7gr5Y*k#~5ucv(oe=Cl{#xGX_@Y|tw;oDQg~ zBI+-GoSSpM(Qpj|yoYQpIj#rcP3GAp;d`k76$FxTI=stKs{p%v_|C#P$^5@=QVGGp zp3E2ba;}xUrUBHJ@al+h1A%H1qAlQ%%|xM{%4Gt;9$;T>Vx66E-64c!1$wa=!bbfk zmr!0m9d80`TP`lVo91_iID55rvPy=(Aol_R`(ssny|Y$7oq_6RSVZIbUVd|eD5sFH z8?a-o@ea}N-w0e+#ko;(y&V?e5#$3&<39dyJnMIYP}z9D4BJ&yfP)culD>`sdN01) z#-CrQCJ*yfD?*=oUi?PYM^H;3%VS}N(<>fq@fm^MJ4PY4A)bFwn+>ImCp9uP3`rBn zS`nj12+1rnk*i4lTu2neCOez=32JeEuY^3Uf$$q*UdBwnLFZUNEDH-i%qV&i=~r9F z!-d8YlMTeAqqb_Z<$ruuMUp$@w+U_|jDB+%=c@#8#Z&QW%npR9IDhqFcS;4!g79td z-FOhlJ|tO#%sYr*59FJvzdr%(M>b4iXJUol0wke}s?t_r`g@NkXY zedolLtB;EB!SG%9N}K_$B-+{Y#x02N!^Z*tFB;ache+fQ|nH>*edv1Oj?{`Oy zt6Es~yD3)I_4#K!QL8MzePQqcv7NCmZi9Rhf#yp4d<3Wwc zyC5!f4F`SP=KFdC=9n?;B&y%MA5W(nI$K+w`_T-wBT+xQB3^uyOkx{_<1aoLXSYF^ z287v{#C;sc--PX)aCQ4qTzpvomwJR1_xRjGT!#>z1QPf!xY59~J@N24ochEp@*O^{ zDd`q}A{OZ3B)G8SWj z4j3BxQe33AfxW2|Pao@VCj9qg-xdBZAi=#*BVJiO4}Q1>WwJ$Q!eN znxgsyd-j!$m%?SD17}SbUN8a7^zj!U134_EAc?N zXJP#>Pgq>;YwhR=Uu|1qET{5GEO zS_dZ{fvLCX=xv2oA>*6nnH6$OAF=w`|LekUCKw+}cjvP+E$u$YuJ@b91)jOK#9I*; ziFRQ&8VGh6lv;aM)=F1N9U>Yvj+>ILkFmE_7Ler zfc;7Ui@?4w(1*j~Kr`B(CHRE^(lxwNxfj2aCI^bj)8o;py8xzUSe4EhdCZoU2v&Ln z-l}SB!I9(HcvQ7hGc5Q5umb}A4*`74Aiv|#RD|Y@gK;}zZ2=x1sy0G=LE`QS#PtMo zj|#6irw?b}mq1j7EmN+NBt6 z<{VNVMua4QU4xHusI*%UoU|dK6Z0p+w`k%q-K^^t(kv9z4#sgrHTou^Kd+sh#(UP7 zTATSMP$3>dimw$5{ZxDZMO7rdCCs6thu? zo(0kOA$m*19ma=$66mZ5cOL-v){To7PXP8uY@REzUk13P#+gr|=}J`Z^36h^d5ajH z2{S7gX>>PUgL!~xk6>dfKs)BSENS9V!3_y)E~NP;Busv3LRj+i#W{V{WXtcR;#;D| z5=I6IYq7TLNwC?CuNr%n@j-qhpDnf<34UYPtjxBw0RMZ~2d=GZ2$F&bEH8pQ{9A!P zx)F?H64V@RS7yU4Z7hU~l}*4eoP-_*TM|UrcN7gmirV3 zYKlQe2{55CZspUL%?`W5%Uwl8gQD@yfp7y|QFxex2V3=<&p2Mu{hbT4jzjws! zIb-UcD}Il?tdQA5xStoB>oC1U9ETzOYzeWPq|#HHhuBdJR%gIRIms*UXYtzML1K58 zzi0Bn7R2A@H&2C?^tIwP-aHDui=og61sCy4g^N#VuNsU_YY>uHrzGVJPOyY zlJ7dgd`nCg6U3@wea(1Rd>9wpWs!`V>f`K*czy1jtNzE1Kk%*-(Y)!mk9#KNItiEm z&+2z|iuhS<2A`c^V?7*SOK=~?ndji^8hzMkjIR;FMa1qM*tj8ark@tKEr;*NxB0lN zKAMZqAI9(`j#us;FMxR3#?0ohTjXNS% zEfks~#q&MBYruD(O^oXpI>7Wr;-1s*>f*v;xOk( zTR?LT%MX{~y{YyKhQ(>@$pF`T!p$X&1F?z8>l0Z$LYPg@$g5^Ne9k3(FwBff?$B{;7D(-CATj7;@)c$$EIsv7&jZ~xGFMxwL;$?6+) zDPZ^*c-oAQ=hBxo`#r_!T_nLbCB(}Hnk8G@CfCeBC#nSdACKDy8w&OqGqScX#8c3Y z07;9|!6-xkf^z!(L&Y;tuu8LQCF6S`dm6xO@A=P(-gAQV89R2dx9>CYrlTvK&rfiZ z3;YjH#}n(GM~Y8?DYu}_l0@Iq*7@++fb$NS0X&Mhn{S8YXtwu_=h6w_j|5;aTk-+>KLFbvX-DObv%U9#a3K&L()Q?aafVTd7+;V; zGR#C;W9-HUPYQG`ez~jA`JV7jAONWWsIIm*niUTguTt9nDkKdgD62q7Cb9I@{v>@h z@xM(#{?cdh6t+hs&R>CLPN}$(IX@vzZ)WkL;%l|Su(t7b3k&hWifKj31pc~446Cty zVCi_IZ8%9W3xD+k^3{ZKg1-Mm{0a(+sf2Xz`gp?D){lrN(Jtx#H_V87BK0Xr?qkGi zX>5gv(?tKjAO>~j#<5I8xV?laBcW)4EQuw!AK|eK5$vUpkH!BlMMQIgJ~hl}V4{Hb zYs23tambxt%>N1)5tE+A^}U4k6?>W+=ST^@1Ol(-i^LMsPNZ+ENVzO|e#qC2 z&c+2ooh64q**VZSQ}NwgBAiEGClx!>iQa2OB0G|P0o(o9{D+ul60aSv#pHP&K62@I z1$^Izfp_ue&8l(H)dpNB&5risp9`m&^6^cvOC!FcK7mR07lr>W#=8I>)+jQ2!Qd5z zM>hC9WX6|5a;g+|3@8?lhXs&Cf3SpHO>Fmt?YXt%w#2t^|DK}jTYT#%MtzpX%eAVq zu{dr%gv*!l{W-YbVy5$j@z)@rCAY=vZ!_@WZg%BoZzA#fkj?Y;{fk1pDy;X$v1ec+ z0lYQipVDkxoFSg#*c(S%D-ajz^OdlDm7pcf9*;CFdM<9Koewir34c3$eTdyN@$~}j z$))`%62wn+{2>3W^wH71oMk$$kSSK@n& ztqtMkFrTkX9@p(`P@oQwaGsXj{u755{L@XGhlp=(+BnV(vbjEH@^1#1X&1h=Yxgtw zJhds_3otqyXmciRZ494SlGByvlg0BG9?{=zK0fGo$=Te-lg1VN@8IpX>~1bj<>~uI8dFGe zY)OAJDb!~eb72MI0C*ZNrvFn^rGSHP_@t5FpXaY6CTOcA^xsVapY*%CCF6~a;q7p^ zgXC%U4ix);D~T~1RvN=QCOY?xKbc9|R+#-ze#`3Fs(5$@)`sKV8#L$F9Fg~r8Rsp3 z&qvpm!*yi|c9LvG%cu8Ey9elGgVTlLTOGC@H~#+stfO2Jj{PvVhV1Cv3t3=`l1Ds0`awGJ2VPB;nZDY(RV5n*^ z>m|=j63qihb)}6sbxEb%NPtoT-}JC8jj$IW4nGis z>x5yrpfwkuE^Nu0C7z%C4SUK+uzNUb4iUV|xs6rfk4V7lf$FMCs2U(V$YI|C@9W6E z6G)$xl&*8y0EuFupf>lvRYl`$@C&n!-W+{Rfw213cxL$f`npSm$FGhjxb^14R$(iP zb`}Bgy9iiJFz*tN<&tI!Nuev-M@kA$hkf*gB{E|jqQFXl_;m%VC}7@FJe8N!n*iff z1jr1iXN%gE0J%@Kab6b;5!dosrmX-iJ_lrwIuSq3$%mT@p9P4sGaxu z{U+g?LEyHi!XK2N7qPu1;uMy+4^N8U6Mxb7vjBU?|K}u%Z-Aa_8}A(mJ4N#G$J_99 zS-%4%=mz3?LPGv5b3FGtSDAQ1SU3(dd}He;Hrokk2Do{LKXZ!ZS~HC&;P+$kULkRu z=Bti`k}Gw~YPNBOWU z;W_}{r^GU|Sk7Du^!JKHe$=z$jeAX4 zC&Op&8~;iES%GT}2E{iz;hg<4A(8r9DDsE*H4f^SXXUN@QF3Z2^0l_KQdShU>3K64@g-*M?@C8x+?N4GB9) z#QhDz^#h;1fZJ`2^JB$Ka^wGw$R3a+=dgW{*=07fwVi%bg??PY;YVpjDY}r)xc2hr zD7aeIIN~rnq5oN&hU42G#IYCO?_gVbg5F#l2jKqK;Wd3&)lTq6iC+T6`&oZ4q0n0x z&Lz?3BOBtnre&SuiI`{jsW@DH1E0ASmo3CNDSM_)h&zgg@Kuel(5_kBuGa=X%dj)C zxD8XJ)YpFwc74b%9rc^uI9`VPUr)#V*$w&psJIKP-T*7pg?=RpP1c?H6!E#kfJbM=$LbKP)kQrP8W%!y%f#>IG2VK`hY zDeWnV8@Jh+nk}0ZiNpA7nRph2{YrS>M_f{f>n<_>%J{0%-a~Bs-uOo-bn@fTSK8@M zA1aB(+V^OoLS_){Sj5iPVR{=4d4#5w(PsXzHb5V9<%gXL!j}TSV4%4e{wN{!hV>3K zuZ}oAPmi|A6X%VuT6lxo8b3Y%8JiZZI zKJm)U+hLV4Q1sE>L=H{s{|C$h1_0jID&Y12bxDGpW8kkE%nu5V3X<<50`WO;yjCz) z=;3gbUj?lYQJGJOcMppPN>t?F*9B<-`?4bDz9sRD?Xacet_uAKM<(qZU)2od;6GD% zCRE1k+il>B7smaNzZ1~`o#N#d9HbDA1uZ}vb`bU|f}bLg zm(%`KSr)t%&+`7?Pw`ClaD&)Q;7b_}*a!!07;`3ou1O@C=ra#{=j-E&YA`Fo_!dFB zBS`)fanakXuu4<{`qVSuPKY;=RnzbK!EuK|U7|BdGW=I!t--JV6U_2}u*Gxl@Zm8P zXmZJP0|1s4n+yCqm;b8jYcX5i2cSd1w@V_dd^g?}*F)P=kZixCc?bAb^Zjw;u7zCl z3D)C8@*e=NZ=BiqX@f-lwBLRjX79k(MWfP8>S;%}BP)7mx1# z_Xv`YM(RTPubw3qVjKDYz>0W*OSp!19w29yth-2zzrxF4*nHI(rf6fgr1ya2T3_*V zLSiltBVTCmca?Zc{;obcUIpD(L04~ZycugUzpjO!8pydbEMAf@D)o%_ZHL`0;liSa z6itQ4#BF+&2xbx(o2!im;X7QFc*|fvcIK0eI`H{k#5}(!UJ#U%(42s+isJP@_#X{B z>pzfm`M<10x>?+M!gNBIZz0(ZQZ(I%({aX|WORJ(y4v_F5!<`kE=r`{mNbq%9oNOo z_uM6XN&zQD3C;)NeMOS`3NF)!g3P!|^4T1*YzgxziO%(`?1K43uyPI$#}lx$Fk6QR zY%_-Te3B0*ufpL7{jZ0Qu6*)0OpV8h_A}zKuNU+)L<~O{&m6Gv9R6LU2agfQ_xa~9 zW87CSUSHkY_>+pylb+kguXR6-9GaupJ9Iq?>s|Ws1WaARwW$*2>+sZ}QM^w18ZnyW z?}z!NK7Xy>8^4DhGloX==fm(V6t>Fo$q~t*ub59$*fk>j>G`GL+4u_jkYXzdZkKEt z@tG<37d{W^uOU&L%151W@gLlNOKkIbuB!wyQ-bPeX4W`!6z6w{<#>JnD5;$lw`at; z9p9gjsJDd0RKYH@#*+m2TYtYNkuAiX-C_L#{$BTdG5%ghoGIK_1#rZtV-x-Q8acP_)a(J=?`zpQ9fVaPgg=P3N)YvYDXU{|}s3q?0 z;cp1uP4xEy>^N03p2Sx~OmE@jaU6UwEUY$R8s&E%(DL6U=emBIw06AZ@TB%?>Su*` z-eJdl{3~YckNW!zzb_cxF2e2}Mef@YX)5-eHO?W5%~JGo8NF$T+j;b{#aOGEtbJ-M z8(@D3ZoT+!yp$_L&}%*@%AT2u(TBviiz1?yK62nl862p=AIE9S81@&XM_DD?zO=bC zJHMsZFYD*d%D6px7@xk-Hs-f(_%Rh0PKGVI^z2LA8a@P`;i;)Yw4C4eW9uJ&-+(5h zreR;op=Ie`vsLjJ;^es96JFcn&M)}e(1ho)j`6eQ(X#Q%>(9jh-LQ5^!S^O#XU5-; z`7^Ot{Nr~g=xa*aR+rBGub4?VZe5ua3xYX9#_!}G{Y?!Uegesb3|#L_MT}F zuR#o#ZA_Pxvq{oL!mCsuNXSW(_W=q}l@{PEY~M<3DiDwVh|p{aZ>gl1j{{#cgZVzp zu2o<60d)9C37pfIK(IFiaVLLe<+tDT)f=%hA#*ZB>?WbjRaGDGo1y%%j9{cE zQpJeW#i!%Vgb5_V|0JCfp;DFP^LnNYKm7uLkMaH1unP1>Tov0$(ilx(3j@X9cTGYzM&VODY#);#lBSC*fuAL6*_IKL@^Myv4F+?G>p8QE zL6S!z1YO;&vzV*7YFKU+E8?wC$&svG+@_?)3IJ7Y|v z;C(NwFA8sc{*R^m4*a=#-v=(r$R3H3EwcB{Dr84wCo@7sMhQ`&WE08A$jXkaC=@cw zC?kck`j}D3`aRC?eE)sFU(a*ybKlo>-S>Gu&sY!_J>}=`r>n%h^lJ#wbVbz8@J1{Y z6oKTIOQL=O*mjs8E~Fr|HD+d7|>0e!eDNAH!kiDdMstewR;WY*i)VO?-cCcf7`VI-mCq z=XkKSve|Aib`IdvOkq{{@p#f@*_-i3!>};%tl}o0*l&fSv|`x@uZqAxBKCX$U)@Yf zet`SQVsf3YxAJ`hSWY0W_x!C4?yjpEPwcCs|6cySX;wTBU_#-zz4ajHB5^TPwh^Y@3sl;*#989_!Pmt>u^pmjPqInxe$8{>N7-JsV_=Pc63%gAe3YR5~ zx7j}i4x5K_9sG6^4Sh!}^01+=!e(LE#!H`jhBaH^bE_oN#sA)iqfcnn4{Vs%I3Ai+ z94;o)`h>$`!Lc$dHk3sE

wi0)jo)40((enz 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�|%<*p$-6s+1f%9<>_wX%gu_7i7 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 z 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

OyeFj(Wogk_GwS;I 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 z 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�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

`RrSr5GXl5CH>?m}2usx*kN7 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Π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

`r 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%0A4os%^p{v0+Pn&bakgHB`~dVDs2|`m728O;hFG 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

$4^JGivN-!5p+a5PsLjE>yTpxud> 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 %Xwxw4s#^wgS` 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 U;29=5X1eVGAi!-fAN=kA12lFXKmY&$ literal 0 HcmV?d00001

=RV<3&?-vw3x~m1-SB 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%0DYRH>YtmS=|X1vq6l5I%|o|P5=kP{4JRMhGy5A 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