From c7994da726edfb27d0f5e967c5332f5b6e0b580f Mon Sep 17 00:00:00 2001 From: admin Date: Sun, 18 May 2025 16:19:09 -0500 Subject: [PATCH] unpacked and edited shaders disabled fog mod in config (not man in the fog) dimension.properties edited in shaders to shutoff unassigned dimensions. --- .../minecraft/config/flywheel-client.toml | 2 +- .../minecraft/config/fog/config.json | 4 +- .../minecraft/config/oculus.properties | 4 +- .../ComplementaryUnbound_r5.5.1.zip.txt | 2 +- .../ComplementaryUnbound_r5.5.1test.txt | 52 + .../.gitignore | 1 + .../HOW TO INSTALL.txt | 5 + .../License.txt | 92 + .../shaderFile_1/shaderFile_L.placebo | Bin 0 -> 17614 bytes .../shaderFile_2/shaderFile_R.placebo | 1 + .../shaderFile_A.placebo | 1 + .../shaderFile_B.placebo | 1 + .../shaderFile_C.placebo | 1 + .../shaderFile_D.placebo | 1 + .../shaderFile_Versions.txt | 2 + .../shaders/block.properties | 461 +++ .../shaders/dimension.properties | 10 + .../shaders/entity.properties | 40 + .../shaders/item.properties | 65 + .../shaders/lang/en_US.lang | 1047 +++++++ .../shaders/lib/antialiasing/fxaa.glsl | 194 ++ .../shaders/lib/antialiasing/jitter.glsl | 19 + .../shaders/lib/antialiasing/taa.glsl | 177 ++ .../lib/atmospherics/auroraBorealis.glsl | 72 + .../lib/atmospherics/clouds/cloudCoord.glsl | 30 + .../lib/atmospherics/clouds/mainClouds.glsl | 108 + .../atmospherics/clouds/reimaginedClouds.glsl | 142 + .../atmospherics/clouds/unboundClouds.glsl | 217 ++ .../shaders/lib/atmospherics/enderBeams.glsl | 57 + .../shaders/lib/atmospherics/enderStars.glsl | 29 + .../lib/atmospherics/fog/bloomFog.glsl | 42 + .../lib/atmospherics/fog/caveFactor.glsl | 7 + .../lib/atmospherics/fog/coloredLightFog.glsl | 51 + .../shaders/lib/atmospherics/fog/mainFog.glsl | 258 ++ .../lib/atmospherics/fog/waterFog.glsl | 19 + .../shaders/lib/atmospherics/netherStorm.glsl | 83 + .../shaders/lib/atmospherics/nightNebula.glsl | 106 + .../shaders/lib/atmospherics/rainbow.glsl | 56 + .../shaders/lib/atmospherics/sky.glsl | 127 + .../shaders/lib/atmospherics/stars.glsl | 39 + .../lib/atmospherics/volumetricLight.glsl | 338 +++ .../shaders/lib/colors/blocklightColors.glsl | 220 ++ .../shaders/lib/colors/cloudColors.glsl | 3 + .../shaders/lib/colors/colorMultipliers.glsl | 58 + .../lib/colors/lightAndAmbientColors.glsl | 77 + .../lib/colors/moonPhaseInfluence.glsl | 13 + .../shaders/lib/colors/skyColors.glsl | 56 + .../shaders/lib/common.glsl | 767 +++++ .../shaders/lib/lighting/ggx.glsl | 60 + .../shaders/lib/lighting/mainLighting.glsl | 641 ++++ .../shaders/lib/lighting/shadowSampling.glsl | 118 + .../blockEntityMaterials.glsl | 107 + .../materialHandling/customMaterials.glsl | 150 + .../materialHandling/deferredMaterials.glsl | 71 + .../materialHandling/entityMaterials.glsl | 214 ++ .../materialHandling/irisMaterials.glsl | 226 ++ .../materialHandling/terrainMaterials.glsl | 2650 +++++++++++++++++ .../translucentMaterials.glsl | 140 + .../materialMethods/anisotropicFiltering.glsl | 69 + .../materialMethods/coatedTextures.glsl | 30 + .../materialMethods/connectedGlass.glsl | 115 + .../materialMethods/customEmission.glsl | 35 + .../materialMethods/generatedNormals.glsl | 85 + .../materials/materialMethods/pomEffects.glsl | 121 + .../materialMethods/reflections.glsl | 245 ++ .../materials/materialMethods/refraction.glsl | 42 + .../materials/materialMethods/snowyWorld.glsl | 19 + .../materialMethods/wavingBlocks.glsl | 186 ++ .../entities/glowItemFrame.glsl | 1 + .../specificMaterials/entities/itemFrame.glsl | 1 + .../entities/lightningBolt.glsl | 6 + .../others/endPortalEffect.glsl | 101 + .../specificMaterials/others/signText.glsl | 15 + .../specificMaterials/others/trident.glsl | 4 + .../planks/acaciaPlanks.glsl | 6 + .../planks/bambooPlanks.glsl | 3 + .../specificMaterials/planks/birchPlanks.glsl | 6 + .../planks/cherryPlanks.glsl | 6 + .../planks/crimsonPlanks.glsl | 6 + .../planks/darkOakPlanks.glsl | 6 + .../planks/junglePlanks.glsl | 7 + .../planks/mangrovePlanks.glsl | 3 + .../specificMaterials/planks/oakPlanks.glsl | 7 + .../planks/paleOakPlanks.glsl | 6 + .../planks/sprucePlanks.glsl | 7 + .../planks/warpedPlanks.glsl | 6 + .../specificMaterials/terrain/anvil.glsl | 6 + .../specificMaterials/terrain/blackstone.glsl | 2 + .../specificMaterials/terrain/candle.glsl | 7 + .../terrain/cobblestone.glsl | 4 + .../terrain/copperBlock.glsl | 10 + .../specificMaterials/terrain/copperBulb.glsl | 20 + .../specificMaterials/terrain/coral.glsl | 7 + .../terrain/cryingObsidian.glsl | 11 + .../specificMaterials/terrain/deepslate.glsl | 5 + .../terrain/diamondBlock.glsl | 25 + .../specificMaterials/terrain/dirt.glsl | 1 + .../terrain/emeraldBlock.glsl | 14 + .../terrain/endPortalFrame.glsl | 3 + .../specificMaterials/terrain/endStone.glsl | 7 + .../specificMaterials/terrain/froglights.glsl | 14 + .../specificMaterials/terrain/goldBlock.glsl | 20 + .../specificMaterials/terrain/ironBlock.glsl | 14 + .../terrain/lanternMetal.glsl | 6 + .../specificMaterials/terrain/lapisBlock.glsl | 6 + .../specificMaterials/terrain/lava.glsl | 34 + .../specificMaterials/terrain/leaves.glsl | 26 + .../terrain/netheriteBlock.glsl | 8 + .../specificMaterials/terrain/netherrack.glsl | 7 + .../specificMaterials/terrain/oakWood.glsl | 3 + .../specificMaterials/terrain/obsidian.glsl | 13 + .../terrain/openEyeblossom.glsl | 15 + .../terrain/paleOakWood.glsl | 2 + .../specificMaterials/terrain/pumpkin.glsl | 1 + .../terrain/quartzBlock.glsl | 19 + .../terrain/rawCopperBlock.glsl | 4 + .../terrain/rawGoldBlock.glsl | 3 + .../terrain/rawIronBlock.glsl | 3 + .../terrain/redstoneBlock.glsl | 11 + .../terrain/redstoneTorch.glsl | 16 + .../specificMaterials/terrain/snow.glsl | 12 + .../specificMaterials/terrain/stone.glsl | 7 + .../terrain/torchflower.glsl | 17 + .../specificMaterials/translucents/glass.glsl | 22 + .../translucents/netherPortal.glsl | 72 + .../translucents/stainedGlass.glsl | 3 + .../specificMaterials/translucents/water.glsl | 276 ++ .../shaders/lib/misc/colorCodedPrograms.glsl | 46 + .../shaders/lib/misc/darkOutline.glsl | 52 + .../shaders/lib/misc/distantLightBokeh.glsl | 21 + .../shaders/lib/misc/handSway.glsl | 13 + .../shaders/lib/misc/lensFlare.glsl | 121 + .../shaders/lib/misc/pixelation.glsl | 92 + .../shaders/lib/misc/puddleVoxelization.glsl | 35 + .../shaders/lib/misc/showLightLevels.glsl | 42 + .../shaders/lib/misc/voxelization.glsl | 325 ++ .../shaders/lib/misc/worldOutline.glsl | 43 + .../shaders/lib/pipelineSettings.glsl | 31 + .../lib/textRendering/error_apple_acl.glsl | 53 + .../textRendering/error_coordinates_acl.glsl | 36 + .../lib/textRendering/error_optifine_acl.glsl | 78 + .../lib/textRendering/error_optifine_af.glsl | 55 + .../error_shadowdistance_acl.glsl | 46 + .../lib/textRendering/textRenderer.glsl | 329 ++ .../shaders/lib/textures/cloud-water.png | 3 + .../lib/textures/cloud-water.png.mcmeta | 7 + .../shaders/lib/textures/cucumber.png | 3 + .../shaders/lib/textures/cucumber.png.mcmeta | 7 + .../shaders/lib/textures/noise.png | 3 + .../shaders/lib/textures/noise.png.mcmeta | 7 + .../shaders/lib/uniforms.glsl | 161 + .../shaders/lib/util/commonFunctions.glsl | 259 ++ .../shaders/lib/util/dFdxdFdy.glsl | 6 + .../shaders/lib/util/dither.glsl | 13 + .../shaders/lib/util/miplevel.glsl | 15 + .../shaders/lib/util/spaceConversion.glsl | 28 + .../shaders/program/composite.glsl | 275 ++ .../shaders/program/composite2.glsl | 141 + .../shaders/program/composite3.glsl | 188 ++ .../shaders/program/composite4.glsl | 96 + .../shaders/program/composite5.glsl | 216 ++ .../shaders/program/composite6.glsl | 79 + .../shaders/program/composite7.glsl | 61 + .../shaders/program/deferred1.glsl | 552 ++++ .../shaders/program/dh_terrain.glsl | 188 ++ .../shaders/program/dh_water.glsl | 239 ++ .../shaders/program/final.glsl | 162 + .../shaders/program/gbuffers_armor_glint.glsl | 73 + .../shaders/program/gbuffers_basic.glsl | 178 ++ .../shaders/program/gbuffers_beaconbeam.glsl | 140 + .../shaders/program/gbuffers_block.glsl | 288 ++ .../shaders/program/gbuffers_clouds.glsl | 150 + .../program/gbuffers_damagedblock.glsl | 63 + .../shaders/program/gbuffers_entities.glsl | 309 ++ .../shaders/program/gbuffers_hand.glsl | 270 ++ .../shaders/program/gbuffers_skybasic.glsl | 214 ++ .../shaders/program/gbuffers_skytextured.glsl | 153 + .../shaders/program/gbuffers_spidereyes.glsl | 75 + .../shaders/program/gbuffers_terrain.glsl | 485 +++ .../shaders/program/gbuffers_textured.glsl | 241 ++ .../shaders/program/gbuffers_water.glsl | 373 +++ .../shaders/program/gbuffers_weather.glsl | 95 + .../shaders/program/shadow.glsl | 317 ++ .../shaders/program/shadowcomp.glsl | 137 + .../shaders/program/template.glsl | 42 + .../shaders/shaders.properties | 209 ++ .../shaders/world-1/composite.fsh | 7 + .../shaders/world-1/composite.vsh | 7 + .../shaders/world-1/composite2.fsh | 7 + .../shaders/world-1/composite2.vsh | 7 + .../shaders/world-1/composite3.fsh | 7 + .../shaders/world-1/composite3.vsh | 7 + .../shaders/world-1/composite4.fsh | 7 + .../shaders/world-1/composite4.vsh | 7 + .../shaders/world-1/composite5.fsh | 7 + .../shaders/world-1/composite5.vsh | 7 + .../shaders/world-1/composite6.fsh | 7 + .../shaders/world-1/composite6.vsh | 7 + .../shaders/world-1/composite7.fsh | 7 + .../shaders/world-1/composite7.vsh | 7 + .../shaders/world-1/deferred1.fsh | 7 + .../shaders/world-1/deferred1.vsh | 7 + .../shaders/world-1/dh_terrain.fsh | 7 + .../shaders/world-1/dh_terrain.vsh | 7 + .../shaders/world-1/dh_water.fsh | 7 + .../shaders/world-1/dh_water.vsh | 7 + .../shaders/world-1/final.fsh | 7 + .../shaders/world-1/final.vsh | 7 + .../shaders/world-1/gbuffers_armor_glint.fsh | 7 + .../shaders/world-1/gbuffers_armor_glint.vsh | 7 + .../shaders/world-1/gbuffers_basic.fsh | 7 + .../shaders/world-1/gbuffers_basic.vsh | 7 + .../shaders/world-1/gbuffers_beaconbeam.fsh | 7 + .../shaders/world-1/gbuffers_beaconbeam.vsh | 7 + .../shaders/world-1/gbuffers_block.fsh | 7 + .../shaders/world-1/gbuffers_block.vsh | 7 + .../shaders/world-1/gbuffers_clouds.fsh | 7 + .../shaders/world-1/gbuffers_clouds.vsh | 7 + .../shaders/world-1/gbuffers_damagedblock.fsh | 7 + .../shaders/world-1/gbuffers_damagedblock.vsh | 7 + .../shaders/world-1/gbuffers_entities.fsh | 7 + .../shaders/world-1/gbuffers_entities.vsh | 7 + .../world-1/gbuffers_entities_glowing.fsh | 8 + .../world-1/gbuffers_entities_glowing.vsh | 8 + .../shaders/world-1/gbuffers_hand.fsh | 7 + .../shaders/world-1/gbuffers_hand.vsh | 7 + .../shaders/world-1/gbuffers_line.fsh | 8 + .../shaders/world-1/gbuffers_line.vsh | 8 + .../shaders/world-1/gbuffers_skybasic.fsh | 7 + .../shaders/world-1/gbuffers_skybasic.vsh | 7 + .../shaders/world-1/gbuffers_skytextured.fsh | 7 + .../shaders/world-1/gbuffers_skytextured.vsh | 7 + .../shaders/world-1/gbuffers_spidereyes.fsh | 7 + .../shaders/world-1/gbuffers_spidereyes.vsh | 7 + .../shaders/world-1/gbuffers_terrain.fsh | 7 + .../shaders/world-1/gbuffers_terrain.vsh | 7 + .../shaders/world-1/gbuffers_textured.fsh | 7 + .../shaders/world-1/gbuffers_textured.vsh | 7 + .../shaders/world-1/gbuffers_water.fsh | 7 + .../shaders/world-1/gbuffers_water.vsh | 7 + .../shaders/world-1/gbuffers_weather.fsh | 7 + .../shaders/world-1/gbuffers_weather.vsh | 7 + .../shaders/world-1/shadow.fsh | 7 + .../shaders/world-1/shadow.vsh | 7 + .../shaders/world-1/shadowcomp.csh | 7 + .../shaders/world0/composite.fsh | 7 + .../shaders/world0/composite.vsh | 7 + .../shaders/world0/composite2.fsh | 7 + .../shaders/world0/composite2.vsh | 7 + .../shaders/world0/composite3.fsh | 7 + .../shaders/world0/composite3.vsh | 7 + .../shaders/world0/composite4.fsh | 7 + .../shaders/world0/composite4.vsh | 7 + .../shaders/world0/composite5.fsh | 7 + .../shaders/world0/composite5.vsh | 7 + .../shaders/world0/composite6.fsh | 7 + .../shaders/world0/composite6.vsh | 7 + .../shaders/world0/composite7.fsh | 7 + .../shaders/world0/composite7.vsh | 7 + .../shaders/world0/deferred1.fsh | 7 + .../shaders/world0/deferred1.vsh | 7 + .../shaders/world0/dh_terrain.fsh | 7 + .../shaders/world0/dh_terrain.vsh | 7 + .../shaders/world0/dh_water.fsh | 7 + .../shaders/world0/dh_water.vsh | 7 + .../shaders/world0/final.fsh | 7 + .../shaders/world0/final.vsh | 7 + .../shaders/world0/gbuffers_armor_glint.fsh | 7 + .../shaders/world0/gbuffers_armor_glint.vsh | 7 + .../shaders/world0/gbuffers_basic.fsh | 7 + .../shaders/world0/gbuffers_basic.vsh | 7 + .../shaders/world0/gbuffers_beaconbeam.fsh | 7 + .../shaders/world0/gbuffers_beaconbeam.vsh | 7 + .../shaders/world0/gbuffers_block.fsh | 7 + .../shaders/world0/gbuffers_block.vsh | 7 + .../shaders/world0/gbuffers_clouds.fsh | 7 + .../shaders/world0/gbuffers_clouds.vsh | 7 + .../shaders/world0/gbuffers_damagedblock.fsh | 7 + .../shaders/world0/gbuffers_damagedblock.vsh | 7 + .../shaders/world0/gbuffers_entities.fsh | 7 + .../shaders/world0/gbuffers_entities.vsh | 7 + .../world0/gbuffers_entities_glowing.fsh | 8 + .../world0/gbuffers_entities_glowing.vsh | 8 + .../shaders/world0/gbuffers_hand.fsh | 7 + .../shaders/world0/gbuffers_hand.vsh | 7 + .../shaders/world0/gbuffers_line.fsh | 8 + .../shaders/world0/gbuffers_line.vsh | 8 + .../shaders/world0/gbuffers_skybasic.fsh | 7 + .../shaders/world0/gbuffers_skybasic.vsh | 7 + .../shaders/world0/gbuffers_skytextured.fsh | 7 + .../shaders/world0/gbuffers_skytextured.vsh | 7 + .../shaders/world0/gbuffers_spidereyes.fsh | 7 + .../shaders/world0/gbuffers_spidereyes.vsh | 7 + .../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_water.fsh | 7 + .../shaders/world0/gbuffers_water.vsh | 7 + .../shaders/world0/gbuffers_weather.fsh | 7 + .../shaders/world0/gbuffers_weather.vsh | 7 + .../shaders/world0/shadow.fsh | 7 + .../shaders/world0/shadow.vsh | 7 + .../shaders/world0/shadowcomp.csh | 7 + .../shaders/world1/composite.fsh | 7 + .../shaders/world1/composite.vsh | 7 + .../shaders/world1/composite2.fsh | 7 + .../shaders/world1/composite2.vsh | 7 + .../shaders/world1/composite3.fsh | 7 + .../shaders/world1/composite3.vsh | 7 + .../shaders/world1/composite4.fsh | 7 + .../shaders/world1/composite4.vsh | 7 + .../shaders/world1/composite5.fsh | 7 + .../shaders/world1/composite5.vsh | 7 + .../shaders/world1/composite6.fsh | 7 + .../shaders/world1/composite6.vsh | 7 + .../shaders/world1/composite7.fsh | 7 + .../shaders/world1/composite7.vsh | 7 + .../shaders/world1/deferred1.fsh | 7 + .../shaders/world1/deferred1.vsh | 7 + .../shaders/world1/dh_terrain.fsh | 7 + .../shaders/world1/dh_terrain.vsh | 7 + .../shaders/world1/dh_water.fsh | 7 + .../shaders/world1/dh_water.vsh | 7 + .../shaders/world1/final.fsh | 7 + .../shaders/world1/final.vsh | 7 + .../shaders/world1/gbuffers_armor_glint.fsh | 7 + .../shaders/world1/gbuffers_armor_glint.vsh | 7 + .../shaders/world1/gbuffers_basic.fsh | 7 + .../shaders/world1/gbuffers_basic.vsh | 7 + .../shaders/world1/gbuffers_beaconbeam.fsh | 7 + .../shaders/world1/gbuffers_beaconbeam.vsh | 7 + .../shaders/world1/gbuffers_block.fsh | 7 + .../shaders/world1/gbuffers_block.vsh | 7 + .../shaders/world1/gbuffers_clouds.fsh | 7 + .../shaders/world1/gbuffers_clouds.vsh | 7 + .../shaders/world1/gbuffers_damagedblock.fsh | 7 + .../shaders/world1/gbuffers_damagedblock.vsh | 7 + .../shaders/world1/gbuffers_entities.fsh | 7 + .../shaders/world1/gbuffers_entities.vsh | 7 + .../world1/gbuffers_entities_glowing.fsh | 8 + .../world1/gbuffers_entities_glowing.vsh | 8 + .../shaders/world1/gbuffers_hand.fsh | 7 + .../shaders/world1/gbuffers_hand.vsh | 7 + .../shaders/world1/gbuffers_line.fsh | 8 + .../shaders/world1/gbuffers_line.vsh | 8 + .../shaders/world1/gbuffers_skybasic.fsh | 7 + .../shaders/world1/gbuffers_skybasic.vsh | 7 + .../shaders/world1/gbuffers_skytextured.fsh | 7 + .../shaders/world1/gbuffers_skytextured.vsh | 7 + .../shaders/world1/gbuffers_spidereyes.fsh | 7 + .../shaders/world1/gbuffers_spidereyes.vsh | 7 + .../shaders/world1/gbuffers_terrain.fsh | 7 + .../shaders/world1/gbuffers_terrain.vsh | 7 + .../shaders/world1/gbuffers_textured.fsh | 7 + .../shaders/world1/gbuffers_textured.vsh | 7 + .../shaders/world1/gbuffers_water.fsh | 7 + .../shaders/world1/gbuffers_water.vsh | 7 + .../shaders/world1/gbuffers_weather.fsh | 7 + .../shaders/world1/gbuffers_weather.vsh | 7 + .../shaders/world1/shadow.fsh | 7 + .../shaders/world1/shadow.vsh | 7 + .../shaders/world1/shadowcomp.csh | 7 + 363 files changed, 20618 insertions(+), 6 deletions(-) create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test.txt create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/.gitignore create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/HOW TO INSTALL.txt create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/License.txt create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaderFile_1/shaderFile_L.placebo create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaderFile_2/shaderFile_R.placebo create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaderFile_A.placebo create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaderFile_B.placebo create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaderFile_C.placebo create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaderFile_D.placebo create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaderFile_Versions.txt create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/block.properties create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/dimension.properties create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/entity.properties create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/item.properties create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lang/en_US.lang create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/antialiasing/fxaa.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/antialiasing/jitter.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/antialiasing/taa.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/auroraBorealis.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/cloudCoord.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/mainClouds.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/reimaginedClouds.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/unboundClouds.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/enderBeams.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/enderStars.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/bloomFog.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/caveFactor.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/coloredLightFog.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/mainFog.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/waterFog.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/netherStorm.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/nightNebula.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/rainbow.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/sky.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/stars.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/volumetricLight.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/blocklightColors.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/cloudColors.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/colorMultipliers.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/lightAndAmbientColors.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/moonPhaseInfluence.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/skyColors.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/common.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/lighting/ggx.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/lighting/mainLighting.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/lighting/shadowSampling.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/blockEntityMaterials.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/customMaterials.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/deferredMaterials.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/entityMaterials.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/irisMaterials.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/terrainMaterials.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/translucentMaterials.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/anisotropicFiltering.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/coatedTextures.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/connectedGlass.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/customEmission.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/generatedNormals.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/pomEffects.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/reflections.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/refraction.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/snowyWorld.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/wavingBlocks.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/entities/glowItemFrame.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/entities/itemFrame.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/entities/lightningBolt.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/others/endPortalEffect.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/others/signText.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/others/trident.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/acaciaPlanks.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/bambooPlanks.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/birchPlanks.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/cherryPlanks.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/crimsonPlanks.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/darkOakPlanks.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/junglePlanks.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/mangrovePlanks.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/oakPlanks.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/paleOakPlanks.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/sprucePlanks.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/warpedPlanks.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/anvil.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/blackstone.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/candle.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/cobblestone.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/copperBlock.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/copperBulb.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/coral.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/cryingObsidian.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/deepslate.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/diamondBlock.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/dirt.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/emeraldBlock.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/endPortalFrame.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/endStone.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/froglights.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/goldBlock.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/ironBlock.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/lanternMetal.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/lapisBlock.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/lava.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/leaves.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/netheriteBlock.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/netherrack.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/oakWood.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/obsidian.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/openEyeblossom.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/paleOakWood.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/pumpkin.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/quartzBlock.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/rawCopperBlock.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/rawGoldBlock.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/rawIronBlock.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/redstoneBlock.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/redstoneTorch.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/snow.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/stone.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/torchflower.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/glass.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/netherPortal.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/stainedGlass.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/water.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/colorCodedPrograms.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/darkOutline.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/distantLightBokeh.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/handSway.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/lensFlare.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/pixelation.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/puddleVoxelization.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/showLightLevels.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/voxelization.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/worldOutline.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/pipelineSettings.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_apple_acl.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_coordinates_acl.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_optifine_acl.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_optifine_af.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_shadowdistance_acl.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/textRenderer.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cloud-water.png create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cloud-water.png.mcmeta create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cucumber.png create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cucumber.png.mcmeta create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/noise.png create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/noise.png.mcmeta create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/uniforms.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/commonFunctions.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/dFdxdFdy.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/dither.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/miplevel.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/spaceConversion.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite2.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite3.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite4.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite5.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite6.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite7.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/deferred1.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/dh_terrain.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/dh_water.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/final.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_armor_glint.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_basic.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_beaconbeam.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_block.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_clouds.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_damagedblock.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_entities.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_hand.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_skybasic.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_skytextured.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_spidereyes.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_terrain.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_textured.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_water.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_weather.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/shadow.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/shadowcomp.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/template.glsl create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/shaders.properties create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite2.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite2.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite3.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite3.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite4.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite4.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite5.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite5.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite6.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite6.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite7.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite7.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/deferred1.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/deferred1.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_terrain.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_terrain.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_water.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_water.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/final.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/final.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_armor_glint.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_armor_glint.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_basic.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_basic.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_beaconbeam.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_beaconbeam.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_block.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_block.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_clouds.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_clouds.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_damagedblock.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_damagedblock.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities_glowing.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities_glowing.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_hand.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_hand.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_line.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_line.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skybasic.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skybasic.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skytextured.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skytextured.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_spidereyes.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_spidereyes.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_terrain.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_terrain.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_textured.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_textured.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_water.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_water.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_weather.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_weather.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/shadow.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/shadow.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/shadowcomp.csh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite2.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite2.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite3.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite3.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite4.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite4.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite5.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite5.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite6.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite6.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite7.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite7.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/deferred1.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/deferred1.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_terrain.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_terrain.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_water.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_water.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/final.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/final.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_armor_glint.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_armor_glint.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_basic.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_basic.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_beaconbeam.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_beaconbeam.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_block.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_block.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_clouds.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_clouds.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_damagedblock.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_damagedblock.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities_glowing.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities_glowing.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_hand.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_hand.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_line.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_line.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skybasic.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skybasic.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skytextured.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skytextured.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_spidereyes.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_spidereyes.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_terrain.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_terrain.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_textured.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_textured.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_water.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_water.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_weather.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_weather.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/shadow.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/shadow.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/shadowcomp.csh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite2.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite2.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite3.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite3.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite4.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite4.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite5.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite5.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite6.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite6.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite7.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite7.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/deferred1.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/deferred1.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_terrain.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_terrain.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_water.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_water.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/final.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/final.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_armor_glint.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_armor_glint.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_basic.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_basic.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_beaconbeam.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_beaconbeam.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_block.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_block.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_clouds.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_clouds.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_damagedblock.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_damagedblock.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities_glowing.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities_glowing.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_hand.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_hand.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_line.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_line.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skybasic.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skybasic.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skytextured.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skytextured.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_spidereyes.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_spidereyes.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_terrain.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_terrain.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_textured.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_textured.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_water.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_water.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_weather.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_weather.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/shadow.fsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/shadow.vsh create mode 100644 1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/shadowcomp.csh diff --git a/1.20.1-FearFactoryTest/minecraft/config/flywheel-client.toml b/1.20.1-FearFactoryTest/minecraft/config/flywheel-client.toml index 6d59965..8b9521a 100644 --- a/1.20.1-FearFactoryTest/minecraft/config/flywheel-client.toml +++ b/1.20.1-FearFactoryTest/minecraft/config/flywheel-client.toml @@ -3,7 +3,7 @@ backend = "DEFAULT" #Enable or disable instance update limiting with distance. limitUpdates = true #The number of worker threads to use. Set to -1 to let Flywheel decide. Set to 0 to disable parallelism. Requires a game restart to take effect. -#Range: -1 ~ 16 +#Range: -1 ~ 12 workerThreads = -1 #Config options for Flywheel's built-in backends. diff --git a/1.20.1-FearFactoryTest/minecraft/config/fog/config.json b/1.20.1-FearFactoryTest/minecraft/config/fog/config.json index 716f9d0..f46063c 100644 --- a/1.20.1-FearFactoryTest/minecraft/config/fog/config.json +++ b/1.20.1-FearFactoryTest/minecraft/config/fog/config.json @@ -1,7 +1,7 @@ { - "disableMod": false, + "disableMod": true, "disabledDimensions": [ - "minecraft:the_nether" + "the_deep_void:deep_void" ], "disableRaininessEffect": false, "disableUndergroundFogMultiplier": false, diff --git a/1.20.1-FearFactoryTest/minecraft/config/oculus.properties b/1.20.1-FearFactoryTest/minecraft/config/oculus.properties index 624911d..282606a 100644 --- a/1.20.1-FearFactoryTest/minecraft/config/oculus.properties +++ b/1.20.1-FearFactoryTest/minecraft/config/oculus.properties @@ -1,8 +1,8 @@ #This file stores configuration options for Iris, such as the currently active shaderpack -#Sat May 17 23:33:39 CDT 2025 +#Sun May 18 16:15:51 CDT 2025 colorSpace=SRGB disableUpdateMessage=false enableDebugOptions=false maxShadowRenderDistance=32 -shaderPack=ComplementaryUnbound_r5.5.1.zip +shaderPack=ComplementaryUnbound_r5.5.1test enableShaders=true diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1.zip.txt b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1.zip.txt index e278756..1f19f1a 100644 --- a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1.zip.txt +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1.zip.txt @@ -1,4 +1,4 @@ -#Sat May 17 23:33:40 CDT 2025 +#Sun May 18 16:02:22 CDT 2025 AURORA_CONDITION=4 CLOUD_STYLE_DEFINE=3 WATER_STYLE_DEFINE=3 diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test.txt b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test.txt new file mode 100644 index 0000000..d0226e5 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test.txt @@ -0,0 +1,52 @@ +#Sun May 18 16:15:51 CDT 2025 +AURORA_CONDITION=4 +CLOUD_STYLE_DEFINE=3 +WATER_STYLE_DEFINE=3 +ATM_FOG_DISTANCE=60 +MOON_PHASE_INF_LIGHT=true +WB_DB_DAY_I=9.0 +MOON_PHASE_FULL=0.70 +SUN_ANGLE=-40 +LIGHT_NIGHT_I=0.60 +ATM_FOG_ALTITUDE=70 +MOON_PHASE_DARK=0.45 +PIXELATED_AO=true +NIGHT_NEBULA=true +BLOCK_REFLECT_QUALITY=1 +SUN_MOON_STYLE_DEFINE=2 +XLIGHT_R=0.65 +WB_DB_RAIN_I=18.0 +RAIN_STYLE=2 +XLIGHT_G=0.65 +XLIGHT_B=0.65 +CHROMA_ABERRATION=2 +AURORA_STYLE_DEFINE=2 +HELD_LIGHTING_MODE=1 +PIXELATED_SHADOWS=true +LIGHT_RAIN_I=0.55 +LENSFLARE_MODE=1 +WB_DOF_I=1.5 +LENSFLARE_I=1.20 +LIGHT_MORNING_B=1.10 +WB_ANAMORPHIC=true +NETHER_VIEW_LIMIT=128.0 +WB_DB_NIGHT_I=9.0 +LIGHT_COLOR_MULTS=true +LIGHT_NOON_R=0.85 +LIGHT_MORNING_R=0.85 +NIGHT_STAR_AMOUNT=3 +WORLD_BLUR=1 +WB_DB_WATER_I=24.0 +LIGHT_MORNING_I=0.50 +LIGHT_MORNING_G=0.85 +LIGHT_NOON_G=0.85 +LIGHT_NOON_I=1.10 +LIGHT_NOON_B=0.85 +WB_DOF_FOCUS=1 +WB_DB_NETHER_I=18.0 +SHADOW_QUALITY=0 +MOON_PHASE_PARTIAL=0.55 +WB_CHROMATIC=true +WATER_BUMPINESS=1.00 +BLOOM_STRENGTH=0.045 +WB_DB_END_I=12.0 diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/.gitignore b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/.gitignore new file mode 100644 index 0000000..6f66c74 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/.gitignore @@ -0,0 +1 @@ +*.zip \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/HOW TO INSTALL.txt b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/HOW TO INSTALL.txt new file mode 100644 index 0000000..1a16897 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/HOW TO INSTALL.txt @@ -0,0 +1,5 @@ +- Hello! + +- If you don't know how to install the pack, please go to this link and read the "Installation" section + +- https://modrinth.com/shader/complementary-reimagined \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/License.txt b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/License.txt new file mode 100644 index 0000000..bb7fcdb --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/License.txt @@ -0,0 +1,92 @@ +Complementary License Agreement 1.5 +=================================== + +0. Terminology +-------------- + 0.1. "The Pack" and/or "This Pack" means the software package that this + specific license file you are reading from is found in. + + 0.2. "Normal Usage" means usage of The Pack as intended for the general + public. This includes most usage, but the following usages are + definitely NOT considered Normal Usage: + a. Redistributing (parts of) The Pack + b. Modifying code of The Pack + + 0.3. "User" and/or "Users" means people that are using The Pack under our + definition of Normal Usage. + + 0.4. "Modpack" means a modification package made for the video + game "Minecraft: Java Edition". + + 0.5. "Modified Pack" means a software package that consists of The Pack but + with the code intentionally being changed to differ from The Pack. + + 0.6. "Original Pack" means one of two things: + a. If "This Pack" is an original Complementary Development product, + meaning that this specific license file you are reading from is + found inside an original Complementary Development product, then + "Original Pack" directly means the same thing as "This Pack". + b. But if "This Pack" is not an original Complementary Development + product, meaning that this specific license file you are reading + from is found inside a pack that was created using the grant + detailed at section "1.3", then "Original Pack" refers to the + pack created by Complementary Development that must be mentioned + in the description page(s) of This Pack. + +1. Grants +--------- + 1.1. All Users are free to use This Pack for Normal Usage. This isn't + limited to, but includes: + a. Using The Pack for gameplay + b. Using The Pack for content creation + + 1.2. This Pack is allowed to be redistributed inside a Modpack as long as + the following conditions are met: + a. This Pack must be visibly credited in the Modpack's description + page(s). + b. The author of the Modpack must acknowledge that any problems that + may arise from using This Pack in their Modpack is entirely under + the responsibility of the author of the Modpack. + + 1.3. This Pack is allowed to be redistributed as a Modified Pack as long as + the following conditions are met: + a. The Original Pack must be visibly credited in the description + page(s) of the Modified Pack, with a link to the official + Complementary Development website. + b. This license file must still be left inside the Modified Pack + without any changes being made to it, and it must be updated to + the latest one found in the latest version of the Original Pack + every time the Modified Pack gets updated to make more use of the + code from the Original Pack. + c. The Modified Pack must not have the word "Complementary" in its + name, and there should be at least 3 character difference between + the name of the Modified Pack and the Original Pack. Adding or + removing non-alphabetic characters or the removal of + "Complementary" does not count as a character difference. + d. The Modified Pack must look noticeably different from the + Original Pack in multiple common gameplay scenarios that must + include daytime overworld visuals, regardless of the setting or + variable changes in the Modified Pack and/or the Original Pack. + +2. Denied Cases +--------------- + 2.1. Any usage or redistribution of any part of This Pack that isn't + explicitly covered in the "Grants" section of this license should be + treated as "All Rights Reserved". Only exceptions are the files that + contain a notice that they are covered by a different license. + + 2.2. This agreement only applies to the version of This Pack that this exact + file can be found in. This agreement is not valid for future or past + versions of The Pack unless they contain the exact same agreement. + +3. License Infringement +----------------------- + 3.1. By using This Pack for any purpose, you agree that Complementary + Development has the right to take action against you in the case of a + license infringement, regardless of This Pack being the Original Pack + or not. + + 3.2. Complementary Development reserves its rights to not take action + against cases that it deems harmless. For this reason, cases that + Complementary Development did not take action against in the past + cannot be used as an excuse to ignore this agreement. \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaderFile_1/shaderFile_L.placebo b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaderFile_1/shaderFile_L.placebo new file mode 100644 index 0000000000000000000000000000000000000000..5ce1b2e5841bbd80a9c1f7c15e2364ff1c9d6425 GIT binary patch literal 17614 zcma)E1yq$=u%<)0kwzM%Q$j=#=@x0}5)cp&>F!PuNfD$=kd|&FBt$|QB&0zJdH*?} zo`byiuC67XyUyC*{^pyRJ$ui1m1N-&uEBtQog%8Jga2~z2NLj;n~Rm3n_cOD{SNA% z?{IU1zlIO|2Ndv9iVeCPAAnCpa4;~qkYD5Gq~aD}b8vQWRPMrQp+Z057RO?4Lb{oh zGk@od&YvJgWSdr$yoVywcuwJjewvZB6{8U4jp_v6Q>M2j_?n?s;!H@5B}(XZ+Q6y__E)4y0 zvG3;CdJz+0Y8~Gj;RGV1g{M}3jo>{DeO_qD0r$bwW3X^5XqWZzQk)f`&XO=v-OP4>XisBpjX&9X!&iNoEzoTyOc*eb^&j8t<_8CzOaD4hPu{h2MR1U6|N zG`)3sb>zUXc(E#xZ&mpd_$s}hx}x1Hky)sBqzIqft5y(EUqNVk;(}{6y&dOWmRkC> zbsI(cm*Ue`ad_nSS&3Giiya;%t<;V^^==(HtYduW^m1co$*2f*{sCD!8(e!RucUq`IgOQPcr70Mbr7t ziGayE1^$pV{fq^%+eAhKb7rGce*0-zZMNKb4$`%v&o?cMoI4-i#x==~UP4WYm8kd5 z(J4RtKBC3FafwSueJ$O4fXgPp1q;e?`9Vaim8C&M>K=Aeo*-}-kVRO>ot#OBBa3TQ z;35-0=Tl9d!Ou5jeu+SrD$uHqT!{0;&_D5kQky`4Zj{M$V$LZ#kv5P0mn<2G{bJ$X zJ;u+|YgQ1G!^gu_XH-)j>YcsA$xAgN|8k3QDyN74na^OB1pAnRN4BV`=D@PAHGX<2 zf#jg~6GPu{7gblEq$>6tcJvK4w_6LH_(@OkIW2ufGlIE@ajI_c-@4`G_T~fW(pwSV zwQZ#T6vJGXVpw}EOLqn^!5hG-N&cFGiyaih98|1Spr4!|tGKI3WBPKS*U@Yvi+Wo* z3EcHM6V08zp=9pLZOVsb3|B|R=EX9D8h5H3a81J@qO2963Z5=Ve)|E_IHx3KkkrQ% z2IigA*&d`I-5qC6B_#A~`o#UKk_nkXqA%4}<7A_J6>Qdn6JvV0tInLYajp59Coh(Ls zA{Vu&o9@ABlg*eXgq9Fzyq+!V^DcC2Ab-DwWL%M>$~o~vb#=(9b9d@-Pa2*}NCEdV zSC31&Upv9y(G&Wr^tcco!tZGb*=Ke8!2Nh8Y~;kMqMupTUP zC2no3MzhA60O1#*`_V!ZGTza7@eACRZX1CJ<(n9+lUq?5_om=pM|e?oxFXl-+EC?= z;O`R;_*<@4=$#-j_caFbv+*_5L>H?Y%X!r0q%k?{&*pioD$v7lA!ttw!N6>w^+#%( z;g0FwEH9^i@5`JT&i+dJYmPAG@|GpvgQ)AeW(OVIY&u`MMD44Nxb1HYrQP%-j=Cd} zBRKxi^sR^Mr6^LA%-;F|m}u%B6Y+qfNJX}+l?r82dy!nghZDu_R;<}~&nz>%SH@iG z)pr_yq0~j=cL%FUGj~OND&D!lN-LK+O?BP7%#l#2kK!N|c8I%73B4Q1i7JET4bc$e zj-SjJY;UJP4E0_NJ&IWFOh^ojW_g=uM8Qb93PWHSe8&2`vacVPpJmE*K38(NpFQzv zKf2h|MymY-Us~>ko#etqAqyHs&VU-i=UvWd8BVHYJDq54 zgXEMfg^qXJC*f(#+PKxnNOiIw`7m^&gNwE(f{OnmvBGFw@~IOBd%!ZiFnz1}NxG(W@W@-MLbOj*II3Yl#O~8-%Sv#fP4SD*sEavxw~Y043CA47gxME>`5m8x#Tal%sf0yfD z=MdUPJuIC&0=U{KVXL3omJRVBAQtKI*K%h_vz1`Y>G&f!3_F1+_kwK@nT6rF-yS!%AVm#!?6zv6?J;8ti98yv zIdM@HQmY*1NobE6Hh6owv^}Y#$--f3TL?XY9H6^b3zsZdraCG>B_6=6dkz^vlyAykm%@BTtAam^7$C$Rr}5=4i{ZoqkcDG$yVlFilt-=F}Tnc&hlK`D?Ie8MSR1Y4g)<(>COVGC>)=o@C9w{cX@12!f958+T`Gj+CnO3~Q+dgLQhnG)fz83t8|fXc8?8It3*TqwSF?sTYm-CseA= zqF1lSX35j}glYvk=);Tm<)?Fva*nUmenoz2X>`Ntp!R+Ix9jC+isZ!^8=Gc&QB4CHLZkQg`ks9) zO7&olD{&+1-#i(8bw>2-^ir-Om^tkSF`j^~UOn!Av{U7*a-z_*ME;|SE&gDo*Mo5;VLGDcQ!R! z|0jY2%3Ruo)?8dHTdR(2=5_e|C^!)Vc>EXbyNJo1M5Fo+Bm`Es4TA@1_XK$9Mqkk| zbbBxRu6kg~R#nb$MG;3wNOhsa?J1O*7SZkX$T%o$dJZ0Us~H8G#@g#J(R@|l=^0+3 z&#jpdihUaVg!onl?PJ}7O}N@$o#}O_c_VS`N=NAXVA-y|tUz2uE(dRUpEX__K-Ugx0)Fn9OH>22H{qWn-@=GFpC;IFO0Y^eTQalf9=UFJtyoR2^|V zP#zWjoq?u-EHPFEYKCUEJD>B4>++J_E6u~ap5Yb&S7zRRamJ%{r|!G1w`G%#e#UM; zyX2uA2m1CU0Ea<<14O~`+dadh#4!Cq(MUg;aev0QvS#7+H`NA}tA{ozLngW|*b4z=V)!<4Mt1J=R5 zr06u|B18{ANTHzB$+*E2pdyCQMVPvHT=Dmn+~cdOnERN_!18E0#9Oe*c_Bz~uYMFA(NM^xON_r2v>P*;#pGuqL!cv2o5^H}UtQ}0x7$QVu>_PLbbjjmk}Szir*Q2mP4hQ}_*=;cZ-^@hmqa2liF zce3Kudlk3)zhw=(o^7}bs<=$6AAELlt@cQCD(YIiBp-gZo>d{h5Oh6)mX8mdU6h(| zfa3Z1X$K|=wLq|Z>OjKj{k%m#xcVOPQWI$>O)Au*0JZ_F((CWU9=V;Enwzxo!Np*4 zu@@lhW<4&kk3*!l(t=%!fAr){_^a=`Gc2de-xP?1k{>gU;M}{R9+|%wR@F$N{hi9^ zOM54K(&2vZy|Cskr$souO8_T4;y>{{rY^1^i8r(BM4#Kt;I-$g{`A zt>pH8xK!T#g+_;>LoGHM`?UCoM#;1Tc^X8I4OREz1Y1Kj2uZ`psiK}>tH)q++mHQ3 z_WHmV%BLsY8%F7+SD9~=j5)xPRWiH(EA!}7M`tCES@{Obr(NmE;N_|T7UtL2b=cLj z4cE3pc9)08mBS-4)0&!P;>$8+Ioso(6}4AHHC64%*^3QtwzK$mTW4%d?kLzs&Br}$ z_}1u!U#O2X#`c2dX{9UHYi3mbX|J>FTc6pILo+n?R?VD!KV^P%J&I#?N3x2`apY+f6R=M0rB0`y)l-?c5j~w zjS{$+NsYn^-g~O5rC~nDw=j}ZNHdANFzDmw?BF}vk;O)|!?`9>p<NT$^xIeDHt?8mZ*V<==FlB+qL_}v~j-lO8|DpGFy(dHZPt9!SWfu2e z=owhXA&JKDLB}QR`~K298&Tp0K1a>#qBKl`C7X+8si|EN-eO8yvpWXgd-=oVgD>H)J*jAjXmv`O-D1NMRJMe z-3s|CN0I3Y%?FoGM4ie7mu?_Fc`s!kkQbj{>2y_Oaoea+CWPk61@5+8a~vP*KaJc& zA4(&=PfJT}og_^db5|>vVMsldmb5Djw@{`G?+GKhj&!*rOWQzk-l#N{`Qjwg!&f`p z5eP6*u9+~#^f;9}qXbu<{IRtsIku-~OxZXHVoQ&Cx=^N?UXtQ0Fed5SXH&cjfM zjW?7bU?O=%+{yJWOk1Tn!d%=F#1pg*O6c5c_DcMv3gBJ(&^M5C?*ixEcvZ0&KMs^S z?M2ER1Uj7d`3S)?&!KG67)Qq?jt2?x2qYvV#xf@I>M9~DsSXO2J2$0?$nvBq-Pm(j z!1#TBn!g3gw$e}q?m6zHgyV$hUNJ=K< zX*KD zYMhnY_EoS9%WP_7GrwPsoO@roYi0Q&r=u2UD;0HO$oOzuh0s(~xtPr0ntuMWaJn^_ z7xs|L+@#~RKA!CPp(MMi{=WB*UoSFid?k+6U?wbk*C_VhZuPN|z1AvL7<{d2!mVsW zvT3UiSc?|XtjLaO2q#3sKIA(m|1E>^0FiwugCZEo`-}lzS^}Lx!QTYcGF;$Wh|2jp z+rw4L9lyI&7LlYZfLtWVl_3>FSrl-=8=rYtx@1(C*cjoMUVB6@I1S5@*vX9!`E`Y9 zamKC-D3S=d(2RFzjz#+vlkl)rMNdx&l7)6+Hr?%k-yPHn3^K%SeSLR56v@|RjU9)E zuLl;PzgROcL?>z64WZ4ZK*xG)LW*1^?0KqWgWrpBHqo+qbOaGoowV450bE;=!*tP~ znl9HFd3)CO%eC<1hu!HG-tk6SSASajsCrC<`Jmm(n@{`){`QNnqaH|$+6*d!@T5^| zq|jdb^ZJjG48RgafagNo$NpFXd>=DW(gxM+$7%0`7ElK62;Uyd1B#+HScESg%pLnQ zwE0wMn58$JP(#SXqFQeolT>Qo6jW_xzW;XDt}2NA%r#>Bv~0z}UYY=b5^ZX#d$Y;( z)9hmm7nvVL_HkcRF|~y0Q`|Or`~@F#a|%AX&x%{PtE;pb(NNdpdW!4iCF@JOx5?Ee z&W2T;lu|jdzSHgR(wpjC<}%7^O=cN(Z1f!&nv1 zp{ZC~_q+A<8E zh|#{sAd~ZFY1=d{!XwIEi$!irOtOn)muJ0IoolEfnbX&tk@RUNYN|d&5|fPQo0L+? z4c=y3&PQc$F$%332}WHA9{BHJGBp%L8+cEewFw>(OYQG^(~GBBtI@k3W*n1LeZl`J zu~_z@)98m{acqT2UrMs$M-Kb(-r1l%rU<*uw?7{3R9MC~&h3Jrs>e(Nzk2!IPE3 zP+Q%Ia`42bP%2i`tmKFZxytK3)-(=%={yzJt@4^YuW|AzLFxx`&$e>>Fx+HXFcMtl z5Nw~?kJ1?q*Q9DCmunihsB5}L89aa6RVH-p;A;pb9%FS%<7)%5Ul<+twD=s!95X%5-$#&}mPH}>F(B<`NM z365Q7tA8ur#7L3JwaK)FRNiV6l{rVwAb~=5FDcq-G4t>!<2QxRl_|zvs%za2dII;u z|BjoTGUix*at4I{-5uOt{EHo<*DQVupQxeS-`)JS(W*RlTfC-qI2?$PT2LntEb}(xdXK7%i5Q+XNBbxeG1-1q_c*3pCdwL$}3l2WT+mOHC{7Kx;7q?WGhdj<~Wie$|ao|4zUX4HSn zHiK)*GcbI%ezf$hRpB7-Cd^|(HN_%b3f8g5cOQGTXs%u=GU`N@b<%ks(pcixT!=x^9H-zR6ww{E>(@1<;{g)PmQ(Xt;ex+1jT7^m(k8nk(TymM0IEQxm zsx-`>jAJz-Ava$WEH}*$C1>R z;Z)7ESJzdcT>Y`Q#pY&7_s8(HSz2wyAu#ZQG;1+^O7!y;NE6WDGLlTR(UWzjD8yt}2{b zHt$GBm0qduIMnc#Hj~u5f$PQ@hi7g)Tbvf|ko}&JKS;eSet_kHU4J*!D2@+%&lwH4L5S-(CFH)8J=dU5(@Q-#a zC?Vr@ZL3EqTeYpmv3t97T@mkt2?w9fWpLVJ`XCV(X7pd9em_DROhV7{SjSEjIe>iq z#xx@OSe&brL`o2ke%7o)12wx6lHm7!#n{&^-xM0^5K?f0Ctf+bXHaeu$M5_KwWSCd z*q!Yi_2JNy8l~yz(v>t1d3*CH$Qhm@_6TM^+L@0+r};+?xhP+q9+D|v4LdBEFk!ZX zXA#Y@q<*4Xcy3*B%Z(R_-K0sHp?-Jl&n`JC_Trd#Bw(dWZCSudz=a!padeMT20dDf zpD}D;-fmurA-HL>>zkdHQ zy2KQzU$-r)g%g*MwvOu{Iyg8e`Y&!Hh{4p*Y-z7nf-W}A=m z4C6~p3EmOEKz%OV=7~9(_-7J&y*x=g90M*XZxBn@+S&*{^xvE+MSoVvS;k4$ zZ%vsr9A4Nun)J-nJi?^psVsNKryYT1et5oWGU3z7h5$3+ny}41wKt{~-wJ2@9s2P< zs6QZHZ4K8s7K?n1jyVS^^7HPl6LxZCXa7fXfT)dlf$I2D zZS?$0Lq#j#`B>0*CGa;vcctI0d~lzZy9H?Fs|%5-;sR~j8yyzk>|02r6KsQN?~(;m zw#KXE;0JwZlrqS98AK|rP8+2bqwluajj0jStoeoomt$Sp5do9+PkW zB0MVe4U$(?M`K=G;;*A)U+BW2D$bftN-}RXPGd2#AhBMUcNbv69=2b3{dKvAIc$~5 zsm|f{C1*qKE5t1H753KR!(}g zZmZDnsQ)J-BLsxy?XF?i0vR%0g70{}g=oK!Vfrl1HYc}LN;6Xq?v77aZ8)h(kr)=h zVHmw2RP-nRAZZw|^Xi&08kcFwbjGbyKG;6^7q>fL@TCrkhK}1k3$}7!CLUL%)$}iA zq-GjDPy2B5Hh;Mf`}6w`MuG$yD8=v|iqJE0r&#*Z%aepvGGHo0o#=ET*@SH=l?Y3dQa}04&Q_5jzmA!6To-<*j#?v`V z!@5%RIbls2^2Q46CsJk%%#Is33|v=pjjZ9Wos<>#X7Qvak!!fNy4qk#umt+tvfdIK zK%W)%a}>$#>BOoutZ)}-wGH^hnOq+?aL?t2Td=%SJ`(+H^qiAI+2fcT+uHntOi9A! zj0az+pS0g*S=rsoJmSB}-=FHgp+(jw>@l+EMxN4QaD7t41DbYlJDoxkKpXzjAqono z^PZ;T?_rl!$|Y34HiZZ#Z(yz?%r_b|>{4P@-bJ)`2YmqL7S*-!jO!{?`5-Iv-0IRSF5*SKFI3Z!LFn%h>13{rr`3=gWO73&QuD@|^8(U#NHv zf?j$c=FxM1To2ui_1^d6XUE1 zxqw|j-4=)_0^S0F%yB;9p(G1xxJ)KH2j240x3DX;Kcf*5^nbB3XWi+bfBPNEySr$6 zlG9YkR)O>@P33|=Iegr9G^KEF8tLvVSz2?D9y;0HjHtj|=WF75J0!W1@kvO8Ku{x5 zA$g`0OK0h`cVEby986CtWtHo2v?XbapTX=l6TWGTsp)LuT~`$aYsJsnYJ0duV^3W- z(nC2H{5&eRR}U@Uvw0rriZe@c5yl92yq|FSb?KdRUHQ#TuNdcQ?JY zAc$2+lD*^a4XuslZZD@@7sl!iA;OnGPq9hV-B zzDSZ|JO#*u4r6Flfd~hy8Xnn%;l+UteKO!i{5>_;rD>4XFupB zb?F;oWEm?8Gv~=?AFRr(gq!yxc?#SnALz3GK!gs+vO{UR7GR6~&;beP18foes0B=) z;Q|uXn$ZJQEvJCeqvS83Yi3yTo1`vp6l&^McuCmoSu$TbKd(vD%uYP+$zmTO;0?ho zd|{atuZASnslI8-Ay4h^g3R5A$0(X$q=RsMr*noCHysleRvjrC_zNh3#i=LCKV z`enaWp*PzTUXzK2X{^*k@cnoZsyNH(wR!4F3+}w^ir3v};!`C=XU#-ZLY}@18`MS* ze%)-0HZXRiJfLHg<8d^vgVCJgB)zk2gp1PHhI24h*m{1m{(nRA)}`~jMzX=C46sZm zw0O6`Aql>6Jy4p!Xa%18?i&V%DN)E5rLn#_j&x|1#!|Q&B=EVkoG2!R7H_jPd?CFq z8f9BdCy0F}zG_W8Bz4<+w`Y}oC=S<`6JM%I(;$|e$eN)$WHicCM?Yx0&@=trrN!h^M;9Fqoa7|8Zn3p;$;al%J-VHH(rCD;{Y%0Xkf?hYfIg&XuVT;!A zFr=hl+D4&o?Di$uB^! zB>EHJJy@*bBEGA2js6M4PnF^hr-TX9k#!EW(>r(GDF8!2e9k9#Sf9!I8Dg$-_y}N+sO1&#B z$|&B40N1?yazC-8){GaQOLgO#Dn1=)s~Qe@|*JnHH|*-~--0K;u;M)uCJ^2pWf#}x+E z?fQbkMLpw-(Nq1@Oc?VKZn?F{QRYUv_JNTGdMw}SleMS4xzD=b4LJ=3M@&)*dNR6s zk*sA*_~M?G$9g>UrRv@RddOEes-bA4~o_k22 z{Xue&4Le|Hp^LpZeErg^O3uA-c`YCuIDzLsh-3~p%z1IEDh4X_z#S`}8PcQ~lbG*aY_em+1^P`tlwXUJj|?8;CiF zn*v$u8_Yu7vjIwcV|9i|aim-|?`Xm)bG%3kr}+gQSyFser`8mv-1qMd;MjOe8Q9S| zy|)>CqHJ$~7ffargnY~D)iCBGtozp|SN6?JSvn+V?_^1yp|nzs%-h+1a~)W2SjRhC ziV)7zYfk7nA&3>LsVvUXr!e*MD|U`*;ahBu zba+@>cE9R}&&pmY<_3j!{tj@a!opF)T%E#@U}ynf1^vQ4|8X%we+`BT{23O87^YWC z-|M>gIIM^X^+2`EI4pWznJ4J;|FteE)Vd&y^U-{uQiEK&&!82&ls_uHP%W_ZxJ^04 z(tmH((8Kw^w+z~%EacLldIy|bAu(*yYQSrbM}C-EksODGd7hcLgYJ2><4T;5o z2#NKN*bi&wzyRjX7XaSY1hB~e0zi)xLjuSE|5oKf2!IUuJsy(5N9=QJxujhH=-Q6K zTmb+*jtdF!1Q`ER1LZFUXz~zpb$7B+ z@an(yuDj6%{(M<)=s{IT21LMp=eLPKtAj!tTv0;8=+*avmz`F;AR*@}N$@8#{dFto z5m87O&}Hi~%s+wg`d|PIL-(rX+*audl%7{a9`sx$B+S7-FrXR2pEI6@&8mNST&+2DfENOGW05nkqx%!jpL$C%mlIJ>8 z7pz^WGxYQvPiCcGjQ zLbrh-G5RSXw*RLo3@L*?jszH^U+e;dxSrJa3K^h#wU8JQz_s!s75?trLIP0UIXBd9 zTh5}_fa7MRH-2W{;4*NH|4+#h^8+9I%G&x{vVN{5Ad`be*r+f5yZXy8{+dt=05y`p57%DDcGVdE* zMFqM$1qt(=?h?#D7a5B!K`<3L_}+7Kxh!n_rSe|_`z!q)4CsnYcvu^}beQ#d#rCFL z9{l;T;LuGZ$n7IBKrDS_U^l|5fY-EBzSzDnh1J_Dlz{H%Kw^A_#<+YtDiu@*1JH$C z0Kl<-{dI*qLHA4`0VWwCNnG`Yqx4A&jFJE40^^yM&e;_h&`l3W3{R#@82{+J;Qa`U zQ4ia9uJfvb_g{?vqO(2oAB*fI{$P2glQO` z%kb*s`SxY5DI;D{qCxitATeB7Ah!Q+NH;i{g8^h$F92wi8Lk3=eq@IPh`k93@J}#* z53>RT*a-BWGngaj&AY-=p&zRu0SZ_l0scvRmSMJFfQqIIfG->DMPL9#(Ep$WMgaKj L4=RV*L7)ByPL_= 11300 +block.10005=grass short_grass fern oak_sapling spruce_sapling birch_sapling jungle_sapling acacia_sapling dark_oak_sapling bamboo_sapling cherry_sapling pale_oak_sapling dead_bush dandelion poppy blue_orchid allium azure_bluet red_tulip orange_tulip white_tulip pink_tulip oxeye_daisy cornflower lily_of_the_valley wither_rose sweet_berry_bush wheat carrots potatoes beetroots pumpkin_stem melon_stem nether_sprouts warped_roots crimson_roots sunflower:half=lower lilac:half=lower rose_bush:half=lower peony:half=lower tall_grass:half=lower large_fern:half=lower torchflower_crop short_dry_grass tall_dry_grass bush cactus_flower closed_eyeblossom +#else +block.10005=tallgrass sapling deadbush yellow_flower red_flower wheat carrots potatoes beetroots pumpkin_stem melon_stem double_plant:half=lower +#endif +block.10009=leaves leaves2 oak_leaves spruce_leaves birch_leaves jungle_leaves acacia_leaves dark_oak_leaves azalea_leaves flowering_azalea_leaves mangrove_leaves cherry_leaves pale_oak_leaves +block.10013=vine pale_hanging_moss +block.10017=reeds attached_pumpkin_stem attached_melon_stem mangrove_propagule seagrass tall_seagrass kelp_plant kelp hanging_roots sugar_cane spore_blossom pink_petals pitcher_plant cobweb wildflowers +block.10021=double_plant:half=upper sunflower:half=upper lilac:half=upper rose_bush:half=upper peony:half=upper tall_grass:half=upper large_fern:half=upper +block.10024= +block.10028= +block.10032=stonebrick monster_egg:variant=stone_brick monster_egg:variant=mossy_brick monster_egg:variant=cracked_brick monster_egg:variant=chiseled_brick stone_bricks mossy_stone_bricks cracked_stone_bricks chiseled_stone_bricks infested_chiseled_stone_bricks infested_cracked_stone_bricks infested_mossy_stone_bricks infested_stone_bricks +#if MC_VERSION >= 11300 +block.10033=mossy_stone_brick_wall stone_brick_wall mossy_stone_brick_slab stone_brick_slab stone_brick_stairs mossy_stone_brick_stairs +#else +block.10033=stone_slab:variant=stone_brick double_stone_slab:variant=stone_brick stone_brick_stairs +#endif +block.10037=anvil chipped_anvil damaged_anvil +block.10041=golden_rail powered_rail detector_rail rail activator_rail +#if MC_VERSION >= 11300 +block.10045=cauldron hopper +block.10049=water_cauldron +#else +block.10045=cauldron:level=0 hopper +block.10049=cauldron:level=1 cauldron:level=2 cauldron:level=3 +#endif +block.10053=powder_snow_cauldron +block.10056=lava_cauldron +block.10061=lever +block.10065=lectern +block.10068=lava flowing_lava +block.10072=fire +block.10076=soul_fire +#if MC_VERSION >= 11300 +block.10080=stone infested_stone coal_ore smooth_stone +block.10081=stone_pressure_plate stone_button grindstone stonecutter stone_slab smooth_stone_slab stone_stairs +block.10084=granite +block.10085=granite_wall granite_slab granite_stairs +block.10088=diorite +block.10089=diorite_wall diorite_slab diorite_stairs +block.10092=andesite +block.10093=andesite_wall andesite_slab andesite_stairs +block.10096=polished_granite +block.10097=polished_granite_stairs polished_granite_slab +block.10100=polished_diorite +block.10101=polished_diorite_stairs polished_diorite_slab +block.10104=polished_andesite packed_mud mud_bricks bricks brick_block stone_slab:variant=brick double_stone_slab:variant=brick +block.10105=mud_brick_wall brick_wall polished_andesite_stairs polished_andesite_slab mud_brick_stairs mud_brick_slab brick_slab brick_stairs +#else +block.10080=stone:variant=stone monster_egg:variant=stone +block.10081=stone_pressure_plate stone_slab:variant=stone double_stone_slab:variant=stone +block.10084=stone:variant=granite +block.10088=stone:variant=diorite +block.10092=stone:variant=andesite +block.10096=stone:variant=smooth_granite +block.10100=stone:variant=smooth_diorite +block.10104=stone:variant=smooth_andesite bricks +block.10105=brick_wall brick_slab brick_stairs +#endif +block.10108=deepslate cobbled_deepslate infested_deepslate deepslate_coal_ore +block.10109=cobbled_deepslate_wall cobbled_deepslate_stairs cobbled_deepslate_slab heavy_core +block.10112=polished_deepslate deepslate_bricks cracked_deepslate_bricks deepslate_tiles cracked_deepslate_tiles chiseled_deepslate mud muddy_mangrove_roots +block.10113=polished_deepslate_wall deepslate_brick_wall deepslate_tile_wall polished_deepslate_stairs deepslate_brick_stairs deepslate_tile_stairs polished_deepslate_slab deepslate_brick_slab deepslate_tile_slab mangrove_roots +block.10116=calcite +block.10120=dripstone_block +block.10121=pointed_dripstone daylight_detector +#if MC_VERSION >= 11300 +block.10124=grass_block:snowy=true podzol:snowy=true mycelium:snowy=true +block.10128=dirt coarse_dirt rooted_dirt podzol:snowy=false mycelium:snowy=false +block.10129=farmland:moisture=0 farmland:moisture=1 farmland:moisture=2 farmland:moisture=3 farmland:moisture=4 farmland:moisture=5 farmland:moisture=6 +block.10132=grass_block:snowy=false +#else +block.10124=grass:snowy=true dirt:snowy=true mycelium:snowy=true +block.10128=dirt:snowy=false mycelium:snowy=false +block.10129=farmland:moisture=0 farmland:moisture=1 farmland:moisture=2 farmland:moisture=3 farmland:moisture=4 farmland:moisture=5 farmland:moisture=6 +block.10132=grass:snowy=false +#endif +block.10137=farmland:moisture=7 +block.10140=netherrack +block.10144=warped_nylium warped_wart_block +block.10148=crimson_nylium nether_wart_block +#if MC_VERSION >= 11300 +block.10152=cobblestone mossy_cobblestone infested_cobblestone moss_block pale_moss_block furnace:lit=false smoker:lit=false blast_furnace:lit=false lodestone piston:extended=false sticky_piston:extended=false dispenser dropper +block.10153=cobblestone_wall mossy_cobblestone_wall piston:extended=true sticky_piston:extended=true piston_head moss_carpet pale_moss_carpet cobblestone_slab cobblestone_stairs mossy_cobblestone_stairs mossy_cobblestone_slab +#else +block.10152=cobblestone monster_egg:variant=cobblestone mossy_cobblestone furnace:lit=false piston sticky_piston dispenser dropper +block.10153=cobblestone_wall mossy_cobblestone_wall piston_head stone_slab:variant=cobblestone double_stone_slab:variant=cobblestone cobblestone_stairs +#endif +block.10156=planks:variant=oak oak_planks stripped_oak_log stripped_oak_wood bookshelf crafting_table +block.10157=tripwire_hook wooden_slab:variant=oak double_wooden_slab:variant=oak oak_slab petrified_oak_slab oak_stairs fence fence_gate oak_fence oak_fence_gate oak_button oak_pressure_plate trapdoor oak_trapdoor +block.10160=log:variant=oak oak_log oak_wood +block.10164=planks:variant=spruce spruce_planks stripped_spruce_log stripped_spruce_wood +block.10165=spruce_fence spruce_fence_gate spruce_button spruce_pressure_plate wooden_slab:variant=spruce double_wooden_slab:variant=spruce spruce_slab spruce_stairs spruce_trapdoor +block.10168=log:variant=spruce spruce_log spruce_wood +block.10172=planks:variant=birch birch_planks stripped_birch_log stripped_birch_wood loom chiseled_bookshelf +block.10173=birch_fence birch_fence_gate birch_button birch_pressure_plate wooden_slab:variant=birch double_wooden_slab:variant=birch birch_slab birch_stairs birch_trapdoor +block.10176=log:variant=birch birch_log birch_wood +block.10180=planks:variant=jungle jungle_planks stripped_jungle_log stripped_jungle_wood +block.10181=jungle_fence jungle_fence_gate jungle_button jungle_pressure_plate composter wooden_slab:variant=jungle double_wooden_slab:variant=jungle jungle_slab jungle_stairs jungle_trapdoor +block.10184=log:variant=jungle jungle_log jungle_wood +block.10188=planks:variant=acacia acacia_planks stripped_acacia_log stripped_acacia_wood +block.10189=acacia_fence acacia_fence_gate acacia_button acacia_pressure_plate wooden_slab:variant=acacia double_wooden_slab:variant=acacia acacia_slab acacia_stairs acacia_trapdoor +block.10192=log2:variant=acacia acacia_log acacia_wood +block.10196=planks:variant=dark_oak dark_oak_planks stripped_dark_oak_log stripped_dark_oak_wood +block.10197=dark_oak_fence dark_oak_fence_gate dark_oak_button dark_oak_pressure_plate wooden_slab:variant=dark_oak double_wooden_slab:variant=dark_oak dark_oak_slab dark_oak_stairs dark_oak_trapdoor +block.10200=log2:variant=dark_oak dark_oak_log dark_oak_wood +block.10204=mangrove_planks stripped_mangrove_log stripped_mangrove_wood +block.10205=mangrove_fence mangrove_fence_gate mangrove_button mangrove_pressure_plate mangrove_slab mangrove_stairs mangrove_trapdoor +block.10208=mangrove_log mangrove_wood +block.10212=crimson_planks stripped_crimson_stem stripped_crimson_hyphae +block.10213=crimson_fence crimson_fence_gate crimson_button crimson_pressure_plate crimson_slab crimson_stairs crimson_trapdoor +block.10216=crimson_stem crimson_hyphae +block.10220=warped_planks stripped_warped_stem stripped_warped_hyphae +block.10221=warped_fence warped_fence_gate warped_button warped_pressure_plate warped_slab warped_stairs warped_trapdoor +block.10224=warped_stem warped_hyphae +block.10228=bedrock +#if MC_VERSION >= 11300 +block.10232=sand suspicious_sand +block.10236=red_sand +block.10240=sandstone chiseled_sandstone cut_sandstone smooth_sandstone +block.10241=sandstone_wall sandstone_slab cut_sandstone_slab sandstone_stairs smooth_sandstone_stairs smooth_sandstone_slab +#else +block.10232=sand:variant=sand +block.10236=sand:variant=red_sand +block.10240=sandstone chiseled_sandstone cut_sandstone smooth_sandstone +block.10241=stone_slab:variant=sandstone double_stone_slab:variant=sandstone sandstone_stairs +#endif +block.10244=red_sandstone smooth_red_sandstone chiseled_red_sandstone cut_red_sandstone +block.10245=red_sandstone_wall stone_slab2 double_stone_slab2 red_sandstone_slab cut_red_sandstone_slab red_sandstone_stairs smooth_red_sandstone_stairs smooth_red_sandstone_slab +block.10248=netherite_block +block.10252=ancient_debris +block.10257=iron_bars +block.10260=tnt fletching_table cartography_table smithing_table +block.10264=iron_block +block.10265=heavy_weighted_pressure_plate +block.10268=raw_iron_block +block.10272=iron_ore +block.10276=deepslate_iron_ore +block.10280=raw_copper_block +block.10284=copper_ore +block.10288=deepslate_copper_ore +block.10292=copper_block exposed_copper weathered_copper oxidized_copper cut_copper exposed_cut_copper weathered_cut_copper oxidized_cut_copper waxed_copper_block waxed_exposed_copper waxed_weathered_copper waxed_oxidized_copper waxed_cut_copper waxed_exposed_cut_copper waxed_weathered_cut_copper waxed_oxidized_cut_copper chiseled_copper exposed_chiseled_copper weathered_chiseled_copper oxidized_chiseled_copper waxed_chiseled_copper waxed_exposed_chiseled_copper waxed_weathered_chiseled_copper waxed_oxidized_chiseled_copper +block.10293=lightning_rod cut_copper_stairs exposed_cut_copper_stairs weathered_cut_copper_stairs oxidized_cut_copper_stairs cut_copper_slab exposed_cut_copper_slab weathered_cut_copper_slab oxidized_cut_copper_slab waxed_cut_copper_stairs waxed_exposed_cut_copper_stairs waxed_weathered_cut_copper_stairs waxed_oxidized_cut_copper_stairs waxed_cut_copper_slab waxed_exposed_cut_copper_slab waxed_weathered_cut_copper_slab waxed_oxidized_cut_copper_slab copper_grate exposed_copper_grate weathered_copper_grate oxidized_copper_grate waxed_copper_grate waxed_exposed_copper_grate waxed_weathered_copper_grate waxed_oxidized_copper_grate +block.10296=raw_gold_block +block.10300=gold_ore +block.10304=deepslate_gold_ore +block.10308=nether_gold_ore +block.10312=gold_block +block.10313=light_weighted_pressure_plate +block.10316=diamond_block +block.10320=diamond_ore +block.10324=deepslate_diamond_ore +block.10328=amethyst_block budding_amethyst +block.10332=small_amethyst_bud medium_amethyst_bud large_amethyst_bud amethyst_cluster +block.10336=emerald_block +block.10340=emerald_ore +block.10344=deepslate_emerald_ore +block.10349=azalea flowering_azalea +block.10352=lapis_block +block.10356=lapis_ore +block.10360=deepslate_lapis_ore +block.10364=quartz_block chiseled_quartz_block smooth_quartz quartz_bricks quartz_pillar +#if MC_VERSION >= 11300 +block.10365=quartz_slab quartz_stairs smooth_quartz_stairs smooth_quartz_slab +#else +block.10365=stone_slab:variant=quartz double_stone_slab:variant=quartz quartz_stairs +#endif +block.10368=quartz_ore nether_quartz_ore +block.10372=obsidian +block.10376=purpur_block purpur_pillar +block.10377=purpur_stairs purpur_slab purpur_double_slab +block.10380=snow_block +block.10381=snow_layer snow:layers=8 powder_snow +block.10384=packed_ice +block.10388=blue_ice +block.10392=pumpkin carved_pumpkin +block.10396=lit_pumpkin jack_o_lantern +block.10401=sea_pickle:waterlogged=false +block.10404=sea_pickle:waterlogged=true +block.10408=basalt polished_basalt smooth_basalt +block.10412=glowstone light +block.10416=nether_brick nether_bricks cracked_nether_bricks chiseled_nether_bricks +#if MC_VERSION >= 11300 +block.10417=nether_brick_wall nether_brick_fence nether_brick_slab nether_brick_stairs +#else +block.10417=nether_brick_fence stone_slab:variant=nether_brick double_stone_slab:variant=nether_brick nether_brick_stairs +#endif +block.10420=red_nether_bricks +block.10421=red_nether_brick_wall red_nether_brick_slab red_nether_brick_stairs +block.10424=melon_block melon +block.10428=end_stone end_bricks end_stone_bricks +block.10429=end_stone_brick_wall end_stone_brick_stairs end_stone_brick_slab +block.10432=hardened_clay stained_hardened_clay terracotta white_terracotta orange_terracotta magenta_terracotta light_blue_terracotta yellow_terracotta lime_terracotta pink_terracotta gray_terracotta light_gray_terracotta cyan_terracotta purple_terracotta blue_terracotta brown_terracotta green_terracotta red_terracotta black_terracotta +block.10436=white_glazed_terracotta orange_glazed_terracotta magenta_glazed_terracotta light_blue_glazed_terracotta yellow_glazed_terracotta lime_glazed_terracotta pink_glazed_terracotta gray_glazed_terracotta light_gray_glazed_terracotta cyan_glazed_terracotta purple_glazed_terracotta blue_glazed_terracotta brown_glazed_terracotta green_glazed_terracotta red_glazed_terracotta black_glazed_terracotta +block.10440=prismarine prismarine_bricks +block.10441=prismarine_wall prismarine_slab prismarine_stairs prismarine_brick_slab prismarine_brick_stairs +block.10444=dark_prismarine +block.10445=dark_prismarine_stairs dark_prismarine_slab +block.10448=sea_lantern +block.10452=magma magma_block +block.10456=command_block chain_command_block repeating_command_block +block.10460=concrete white_concrete orange_concrete magenta_concrete light_blue_concrete yellow_concrete pink_concrete gray_concrete light_gray_concrete cyan_concrete purple_concrete blue_concrete brown_concrete green_concrete red_concrete black_concrete +block.10464=concrete_powder white_concrete_powder orange_concrete_powder magenta_concrete_powder light_blue_concrete_powder yellow_concrete_powder lime_concrete_powder pink_concrete_powder gray_concrete_powder light_gray_concrete_powder cyan_concrete_powder purple_concrete_powder blue_concrete_powder brown_concrete_powder green_concrete_powder red_concrete_powder black_concrete_powder +block.10468=tube_coral_block brain_coral_block bubble_coral_block fire_coral_block horn_coral_block dead_tube_coral_block dead_brain_coral_block dead_bubble_coral_block dead_fire_coral_block dead_horn_coral_block +block.10473=tube_coral brain_coral bubble_coral fire_coral horn_coral tube_coral_fan brain_coral_fan bubble_coral_fan fire_coral_fan horn_coral_fan dead_tube_coral dead_brain_coral dead_bubble_coral dead_fire_coral dead_horn_coral dead_tube_coral_fan dead_brain_coral_fan dead_bubble_coral_fan dead_fire_coral_fan dead_horn_coral_fan tube_coral_wall_fan brain_coral_wall_fan bubble_coral_wall_fan fire_coral_wall_fan horn_coral_wall_fan dead_tube_coral_wall_fan dead_brain_coral_wall_fan dead_bubble_coral_wall_fan dead_fire_coral_wall_fan dead_horn_coral_wall_fan +block.10476=crying_obsidian +block.10480=blackstone polished_blackstone chiseled_polished_blackstone polished_blackstone_bricks cracked_polished_blackstone_bricks +block.10481=polished_blackstone_brick_wall polished_blackstone_wall blackstone_wall polished_blackstone_button polished_blackstone_pressure_plate blackstone_slab blackstone_stairs polished_blackstone_slab polished_blackstone_stairs polished_blackstone_brick_slab polished_blackstone_brick_stairs +block.10484=gilded_blackstone +block.10489=waterlily lily_pad frogspawn +block.10493=dirt_path grass_path +block.10496=torch wall_torch +block.10500=end_rod +block.10505=chorus_plant +block.10508=chorus_flower:age=0 chorus_flower:age=1 chorus_flower:age=2 chorus_flower:age=3 chorus_flower:age=4 +block.10512=chorus_flower:age=5 +block.10516=lit_furnace furnace:lit=true +block.10521=cactus +block.10524=noteblock note_block jukebox +block.10528=soul_torch soul_wall_torch +#if MC_VERSION >= 11300 +block.10532=brown_mushroom_block +block.10536=red_mushroom_block +block.10540=mushroom_stem +#else +block.10532= +block.10536= +block.10540= +#endif +block.10544=glow_lichen +block.10548=enchanting_table +block.10553=end_portal_frame:eye=false +block.10556=end_portal_frame:eye=true +block.10560=lantern +block.10564=soul_lantern +block.10569=turtle_egg sniffer_egg +block.10572=dragon_egg +block.10576=smoker:lit=true +block.10580=blast_furnace:lit=true +block.10584=coal_block +block.10588=respawn_anchor:charges=0 +block.10592=respawn_anchor:charges=1 respawn_anchor:charges=2 respawn_anchor:charges=3 respawn_anchor:charges=4 +block.10596=redstone_wire:power=1 redstone_wire:power=2 redstone_wire:power=3 redstone_wire:power=4 redstone_wire:power=5 redstone_wire:power=6 redstone_wire:power=7 redstone_wire:power=8 redstone_wire:power=9 redstone_wire:power=10 redstone_wire:power=11 redstone_wire:power=12 redstone_wire:power=13 redstone_wire:power=14 redstone_wire:power=15 +block.10601=redstone_wire:power=0 +block.10604=redstone_torch:lit=true redstone_wall_torch:lit=true +block.10605=redstone_torch:lit=false redstone_wall_torch:lit=false +block.10608=redstone_block +#if MC_VERSION >= 11300 +block.10612=redstone_ore:lit=false +block.10616=redstone_ore:lit=true +#else +block.10612=redstone_ore +block.10616=lit_redstone_ore +#endif +block.10620=deepslate_redstone_ore:lit=false +block.10624=deepslate_redstone_ore:lit=true +block.10629=cave_vines_plant:berries=false cave_vines:berries=false +block.10632=cave_vines_plant:berries=true cave_vines:berries=true +#if MC_VERSION >= 11300 +block.10636=redstone_lamp:lit=false +block.10640=redstone_lamp:lit=true +#else +block.10636=redstone_lamp +block.10640=lit_redstone_lamp +#endif +block.10644=powered_repeater powered_comparator repeater:powered=true comparator:mode=compare:powered=true comparator:mode=subtract:powered=true +block.10645=unpowered_repeater unpowered_comparator repeater:powered=false comparator:mode=compare:powered=false +block.10646=comparator:mode=subtract:powered=false +block.10648=shroomlight +block.10652=campfire:lit=true +block.10656=soul_campfire:lit=true +block.10661=campfire:lit=false soul_campfire:lit=false +block.10664=observer +block.10668=wool white_wool orange_wool magenta_wool light_blue_wool yellow_wool pink_wool gray_wool light_gray_wool cyan_wool purple_wool blue_wool brown_wool green_wool red_wool black_wool +block.10669=carpet white_carpet orange_carpet magenta_carpet light_blue_carpet yellow_carpet pink_carpet gray_carpet light_gray_carpet cyan_carpet purple_carpet blue_carpet brown_carpet green_carpet red_carpet black_carpet tripwire +block.10672=bone_block +block.10676=barrel beehive bee_nest honeycomb_block +block.10680=ochre_froglight +block.10684=verdant_froglight +block.10688=pearlescent_froglight +block.10692=reinforced_deepslate +block.10696=sculk sculk_vein sculk_sensor:sculk_sensor_phase=inactive sculk_sensor:sculk_sensor_phase=cooldown sculk_catalyst +block.10700=sculk_shrieker +block.10704=sculk_sensor:sculk_sensor_phase=active +block.10708=mob_spawner spawner +block.10712=tuff chiseled_tuff polished_tuff tuff_bricks chiseled_tuff_bricks +block.10713=tuff_stairs tuff_slab tuff_wall polished_tuff_stairs polished_tuff_slab polished_tuff_wall tuff_brick_stairs tuff_brick_slab tuff_brick_wall +block.10716=clay +block.10721=ladder +block.10724=gravel suspicious_gravel +block.10729=flower_pot potted_red_mushroom potted_brown_mushroom potted_cactus potted_bamboo potted_flowering_azalea_bush potted_azalea_bush +block.10733=potted_dandelion potted_poppy potted_blue_orchid potted_allium potted_azure_bluet potted_red_tulip potted_orange_tulip potted_white_tulip potted_pink_tulip potted_oxeye_daisy potted_cornflower potted_lily_of_the_valley potted_wither_rose potted_oak_sapling potted_spruce_sapling potted_birch_sapling potted_jungle_sapling potted_acacia_sapling potted_dark_oak_sapling potted_mangrove_propagule potted_fern potted_dead_bush potted_crimson_roots potted_warped_roots pitcher_crop potted_cherry_sapling potted_pale_oak_sapling potted_closed_eyeblossom +block.10736=structure_block jigsaw test_instance_block test_block +block.10741=chain +block.10744=soul_sand soul_soil +block.10748=dried_kelp_block +block.10753=bamboo +block.10756=bamboo_block stripped_bamboo_block bamboo_planks bamboo_mosaic +block.10757=bamboo_fence bamboo_fence_gate bamboo_pressure_plate bamboo_button scaffolding bamboo_slab bamboo_mosaic_slab bamboo_stairs bamboo_mosaic_stairs bamboo_trapdoor +block.10760=cherry_planks stripped_cherry_log stripped_cherry_wood +block.10761=cherry_fence cherry_fence_gate cherry_pressure_plate cherry_button cherry_stairs cherry_slab cherry_trapdoor +block.10764=cherry_log cherry_wood +block.10769=torchflower +block.10773=potted_torchflower +block.10776=warped_fungus crimson_fungus +block.10780=potted_crimson_fungus potted_warped_fungus +block.10784=calibrated_sculk_sensor:sculk_sensor_phase=inactive calibrated_sculk_sensor:sculk_sensor_phase=cooldown +block.10788=calibrated_sculk_sensor:sculk_sensor_phase=active +block.10793=wooden_door oak_door +block.10797=spruce_door +block.10801=birch_door +block.10805=jungle_door +block.10809=acacia_door +block.10813=dark_oak_door +block.10817=mangrove_door +block.10821=crimson_door +block.10825=warped_door +block.10829=bamboo_door +block.10833=cherry_door +block.10836=brewing_stand +block.10840=lime_concrete +block.10844=lime_wool +block.10845=lime_carpet +block.10848=crafter +block.10852=copper_bulb:lit=true waxed_copper_bulb:lit=true exposed_copper_bulb:lit=true waxed_exposed_copper_bulb:lit=true +block.10854=copper_bulb:lit=false waxed_copper_bulb:lit=false exposed_copper_bulb:lit=false waxed_exposed_copper_bulb:lit=false +block.10856=weathered_copper_bulb:lit=true waxed_weathered_copper_bulb:lit=true oxidized_copper_bulb:lit=true waxed_oxidized_copper_bulb:lit=true +block.10858=weathered_copper_bulb:lit=false waxed_weathered_copper_bulb:lit=false oxidized_copper_bulb:lit=false waxed_oxidized_copper_bulb:lit=false +block.10861=copper_door exposed_copper_door weathered_copper_door oxidized_copper_door waxed_copper_door waxed_exposed_copper_door waxed_weathered_copper_door waxed_oxidized_copper_door +block.10865=copper_trapdoor exposed_copper_trapdoor weathered_copper_trapdoor oxidized_copper_trapdoor waxed_copper_trapdoor waxed_exposed_copper_trapdoor waxed_weathered_copper_trapdoor waxed_oxidized_copper_trapdoor +block.10868=trial_spawner:ominous=false:trial_spawner_state=active trial_spawner:ominous=false:trial_spawner_state=ejecting_reward trial_spawner:ominous=false:trial_spawner_state=waiting_for_players trial_spawner:ominous=false:trial_spawner_state=waiting_for_reward_ejection vault:ominous=false:vault_state=active vault:ominous=false:vault_state=ejecting vault:ominous=false:vault_state=unlocking +block.10872=vault:ominous=false:vault_state=inactive vault:ominous=true:vault_state=inactive +block.10873=trial_spawner:ominous=false:trial_spawner_state=cooldown trial_spawner:ominous=false:trial_spawner_state=inactive trial_spawner:ominous=true:trial_spawner_state=cooldown trial_spawner:ominous=true:trial_spawner_state=inactive +block.10876=trial_spawner:ominous=true:trial_spawner_state=active trial_spawner:ominous=true:trial_spawner_state=ejecting_reward trial_spawner:ominous=true:trial_spawner_state=waiting_for_players trial_spawner:ominous=true:trial_spawner_state=waiting_for_reward_ejection vault:ominous=true:vault_state=active vault:ominous=true:vault_state=ejecting vault:ominous=true:vault_state=unlocking +block.10880= +block.10884=weeping_vines_plant +block.10885=weeping_vines twisting_vines_plant twisting_vines +block.10888=hay_block +block.10893=iron_door +block.10897=iron_trapdoor +block.10900=candle:lit=true candle_cake:lit=true light_gray_candle:lit=true light_gray_candle_cake:lit=true gray_candle:lit=true gray_candle_cake:lit=true black_candle:lit=true black_candle_cake:lit=true white_candle:lit=true white_candle_cake:lit=true brown_candle:lit=true brown_candle_cake:lit=true +block.10902=red_candle:lit=true red_candle_cake:lit=true +block.10904=orange_candle:lit=true orange_candle_cake:lit=true +block.10906=yellow_candle:lit=true yellow_candle_cake:lit=true +block.10908=lime_candle:lit=true lime_candle_cake:lit=true +block.10910=green_candle:lit=true green_candle_cake:lit=true +block.10912=cyan_candle:lit=true cyan_candle_cake:lit=true +block.10914=light_blue_candle:lit=true light_blue_candle_cake:lit=true +block.10916=blue_candle:lit=true blue_candle_cake:lit=true +block.10918=purple_candle:lit=true purple_candle_cake:lit=true +block.10920=magenta_candle:lit=true magenta_candle_cake:lit=true +block.10922=pink_candle:lit=true pink_candle_cake:lit=true +block.10924= +block.10928=pale_oak_planks stripped_pale_oak_log stripped_pale_oak_wood +block.10929=pale_oak_fence pale_oak_fence_gate pale_oak_pressure_plate pale_oak_button pale_oak_stairs pale_oak_slab pale_oak_trapdoor +block.10932=pale_oak_log pale_oak_wood +block.10937=pale_oak_door +block.10940=resin_bricks chiseled_resin_bricks resin_block +block.10941=resin_clump resin_brick_stairs resin_brick_slab resin_brick_wall +#if MC_VERSION >= 12105 +block.10944=creaking_heart:creaking_heart_state=uprooted +block.10948=creaking_heart:creaking_heart_state=dormant creaking_heart:creaking_heart_state=awake +#else +block.10944=creaking_heart:active=false +block.10948=creaking_heart:active=true +#endif +block.10953=snow:layers=1 snow:layers=2 snow:layers=3 snow:layers=4 snow:layers=5 snow:layers=6 snow:layers=7 +block.10956=target:power=0 +block.10960=target:power=1 target:power=2 target:power=3 target:power=4 target:power=5 target:power=6 target:power=7 target:power=8 target:power=9 target:power=10 target:power=11 target:power=12 target:power=13 target:power=14 target:power=15 +block.10964=sponge +block.10968=wet_sponge +block.10972=firefly_bush +block.10976=open_eyeblossom +block.10980=potted_open_eyeblossom + +block.20000= + +block.30000= +block.30004= +block.30008=tinted_glass +block.30012=slime slime_block +block.30016=honey_block +block.30020=portal nether_portal + +block.31000=stained_glass white_stained_glass +block.31001=stained_glass_pane white_stained_glass_pane +block.31002=orange_stained_glass +block.31003=orange_stained_glass_pane +block.31004=magenta_stained_glass +block.31005=magenta_stained_glass_pane +block.31006=light_blue_stained_glass +block.31007=light_blue_stained_glass_pane works +block.31008=yellow_stained_glass +block.31009=yellow_stained_glass_pane +block.31010=lime_stained_glass +block.31011=lime_stained_glass_pane +block.31012=pink_stained_glass +block.31013=pink_stained_glass_pane +block.31014=gray_stained_glass +block.31015=gray_stained_glass_pane +block.31016=light_gray_stained_glass +block.31017=light_gray_stained_glass_pane +block.31018=cyan_stained_glass +block.31019=cyan_stained_glass_pane +block.31020=purple_stained_glass +block.31021=purple_stained_glass_pane +block.31022=blue_stained_glass +block.31023=blue_stained_glass_pane +block.31024=brown_stained_glass +block.31025=brown_stained_glass_pane +block.31026=green_stained_glass +block.31027=green_stained_glass_pane +block.31028=red_stained_glass +block.31029=red_stained_glass_pane +block.31030=black_stained_glass +block.31031=black_stained_glass_pane + +block.32000=water flowing_water +block.32004=ice frosted_ice +block.32008=glass +block.32012=glass_pane +block.32016=beacon + +layer.translucent=glass glass_pane beacon \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/dimension.properties b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/dimension.properties new file mode 100644 index 0000000..6963155 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/dimension.properties @@ -0,0 +1,10 @@ +#--------------------------------------------------------------------------------------------------------------------- +#--------------------------------------------------------------------------------------------------------------------- + +dimension.world0=minecraft:overworld + +dimension.world-1=minecraft:the_nether minecraft:nether + +dimension.world1=minecraft:the_end minecraft:end + +dimension.stop= * diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/entity.properties b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/entity.properties new file mode 100644 index 0000000..a1a246f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/entity.properties @@ -0,0 +1,40 @@ +#--------------------------------------------------------------------------------------------------------------------- +#--------------------------------------------------------------------------------------------------------------------- + +#if MC_VERSION >= 11300 +#1.13 And Above Mapping: + +entity.50000=end_crystal +entity.50004=lightning_bolt +entity.50008=item_frame glow_item_frame +entity.50012=iron_golem +entity.50016=player +entity.50020=blaze +entity.50024=creeper +entity.50028=drowned +entity.50032=guardian +entity.50036=elder_guardian +entity.50040=endermite +entity.50044=ghast +entity.50048=glow_squid +entity.50052=magma_cube +entity.50056=stray +entity.50060=vex +entity.50064=witch +entity.50068=wither wither_skull +entity.50072=experience_orb +entity.50076=boat oak_boat spruce_boat birch_boat jungle_boat acacia_boat dark_oak_boat mangrove_boat cherry_boat pale_oak_boat chest_boat oak_chest_boat spruce_chest_boat birch_chest_boat jungle_chest_boat acacia_chest_boat dark_oak_chest_boat mangrove_chest_boat cherry_chest_boat pale_oak_chest_boat +entity.50080=allay +entity.50084=slime chicken +entity.50088=entity_flame +entity.50092=trident +entity.50096=minecart chest_minecart command_block_minecart furnace_minecart hopper_minecart spawner_minecart tnt_minecart +entity.50100=bogged +entity.50104=piglin piglin_brute zombified_piglin hoglin zoglin +entity.50108=creaking +entity.50112=name_tag + +#else +#1.12 And Below Mapping: + +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/item.properties b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/item.properties new file mode 100644 index 0000000..74d6503 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/item.properties @@ -0,0 +1,65 @@ +#--------------------------------------------------------------------------------------------------------------------- +# 40XXX - Items +# 44XXX - Items for colored handheld lighting +# 45XXX - Items for other Iris exclusive features +#--------------------------------------------------------------------------------------------------------------------- + +item.40000=spider_eye fermented_spider_eye +item.40004=filled_map +item.40008=air + +item.44002=torch +item.44003=end_rod +item.44004=beacon +item.44007=ochre_froglight +item.44008=verdant_froglight +item.44009=pearlescent_froglight +item.44010=glowstone +item.44011=jack_o_lantern +item.44012=lantern +item.44015=campfire +item.44018=sea_lantern +item.44019=shroomlight +item.44026=crying_obsidian +item.44028=soul_torch +item.44029=soul_lantern +item.44030=soul_campfire +item.44033=enchanting_table +item.44034=glow_lichen +item.44035=redstone_torch +item.44036=small_amethyst_bud medium_amethyst_bud large_amethyst_bud amethyst_cluster +item.44037=magma_block +item.44038=dragon_egg +item.44039=chorus_flower +item.44040=brewing_stand +item.44041=redstone_block + +item.45000=trim_emerald trim_redstone trim_lapis trim_amethyst trim_quartz trim_diamond trim_gold trim_iron trim_copper trim_resin +item.45004=wooden_shovel wooden_pickaxe wooden_axe wooden_hoe wooden_sword bow fishing_rod +item.45008=stone_shovel stone_pickaxe stone_axe stone_hoe stone_sword +item.45012=iron_shovel iron_pickaxe iron_axe iron_hoe iron_sword iron_helmet iron_chestplate iron_leggings iron_boots iron_ingot iron_nugget iron_horse_armor flint_and_steel flint spyglass shears chainmail_helmet chainmail_chestplate chainmail_leggings chainmail_boots +item.45016=golden_shovel golden_pickaxe golden_axe golden_hoe golden_sword golden_helmet golden_chestplate golden_leggings golden_boots gold_ingot gold_nugget golden_apple enchanted_golden_apple golden_carrot golden_horse_armor copper_ingot +item.45020=diamond_shovel diamond_pickaxe diamond_axe diamond_hoe diamond_sword diamond_helmet diamond_chestplate diamond_leggings diamond_boots diamond diamond_horse_armor emerald +item.45024=netherite_shovel netherite_pickaxe netherite_axe netherite_hoe netherite_sword netherite_helmet netherite_chestplate netherite_leggings netherite_boots netherite_ingot mace breeze_rod +item.45028=trident +item.45032=lava_bucket +item.45036=bucket water_bucket cod_bucket salmon_bucket tropical_fish_bucket pufferfish_bucket axolotl_bucket tadpole_bucket milk_bucket powder_snow_bucket +item.45040=blaze_rod blaze_powder +item.45044=experience_bottle glow_ink_sac +item.45048=fire_charge +item.45052=chorus_fruit +item.45056=amethyst_shard +item.45060=shield +item.45064=turtle_helmet +item.45068=ender_pearl +item.45072=ender_eye +item.45076=clock +item.45080=compass +item.45084=echo_shard recovery_compass music_disc_5 +item.45088=nether_star +item.45092=end_crystal +item.45096=glow_berries +item.45100=glowstone_dust +item.45104=prismarine_crystals +item.45108=totem_of_undying +item.45112=trial_key ominous_trial_key \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lang/en_US.lang b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lang/en_US.lang new file mode 100644 index 0000000..0114adc --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lang/en_US.lang @@ -0,0 +1,1047 @@ +#shaders/lang/en_us.lang + +#Profiles +profile.POTATO=§aPotato +profile.VERYLOW=§aVery Low +profile.LOW=§aLow +profile.MEDIUM=§aMedium +profile.HIGH=§eHigh (Default) +profile.VERYHIGH=§cVery High +profile.ULTRA=§4§lUltra +profile.COMPLEMENTARY=§4§l§n§oComplementary +profile.comment=Shader profiles change performance settings with the most optimised visual fidelity to performance ratio. §e[*]§r It's recommended to use one of these profiles for your settings unless you know what you are doing. §e[*]§r All affected settings can all be found in the "Performance Settings" menu. + +#Information +screen.INFORMATION=Information +screen.INFORMATION.comment=This section contains buttons that only exist to provide information. + +option.info0=§bHover your mouse on a button +value.info0.0= +option.info0.comment=This section contains buttons that only exist to provide information. + +option.info1=How to get more performance +value.info1.0= +option.info1.comment=Performance is a complex topic in Minecraft because it gets affected by so many things, but you can try these:. Reduce your render distance, ideally it should be between 6 and 16 for almost every device. Reduce the "Profile" shader setting, these have been carefully tested for the best visual/performance ratio. More information will be added later. + +option.info2=What are the best settings +value.info2.0= +option.info2.comment=Best settings are subjective, but using the default settings will be the near-best for most people. The default settings have been shaped by years of community evaluations and feedback, while paying a lot of attention to the visual/performance ratio. But you should still feel free to tweak around and have fun doing so! + +option.info3=What is Profile or Visual Style +value.info3.0= +option.info3.comment="Profile" setting changes the settings found in the "Performance Settings" menu, while not affecting any preference-based settings. "Visual Style" changes the "Set by Style" values that exist on many preference-based settings, but it does not impact performance by an important amount. + +option.info4=What is RP Support +value.info4.0= +option.info4.comment=RP Support option determines how the shader pack treats the different blocks of Minecraft. For example, §bIntegratedPBR+§r treats gold blocks as reflective things, while §elabPBR§r or §eseuspbr§r require you to install a resource pack to tell that to the shader. Setting RP Support to §aBasic§r will make it so that no block is "special" other than a couple exceptions like water. + +option.info5=How to fix mod issues +value.info5.0= +option.info5.comment=Mod incompatibilities are inevitable with shader packs because of the way they work, but you can check out this information page about mod issues with Complementary to view a bunch of known fixes. www.complementary.dev/mod-issues + +option.info6= +value.info6.0= +option.info6.comment= + +option.info7= +value.info7.0= +option.info7.comment= + +option.info8=How to join the community +value.info8.0= +option.info8.comment=You can join the Complementary Discord server to join our friendly community, and be able to contact developers or experienced community members. www.complementary.dev/discord + +option.info9=How to support Complementary +value.info9.0= +option.info9.comment=Best way to support the development of Complementary is to share it with your friends or social media, but you can also directly support the developer on Patreon. www.patreon.com/emingt + +option.info10=Credits +value.info10.0= +option.info10.comment=EminGT: The main developer of Complementary. Capt Tatsu: Developer of BSL Shaders, his generosity is what made Complementary possible in the first place. Special Thanks: IMS212, sp614x, Chocapic13, Robobo1221, SixthSurge, null511, fayer3, catlikecoding, Builderb0y, Jessie, SpacEagle17, isuewo, flytrap + +#Style +option.SHADER_STYLE=Visual Style +option.SHADER_STYLE.comment=Determines the default visual style of the shader pack. §bReimagined§r: Complementing Minecraft while preserving its unique visual elements. §dUnbound§r: Reworking the visuals of Minecraft with a semi-realistic fantasy style. §e[*]§r Affected settings: Water Style, Cloud Style, Sun/Moon Style, Sun/Moon Angle, Aurora Style, Glowing Ores. +value.SHADER_STYLE.1=§bReimagined +value.SHADER_STYLE.4=§dUnbound + +#Screens +screen.PERFORMANCE_SETTINGS=§ePerformance Settings§r +screen.PERFORMANCE_SETTINGS.comment=Settings that directly relate to the performance, and get changed by the different shader profiles. + +screen.ATMOSPHERE_SETTINGS=Atmosphere +screen.ATMOSPHERE_SETTINGS.comment=Settings that relate to the atmosphere. + +screen.ATM_COLOR_SETTINGS=Atmosphere Color Multipliers +screen.ATM_COLOR_SETTINGS.comment=Enables customization of atmosphere colors that are mostly seen in the sky and fog. + +screen.MORNING_ATM_MULTS=Sunrise/Sunset Time +screen.NOON_ATM_MULTS=Noon Time +screen.NIGHT_ATM_MULTS=Night Time +screen.RAIN_ATM_MULTS=Rainy Weather +screen.NETHER_ATM_MULTS=The Nether Dimension +screen.END_ATM_MULTS=The End Dimension + +screen.CLOUD_SETTINGS=Clouds +screen.CLOUD_SETTINGS.comment=Settings that relate to the clouds. + +screen.CLOUD_COLOR_SETTINGS=Cloud Color +screen.CLOUD_COLOR_SETTINGS.comment=Settings to change the color of the clouds. + +screen.CLOUD_UNBOUND_SETTINGS=Unbound Cloud Settings +screen.CLOUD_REIMAGINED_SETTINGS=Reimagined Cloud Settings + +screen.FOG_SETTINGS=Fog +screen.FOG_SETTINGS.comment=Settings that relate to the various types of fog. + +screen.SUN_MOON_SETTINGS=Sun / Moon +screen.SUN_MOON_SETTINGS.comment=Settings that relate to the sun and moon. + +screen.NETHER_SETTINGS=The Nether Dimension +screen.NETHER_SETTINGS.comment=Settings that relate to the Nether dimension. + +screen.WEATHER_SETTINGS=Rain / Weather +screen.WEATHER_SETTINGS.comment=Settings that relate to weather conditions + +screen.CAMERA_SETTINGS=Camera +screen.CAMERA_SETTINGS.comment=Settings that relate to the view/camera. + +screen.TONEMAP_SETTINGS=Color Balance +screen.TONEMAP_SETTINGS.comment=Settings that determine the color balance of the visuals. + +screen.COLORGRADING_SETTINGS=Color Grading +screen.COLORGRADING_SETTINGS.comment=Settings to mix up the final color channels. + +screen.WORLD_BLUR_SETTINGS=World Blur +screen.WORLD_BLUR_SETTINGS.comment=Settings that relate to fancy world blurring effects. + +screen.MATERIAL_SETTINGS=Materials +screen.MATERIAL_SETTINGS.comment=Settings that are related to the materials of Minecraft. + +screen.IPBR_SETTINGS=IntegratedPBR+ Materials +screen.IPBR_SETTINGS.comment=Settings that are related to the features of IntegratedPBR+. + +screen.GLOWING_ORE_SETTINGS=Glowing Ores +screen.GLOWING_ORE_SETTINGS.comment=Settings to adjust emission of ore blocks. + +screen.GLOWING_STUFF_SETTINGS=Glowing Stuff +screen.GLOWING_STUFF_SETTINGS.comment=Settings to adjust emission of miscellaneous blocks. + +screen.OTHER_IPBR_SETTINGS=Other IPBR+ Features +screen.OTHER_IPBR_SETTINGS.comment=Miscellaneous IntegratedPBR+ settings. + +screen.CUSTOM_PBR_SETTINGS=labPBR/seuspbr Materials +screen.CUSTOM_PBR_SETTINGS.comment=Settings that are related to the features of labPBR/seuspbr. + +screen.LIGHTING_SETTINGS=Lighting +screen.LIGHTING_SETTINGS.comment=Settings that are related to lighting. + +screen.LIGHT_COLOR_SETTINGS=Lighting Color Multipliers +screen.LIGHT_COLOR_SETTINGS.comment=Enables customization of lighting colors that are seen on all surfaces. + +screen.MORNING_LIGHT_MULTS=Sunrise/Sunset Time +screen.NOON_LIGHT_MULTS=Noon Time +screen.NIGHT_LIGHT_MULTS=Night Time +screen.RAIN_LIGHT_MULTS=Rainy Weather +screen.NETHER_LIGHT_MULTS=The Nether Dimension +screen.END_LIGHT_MULTS=The End Dimension + +screen.BLOCKLIGHT_COLOR_SETTINGS=Blocklight Color §e[*]§r +screen.BLOCKLIGHT_COLOR_SETTINGS.comment=Settings to adjust the color emitted from light source blocks. §e[*]§r These color settings won't affect most lights if the Advanced Colored Lighting setting is enabled, except for the Blocklight Intensity slider. + +screen.MOON_PHASE_INF_SETTINGS=Moon Phase Influence +screen.MOON_PHASE_INF_SETTINGS.comment=Settings to determine how different moon phases affect the night lighting. + +screen.ACL_FEATURES_SETTINGS=ACL Exclusive Features §e[*]§r +screen.ACL_FEATURES_SETTINGS.comment=Settings that are about features exclusive to Advanced Colored Lighting. §e[*]§r These features only work if Advanced Colored Lighting is enabled in Performance Settings and your system supports it. + +screen.PIXELATED_LIGHTING_SETTINGS=Pixelated Lighting +screen.PIXELATED_LIGHTING_SETTINGS.comment=Settings to make certain lighting effects pixelated. + +screen.WATER_SETTINGS=Water +screen.WATER_SETTINGS.comment=Settings that are about water. + +screen.WATER_COLOR_SETTINGS=Water Surface Color + +screen.UNDERWATER_COLOR_SETTINGS=Underwater Color + +screen.WATER_WAVE_SETTINGS=Waving Water Normals §e[*]§r +screen.WATER_WAVE_SETTINGS.comment=Settings to customise the surface-direction waves (normals) seen on water. §e[*]§r These settings only work when the Water Style is set to "Reimagined + Waves" or "Unbound". + +screen.WAVING_SETTINGS=Waving Textures +screen.WAVING_SETTINGS.comment=Settings that are about waving textures. + +screen.OTHER_SETTINGS=Other +screen.OTHER_SETTINGS.comment=Settings that don't fit into any other category. + +screen.SELECT_OUTLINE_SETTINGS=Selection Outline +screen.SELECT_OUTLINE_SETTINGS.comment=Settings that change the block selection outline. + +screen.WORLD_OUTLINE_SETTINGS=World Outline +screen.WORLD_OUTLINE_SETTINGS.comment=Settings that are about optional outline effects. + +#Settings +option.RP_MODE=RP Support +option.RP_MODE.comment=Changes many internal calculations to determine how different blocks and materials will be rendered. §bIntegrated PBR+§r: Calculated PBR and extra effects, highly recommended for most use cases. §aBasic§r: No PBR or extra effects. §elabPBR/seuspbr§r: Materials using the required PBR resource packs. +value.RP_MODE.0=§aBasic +value.RP_MODE.1=§bIntegrated PBR+ +value.RP_MODE.2=§eseuspbr (RP Required) +value.RP_MODE.3=§elabPBR (RP Required) + +option.WATER_REFLECT_QUALITY=Water Reflection Quality +option.WATER_REFLECT_QUALITY.comment=Adjusts the visual quality of reflections that appear on translucents. §cMedium§r: Screenspace ray-traced reflections on water and translucents. §ePotato§r: Replaces water and translucent reflections with a faster method, may look incorrect in some situations. §aOFF§r: No reflections. +value.WATER_REFLECT_QUALITY.-1=§aOFF +value.WATER_REFLECT_QUALITY.0=§aSky only +value.WATER_REFLECT_QUALITY.1=§ePotato +value.WATER_REFLECT_QUALITY.2=§cMedium + +option.BLOCK_REFLECT_QUALITY=Block Reflection Quality §e[*]§r +option.BLOCK_REFLECT_QUALITY.comment=Adjusts the visual quality of reflections that appear on solid materials. §cHigh§r: Sun/moon highlights + smoother specular reflections using a temporal filter. §eMedium§r: Sun/moon highlights + specular reflections. §aLow§r: Sun/moon highlights only. §e[*]§r RP Support option must be set to anything but Basic for any specular reflections to appear. +value.BLOCK_REFLECT_QUALITY.0=§aOFF +value.BLOCK_REFLECT_QUALITY.1=§eLow +value.BLOCK_REFLECT_QUALITY.2=§cMedium +value.BLOCK_REFLECT_QUALITY.3=§cHigh + +option.SHADOW_QUALITY=Real-Time Shadows +option.SHADOW_QUALITY.comment=Adjusts the quality of shadows. Every tier further reduces the shadow noise artifacts, options lower than §eHigh§r enable optimised shadows on leaves, §eVery Low§r significantly downgrades shadows in multiple ways, §aOFF§r completely disables shadows and light shafts. +value.SHADOW_QUALITY.-1=§aOFF +value.SHADOW_QUALITY.0=§eVery Low +value.SHADOW_QUALITY.1=§eLow +value.SHADOW_QUALITY.2=§eMedium +value.SHADOW_QUALITY.3=§eHigh +value.SHADOW_QUALITY.4=§cVery High +value.SHADOW_QUALITY.5=§4§lUltra + +option.LIGHTSHAFT_QUALI_DEFINE=Light Shaft Quality §e[*]§r +option.LIGHTSHAFT_QUALI_DEFINE.comment=Adjusts the quality of light shafts. Every tier further reduces the light shaft noise artifacts. §e[*]§r "Real-Time Shadows" setting must be set to anything but OFF for light shafts to work. +value.LIGHTSHAFT_QUALI_DEFINE.0=§aOFF +value.LIGHTSHAFT_QUALI_DEFINE.1=§eLow +value.LIGHTSHAFT_QUALI_DEFINE.2=§eMedium +value.LIGHTSHAFT_QUALI_DEFINE.3=§cHigh +value.LIGHTSHAFT_QUALI_DEFINE.4=§4§lVery High + +option.shadowDistance=Shadow Distance +option.shadowDistance.comment=Adjusts the distance from the player which real-time shadows are rendered. §e[*]§r The value is internally capped at Render Distance. §e[*]§r It's recommended to set this value to about 80% of your render distance for best performance and coverage. §c[-]§r Lower values may cause excessive Light Shaft leaking. +value.shadowDistance.64.0=§a4 Chunks §c[-] +value.shadowDistance.80.0=§a5 Chunks §c[-] +value.shadowDistance.96.0=§a6 Chunks §c[-] +value.shadowDistance.112.0=§a7 Chunks §c[-] +value.shadowDistance.128.0=§a8 Chunks +value.shadowDistance.160.0=§e10 Chunks +value.shadowDistance.192.0=§e12 Chunks +value.shadowDistance.224.0=§e14 Chunks +value.shadowDistance.256.0=§c16 Chunks +value.shadowDistance.320.0=§c20 Chunks +value.shadowDistance.384.0=§4§l24 Chunks +value.shadowDistance.512.0=§4§l32 Chunks +value.shadowDistance.768.0=§4§l§n§o48 Chunks +value.shadowDistance.1024.0=§4§k-§r§4§l§n§o64 Chunks§r§4§k- + +option.ENTITY_SHADOWS_DEFINE=Entity Shadows +option.ENTITY_SHADOWS_DEFINE.comment=Enables the ability for entities and block entities to cast shadows. §c[-]§r Entity Shadows impact performance way more than expected, costing more than 50% of your fps in some cases. +value.ENTITY_SHADOWS_DEFINE.-1=§aOFF +value.ENTITY_SHADOWS_DEFINE.1=§4§k-§r§4§l§n§oON§r§4§k- §r§c[-] + +option.DETAIL_QUALITY=Detail Quality +option.DETAIL_QUALITY.comment=Adjusts several small things that affect performance. Adjust the quality of: Water material, TAA, lighting tweaks, Night Nebula, Nether Storm, Ender Beams, sky effect reflections, rain puddle accuracy, waving effect +value.DETAIL_QUALITY.0=§aPotato +value.DETAIL_QUALITY.2=§eMedium +value.DETAIL_QUALITY.3=§cHigh + +option.CLOUD_QUALITY=Cloud Quality +option.CLOUD_QUALITY.comment=Adjusts the lighting, detail, and sample quality of Reimagined/Unbound cloud styles. §e[*]§r This setting only works with the "Reimagined" or "Unbound" Cloud Styles. +value.CLOUD_QUALITY.0=§aOFF +value.CLOUD_QUALITY.1=§aLow +value.CLOUD_QUALITY.2=§eMedium +value.CLOUD_QUALITY.3=§cHigh + +option.FXAA_DEFINE=Anti-Aliasing (FXAA) +option.FXAA_DEFINE.comment=Enables Fast Approximate Anti-Aliasing (FXAA), which is basically an effect that produces smoother image. +value.FXAA_DEFINE.-1=§aOFF +value.FXAA_DEFINE.1=§eON + +option.SSAO_QUALI_DEFINE=Edge Shadow (SSAO) Quality +option.SSAO_QUALI_DEFINE.comment=Adjusts the quality of Screen-Space Ambient Occlusion (SSAO) which adds extra ambient shadowing to the edges of the scene. Every tier further reduces the ssao noise artifacts. +value.SSAO_QUALI_DEFINE.0=§aOFF +value.SSAO_QUALI_DEFINE.2=§eMedium +value.SSAO_QUALI_DEFINE.3=§cHigh + +option.ANISOTROPIC_FILTER=Texture Filtering +option.ANISOTROPIC_FILTER.comment=Improves the quality of mipmapped textures using Anisotropic Filtering. §e[*]§r Make sure your "Mipmap Levels" video setting is set to Maximum (4) or you won't get good results. +value.ANISOTROPIC_FILTER.0=§aOFF +value.ANISOTROPIC_FILTER.4=§e4x +value.ANISOTROPIC_FILTER.8=§e8x +value.ANISOTROPIC_FILTER.16=§4§l16x + +option.COLORED_LIGHTING=Advanced Colored Lighting §e[*]§r +option.COLORED_LIGHTING.comment=Uses voxelization and floodfill lighting to add color to blocklight, alongside introducing some new lights. §e[*]§r This feature only works on Iris and supported platforms. §e[*]§r This setting will be disabled if "Real-Time Shadows" is OFF. §a[+]§r This system also enables some other features which you can individually enable/disable in the "Other" -> "ACL Features" menu. §c[-]§r High chunk values for this effect impact performance way more than expected, each increment can cost more than twice the performance of the previous tier. +value.COLORED_LIGHTING.0=§aOFF +value.COLORED_LIGHTING.128=§c4 Chunks +value.COLORED_LIGHTING.192=§c6 Chunks +value.COLORED_LIGHTING.256=§4§l8 Chunks +value.COLORED_LIGHTING.384=§4§l12 Chunks +value.COLORED_LIGHTING.512=§4§l§n§o16 Chunks +value.COLORED_LIGHTING.768=§4§l§n§o24 Chunks §r§c[-] +value.COLORED_LIGHTING.1024=§4§k-§r§4§l§n§o32 Chunks§r§4§k- §r§c[-] + +option.SSAO_I=Edge Shadow Intensity (SSAO) +option.SSAO_I.comment=Determines the strength of Screen-Space Ambient Occlusion (SSAO) which adds extra ambient shadowing to the edges of the scene. §e[*]§r This setting won't work if SSAO is disabled in "Performance Settings". +value.SSAO_I.0=§cOFF + +option.VANILLAAO_I=Edge Shadow Intensity (Vanilla) +option.VANILLAAO_I.comment=Determines the strength of Minecraft's ambient occlusion which adds extra ambient shadowing to the edges of the scene. +value.VANILLAAO_I.0=§cOFF + +option.BORDER_FOG=Border Fog +option.BORDER_FOG.comment=Intense fog on the edges of the loaded world to hide chunk borders. §e[*]§r It's recommended to disable Border Fog when playing with less than 8 chunks of render distance. + +option.ATM_FOG_MULT=Atmospheric Fog +option.ATM_FOG_MULT.comment=Adjusts the intensity of altitude-based fog. +value.ATM_FOG_MULT.0.50=Very Subtle +value.ATM_FOG_MULT.0.65=Subtle +value.ATM_FOG_MULT.0.80=Normal +value.ATM_FOG_MULT.0.95=Intense + +option.ATM_FOG_DISTANCE=Atmospheric Fog Distance +option.ATM_FOG_DISTANCE.comment=Adjusts the distance from the camera that the atmospheric fog starts to appear. §e[*]§r Note that the fog distance also gets automatically adjusted by the Render Distance setting in Video Settings. + +option.ATM_FOG_ALTITUDE=Atmospheric Fog Altitude +option.ATM_FOG_ALTITUDE.comment=Determines the altitude that the atmospheric fog appears the most prominently. + +option.CAVE_FOG=Cave Fog +option.CAVE_FOG.comment=Enables extra fog in deep underground areas. + +option.LIGHTSHAFT_BEHAVIOUR=Light Shaft Mode +option.LIGHTSHAFT_BEHAVIOUR.comment=Determines the behaviour of light shafts. §a[+]§r Scene Aware Light Shafts automatically transition between regular and extreme modes to provide the best results. §c[-]§r Extreme mode is not recommended for general gameplay, and it can severely impact performance. +value.LIGHTSHAFT_BEHAVIOUR.0=§cOFF +value.LIGHTSHAFT_BEHAVIOUR.1=Scene Aware §a[+] +value.LIGHTSHAFT_BEHAVIOUR.2=Regular +value.LIGHTSHAFT_BEHAVIOUR.3=Extreme §c[-] + +option.LIGHTSHAFT_SMOKE=Light Shaft Smoke +option.LIGHTSHAFT_SMOKE.comment=Adds volumetric smoke to the light shafts. §c[-]§r This effect can impact performance. + +option.SPECIAL_PALE_GARDEN_LIGHTSHAFTS=Special Pale Garden Shafts +option.SPECIAL_PALE_GARDEN_LIGHTSHAFTS.comment=Makes light shafts look extra spicy in the "Pale Garden" biome. + +option.LIGHTSHAFT_DAY_I=Light Shaft Day Multiplier +option.LIGHTSHAFT_NIGHT_I=Light Shaft Night Multiplier +option.LIGHTSHAFT_RAIN_I=Light Shaft Rain Multiplier + +option.CLOUD_STYLE_DEFINE=Cloud Style +option.CLOUD_STYLE_DEFINE.comment=Determines the style of clouds. §e[*]§r "Set by Style" means that the setting will be automatically determined by the "Visual Style" setting in the main menu of Shader Options. §e[*]§r The "Vanilla" style requires clouds to be enabled in Video Settings. +value.CLOUD_STYLE_DEFINE.-1=Set by Style +value.CLOUD_STYLE_DEFINE.0=§cOFF +value.CLOUD_STYLE_DEFINE.1=Reimagined +value.CLOUD_STYLE_DEFINE.3=Unbound +value.CLOUD_STYLE_DEFINE.50=Vanilla §e[*] + +option.CLOUD_SHADOWS=Cloud Shadows +option.CLOUD_SHADOWS.comment=Enables shadows that are cast from the clouds. §e[*]§r This setting only works with the "Reimagined" or "Unbound" Cloud Styles. §e[*]§r Cloud shadows will be randomly generated if Cloud Style is set to "Unbound", because of the extra complexity of Unbound clouds. + +option.CLOUD_CLOSED_AREA_CHECK=Prevent Clouds in Interiors +option.CLOUD_CLOSED_AREA_CHECK.comment=Does additional checks to remove clouds in closed areas. §e[*]§r This setting only works with the "Reimagined" or "Unbound" Cloud Styles. §e[*]§r This setting will be disabled if "Real-Time Shadows" is OFF. + +option.CLOUD_ALT1=Cloud Altitude +option.CLOUD_ALT1.comment=Determines the world height which the clouds will appear at. §e[*]§r This setting only works with the "Reimagined" or "Unbound" Cloud Styles. + +option.CLOUD_SPEED_MULT=Cloud Speed +option.CLOUD_SPEED_MULT.comment=Determines how fast the clouds are going to move. "Synced to World Time" setting uses Minecraft world time to advance the cloud positions; this allows for clouds to appear the same between players in the same server. §e[*]§r This setting only works with the "Reimagined" or "Unbound" Cloud Styles. +value.CLOUD_SPEED_MULT.100=Synced to World Time + +option.CLOUD_R=Cloud Red Multiplier +option.CLOUD_G=Cloud Green Multiplier +option.CLOUD_B=Cloud Blue Multiplier + +option.CLOUD_UNBOUND_AMOUNT=Cloud Amount +option.CLOUD_UNBOUND_AMOUNT.comment=Adjusts the amount of Unbound clouds. + +option.CLOUD_UNBOUND_SIZE_MULT=Cloud Smallness +option.CLOUD_UNBOUND_SIZE_MULT.comment=Adjusts the size of Unbound clouds. Higher values produce smaller clouds. + +option.CLOUD_UNBOUND_RAIN_ADD=Rain Cloud Addition +option.CLOUD_UNBOUND_RAIN_ADD.comment=Adjusts the cloud amount increase that gets applied during rain/snow. +prefix.CLOUD_UNBOUND_RAIN_ADD=+ + +option.DOUBLE_REIM_CLOUDS=Double Reimagined Clouds +option.DOUBLE_REIM_CLOUDS.comment=Enables a secondary Reimagined cloud layer. §e[*]§r This setting only works with the "Reimagined" Cloud Style. + +option.CLOUD_ALT2=Cloud Layer 2 Altitude +option.CLOUD_ALT2.comment=Determines the world height which the second layer clouds will appear at. §e[*]§r This setting only works when the "Double Reimagined Clouds" option is enabled with the "Reimagined" Cloud Style. + +option.NETHER_STORM=Nether Storm +option.NETHER_STORM.comment=Adds a smoke-like volumetric effect to the Nether dimension. §c[-]§r This effect can impact performance. + +option.NETHER_STORM_I=Nether Storm Opacity +option.NETHER_STORM_I.comment=Adjusts the opacity of the Nether Storm. + +option.NETHER_STORM_LOWER_ALT=Nether Storm Lower Altitude +option.NETHER_STORM_LOWER_ALT.comment=Determines the lower starting point of the Nether Storm. The Nether Storm won't appear below this altitude, and it will look the most bright right above this altitude. + +option.NETHER_STORM_HEIGHT=Nether Storm Height +option.NETHER_STORM_HEIGHT.comment=Determines how tall the Nether Storm will form. Decrasing this value will result in the Nether Storm gathering near the "Nether Storm Lower Altitude". + +option.NETHER_VIEW_LIMIT=Nether View Limit +option.NETHER_VIEW_LIMIT.comment=Determines the maximum distance that the fog allows to be visible in the Nether. §c[-]§r Increasing this setting can impact performance when "Nether Storm" is enabled. +value.NETHER_VIEW_LIMIT.96.0=6 Chunks +value.NETHER_VIEW_LIMIT.112.0=7 Chunks +value.NETHER_VIEW_LIMIT.128.0=8 Chunks +value.NETHER_VIEW_LIMIT.160.0=10 Chunks +value.NETHER_VIEW_LIMIT.192.0=12 Chunks +value.NETHER_VIEW_LIMIT.224.0=14 Chunks +value.NETHER_VIEW_LIMIT.256.0=16 Chunks +value.NETHER_VIEW_LIMIT.320.0=20 Chunks +value.NETHER_VIEW_LIMIT.384.0=24 Chunks +value.NETHER_VIEW_LIMIT.512.0=32 Chunks §c[-] +value.NETHER_VIEW_LIMIT.768.0=48 Chunks §c[-] +value.NETHER_VIEW_LIMIT.1024.0=64 Chunks §c[-] +value.NETHER_VIEW_LIMIT.99999.0=Limitless §c[-] + +option.NETHER_COLOR_MODE=Color Mode +option.NETHER_COLOR_MODE.comment=Determines how the ambience colors will be handled in the Nether. Constant: Colors won't change between biomes. Biome Based: Colors will change depending on the biome. Biome Based (Modified): Biome based, but the colors have been rebalanced to better suit the default visual direction of Complementary. +value.NETHER_COLOR_MODE.3=Biome Based (Modified) +value.NETHER_COLOR_MODE.2=Biome Based +value.NETHER_COLOR_MODE.0=Constant + +option.T_EXPOSURE=General Brightness +option.T_EXPOSURE.comment=Also known as "Tonemap Exposure". Adjusts the overall brightness of the whole image. + +option.TM_WHITE_CURVE=White Brightness +option.TM_WHITE_CURVE.comment=Also known as "Tonemap White Curve". Adjusts how easily the colors reach to full white. + +option.T_UPPER_CURVE=Contrast of Brighter Colors +option.T_UPPER_CURVE.comment=Also known as "Tonemap Upper Curve". Adjusts contrast of brighter colors. + +option.T_LOWER_CURVE=Contrast of Darker Colors +option.T_LOWER_CURVE.comment=Also known as "Tonemap Lower Curve". Adjusts contrast of darker colors. + +option.T_SATURATION=Saturation +option.T_SATURATION.comment=Adjusts overall colorfulness of the image. + +option.T_VIBRANCE=Saturation of Paler Colors +option.T_VIBRANCE.comment=Also known as "Vibrance". Adjusts the colorfulness of the image, but already colorful pixels are less affected. + +option.COLORGRADING=§eColor Grading +option.COLORGRADING.comment=Enables settings to freely mix up the final color channels. +option.GR_RR=Red to Red +option.GR_RG=Red to Green +option.GR_RB=Red to Blue +option.GR_RC=Red Curve +option.GR_GR=Green to Red +option.GR_GG=Green to Green +option.GR_GB=Green to Blue +option.GR_GC=Green Curve +option.GR_BR=Blue to Red +option.GR_BG=Blue to Green +option.GR_BB=Blue to Blue +option.GR_BC=Blue Curve + +option.WATER_STYLE_DEFINE=Water Style +option.WATER_STYLE_DEFINE.comment=Determines the style of water. §e[*]§r "Set by Style" means that the setting will be automatically determined by the "Visual Style" setting in the main menu of Shader Options. +value.WATER_STYLE_DEFINE.-1=Set by Style +value.WATER_STYLE_DEFINE.1=Reimagined +value.WATER_STYLE_DEFINE.2=Reimagined + Waves +value.WATER_STYLE_DEFINE.3=Unbound + +option.WATER_CAUSTIC_STYLE_DEFINE=Water Caustic Style +option.WATER_CAUSTIC_STYLE_DEFINE.comment=Determines the style of water shadows, also known as water caustics. +value.WATER_CAUSTIC_STYLE_DEFINE.-1=Same as Water +value.WATER_CAUSTIC_STYLE_DEFINE.1=Reimagined +value.WATER_CAUSTIC_STYLE_DEFINE.3=Unbound + +option.WATER_REFRACTION_INTENSITY=Water Refraction Intensity §e[*]§r +option.WATER_REFRACTION_INTENSITY.comment=Adjusts the intensity of water refraction and underwater distortion. §e[*]§r This setting only fully works when Detail Quality is set to "High", or else it will only affect the subtle underwater distortion. + +option.WATER_FOAM_I=Water Foam Intensity +option.WATER_FOAM_I.comment=Determines the opacity of foam seen on water edges. §e[*]§r This setting only works when Detail Quality is set to Medium or higher. + +option.WATER_ALPHA_MULT=Water Opacity Factor +option.WATER_ALPHA_MULT.comment=Adjusts how opaque the water looks. §c[-]§r Extreme values will break the balance of water lighting. §e[*]§r This setting only works when Detail Quality is set to Medium or higher. + +option.WATER_FOG_MULT=Water Fog Factor +option.WATER_FOG_MULT.comment=Adjusts how close the water fog looks. Higher values provide closer fog. §c[-]§r Extreme values will break the balance of water lighting. + +option.WATERCOLOR_R=Water Surface Red Multiplier +option.WATERCOLOR_G=Water Surface Green Multiplier +option.WATERCOLOR_B=Water Surface Blue Multiplier + +option.WATERCOLOR_MODE=Color Mode +option.WATERCOLOR_MODE.comment=Determines how the water color will be handled. Constant: Water colors won't change between biomes. Biome Based: Color will change depending on the biome. Biome Based (Clamped): Biome based, but prevents the surface color from getting weird in certain biomes. §e[*]§r This setting won't work correctly on Minecraft versions below 1.13. +value.WATERCOLOR_MODE.3=Biome Based (Clamped) +value.WATERCOLOR_MODE.2=Biome Based +value.WATERCOLOR_MODE.0=Constant + +option.BRIGHT_CAVE_WATER=Brighter Shallow/Cave Water +option.BRIGHT_CAVE_WATER.comment=Makes shallow water or water in closed areas brighter to improve visibility in caves, and add some color detail to the shallow parts of oceans. §e[*]§r This effect won't work if Water Opacity Factor is set higher than 199 for technical reasons. + +option.UNDERWATERCOLOR_R=Underwater Red Multiplier +option.UNDERWATERCOLOR_G=Underwater Green Multiplier +option.UNDERWATERCOLOR_B=Underwater Blue Multiplier + +option.WATER_BUMPINESS=Wave Strength +option.WATER_BUMPINESS.comment=Adjusts the intensity of surface-direction waves (normals) seen on water. + +option.WATER_BUMP_SMALL=Wave Strength - Small Waves +option.WATER_BUMP_SMALL.comment=Adjusts the intensity of waves that are smaller than others. + +option.WATER_BUMP_MED=Wave Strength - Medium Waves +option.WATER_BUMP_MED.comment=Adjusts the intensity of waves that are average-sized compared to others. + +option.WATER_BUMP_BIG=Wave Strength - Large Waves +option.WATER_BUMP_BIG.comment=Adjusts the intensity of waves that are larger than others. + +option.WATER_SPEED_MULT=Wave Speed +option.WATER_SPEED_MULT.comment=Adjusts the movement speed of surface-direction waves (normals) seen on water. + +option.WATER_SIZE_MULT=Wave Size +option.WATER_SIZE_MULT.comment=Adjusts how big the surface-direction waves (normals) look on water. + +option.SUN_ANGLE=Sun/Moon Angle +option.SUN_ANGLE.comment=Adjusts the angle of sun/moon relative to the world during noon. §a[+]§r Reimagined's lighting model is specially designed to make the "0" sun angle work just as well as others. +value.SUN_ANGLE.-1=Set by Style +value.SUN_ANGLE.0=0 §r(§bReimagined§r) +value.SUN_ANGLE.-40=-40 §r(§dUnbound§r) + +option.SUN_MOON_STYLE_DEFINE=Sun/Moon Style +option.SUN_MOON_STYLE_DEFINE.comment=Determines the style of sun/moon. §e[*]§r This setting might interact incorrectly with some resource packs due to the limitations of sun/moon/skybox differentiation. +value.SUN_MOON_STYLE_DEFINE.-1=Set by Style +value.SUN_MOON_STYLE_DEFINE.1=Reimagined +value.SUN_MOON_STYLE_DEFINE.2=Unbound +value.SUN_MOON_STYLE_DEFINE.3=Unbound - Smaller + +option.SUN_MOON_HORIZON=Sun/Moon Horizon +option.SUN_MOON_HORIZON.comment=Prevents the sun/moon from appearing below the horizon line. + +option.SUN_MOON_DURING_RAIN=Sun/Moon During Rain +option.SUN_MOON_DURING_RAIN.comment=Determines if the sun and moon will be visible during rain or not. + +option.NIGHT_STAR_AMOUNT=Night Star Amount +option.NIGHT_STAR_AMOUNT.comment=Determines the amount of stars in the night sky. +value.NIGHT_STAR_AMOUNT.2=Medium +value.NIGHT_STAR_AMOUNT.3=High + +option.RAINBOWS=Rainbows +option.RAINBOWS.comment=Enables rainbows that appear at the opposite side of the sun during the morning/evening. +value.RAINBOWS.0=OFF +value.RAINBOWS.1=After Rain +value.RAINBOWS.3=Always + +option.AURORA_STYLE_DEFINE=Aurora Borealis Style +option.AURORA_STYLE_DEFINE.comment=Determines the style of northern lights that appear in the night sky. +value.AURORA_STYLE_DEFINE.-1=Set by Style +value.AURORA_STYLE_DEFINE.0=§cOFF +value.AURORA_STYLE_DEFINE.1=Reimagined +value.AURORA_STYLE_DEFINE.2=Unbound + +option.AURORA_CONDITION=Aurora C. +option.AURORA_CONDITION.comment=Aurora Condition setting determines the condition(s) for the Aurora Borealis to appear. §e[*]§r Aurora Borealis will only appear during night regardless of this setting +value.AURORA_CONDITION.0=Every Night +value.AURORA_CONDITION.1=Full Moon +value.AURORA_CONDITION.2=Snowy Biome +value.AURORA_CONDITION.3=Full Moon in Snowy Biome +value.AURORA_CONDITION.4=Full Moon or Snowy Biome + +option.NIGHT_NEBULA=Night Nebulae +option.NIGHT_NEBULA.comment=Adds galaxy-style nebulae to the night sky. The nebulae are procedurally generated, and they will look different every night. §c[-]§r This effect can impact performance. §e[*]§r "Nebulae" isn't a typo, it's the plural of Nebula =D + +option.NIGHT_NEBULA_I=Night Nebula Brightness +option.NIGHT_NEBULA_I.comment=Adjusts the brightness of Night Nebulae. + +option.RAIN_STYLE=Rainy Weather Style +option.RAIN_STYLE.comment=Determines the style of rainy weather. +value.RAIN_STYLE.1=Light & Warmer +value.RAIN_STYLE.2=Heavy & Colder + +option.SPECIAL_BIOME_WEATHER=Special Cold/Dry Weather +option.SPECIAL_BIOME_WEATHER.comment=Changes the atmosphere balance in cold and dry biomes to make things feel like a snowstorm or sandstorm. + +option.WEATHER_TEX_OPACITY=Weather Texture Opacity +option.WEATHER_TEX_OPACITY.comment=Adjusts the opacity of the rainfall/snowfall weather textures. + +option.SHADOW_SMOOTHING=Shadow Smoothing +option.SHADOW_SMOOTHING.comment=Determines the sharpness of shadows. §c[-]§r Lowering this setting will increase shadow flickering and impact performance. §e[*]§r This setting only works if "Real-Time Shadows" is set to Low or higher. +value.SHADOW_SMOOTHING.4=Very Smooth +value.SHADOW_SMOOTHING.3=Smooth +value.SHADOW_SMOOTHING.2=Sharp §c[-] +value.SHADOW_SMOOTHING.1=Very Sharp §c[-] + +option.PIXELATED_SHADOWS=Pixelated Shadows +option.PIXELATED_SHADOWS.comment=Makes shadows cast from the sun and moon look pixelated. + +option.PIXELATED_BLOCKLIGHT=Pixelated Blocklight +option.PIXELATED_BLOCKLIGHT.comment=Makes the lighting cast by light source blocks look pixelated. + +option.PIXELATED_AO=Pixelated Edge Shadows +option.PIXELATED_AO.comment=Makes Minecraft's vanilla ambient occlusion look pixelated. + +option.PIXEL_SCALE=Pixelation Scale +option.PIXEL_SCALE.comment=Scaling done on the textures resolution. +value.PIXEL_SCALE.-2=0.25x +value.PIXEL_SCALE.-1=0.5x +value.PIXEL_SCALE.1=1x +value.PIXEL_SCALE.2=2x +value.PIXEL_SCALE.3=4x +value.PIXEL_SCALE.4=8x +value.PIXEL_SCALE.5=16x + +option.BLOOM=Bloom +option.BLOOM.comment=Enables blurry glow from bright objects and humidity. + +option.BLOOM_STRENGTH=Bloom Strength +option.BLOOM_STRENGTH.comment=Determines the intensity of glow on bright things, and the bloom from rain/cave humidity. §c[-]§r Too much bloom will cause the image to get blurrier and brighter than intended, especially in humid conditions. +value.BLOOM_STRENGTH.0.027=15% +value.BLOOM_STRENGTH.0.036=20% +value.BLOOM_STRENGTH.0.045=25% +value.BLOOM_STRENGTH.0.054=30% +value.BLOOM_STRENGTH.0.063=35% +value.BLOOM_STRENGTH.0.072=40% +value.BLOOM_STRENGTH.0.081=45% +value.BLOOM_STRENGTH.0.09=50% +value.BLOOM_STRENGTH.0.10=55% +value.BLOOM_STRENGTH.0.11=60% +value.BLOOM_STRENGTH.0.12=65% +value.BLOOM_STRENGTH.0.13=70% +value.BLOOM_STRENGTH.0.14=75% +value.BLOOM_STRENGTH.0.15=80% §c[-] +value.BLOOM_STRENGTH.0.16=85% §c[-] +value.BLOOM_STRENGTH.0.17=90% §c[-] +value.BLOOM_STRENGTH.0.18=95% §c[-] +value.BLOOM_STRENGTH.0.19=100% §c[-] +value.BLOOM_STRENGTH.0.21=110% §c[-] +value.BLOOM_STRENGTH.0.23=120% §c[-] +value.BLOOM_STRENGTH.0.25=130% §c[-] +value.BLOOM_STRENGTH.0.28=150% §c[-] +value.BLOOM_STRENGTH.0.32=180% §c[-] +value.BLOOM_STRENGTH.10.00=§cInsane + +option.IMAGE_SHARPENING=Image Sharpening +option.IMAGE_SHARPENING.comment=Makes the image sharper using a filter. §c[-]§r Too much sharpening might cause visual artifacts like aliasing, flickering, noise, and subtle brightness changes. +value.IMAGE_SHARPENING.0=OFF +value.IMAGE_SHARPENING.1=1x +value.IMAGE_SHARPENING.2=2x +value.IMAGE_SHARPENING.3=3x +value.IMAGE_SHARPENING.4=4x +value.IMAGE_SHARPENING.5=5x +value.IMAGE_SHARPENING.6=6x §c[-] +value.IMAGE_SHARPENING.7=7x §c[-] +value.IMAGE_SHARPENING.8=8x §c[-] +value.IMAGE_SHARPENING.9=9x §c[-] +value.IMAGE_SHARPENING.10=10x §c[-] + +option.LENSFLARE_MODE=Lens Flare +option.LENSFLARE_MODE.comment=Adds camera lens reflection effect when towards the sun or moon. §c[-]§r This effect can severely impact performance. +value.LENSFLARE_MODE.0=OFF +value.LENSFLARE_MODE.1=Sun Only +value.LENSFLARE_MODE.2=Sun & Moon + +option.LENSFLARE_I=Lens Flare Intensity +option.LENSFLARE_I.comment=Adjusts the strength of the Lens Flare effect. + +option.TAA_MODE=Temporal Filter +option.TAA_MODE.comment=Determines the behaviour of temporal anti aliasing. Smart & Subtle §a[+]§r: Temporal filter is applied in small amounts to the image in a way that won't cause artifacts. Intense §e[*]§r: Provides better anti-aliasing, but it will cause extra smudging and flickering; it might be the better choice at a higher frame rate and resolution. OFF §c[-]§r: Turning this off will cause worse performance and worse effect quality. +value.TAA_MODE.1=Smart & Subtle §a[+] +value.TAA_MODE.2=Intense §e[*] +value.TAA_MODE.0=OFF §c[-] + +option.DISTANT_LIGHT_BOKEH=Distant Light Bokeh +option.DISTANT_LIGHT_BOKEH.comment=Makes distant light sources look scattered by applying a single pixel blur in the distance. §a[+]§r This effect benefits from IntegratedPBR+ (optional) by adjusting distant light sources for better looks. + +option.MOTION_BLURRING=Motion Blur +option.MOTION_BLURRING.comment=Applies blur to the image when moving the camera. + +option.MOTION_BLURRING_STRENGTH=Motion Blur Strength +option.MOTION_BLURRING_STRENGTH.comment=Adjusts the intensity of motion blur. + +option.WORLD_BLUR=§eWorld Blur +option.WORLD_BLUR.comment=Enables world blurring. Distance Blur: Blur gets applied like fog, depending on the distance from the camera. Depth of Field: Blurring happens depending on the focus point of the camera. §c[-]§r This effect can severely impact performance. +value.WORLD_BLUR.0=OFF +value.WORLD_BLUR.1=Distance Blur +value.WORLD_BLUR.2=Depth of Field + +option.WB_FOV_SCALED=FOV Scaled Blur +option.WB_FOV_SCALED.comment=Scales World Blur to the camera Field of View. World Blur will get more intense if you zoom in with this enabled. + +option.WB_CHROMATIC=Chromatic Blur +option.WB_CHROMATIC.comment=Applies chromatic aberration to the blurry areas, separating different colors in blurred areas. + +option.WB_ANAMORPHIC=Anamorphic Blur +option.WB_ANAMORPHIC.comment=Stretches the blur in one direction. §c[-]§r This option can reduce the quality of the World Blur + +option.WB_DOF_I=Depth of Field Strength +option.WB_DOF_FOCUS=Depth of Field Focus +option.WB_DOF_FOCUS.comment=Determines the focus distance of the camera. Automatic: The focus point will be adjusted according to the center point of the screen. Brightness: The focus point will be determined by the "Brightness" slider in Video Settings. +value.WB_DOF_FOCUS.-1=Brightness §e[*] +value.WB_DOF_FOCUS.0=Automatic + +option.WB_DB_DAY_I=Dis. Blur - Day +option.WB_DB_NIGHT_I=Dis. Blur - Night & Interiors +option.WB_DB_RAIN_I=Dis. Blur - Rain & Snow +option.WB_DB_WATER_I=Dis. Blur - Underwater +option.WB_DB_NETHER_I=Dis. Blur - The Nether +option.WB_DB_END_I=Dis. Blur - The End + +option.VIGNETTE_R=Vignette +option.VIGNETTE_R.comment=Applies darkening around the edges of the screen. + +option.CHROMA_ABERRATION=Chromatic Aberration +option.CHROMA_ABERRATION.comment=Separates different colors towards the edges of the screen. §c[-]§r Chromatic Aberration can cause the image to feel blurry; high values aren't recommended for gameplay. +value.CHROMA_ABERRATION.4=4 §c[-] +value.CHROMA_ABERRATION.5=5 §c[-] +value.CHROMA_ABERRATION.6=6 §c[-] +value.CHROMA_ABERRATION.7=7 §c[-] +value.CHROMA_ABERRATION.8=8 §c[-] + +option.IPBR_EMISSIVE_MODE=IPBR+ Emissive Mode +option.IPBR_EMISSIVE_MODE.comment=Determines the handling of emissives within IntegratedPBR+. Choosing the labPBR or seuspbr options allow compatible resource packs to completely override IPBR+ emissives on blocks that have specular textures attached to them. §c[-]§r It's not recommended to change this setting unless you know what you are doing. +value.IPBR_EMISSIVE_MODE.1=IPBR+ Only +value.IPBR_EMISSIVE_MODE.3=labPBR > IPBR+ +value.IPBR_EMISSIVE_MODE.2=seuspbr > IPBR+ + +option.IPBR_COMPATIBILITY_MODE=IPBR+ Compatibility Mode +option.IPBR_COMPATIBILITY_MODE.comment=Changes how some IPBR+ features are calculated to be less aggressive in order to cause less problems with resource packs, or mods. + +option.IPBR_PARTICLE_FEATURES=IPBR+ Particle Features +option.IPBR_PARTICLE_FEATURES.comment=Enables several features for particles, including things like glowing lava particles and better-colored water particles. + +option.FANCY_GLASS=Improved Glass +option.FANCY_GLASS.comment=Improves the regular glass by adding a translucent layer to it. §c[-]§r Does not work on older Iris versions. §e[*]§r RP Support option must be set to Integrated PBR+. + +option.GREEN_SCREEN_LIME=Green Screen Lime Blocks +option.GREEN_SCREEN_LIME.comment=Turns "Lime Concrete", "Lime Wool", and "Lime Carpet" into green screens for video editing. Tip 1: Turn off "Bloom" option to improve separation. Tip 2: Put lights under lime carpets for lighting. Tip 3: You can turn off Anti-Aliasing (FXAA) and set Detail Quality to Potato in Performance Settings to disable all filtering and get pixel-perfect separation. + +option.HAND_SWAYING=Hand Sway +option.HAND_SWAYING.comment=Adds slow movement to the player hand to simulate a breathing animation. +value.HAND_SWAYING.0=OFF +value.HAND_SWAYING.1=Subtle +value.HAND_SWAYING.2=Normal +value.HAND_SWAYING.3=Intense + +option.LESS_LAVA_FOG=Less Fog Inside Lava or Snow +option.LESS_LAVA_FOG.comment=Reduces the lava fog and powder snow fog to improve visibility inside them. + +option.REDUCE_CLOSE_PARTICLES=Reduce Close-up Particles +option.REDUCE_CLOSE_PARTICLES.comment=Reduces the opacity of particles that are close to the camera to improve visibility. + +option.SNOWY_WORLD=Snowy World +option.SNOWY_WORLD.comment=Makes the entire world covered with snow. + +option.SHOW_LIGHT_LEVEL=Show Light Levels +option.SHOW_LIGHT_LEVEL.comment=In Overworld: Yellow means mobs can spawn during night time, red means mobs can spawn anytime. In Nether or End: Yellow means some mobs can spawn, red means all mobs can spawn. §e[*]§r Disable Smooth Lighting for precise results. +value.SHOW_LIGHT_LEVEL.0=OFF +value.SHOW_LIGHT_LEVEL.1=Hold Spider Eye +value.SHOW_LIGHT_LEVEL.2=Hold Light Source +value.SHOW_LIGHT_LEVEL.3=Always ON + +option.COLOR_CODED_PROGRAMS=Color Coded Programs §c[-]§r +option.COLOR_CODED_PROGRAMS.comment=Shows which shader programs are being used to render geometry. §c[-]§r This option is only for development purposes and shouldn't be used for gameplay. §e[*]§r Color values can be found in the shader pack files: shaders/lib/misc/colorCodedPrograms.glsl + +option.GLOWING_COLORED_PARTICLES=Force Glowing Particles §c[-]§r +option.GLOWING_COLORED_PARTICLES.comment=Makes all particles that are technically "colored" turn emissive. §c[-]§r This option isn't recommended for general gameplay as it makes a lot of particles glow when they are made of materials that shouldn't glow at all. + +option.CAVE_LIGHTING=Cave Lighting Multiplier +option.CAVE_LIGHTING.comment=Adds extra lighting to areas that don't have skylight. §e[*]§r Cave lighting is also affected by the "Brightness" slider in Video Settings. §c[-]§r Drastically changing this setting can break the lighting balance. + +option.AMBIENT_MULT=Shadow Light Multiplier +option.AMBIENT_MULT.comment=Determines the amount of ambient lighting seen in shadows. §c[-]§r Drastically changing this setting can break the lighting balance. + +option.PLAYER_SHADOW=Player Shadow §e[*]§r +option.PLAYER_SHADOW.comment=Determines if the player will cast a shadow or not. §e[*]§r This setting only works on Iris. §e[*]§r This setting will be disabled if "Real-Time Shadows" is OFF. +value.PLAYER_SHADOW.-1=OFF +value.PLAYER_SHADOW.1=ON + +option.GENERATED_NORMALS=Generated Normals +option.GENERATED_NORMALS.comment=Adds auto-generated bumpy details to surfaces. §e[*]§r RP Support option must be set to Integrated PBR+. + +option.COATED_TEXTURES=Coated Textures +option.COATED_TEXTURES.comment=Adds auto-generated dusty details to textures. §e[*]§r RP Support option must be set to Integrated PBR+. + +option.ENTITY_GN_AND_CT=Allow GN and CT on Entities +option.ENTITY_GN_AND_CT.comment=Decides if Generated Normals and Coated Textures can appear on entities. §e[*]§r This won't enable GN or CT on entities if the main GN or CT options are disabled. + +option.GENERATED_NORMAL_MULT=Generated Normal Strength +option.GENERATED_NORMAL_MULT.comment=Adjusts the strength of auto-generated bumpy details on surfaces. + +option.COATED_TEXTURE_MULT=Coated Texture Strength +option.COATED_TEXTURE_MULT.comment=Adjusts the strength of auto-generated dusty details on textures. + +option.GLOWING_ORE_MASTER=§eEnable Glowing Ores +option.GLOWING_ORE_MASTER.comment=Enables the functionality of glowing ores. §e[*]§r Choosing "Set By Style" will only enable glowing ores if the "Visual Style" is set to "Unbound". §e[*]§r The settings below won't work if this option isn't enabled. +value.GLOWING_ORE_MASTER.0=§cOFF +value.GLOWING_ORE_MASTER.1=Set By Style +value.GLOWING_ORE_MASTER.2=§aON + +option.GLOWING_ORE_MULT=Ore Glow Strength +option.GLOWING_ORE_MULT.comment=Determines the emission strength of glowing ores. + +option.GLOWING_ORE_IRON=Glowing Iron Ore +option.GLOWING_ORE_GOLD=Glowing Gold Ore +option.GLOWING_ORE_COPPER=Glowing Copper Ore +option.GLOWING_ORE_REDSTONE=Glowing Redstone Ore §e[*]§r +option.GLOWING_ORE_REDSTONE.comment=§e[*]§r All redstone ores will still glow if they are "activated" regardless of this setting. +option.GLOWING_ORE_LAPIS=Glowing Lapis Lazuli Ore +option.GLOWING_ORE_EMERALD=Glowing Emerald Ore +option.GLOWING_ORE_DIAMOND=Glowing Diamond Ore +option.GLOWING_ORE_NETHERQUARTZ=Glowing Nether Quartz Ore +option.GLOWING_ORE_NETHERGOLD=Glowing Nether Gold Ore +option.GLOWING_ORE_GILDEDBLACKSTONE=Glowing Gilded Blackstone +option.GLOWING_ORE_ANCIENTDEBRIS=Glowing Ancient Debris +option.GLOWING_ORE_MODDED=Glowing Modded Ores §e[*]§r +option.GLOWING_ORE_MODDED.comment=§e[*]§r You can add modded ore IDs to "Complementary-->shaders-->block.properties" file in order to make them glow. You can open block.properties using any text editor like notepad, and then add modded ore block IDs next to "block.10024=". + +option.GLOWING_AMETHYST=Glowing Amethyst +value.GLOWING_AMETHYST.0=§cOFF +value.GLOWING_AMETHYST.1=Crystal +value.GLOWING_AMETHYST.2=Crystal & Block + +option.GLOWING_LICHEN=Glowing Glow Lichen +value.GLOWING_LICHEN.0=§cOFF +value.GLOWING_LICHEN.1=In Closed Areas +value.GLOWING_LICHEN.2=Always + +option.EMISSIVE_REDSTONE_BLOCK=Glowing Redstone Block + +option.EMISSIVE_LAPIS_BLOCK=Glowing Lapis Lazuli Block + +option.GLOWING_ARMOR_TRIM=Glowing Armor Trim §e[*]§r +option.GLOWING_ARMOR_TRIM.comment=Makes armor trims emissive. §e[*]§r This feature only works on Iris, as Optifine doesn't support armor trim detection. + +option.NORMAL_MAP_STRENGTH=Normal Map Strength +option.NORMAL_MAP_STRENGTH.comment=Adjusts the strength of bumpy details on surfaces. §e[*]§r RP Support option must be set to labPBR/seuspbr, and a compatible resource pack must be used. + +option.CUSTOM_EMISSION_INTENSITY=Custom Emission Intensity +option.CUSTOM_EMISSION_INTENSITY.comment=Adjusts the intensity of glowing surfaces. §e[*]§r RP Support option must be set to labPBR/seuspbr, and a compatible resource pack must be used. + +option.POM=Parallax Occlusion Mapping +option.POM.comment=Enables 3D effect on surfaces. §c[-]§r This effect can severely impact performance. §e[*]§r RP Support option must be set to labPBR/seuspbr, and a compatible resource pack must be used. +value.POM.false=OFF +value.POM.true=ON §c[-] + +option.POM_DEPTH=POM Depth +option.POM_DEPTH.comment=Adjusts the depth of parallax occlusion mapping. §e[*]§r RP Support option must be set to labPBR/seuspbr, and a compatible resource pack must be used. + +option.POM_QUALITY=POM Quality +option.POM_QUALITY.comment=Adjusts the sharpness/accuracy of parallax occlusion mapping. §c[-]§r Values higher than 200 can severely impact performance. §e[*]§r Values lower than 100 will force "POM Lighting Mode" to "Smooth". §e[*]§r RP Support option must be set to labPBR/seuspbr, and a compatible resource pack must be used. +value.POM_QUALITY.16=16 §e[*] +value.POM_QUALITY.32=32 §e[*] +value.POM_QUALITY.64=64 §e[*] +value.POM_QUALITY.256=256 §c[-] +value.POM_QUALITY.512=512 §c[-] + +option.POM_DISTANCE=POM Distance +option.POM_DISTANCE.comment=Adjusts how far parallax occlusion mapping is calculated. §e[*]§r It's recommended to keep this value below 50 to get a small performance gain. §e[*]§r RP Support option must be set to labPBR/seuspbr, and a compatible resource pack must be used. +value.POM_DISTANCE.64=64 §e[*] +value.POM_DISTANCE.128=128 §e[*] +value.POM_DISTANCE.256=256 §e[*] +value.POM_DISTANCE.512=512 §e[*] +value.POM_DISTANCE.1024=1024 §e[*] + +option.POM_LIGHTING_MODE=POM Lighting Mode +option.POM_LIGHTING_MODE.comment=Adjusts the lighting style for POM-affected surfaces. Sharp: POM walls won't get light if they aren't facing towards the light. Smooth: POM walls will still get light as if they are not walls. §e[*]§r This option will be forced to "Smooth" if POM Quality is set lower than 100. +value.POM_LIGHTING_MODE.1=Smooth +value.POM_LIGHTING_MODE.2=Sharp + +option.POM_ALLOW_CUTOUT=POM on Cutout Surfaces §c[-]§r +option.POM_ALLOW_CUTOUT.comment=Makes POM be able to work on cutout block sections (like gaps of leaves). §c[-]§r This effect can severely impact performance. + +option.DIRECTIONAL_BLOCKLIGHT=Directional Blocklight +option.DIRECTIONAL_BLOCKLIGHT.comment=Adds depth to blocklight depending on the surface normal. §c[-]§r May cause visual artifacts in some situations. §c[-]§r This effect can impact performance. §e[*]§r RP Support option must be set to labPBR/seuspbr, and a compatible resource pack must be used. +value.DIRECTIONAL_BLOCKLIGHT.0=OFF +value.DIRECTIONAL_BLOCKLIGHT.3=Subtle §c[-] +value.DIRECTIONAL_BLOCKLIGHT.7=Normal §c[-] +value.DIRECTIONAL_BLOCKLIGHT.11=Intense §c[-] + +option.HELD_LIGHTING_MODE=Dynamic Handheld Lighting +option.HELD_LIGHTING_MODE.comment=Allows handheld light sources to cast light onto the scene. +value.HELD_LIGHTING_MODE.0=§cOFF +value.HELD_LIGHTING_MODE.1=Subtle +value.HELD_LIGHTING_MODE.2=Normal + +option.BLOCKLIGHT_FLICKERING=Blocklight Flickering +option.BLOCKLIGHT_FLICKERING.comment=Adds a flickering effect to the light cast from blocks. +value.BLOCKLIGHT_FLICKERING.0=OFF + +option.WAVING_SPEED=Waving Speed +option.WAVING_SPEED.comment=Adjusts how quickly the waving effects happen. + +option.WAVING_I=Waving Intensity +option.WAVING_I.comment=Adjusts how much the blocks move when waving. §c[-]§r Too much waving intensity can cause waving blocks to clip in and out of other blocks. +value.WAVING_I.1.25=1.25 §c[-] +value.WAVING_I.1.50=1.50 §c[-] +value.WAVING_I.1.75=1.75 §c[-] +value.WAVING_I.2.00=2.00 §c[-] +value.WAVING_I.50.0=§cInsane + +option.NO_WAVING_INDOORS=No Waving in Closed Areas +option.NO_WAVING_INDOORS.comment=Prevents blocks from waving in closed areas using skylight. §c[-]§r This setting being enabled can cause problems with some resource packs or mods. + +option.WAVING_I_RAIN_MULT=Waving Rain Multiplier +option.WAVING_I_RAIN_MULT.comment=Multiplies the speed and intensity of waving during rain. §c[-]§r Too much waving intensity can cause waving blocks to clip in and out of other blocks. §c[-]§r This setting can impact performance when increased above 100. +value.WAVING_I.125=125 §c[-] +value.WAVING_I.150=150 §c[-] +value.WAVING_I.175=175 §c[-] +value.WAVING_I.200=200 §c[-] + +option.WAVING_FOLIAGE=Waving Grass +option.WAVING_FOLIAGE.comment=Adds movement to grass and other similar foliage to simulate wind. + +option.WAVING_LEAVES=Waving Leaves +option.WAVING_LEAVES.comment=Adds movement to leaves to simulate wind. + +option.WAVING_LAVA=Waving Lava Texture +option.WAVING_LAVA.comment=Adds constant movement to lava. §e[*]§r Lava waving in particular is not affected by the "No Waving in Closed Areas" setting. + +option.WAVING_LILY_PAD=Waving Lily Pad +option.WAVING_LILY_PAD.comment=Adds movement to lily pads and frogspawn to simulate impact from water waves. + +option.WAVING_WATER_VERTEX=Waving Water Height +option.WAVING_WATER_VERTEX.comment=Adds movement to water position to simulate wind. §e[*]§r This option is not related to the "Water Wave Strength" setting. + +option.WAVING_RAIN=Waving Rain/Snow Texture +option.WAVING_RAIN.comment=Adds movement to falling rain and snow textures to make it look more dynamic. + +option.SPECIAL_PORTAL_EFFECTS=Special Portal Effects +option.SPECIAL_PORTAL_EFFECTS.comment=Adds special animations and emission to Nether Portals, End Portals, and End Gateways. + +option.WORLD_OUTLINE=World Outline +option.WORLD_OUTLINE.comment=Adds bright outlines around blocks. §c[-]§r This effect can impact performance. + +option.WORLD_OUTLINE_THICKNESS=World Outline Thickness +option.WORLD_OUTLINE_THICKNESS.comment=Determines the thickness of the World Outline effect. §c[-]§r Increasing this setting can impact performance. + +option.WORLD_OUTLINE_I=World Outline Brightness +option.WORLD_OUTLINE_I.comment=Determines how intense the World Outline effect will be. + +option.WORLD_OUTLINE_ON_ENTITIES=World Outline on Entities +option.WORLD_OUTLINE_ON_ENTITIES.comment=Determines if the World Outline effect will apply to entities or not. §c[-]§r This setting may not work perfectly with some custom PBR resource packs. + +option.DARK_OUTLINE=Dark Outline +option.DARK_OUTLINE.comment=Adds dark outlines around blocks. §c[-]§r This effect can impact performance. + +option.DARK_OUTLINE_THICKNESS=Dark Outline Thickness +option.DARK_OUTLINE_THICKNESS.comment=Determines the thickness of the Dark Outline effect. §c[-]§r Increasing this setting can impact performance. + +option.RAIN_PUDDLES=Rain Puddles +option.RAIN_PUDDLES.comment=Adds water puddles to the terrain during rain. §c[-]§r Rain puddles can severely impact performance. +value.RAIN_PUDDLES.0=OFF +value.RAIN_PUDDLES.1=§aON - Puddles +value.RAIN_PUDDLES.2=§aON - Full Coverage +value.RAIN_PUDDLES.3=§aON - §cAlways§a Puddles +value.RAIN_PUDDLES.4=§aON - §cAlways§a Full + +option.UNDERWATER_DISTORTION=Underwater Distortion +option.UNDERWATER_DISTORTION.comment=Adds subtle refraction to the screen when the camera is inside water. + +option.SELECT_OUTLINE=Selection Outline +option.SELECT_OUTLINE.comment=Determines the color of the block selection outline. +value.SELECT_OUTLINE.0=§cOFF +value.SELECT_OUTLINE.1=Default +value.SELECT_OUTLINE.2=Rainbow +value.SELECT_OUTLINE.3=Select Color +value.SELECT_OUTLINE.4=Versatile + +option.SELECT_OUTLINE_AUTO_HIDE=Auto Hide Selection Outline +option.SELECT_OUTLINE_AUTO_HIDE.comment=Hides the block selection outline if the player isn't holding anything in any of their hands, or only holding a light source in the off-hand. + +option.SELECT_OUTLINE_I=SO Brightness +option.SELECT_OUTLINE_R=SO Red +option.SELECT_OUTLINE_G=SO Green +option.SELECT_OUTLINE_B=SO Blue + +option.MOON_PHASE_INF_LIGHT=Moon Phased Night Lighting +option.MOON_PHASE_INF_LIGHT.comment=Enables different moon phases to change the night lighting brightness. + +option.MOON_PHASE_INF_ATMOSPHERE=Moon Phased Night Atmosphere +option.MOON_PHASE_INF_ATMOSPHERE.comment=Enabled different moon phases to change the night atmosphere brightness. + +option.MOON_PHASE_INF_REFLECTION=Moon Phased Moon Reflection +option.MOON_PHASE_INF_REFLECTION.comment=Enables different moon phases to change the brightness of moon reflections. + +option.MOON_PHASE_FULL=Full Moon Intensity +option.MOON_PHASE_FULL.comment=Adjusts the moon phase influence during the Full Moon phase (brightest phase). + +option.MOON_PHASE_PARTIAL=Partial Moon Intensity +option.MOON_PHASE_PARTIAL.comment=Adjusts the moon phase influence during all moon phases between Full Moon and Dark Moon. This is the phase you will see the most in Minecraft. + +option.MOON_PHASE_DARK=Dark Moon Intensity +option.MOON_PHASE_DARK.comment=Adjusts the moon phase influence during New Moon (darkest phase). + +option.CONNECTED_GLASS_EFFECT=Connected Glass +option.CONNECTED_GLASS_EFFECT.comment=Makes all types of glass connect to each other. §e[*]§r This feature only works if Advanced Colored Lighting is enabled in Performance Settings and your system supports it. §e[*]§r This feature will be automatically disable itself if the "Continuity" mod is installed. + +option.PORTAL_EDGE_EFFECT=Glowing Portal Edges +option.PORTAL_EDGE_EFFECT.comment=Adds an emissive border effect to end and nether portals. §e[*]§r This feature only works if Advanced Colored Lighting is enabled in Performance Settings and your system supports it. + +option.PUDDLE_VOXELIZATION=Fix Puddles Under Glass +option.PUDDLE_VOXELIZATION.comment=Prevents rain puddles from forming in closed areas with glass roofs when the Rain Puddles setting is enabled. §e[*]§r This feature only works if Advanced Colored Lighting is enabled in Performance Settings and your system supports it. + +option.COLORED_CANDLE_LIGHT=Colored Candle Lighting +option.COLORED_CANDLE_LIGHT.comment=Makes lights cast by candles to be the same color as their bases. §e[*]§r The desaturated candle color variants will continue to use the usual fire color. + +option.COLORED_LIGHT_SATURATION=Colored Lighting Saturation +option.COLORED_LIGHT_SATURATION.comment=Adjusts how saturated the colors produced from Advanced Colored Lighting will be. §e[*]§r It's not recommended to change this value, as the visuals are designed to look the most balanced with the default saturation. + +option.COLORED_LIGHT_FOG=Colored Light Fog +option.COLORED_LIGHT_FOG.comment=Adds volumetric blocklight fog to the scene, most visible during the night or underground. §e[*]§r This feature only works if Advanced Colored Lighting is enabled in Performance Settings and your system supports it. §c[-]§r This effect can severely impact performance. + +option.COLORED_LIGHT_FOG_I=Light Fog Intensity +option.COLORED_LIGHT_FOG_I.comment=Determines the brightness of the Colored Light Fog. + +option.LIGHT_COLOR_MULTS=§eLighting Color Multipliers +option.LIGHT_COLOR_MULTS.comment=Enables customization of lighting colors that are seen on all surfaces. + +option.ATM_COLOR_MULTS=§eAtmosphere Color Multipliers +option.ATM_COLOR_MULTS.comment=Enables customization of atmosphere colors that are mostly seen in the sky and fog. + +option.LIGHT_MORNING_R=Lighting Red Multiplier +option.LIGHT_MORNING_G=Lighting Green Multiplier +option.LIGHT_MORNING_B=Lighting Blue Multiplier +option.LIGHT_MORNING_I=Lighting Intensity Multiplier +option.ATM_MORNING_R=Atmosphere Red Multiplier +option.ATM_MORNING_G=Atmosphere Green Multiplier +option.ATM_MORNING_B=Atmosphere Blue Multiplier +option.ATM_MORNING_I=Atmosphere Intensity Multiplier +option.LIGHT_NOON_R=Lighting Red Multiplier +option.LIGHT_NOON_G=Lighting Green Multiplier +option.LIGHT_NOON_B=Lighting Blue Multiplier +option.LIGHT_NOON_I=Lighting Intensity Multiplier +option.ATM_NOON_R=Atmosphere Red Multiplier +option.ATM_NOON_G=Atmosphere Green Multiplier +option.ATM_NOON_B=Atmosphere Blue Multiplier +option.ATM_NOON_I=Atmosphere Intensity Multiplier +option.LIGHT_NIGHT_R=Lighting Red Multiplier +option.LIGHT_NIGHT_G=Lighting Green Multiplier +option.LIGHT_NIGHT_B=Lighting Blue Multiplier +option.LIGHT_NIGHT_I=Lighting Intensity Multiplier +option.ATM_NIGHT_R=Atmosphere Red Multiplier +option.ATM_NIGHT_G=Atmosphere Green Multiplier +option.ATM_NIGHT_B=Atmosphere Blue Multiplier +option.ATM_NIGHT_I=Atmosphere Intensity Multiplier +option.LIGHT_RAIN_R=Lighting Red Multiplier +option.LIGHT_RAIN_G=Lighting Green Multiplier +option.LIGHT_RAIN_B=Lighting Blue Multiplier +option.LIGHT_RAIN_I=Lighting Intensity Multiplier +option.ATM_RAIN_R=Atmosphere Red Multiplier +option.ATM_RAIN_G=Atmosphere Green Multiplier +option.ATM_RAIN_B=Atmosphere Blue Multiplier +option.ATM_RAIN_I=Atmosphere Intensity Multiplier +option.LIGHT_NETHER_R=Lighting Red Multiplier +option.LIGHT_NETHER_G=Lighting Green Multiplier +option.LIGHT_NETHER_B=Lighting Blue Multiplier +option.LIGHT_NETHER_I=Lighting Intensity Multiplier +option.ATM_NETHER_R=Atmosphere Red Multiplier +option.ATM_NETHER_G=Atmosphere Green Multiplier +option.ATM_NETHER_B=Atmosphere Blue Multiplier +option.ATM_NETHER_I=Atmosphere Intensity Multiplier +option.LIGHT_END_R=Lighting Red Multiplier +option.LIGHT_END_G=Lighting Green Multiplier +option.LIGHT_END_B=Lighting Blue Multiplier +option.LIGHT_END_I=Lighting Intensity Multiplier +option.ATM_END_R=Atmosphere Red Multiplier +option.ATM_END_G=Atmosphere Green Multiplier +option.ATM_END_B=Atmosphere Blue Multiplier +option.ATM_END_I=Atmosphere Intensity Multiplier + +option.XLIGHT_R=Blocklight Red Multiplier +option.XLIGHT_G=Blocklight Green Multiplier +option.XLIGHT_B=Blocklight Blue Multiplier +option.XLIGHT_I=Blocklight Intensity \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/antialiasing/fxaa.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/antialiasing/fxaa.glsl new file mode 100644 index 0000000..d479183 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/antialiasing/fxaa.glsl @@ -0,0 +1,194 @@ +#ifdef FXAA_TAA_INTERACTION + ivec2 neighbourhoodOffsets[8] = ivec2[8]( + ivec2( 1, 1), + ivec2( 1,-1), + ivec2(-1, 1), + ivec2(-1,-1), + ivec2( 1, 0), + ivec2( 0, 1), + ivec2(-1, 0), + ivec2( 0,-1) + ); +#endif + +//FXAA 3.11 from http://blog.simonrodriguez.fr/articles/30-07-2016_implementing_fxaa.html +float quality[12] = float[12] (1.0, 1.0, 1.0, 1.0, 1.0, 1.5, 2.0, 2.0, 2.0, 2.0, 4.0, 8.0); + +void FXAA311(inout vec3 color) { + float edgeThresholdMin = 0.03125; + float edgeThresholdMax = 0.0625; + float subpixelQuality = 0.75; + int iterations = 12; + + vec2 view = 1.0 / vec2(viewWidth, viewHeight); + + float lumaCenter = GetLuminance(color); + float lumaDown = GetLuminance(texelFetch(colortex3, texelCoord + ivec2( 0, -1), 0).rgb); + float lumaUp = GetLuminance(texelFetch(colortex3, texelCoord + ivec2( 0, 1), 0).rgb); + float lumaLeft = GetLuminance(texelFetch(colortex3, texelCoord + ivec2(-1, 0), 0).rgb); + float lumaRight = GetLuminance(texelFetch(colortex3, texelCoord + ivec2( 1, 0), 0).rgb); + + float lumaMin = min(lumaCenter, min(min(lumaDown, lumaUp), min(lumaLeft, lumaRight))); + float lumaMax = max(lumaCenter, max(max(lumaDown, lumaUp), max(lumaLeft, lumaRight))); + + float lumaRange = lumaMax - lumaMin; + + if (lumaRange > max(edgeThresholdMin, lumaMax * edgeThresholdMax)) { + float lumaDownLeft = GetLuminance(texelFetch(colortex3, texelCoord + ivec2(-1, -1), 0).rgb); + float lumaUpRight = GetLuminance(texelFetch(colortex3, texelCoord + ivec2( 1, 1), 0).rgb); + float lumaUpLeft = GetLuminance(texelFetch(colortex3, texelCoord + ivec2(-1, 1), 0).rgb); + float lumaDownRight = GetLuminance(texelFetch(colortex3, texelCoord + ivec2( 1, -1), 0).rgb); + + float lumaDownUp = lumaDown + lumaUp; + float lumaLeftRight = lumaLeft + lumaRight; + + float lumaLeftCorners = lumaDownLeft + lumaUpLeft; + float lumaDownCorners = lumaDownLeft + lumaDownRight; + float lumaRightCorners = lumaDownRight + lumaUpRight; + float lumaUpCorners = lumaUpRight + lumaUpLeft; + + float edgeHorizontal = abs(-2.0 * lumaLeft + lumaLeftCorners ) + + abs(-2.0 * lumaCenter + lumaDownUp ) * 2.0 + + abs(-2.0 * lumaRight + lumaRightCorners); + float edgeVertical = abs(-2.0 * lumaUp + lumaUpCorners ) + + abs(-2.0 * lumaCenter + lumaLeftRight ) * 2.0 + + abs(-2.0 * lumaDown + lumaDownCorners ); + + bool isHorizontal = (edgeHorizontal >= edgeVertical); + + float luma1 = isHorizontal ? lumaDown : lumaLeft; + float luma2 = isHorizontal ? lumaUp : lumaRight; + float gradient1 = luma1 - lumaCenter; + float gradient2 = luma2 - lumaCenter; + + bool is1Steepest = abs(gradient1) >= abs(gradient2); + float gradientScaled = 0.25 * max(abs(gradient1), abs(gradient2)); + + float stepLength = isHorizontal ? view.y : view.x; + + float lumaLocalAverage = 0.0; + + if (is1Steepest) { + stepLength = - stepLength; + lumaLocalAverage = 0.5 * (luma1 + lumaCenter); + } else { + lumaLocalAverage = 0.5 * (luma2 + lumaCenter); + } + + vec2 currentUv = texCoord; + if (isHorizontal) { + currentUv.y += stepLength * 0.5; + } else { + currentUv.x += stepLength * 0.5; + } + + vec2 offset = isHorizontal ? vec2(view.x, 0.0) : vec2(0.0, view.y); + + vec2 uv1 = currentUv - offset; + vec2 uv2 = currentUv + offset; + float lumaEnd1 = GetLuminance(texture2D(colortex3, uv1).rgb); + float lumaEnd2 = GetLuminance(texture2D(colortex3, uv2).rgb); + lumaEnd1 -= lumaLocalAverage; + lumaEnd2 -= lumaLocalAverage; + + bool reached1 = abs(lumaEnd1) >= gradientScaled; + bool reached2 = abs(lumaEnd2) >= gradientScaled; + bool reachedBoth = reached1 && reached2; + + if (!reached1) { + uv1 -= offset; + } + if (!reached2) { + uv2 += offset; + } + + if (!reachedBoth) { + for (int i = 2; i < iterations; i++) { + if (!reached1) { + lumaEnd1 = GetLuminance(texture2D(colortex3, uv1).rgb); + lumaEnd1 = lumaEnd1 - lumaLocalAverage; + } + if (!reached2) { + lumaEnd2 = GetLuminance(texture2D(colortex3, uv2).rgb); + lumaEnd2 = lumaEnd2 - lumaLocalAverage; + } + + reached1 = abs(lumaEnd1) >= gradientScaled; + reached2 = abs(lumaEnd2) >= gradientScaled; + reachedBoth = reached1 && reached2; + + if (!reached1) { + uv1 -= offset * quality[i]; + } + if (!reached2) { + uv2 += offset * quality[i]; + } + + if (reachedBoth) break; + } + } + + float distance1 = isHorizontal ? (texCoord.x - uv1.x) : (texCoord.y - uv1.y); + float distance2 = isHorizontal ? (uv2.x - texCoord.x) : (uv2.y - texCoord.y); + + bool isDirection1 = distance1 < distance2; + float distanceFinal = min(distance1, distance2); + + float edgeThickness = (distance1 + distance2); + + float pixelOffset = - distanceFinal / edgeThickness + 0.5; + + bool isLumaCenterSmaller = lumaCenter < lumaLocalAverage; + + bool correctVariation = ((isDirection1 ? lumaEnd1 : lumaEnd2) < 0.0) != isLumaCenterSmaller; + + float finalOffset = correctVariation ? pixelOffset : 0.0; + + float lumaAverage = (1.0 / 12.0) * (2.0 * (lumaDownUp + lumaLeftRight) + lumaLeftCorners + lumaRightCorners); + float subPixelOffset1 = clamp(abs(lumaAverage - lumaCenter) / lumaRange, 0.0, 1.0); + float subPixelOffset2 = (-2.0 * subPixelOffset1 + 3.0) * subPixelOffset1 * subPixelOffset1; + float subPixelOffsetFinal = subPixelOffset2 * subPixelOffset2 * subpixelQuality; + + finalOffset = max(finalOffset, subPixelOffsetFinal); + + // Compute the final UV coordinates. + vec2 finalUv = texCoord; + if (isHorizontal) { + finalUv.y += finalOffset * stepLength; + } else { + finalUv.x += finalOffset * stepLength; + } + + #if defined TAA && defined FXAA_TAA_INTERACTION && TAA_MODE == 1 + // Less FXAA when moving + vec3 newColor = texture2D(colortex3, finalUv).rgb; + float skipFactor = min1( + 20.0 * length(cameraPosition - previousCameraPosition) + #ifdef TAA_MOVEMENT_IMPROVEMENT_FILTER + + 0.25 // Catmull-Rom sampling gives us headroom to still do a bit of fxaa + #endif + ); + + float z0 = texelFetch(depthtex0, texelCoord, 0).r; + float z1 = texelFetch(depthtex1, texelCoord, 0).r; + bool edge = false; + for (int i = 0; i < 8; i++) { + ivec2 texelCoordM = texelCoord + neighbourhoodOffsets[i]; + + float z0Check = texelFetch(depthtex0, texelCoordM, 0).r; + float z1Check = texelFetch(depthtex1, texelCoordM, 0).r; + if (max(abs(GetLinearDepth(z0Check) - GetLinearDepth(z0)), abs(GetLinearDepth(z1Check) - GetLinearDepth(z1))) > 0.09) { + edge = true; + break; + } + } + if (edge) skipFactor = 0.0; + + if (dot(texelFetch(colortex2, texelCoord, 0).rgb, vec3(1.0)) < 0.01) skipFactor = 0.0; + + color = mix(newColor, color, skipFactor); + #else + color = texture2D(colortex3, finalUv).rgb; + #endif + } +} diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/antialiasing/jitter.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/antialiasing/jitter.glsl new file mode 100644 index 0000000..41d83a8 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/antialiasing/jitter.glsl @@ -0,0 +1,19 @@ +// Jitter offset from Chocapic13 +vec2 jitterOffsets[8] = vec2[8]( + vec2( 0.125,-0.375), + vec2(-0.125, 0.375), + vec2( 0.625, 0.125), + vec2( 0.375,-0.625), + vec2(-0.625, 0.625), + vec2(-0.875,-0.125), + vec2( 0.375,-0.875), + vec2( 0.875, 0.875) + ); + +vec2 TAAJitter(vec2 coord, float w) { + vec2 offset = jitterOffsets[int(framemod8)] * (w / vec2(viewWidth, viewHeight)); + #if TAA_MODE == 1 && !defined DH_TERRAIN && !defined DH_WATER + offset *= 0.125; + #endif + return coord + offset; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/antialiasing/taa.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/antialiasing/taa.glsl new file mode 100644 index 0000000..fd5c8f3 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/antialiasing/taa.glsl @@ -0,0 +1,177 @@ +#if TAA_MODE == 1 + float blendMinimum = 0.3; + float blendVariable = 0.2; + float blendConstant = 0.7; + + float regularEdge = 20.0; + float extraEdgeMult = 3.0; +#elif TAA_MODE == 2 + float blendMinimum = 0.6; + float blendVariable = 0.2; + float blendConstant = 0.7; + + float regularEdge = 5.0; + float extraEdgeMult = 3.0; +#endif + +#ifdef TAA_MOVEMENT_IMPROVEMENT_FILTER + //Catmull-Rom sampling from Filmic SMAA presentation + vec3 textureCatmullRom(sampler2D colortex, vec2 texcoord, vec2 view) { + vec2 position = texcoord * view; + vec2 centerPosition = floor(position - 0.5) + 0.5; + vec2 f = position - centerPosition; + vec2 f2 = f * f; + vec2 f3 = f * f2; + + float c = 0.7; + 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 = (centerPosition + w2 / w12) / view; + + vec2 tc0 = (centerPosition - 1.0) / view; + vec2 tc3 = (centerPosition + 2.0) / view; + vec4 color = vec4(texture2DLod(colortex, vec2(tc12.x, tc0.y ), 0).rgb, 1.0) * (w12.x * w0.y ) + + vec4(texture2DLod(colortex, vec2(tc0.x, tc12.y), 0).rgb, 1.0) * (w0.x * w12.y) + + vec4(texture2DLod(colortex, vec2(tc12.x, tc12.y), 0).rgb, 1.0) * (w12.x * w12.y) + + vec4(texture2DLod(colortex, vec2(tc3.x, tc12.y), 0).rgb, 1.0) * (w3.x * w12.y) + + vec4(texture2DLod(colortex, vec2(tc12.x, tc3.y ), 0).rgb, 1.0) * (w12.x * w3.y ); + return color.rgb / color.a; + } +#endif + +// Previous frame reprojection from Chocapic13 +vec2 Reprojection(vec4 viewPos1) { + vec4 pos = gbufferModelViewInverse * viewPos1; + vec4 previousPosition = pos + vec4(cameraPosition - previousCameraPosition, 0.0); + previousPosition = gbufferPreviousModelView * previousPosition; + previousPosition = gbufferPreviousProjection * previousPosition; + return previousPosition.xy / previousPosition.w * 0.5 + 0.5; +} + +vec3 ClipAABB(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; +} + +ivec2 neighbourhoodOffsets[8] = ivec2[8]( + ivec2( 1, 1), + ivec2( 1,-1), + ivec2(-1, 1), + ivec2(-1,-1), + ivec2( 1, 0), + ivec2( 0, 1), + ivec2(-1, 0), + ivec2( 0,-1) +); + +void NeighbourhoodClamping(vec3 color, inout vec3 tempColor, float z0, float z1, inout float edge) { + vec3 minclr = color; + vec3 maxclr = minclr; + + int cc = 2; + ivec2 texelCoordM1 = clamp(texelCoord, ivec2(cc), ivec2(view) - cc); // Fixes screen edges + for (int i = 0; i < 8; i++) { + ivec2 texelCoordM2 = texelCoordM1 + neighbourhoodOffsets[i]; + + float z0Check = texelFetch(depthtex0, texelCoordM2, 0).r; + float z1Check = texelFetch(depthtex1, texelCoordM2, 0).r; + if (max(abs(GetLinearDepth(z0Check) - GetLinearDepth(z0)), abs(GetLinearDepth(z1Check) - GetLinearDepth(z1))) > 0.09) { + edge = regularEdge; + + if (int(texelFetch(colortex6, texelCoordM2, 0).g * 255.1) == 253) // Reduced Edge TAA + edge *= extraEdgeMult; + } + + vec3 clr = texelFetch(colortex3, texelCoordM2, 0).rgb; + minclr = min(minclr, clr); maxclr = max(maxclr, clr); + } + + tempColor = ClipAABB(tempColor, minclr, maxclr); +} + +void DoTAA(inout vec3 color, inout vec3 temp, float z1) { + int materialMask = int(texelFetch(colortex6, texelCoord, 0).g * 255.1); + + vec4 screenPos1 = vec4(texCoord, z1, 1.0); + vec4 viewPos1 = gbufferProjectionInverse * (screenPos1 * 2.0 - 1.0); + viewPos1 /= viewPos1.w; + + #ifdef ENTITY_TAA_NOISY_CLOUD_FIX + float cloudLinearDepth = texture2D(colortex4, texCoord).r; + float lViewPos1 = length(viewPos1); + + if (pow2(cloudLinearDepth) * renderDistance < min(lViewPos1, renderDistance)) { + // Material in question is obstructed by the cloud volume + materialMask = 0; + } + #endif + + if (materialMask == 254) { // No SSAO, No TAA + #ifndef CUSTOM_PBR + if (z1 <= 0.56) return; // The edge pixel trick doesn't look nice on hand + #endif + int i = 0; + while (i < 4) { + int mms = int(texelFetch(colortex6, texelCoord + neighbourhoodOffsets[i], 0).g * 255.1); + if (mms != materialMask) break; + i++; + } // Checking edge-pixels prevents flickering + if (i == 4) return; + } + + float z0 = texelFetch(depthtex0, texelCoord, 0).r; + + vec2 prvCoord = texCoord; + if (z1 > 0.56) prvCoord = Reprojection(viewPos1); + + #ifndef TAA_MOVEMENT_IMPROVEMENT_FILTER + vec3 tempColor = texture2D(colortex2, prvCoord).rgb; + #else + vec3 tempColor = textureCatmullRom(colortex2, prvCoord, view); + #endif + + if (tempColor == vec3(0.0) || any(isnan(tempColor))) { // Fixes the first frame and nans + temp = color; + return; + } + + float edge = 0.0; + NeighbourhoodClamping(color, tempColor, z0, z1, edge); + + if (materialMask == 253) // Reduced Edge TAA + edge *= extraEdgeMult; + + #ifdef DISTANT_HORIZONS + if (z0 == 1.0) { + blendMinimum = 0.75; + blendVariable = 0.05; + blendConstant = 0.9; + edge = 1.0; + } + #endif + + vec2 velocity = (texCoord - prvCoord.xy) * view; + float blendFactor = float(prvCoord.x > 0.0 && prvCoord.x < 1.0 && + prvCoord.y > 0.0 && prvCoord.y < 1.0); + float velocityFactor = dot(velocity, velocity) * 10.0; + blendFactor *= max(exp(-velocityFactor) * blendVariable + blendConstant - length(cameraPosition - previousCameraPosition) * edge, blendMinimum); + + color = mix(color, tempColor, blendFactor); + temp = color; + + //if (edge > 0.05) color.rgb = vec3(1.0, 0.0, 1.0); +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/auroraBorealis.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/auroraBorealis.glsl new file mode 100644 index 0000000..0a68b80 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/auroraBorealis.glsl @@ -0,0 +1,72 @@ +vec3 GetAuroraBorealis(vec3 viewPos, float VdotU, float dither) { + float visibility = sqrt1(clamp01(VdotU * 1.5 - 0.225)) - sunVisibility - rainFactor - maxBlindnessDarkness; + visibility *= 1.0 - VdotU * 0.9; + + #if AURORA_CONDITION == 1 || AURORA_CONDITION == 3 + visibility -= moonPhase; + #endif + #if AURORA_CONDITION == 2 || AURORA_CONDITION == 3 + visibility *= inSnowy; + #endif + #if AURORA_CONDITION == 4 + visibility = max(visibility * inSnowy, visibility - moonPhase); + #endif + + if (visibility > 0.0) { + vec3 aurora = vec3(0.0); + + vec3 wpos = mat3(gbufferModelViewInverse) * viewPos; + wpos.xz /= wpos.y; + vec2 cameraPositionM = cameraPosition.xz * 0.0075; + cameraPositionM.x += syncedTime * 0.04; + + #ifdef DEFERRED1 + int sampleCount = 25; + int sampleCountP = sampleCount + 5; + #else + int sampleCount = 10; + int sampleCountP = sampleCount + 10; + #endif + + float ditherM = dither + 5.0; + float auroraAnimate = frameTimeCounter * 0.001; + for (int i = 0; i < sampleCount; i++) { + float current = pow2((i + ditherM) / sampleCountP); + + vec2 planePos = wpos.xz * (0.8 + current) * 11.0 + cameraPositionM; + #if AURORA_STYLE == 1 + planePos = floor(planePos) * 0.0007; + + float noise = texture2D(noisetex, planePos).b; + noise = pow2(pow2(pow2(pow2(1.0 - 2.0 * abs(noise - 0.5))))); + + noise *= pow1_5(texture2D(noisetex, planePos * 100.0 + auroraAnimate).b); + #else + planePos *= 0.0007; + + float noise = texture2D(noisetex, planePos).r; + noise = pow2(pow2(pow2(pow2(1.0 - 2.0 * abs(noise - 0.5))))); + + noise *= texture2D(noisetex, planePos * 3.0 + auroraAnimate).b; + noise *= texture2D(noisetex, planePos * 5.0 - auroraAnimate).b; + #endif + + float currentM = 1.0 - current; + aurora += noise * currentM * mix(vec3(7.0, 2.2, 12.0), vec3(6.0, 16.0, 12.0), pow2(pow2(currentM))); + } + + #if AURORA_STYLE == 1 + aurora *= 1.3; + #else + aurora *= 1.8; + #endif + + #ifdef ATM_COLOR_MULTS + aurora *= sqrtAtmColorMult; // C72380KD - Reduced atmColorMult impact on some things + #endif + + return aurora * visibility / sampleCount; + } + + return vec3(0.0); +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/cloudCoord.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/cloudCoord.glsl new file mode 100644 index 0000000..a44dba4 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/cloudCoord.glsl @@ -0,0 +1,30 @@ +#ifndef INCLUDE_CLOUD_COORD + #define INCLUDE_CLOUD_COORD + + const float cloudNarrowness = 0.05; + + // Thanks to SixthSurge + vec2 GetRoundedCloudCoord(vec2 pos, float cloudRoundness) { // cloudRoundness is meant to be 0.125 for clouds and 0.35 for cloud shadows + vec2 coord = pos.xy + 0.5; + vec2 signCoord = sign(coord); + coord = abs(coord) + 1.0; + vec2 i, f = modf(coord, i); + f = smoothstep(0.5 - cloudRoundness, 0.5 + cloudRoundness, f); + coord = i + f; + return (coord - 0.5) * signCoord / 256.0; + } + + vec3 ModifyTracePos(vec3 tracePos, int cloudAltitude) { + #if CLOUD_SPEED_MULT == 100 + float wind = syncedTime; + #else + #define CLOUD_SPEED_MULT_M CLOUD_SPEED_MULT * 0.01 + float wind = frameTimeCounter * CLOUD_SPEED_MULT_M; + #endif + tracePos.x += wind; + tracePos.z += cloudAltitude * 64.0; + tracePos.xz *= cloudNarrowness; + return tracePos.xyz; + } + +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/mainClouds.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/mainClouds.glsl new file mode 100644 index 0000000..b74f04b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/mainClouds.glsl @@ -0,0 +1,108 @@ +#include "/lib/colors/lightAndAmbientColors.glsl" +#include "/lib/colors/cloudColors.glsl" +#include "/lib/atmospherics/sky.glsl" + +float InterleavedGradientNoiseForClouds() { + float n = 52.9829189 * fract(0.06711056 * gl_FragCoord.x + 0.00583715 * gl_FragCoord.y); + #ifdef TAA + return fract(n + goldenRatio * mod(float(frameCounter), 3600.0)); + #else + return fract(n); + #endif +} + +#if SHADOW_QUALITY > -1 + vec3 GetShadowOnCloudPosition(vec3 tracePos, vec3 cameraPos) { + vec3 wpos = PlayerToShadow(tracePos - cameraPos); + float distb = sqrt(wpos.x * wpos.x + wpos.y * wpos.y); + float distortFactor = 1.0 - shadowMapBias + distb * shadowMapBias; + vec3 shadowPosition = vec3(vec2(wpos.xy / distortFactor), wpos.z * 0.2); + return shadowPosition * 0.5 + 0.5; + } + + bool GetShadowOnCloud(vec3 tracePos, vec3 cameraPos, int cloudAltitude, float lowerPlaneAltitude, float higherPlaneAltitude) { + const float cloudShadowOffset = 0.5; + + vec3 shadowPosition0 = GetShadowOnCloudPosition(tracePos, cameraPos); + if (length(shadowPosition0.xy * 2.0 - 1.0) < 1.0) { + float shadowsample0 = shadow2D(shadowtex0, shadowPosition0).z; + + if (shadowsample0 == 0.0) return true; + } + + return false; + } +#endif + +#ifdef CLOUDS_REIMAGINED + #include "/lib/atmospherics/clouds/reimaginedClouds.glsl" +#endif +#ifdef CLOUDS_UNBOUND + #include "/lib/atmospherics/clouds/unboundClouds.glsl" +#endif + +vec4 GetClouds(inout float cloudLinearDepth, float skyFade, vec3 cameraPos, vec3 playerPos, + float lViewPos, float VdotS, float VdotU, float dither, vec3 auroraBorealis, vec3 nightNebula) { + vec4 clouds = vec4(0.0); + + vec3 nPlayerPos = normalize(playerPos); + float lViewPosM = lViewPos < renderDistance * 1.5 ? lViewPos - 1.0 : 1000000000.0; + float skyMult0 = pow2(skyFade * 3.333333 - 2.333333); + + float thresholdMix = pow2(clamp01(VdotU * 5.0)); + float thresholdF = mix(far, 1000.0, thresholdMix * 0.5 + 0.5); + #ifdef DISTANT_HORIZONS + thresholdF = max(thresholdF, renderDistance); + #endif + + #ifdef CLOUDS_REIMAGINED + cloudAmbientColor *= 1.0 - 0.25 * rainFactor; + #endif + + vec3 cloudColorMult = vec3(1.0); + #if CLOUD_R != 100 || CLOUD_G != 100 || CLOUD_B != 100 + cloudColorMult *= vec3(CLOUD_R, CLOUD_G, CLOUD_B) * 0.01; + #endif + cloudAmbientColor *= cloudColorMult; + cloudLightColor *= cloudColorMult; + + #if !defined DOUBLE_REIM_CLOUDS || defined CLOUDS_UNBOUND + clouds = GetVolumetricClouds(cloudAlt1i, thresholdF, cloudLinearDepth, skyFade, skyMult0, + cameraPos, nPlayerPos, lViewPosM, VdotS, VdotU, dither); + #else + int maxCloudAlt = max(cloudAlt1i, cloudAlt2i); + int minCloudAlt = min(cloudAlt1i, cloudAlt2i); + + if (abs(cameraPos.y - minCloudAlt) < abs(cameraPos.y - maxCloudAlt)) { + clouds = GetVolumetricClouds(minCloudAlt, thresholdF, cloudLinearDepth, skyFade, skyMult0, + cameraPos, nPlayerPos, lViewPosM, VdotS, VdotU, dither); + if (clouds.a == 0.0) { + clouds = GetVolumetricClouds(maxCloudAlt, thresholdF, cloudLinearDepth, skyFade, skyMult0, + cameraPos, nPlayerPos, lViewPosM, VdotS, VdotU, dither); + } + } else { + clouds = GetVolumetricClouds(maxCloudAlt, thresholdF, cloudLinearDepth, skyFade, skyMult0, + cameraPos, nPlayerPos, lViewPosM, VdotS, VdotU, dither); + if (clouds.a == 0.0) { + clouds = GetVolumetricClouds(minCloudAlt, thresholdF, cloudLinearDepth, skyFade, skyMult0, + cameraPos, nPlayerPos, lViewPosM, VdotS, VdotU, dither); + } + } + #endif + + #ifdef ATM_COLOR_MULTS + clouds.rgb *= sqrtAtmColorMult; // C72380KD - Reduced atmColorMult impact on some things + #endif + #ifdef MOON_PHASE_INF_ATMOSPHERE + clouds.rgb *= moonPhaseInfluence; + #endif + + #if AURORA_STYLE > 0 + clouds.rgb += auroraBorealis * 0.1; + #endif + #ifdef NIGHT_NEBULA + clouds.rgb += nightNebula * 0.2; + #endif + + return clouds; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/reimaginedClouds.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/reimaginedClouds.glsl new file mode 100644 index 0000000..8818e99 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/reimaginedClouds.glsl @@ -0,0 +1,142 @@ +#include "/lib/atmospherics/clouds/cloudCoord.glsl" + +const float cloudStretch = 5.5; +const float cloudHeight = cloudStretch * 2.0; + +bool GetCloudNoise(vec3 tracePos, inout vec3 tracePosM, int cloudAltitude) { + tracePosM = ModifyTracePos(tracePos, cloudAltitude); + vec2 coord = GetRoundedCloudCoord(tracePosM.xz, 0.125); + + #ifdef DEFERRED1 + float noise = texture2D(colortex3, coord).b; + #else + float noise = texture2D(gaux4, coord).b; + #endif + + float threshold = clamp(abs(cloudAltitude - tracePos.y) / cloudStretch, 0.001, 0.999); + threshold = pow2(pow2(pow2(threshold))); + return noise > threshold * 0.5 + 0.25; +} + +vec4 GetVolumetricClouds(int cloudAltitude, float distanceThreshold, inout float cloudLinearDepth, float skyFade, float skyMult0, vec3 cameraPos, vec3 nPlayerPos, float lViewPosM, float VdotS, float VdotU, float dither) { + vec4 volumetricClouds = vec4(0.0); + + float higherPlaneAltitude = cloudAltitude + cloudStretch; + float lowerPlaneAltitude = cloudAltitude - cloudStretch; + + float lowerPlaneDistance = (lowerPlaneAltitude - cameraPos.y) / nPlayerPos.y; + float higherPlaneDistance = (higherPlaneAltitude - cameraPos.y) / nPlayerPos.y; + float minPlaneDistance = min(lowerPlaneDistance, higherPlaneDistance); + minPlaneDistance = max(minPlaneDistance, 0.0); + float maxPlaneDistance = max(lowerPlaneDistance, higherPlaneDistance); + if (maxPlaneDistance < 0.0) return vec4(0.0); + float planeDistanceDif = maxPlaneDistance - minPlaneDistance; + + #if CLOUD_QUALITY == 1 || !defined DEFERRED1 + int sampleCount = max(int(planeDistanceDif) / 16, 6); + #elif CLOUD_QUALITY == 2 + int sampleCount = max(int(planeDistanceDif) / 8, 12); + #elif CLOUD_QUALITY == 3 + int sampleCount = max(int(planeDistanceDif), 12); + #endif + + float stepMult = planeDistanceDif / sampleCount; + vec3 traceAdd = nPlayerPos * stepMult; + vec3 tracePos = cameraPos + minPlaneDistance * nPlayerPos; + tracePos += traceAdd * dither; + tracePos.y -= traceAdd.y; + + #ifdef FIX_AMD_REFLECTION_CRASH + sampleCount = min(sampleCount, 30); //BFARC + #endif + + for (int i = 0; i < sampleCount; i++) { + tracePos += traceAdd; + + vec3 cloudPlayerPos = tracePos - cameraPos; + float lTracePos = length(cloudPlayerPos); + float lTracePosXZ = length(cloudPlayerPos.xz); + float cloudMult = 1.0; + if (lTracePosXZ > distanceThreshold) break; + if (lTracePos > lViewPosM) { + if (skyFade < 0.7) continue; + else cloudMult = skyMult0; + } + + vec3 tracePosM; + if (GetCloudNoise(tracePos, tracePosM, cloudAltitude)) { + float lightMult = 1.0; + + #if SHADOW_QUALITY > -1 + float shadowLength = min(shadowDistance, far) * 0.9166667; //consistent08JJ622 + if (shadowLength > lTracePos) + if (GetShadowOnCloud(tracePos, cameraPos, cloudAltitude, lowerPlaneAltitude, higherPlaneAltitude)) { + #ifdef CLOUD_CLOSED_AREA_CHECK + if (eyeBrightness.y != 240) continue; + else + #endif + lightMult = 0.25; + } + #endif + + float cloudShading = 1.0 - (higherPlaneAltitude - tracePos.y) / cloudHeight; + float VdotSM1 = max0(sunVisibility > 0.5 ? VdotS : - VdotS); + + #if CLOUD_QUALITY >= 2 + #ifdef DEFERRED1 + float cloudShadingM = 1.0 - pow2(cloudShading); + #else + float cloudShadingM = 1.0 - cloudShading; + #endif + + float gradientNoise = InterleavedGradientNoiseForClouds(); + + vec3 cLightPos = tracePosM; + vec3 cLightPosAdd = normalize(ViewToPlayer(lightVec * 1000000000.0)) * vec3(0.08); + cLightPosAdd *= shadowTime; + + float light = 2.0; + cLightPos += (1.0 + gradientNoise) * cLightPosAdd; + #ifdef DEFERRED1 + light -= texture2D(colortex3, GetRoundedCloudCoord(cLightPos.xz, 0.125)).b * cloudShadingM; + #else + light -= texture2D(gaux4, GetRoundedCloudCoord(cLightPos.xz, 0.125)).b * cloudShadingM; + #endif + cLightPos += gradientNoise * cLightPosAdd; + #ifdef DEFERRED1 + light -= texture2D(colortex3, GetRoundedCloudCoord(cLightPos.xz, 0.125)).b * cloudShadingM; + #else + light -= texture2D(gaux4, GetRoundedCloudCoord(cLightPos.xz, 0.125)).b * cloudShadingM; + #endif + + float VdotSM2 = VdotSM1 * shadowTime * 0.25; + VdotSM2 += 0.5 * cloudShading + 0.08; + cloudShading = VdotSM2 * light * lightMult; + #endif + + vec3 colorSample = cloudAmbientColor + cloudLightColor * (0.07 + cloudShading); + vec3 cloudSkyColor = GetSky(VdotU, VdotS, dither, true, false); + #ifdef ATM_COLOR_MULTS + cloudSkyColor *= sqrtAtmColorMult; // C72380KD - Reduced atmColorMult impact on some things + #endif + float distanceRatio = (distanceThreshold - lTracePosXZ) / distanceThreshold; + float cloudDistanceFactor = clamp(distanceRatio, 0.0, 0.75); + #ifndef DISTANT_HORIZONS + float cloudFogFactor = cloudDistanceFactor; + #else + float cloudFogFactor = pow1_5(clamp(distanceRatio, 0.0, 1.0)) * 0.75; + #endif + float skyMult1 = 1.0 - 0.2 * (1.0 - skyFade) * max(sunVisibility2, nightFactor); + float skyMult2 = 1.0 - 0.33333 * skyFade; + colorSample = mix(cloudSkyColor, colorSample * skyMult1, cloudFogFactor * skyMult2); + colorSample *= pow2(1.0 - maxBlindnessDarkness); + + cloudLinearDepth = sqrt(lTracePos / renderDistance); + volumetricClouds.a = pow(cloudDistanceFactor * 1.33333, 0.5 + 10.0 * pow(abs(VdotSM1), 90.0)) * cloudMult; + volumetricClouds.rgb = colorSample; + break; + } + } + + return volumetricClouds; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/unboundClouds.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/unboundClouds.glsl new file mode 100644 index 0000000..4442744 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/clouds/unboundClouds.glsl @@ -0,0 +1,217 @@ +#if CLOUD_UNBOUND_SIZE_MULT != 100 + #define CLOUD_UNBOUND_SIZE_MULT_M CLOUD_UNBOUND_SIZE_MULT * 0.01 +#endif + +#if CLOUD_QUALITY == 1 || !defined DEFERRED1 + const float cloudStretchRaw = 11.0; +#elif CLOUD_QUALITY == 2 + const float cloudStretchRaw = 16.0; +#elif CLOUD_QUALITY == 3 + const float cloudStretchRaw = 18.0; +#endif +#if CLOUD_UNBOUND_SIZE_MULT <= 100 + const float cloudStretch = cloudStretchRaw; +#else + const float cloudStretch = cloudStretchRaw / float(CLOUD_UNBOUND_SIZE_MULT_M); +#endif + +const float cloudHeight = cloudStretch * 2.0; + +float Noise3D(vec3 p) { + p.z = fract(p.z) * 128.0; + float iz = floor(p.z); + float fz = fract(p.z); + vec2 a_off = vec2(23.0, 29.0) * (iz) / 128.0; + vec2 b_off = vec2(23.0, 29.0) * (iz + 1.0) / 128.0; + float a = texture2D(noisetex, p.xy + a_off).r; + float b = texture2D(noisetex, p.xy + b_off).r; + return mix(a, b, fz); +} + +float GetCloudNoise(vec3 tracePos, int cloudAltitude, float lTracePosXZ, float cloudPlayerPosY) { + vec3 tracePosM = tracePos.xyz * 0.00016; + float wind = 0.0006; + float noise = 0.0; + float currentPersist = 1.0; + float total = 0.0; + + #if CLOUD_SPEED_MULT == 100 + #define CLOUD_SPEED_MULT_M CLOUD_SPEED_MULT * 0.01 + wind *= syncedTime; + #else + #define CLOUD_SPEED_MULT_M CLOUD_SPEED_MULT * 0.01 + wind *= frameTimeCounter * CLOUD_SPEED_MULT_M; + #endif + #if CLOUD_UNBOUND_SIZE_MULT != 100 + tracePosM *= CLOUD_UNBOUND_SIZE_MULT_M; + wind *= CLOUD_UNBOUND_SIZE_MULT_M; + #endif + + #if CLOUD_QUALITY == 1 + int sampleCount = 2; + float persistance = 0.6; + float noiseMult = 0.95; + tracePosM *= 0.5; wind *= 0.5; + #elif CLOUD_QUALITY == 2 || !defined DEFERRED1 + int sampleCount = 4; + float persistance = 0.5; + float noiseMult = 1.07; + #elif CLOUD_QUALITY == 3 + int sampleCount = 4; + float persistance = 0.5; + float noiseMult = 1.0; + #endif + + #ifndef DEFERRED1 + noiseMult *= 1.2; + #endif + + for (int i = 0; i < sampleCount; i++) { + #if CLOUD_QUALITY >= 2 + noise += Noise3D(tracePosM + vec3(wind, 0.0, 0.0)) * currentPersist; + #else + noise += texture2D(noisetex, tracePosM.xz + vec2(wind, 0.0)).b * currentPersist; + #endif + total += currentPersist; + + tracePosM *= 3.0; + wind *= 0.5; + currentPersist *= persistance; + } + noise = pow2(noise / total); + + #ifndef DISTANT_HORIZONS + #define CLOUD_BASE_ADD 0.65 + #define CLOUD_FAR_ADD 0.01 + #define CLOUD_ABOVE_ADD 0.1 + #else + #define CLOUD_BASE_ADD 0.9 + #define CLOUD_FAR_ADD -0.005 + #define CLOUD_ABOVE_ADD 0.03 + #endif + + noiseMult *= CLOUD_BASE_ADD + + CLOUD_FAR_ADD * sqrt(lTracePosXZ + 10.0) // more/less clouds far away + + CLOUD_ABOVE_ADD * clamp01(-cloudPlayerPosY / cloudHeight) // more clouds when camera is above them + + CLOUD_UNBOUND_RAIN_ADD * rainFactor; // more clouds during rain + noise *= noiseMult * CLOUD_UNBOUND_AMOUNT; + + float threshold = clamp(abs(cloudAltitude - tracePos.y) / cloudStretch, 0.001, 0.999); + threshold = pow2(pow2(pow2(threshold))); + return noise - (threshold * 0.2 + 0.25); +} + +vec4 GetVolumetricClouds(int cloudAltitude, float distanceThreshold, inout float cloudLinearDepth, float skyFade, float skyMult0, vec3 cameraPos, vec3 nPlayerPos, float lViewPosM, float VdotS, float VdotU, float dither) { + vec4 volumetricClouds = vec4(0.0); + + float higherPlaneAltitude = cloudAltitude + cloudStretch; + float lowerPlaneAltitude = cloudAltitude - cloudStretch; + + float lowerPlaneDistance = (lowerPlaneAltitude - cameraPos.y) / nPlayerPos.y; + float higherPlaneDistance = (higherPlaneAltitude - cameraPos.y) / nPlayerPos.y; + float minPlaneDistance = min(lowerPlaneDistance, higherPlaneDistance); + minPlaneDistance = max(minPlaneDistance, 0.0); + float maxPlaneDistance = max(lowerPlaneDistance, higherPlaneDistance); + if (maxPlaneDistance < 0.0) return vec4(0.0); + float planeDistanceDif = maxPlaneDistance - minPlaneDistance; + + #ifndef DEFERRED1 + float stepMult = 32.0; + #elif CLOUD_QUALITY == 1 + float stepMult = 16.0; + #elif CLOUD_QUALITY == 2 + float stepMult = 24.0; + #elif CLOUD_QUALITY == 3 + float stepMult = 16.0; + #endif + + #if CLOUD_UNBOUND_SIZE_MULT > 100 + stepMult = stepMult / sqrt(float(CLOUD_UNBOUND_SIZE_MULT_M)); + #endif + + int sampleCount = int(planeDistanceDif / stepMult + dither + 1); + vec3 traceAdd = nPlayerPos * stepMult; + vec3 tracePos = cameraPos + minPlaneDistance * nPlayerPos; + tracePos += traceAdd * dither; + tracePos.y -= traceAdd.y; + + float firstHitPos = 0.0; + float VdotSM1 = max0(sunVisibility > 0.5 ? VdotS : - VdotS); + float VdotSM1M = VdotSM1 * invRainFactor; + float VdotSM2 = pow2(VdotSM1) * abs(sunVisibility - 0.5) * 2.0; + float VdotSM3 = VdotSM2 * (2.5 + rainFactor) + 1.5 * rainFactor; + + #ifdef FIX_AMD_REFLECTION_CRASH + sampleCount = min(sampleCount, 30); //BFARC + #endif + + for (int i = 0; i < sampleCount; i++) { + tracePos += traceAdd; + + if (abs(tracePos.y - cloudAltitude) > cloudStretch) break; + + vec3 cloudPlayerPos = tracePos - cameraPos; + float lTracePos = length(cloudPlayerPos); + float lTracePosXZ = length(cloudPlayerPos.xz); + float cloudMult = 1.0; + if (lTracePosXZ > distanceThreshold) break; + if (lTracePos > lViewPosM) { + if (skyFade < 0.7) continue; + else cloudMult = skyMult0; + } + + float cloudNoise = GetCloudNoise(tracePos, cloudAltitude, lTracePosXZ, cloudPlayerPos.y); + + if (cloudNoise > 0.00001) { + #if defined CLOUD_CLOSED_AREA_CHECK && SHADOW_QUALITY > -1 + float shadowLength = min(shadowDistance, far) * 0.9166667; //consistent08JJ622 + if (shadowLength < lTracePos) + if (GetShadowOnCloud(tracePos, cameraPos, cloudAltitude, lowerPlaneAltitude, higherPlaneAltitude)) { + if (eyeBrightness.y != 240) continue; + } + #endif + + if (firstHitPos < 1.0) { + firstHitPos = lTracePos; + #if CLOUD_QUALITY == 1 && defined DEFERRED1 + tracePos.y += 4.0 * (texture2D(noisetex, tracePos.xz * 0.001).r - 0.5); + #endif + } + + float opacityFactor = min1(cloudNoise * 8.0); + + float cloudShading = 1.0 - (higherPlaneAltitude - tracePos.y) / cloudHeight; + cloudShading *= 1.0 + 0.75 * VdotSM3 * (1.0 - opacityFactor); + + vec3 colorSample = cloudAmbientColor * (0.7 + 0.3 * cloudShading) + cloudLightColor * cloudShading; + //vec3 colorSample = 2.5 * cloudLightColor * pow2(cloudShading); // <-- Used this to take the Unbound logo + vec3 cloudSkyColor = GetSky(VdotU, VdotS, dither, true, false); + #ifdef ATM_COLOR_MULTS + cloudSkyColor *= sqrtAtmColorMult; // C72380KD - Reduced atmColorMult impact on some things + #endif + float distanceRatio = (distanceThreshold - lTracePosXZ) / distanceThreshold; + float cloudDistanceFactor = clamp(distanceRatio, 0.0, 0.8) * 1.25; + #ifndef DISTANT_HORIZONS + float cloudFogFactor = cloudDistanceFactor; + #else + float cloudFogFactor = clamp(distanceRatio, 0.0, 1.0); + #endif + float skyMult1 = 1.0 - 0.2 * (1.0 - skyFade) * max(sunVisibility2, nightFactor); + float skyMult2 = 1.0 - 0.33333 * skyFade; + colorSample = mix(cloudSkyColor, colorSample * skyMult1, cloudFogFactor * skyMult2 * 0.72); + colorSample *= pow2(1.0 - maxBlindnessDarkness); + + volumetricClouds.rgb = mix(volumetricClouds.rgb, colorSample, 1.0 - min1(volumetricClouds.a)); + volumetricClouds.a += opacityFactor * pow(cloudDistanceFactor, 0.5 + 10.0 * pow(abs(VdotSM1M), 90.0)) * cloudMult; + + if (volumetricClouds.a > 0.9) { + volumetricClouds.a = 1.0; + break; + } + } + } + + if (volumetricClouds.a > 0.5) cloudLinearDepth = sqrt(firstHitPos / renderDistance); + + return volumetricClouds; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/enderBeams.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/enderBeams.glsl new file mode 100644 index 0000000..e59227b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/enderBeams.glsl @@ -0,0 +1,57 @@ +#ifndef INCLUDE_ENDER_BEAMS + #define INCLUDE_ENDER_BEAMS + + #include "/lib/colors/lightAndAmbientColors.glsl" + + vec3 endOrangeCol = vec3(1.0, 0.3, 0.0); + vec3 beamPurple = normalize(ambientColor * ambientColor * ambientColor) * (2.5 - 1.0 * vlFactor); + vec3 beamOrange = endOrangeCol * (300.0 + 700.0 * vlFactor); + + vec2 wind = vec2(syncedTime * 0.00); + + float BeamNoise(vec2 planeCoord, vec2 wind) { + float noise = texture2D(noisetex, planeCoord * 0.175 - wind * 0.0625).b; + noise+= texture2D(noisetex, planeCoord * 0.04375 + wind * 0.0375).b * 5.0; + + return noise; + } + + vec3 DrawEnderBeams(float VdotU, vec3 playerPos) { + int sampleCount = 8; + + float VdotUM = 1.0 - VdotU * VdotU; + float VdotUM2 = VdotUM + smoothstep1(pow2(pow2(1.0 - abs(VdotU)))) * 0.2; + + vec4 beams = vec4(0.0); + float gradientMix = 1.0; + for (int i = 0; i < sampleCount; i++) { + vec2 planeCoord = playerPos.xz + cameraPosition.xz; + planeCoord *= (1.0 + i * 6.0 / sampleCount) * 0.0014; + + float noise = BeamNoise(planeCoord, wind); + noise = max(0.75 - 1.0 / abs(noise - (4.0 + VdotUM * 2.0)), 0.0) * 3.0; + + if (noise > 0.0) { + noise *= 0.65; + float fireNoise = texture2D(noisetex, abs(planeCoord * 0.2) - wind).b; + noise *= 0.5 * fireNoise + 0.75; + noise = noise * noise * 3.0 / sampleCount; + noise *= VdotUM2; + + vec3 beamColor = beamPurple; + beamColor += beamOrange * pow2(pow2(fireNoise - 0.5)); + beamColor *= gradientMix / sampleCount; + + noise *= exp2(-6.0 * i / float(sampleCount)); + beams += vec4(noise * beamColor, noise); + } + gradientMix += 1.0; + } + + beams.rgb *= beams.a * beams.a * beams.a * 3.5; + beams.rgb = sqrt(beams.rgb); + + return beams.rgb; + } + +#endif //INCLUDE_ENDER_BEAMS \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/enderStars.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/enderStars.glsl new file mode 100644 index 0000000..53d18de --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/enderStars.glsl @@ -0,0 +1,29 @@ +float GetEnderStarNoise(vec2 pos) { + return fract(sin(dot(pos, vec2(12.9898, 4.1414))) * 43758.54953); +} + +vec3 GetEnderStars(vec3 viewPos, float VdotU) { + vec3 wpos = normalize((gbufferModelViewInverse * vec4(viewPos * 1000.0, 1.0)).xyz); + + vec3 starCoord = 0.65 * wpos / (abs(wpos.y) + length(wpos.xz)); + vec2 starCoord2 = starCoord.xz * 0.5; + if (VdotU < 0.0) starCoord2 += 100.0; + float starFactor = 1024.0; + starCoord2 = floor(starCoord2 * starFactor) / starFactor; + + float star = 1.0; + star *= GetEnderStarNoise(starCoord2.xy); + star *= GetEnderStarNoise(starCoord2.xy+0.1); + star *= GetEnderStarNoise(starCoord2.xy+0.23); + star = max(star - 0.7, 0.0); + star *= star; + + vec3 enderStars = star * endSkyColor * 3000.0; + + float VdotUM1 = abs(VdotU); + float VdotUM2 = pow2(1.0 - VdotUM1); + enderStars *= VdotUM1 * VdotUM1 * (VdotUM2 + 0.015) + 0.015; + //if (gl_FragCoord.x > 960.0) enderStars = vec3(VdotUM1); else enderStars = vec3(VdotUM2); + + return enderStars; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/bloomFog.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/bloomFog.glsl new file mode 100644 index 0000000..fd5d870 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/bloomFog.glsl @@ -0,0 +1,42 @@ +#ifdef CAVE_FOG + #include "/lib/atmospherics/fog/caveFactor.glsl" +#endif + +const float rainBloomAdd = 8.0; +const float nightBloomAdd = 3.0; +const float caveBloomAdd = 14.0; +const float waterBloomAdd = 14.0; + +#ifdef BORDER_FOG + const float netherBloomAdd = 14.0; +#else + const float netherBloomAdd = 3.0; +#endif + +float GetBloomFog(float lViewPos) { + #ifdef OVERWORLD + float bloomFog = pow2(pow2(1.0 - exp(-lViewPos * (0.02 + 0.04 * float(isEyeInWater == 1))))); + + float bloomFogMult; + if (isEyeInWater != 1) { + bloomFogMult = (rainFactor2 * rainBloomAdd + nightBloomAdd * (1.0 - sunFactor)) * eyeBrightnessM; + #ifdef CAVE_FOG + bloomFogMult += GetCaveFactor() * caveBloomAdd; + #endif + } else { + bloomFogMult = waterBloomAdd; + } + #elif defined NETHER + float farM = min(renderDistance, NETHER_VIEW_LIMIT); // consistency9023HFUE85JG + float bloomFog = lViewPos / clamp(farM, 96.0, 256.0); + bloomFog *= bloomFog * bloomFog; + bloomFog = 1.0 - exp(-8.0 * bloomFog); + bloomFog *= float(isEyeInWater == 0); + + float bloomFogMult = netherBloomAdd; + #endif + + bloomFogMult *= BLOOM_STRENGTH * 8.33333; + + return 1.0 + bloomFog * bloomFogMult; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/caveFactor.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/caveFactor.glsl new file mode 100644 index 0000000..e544a2a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/caveFactor.glsl @@ -0,0 +1,7 @@ +#ifndef INCLUDE_CAVE_FACTOR + #define INCLUDE_CAVE_FACTOR + + float GetCaveFactor() { + return clamp(1.0 - cameraPosition.y / oceanAltitude, 0.0, 1.0 - eyeBrightnessM); + } +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/coloredLightFog.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/coloredLightFog.glsl new file mode 100644 index 0000000..53796a5 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/coloredLightFog.glsl @@ -0,0 +1,51 @@ +vec3 GetColoredLightFog(vec3 nPlayerPos, vec3 translucentMult, float lViewPos, float lViewPos1, float dither) { + vec3 lightFog = vec3(0.0); + + float stepMult = 8.0; + + float maxDist = min(effectiveACLdistance * 0.5, far); + int sampleCount = int(maxDist / stepMult + 0.001); + vec3 traceAdd = nPlayerPos * stepMult; + vec3 tracePos = traceAdd * dither; + + for (int i = 0; i < sampleCount; i++) { + float lTracePos = length(tracePos); + if (lTracePos > lViewPos1) break; + if (any(greaterThan(abs(tracePos * 2.0), vec3(voxelVolumeSize)))) break; + + vec3 voxelPos = SceneToVoxel(tracePos); + voxelPos = clamp01(voxelPos / vec3(voxelVolumeSize)); + + vec4 lightVolume = GetLightVolume(voxelPos); + vec3 lightSample = lightVolume.rgb; + + float lTracePosM = length( + vec3( + tracePos.x, + #if COLORED_LIGHTING_INTERNAL <= 512 + tracePos.y * 2.0, + #elif COLORED_LIGHTING_INTERNAL == 768 + tracePos.y * 3.0, + #elif COLORED_LIGHTING_INTERNAL == 1024 + tracePos.y * 4.0, + #endif + tracePos.z + ) + ); + lightSample *= max0(1.0 - lTracePosM / maxDist); + lightSample *= pow2(min1(lTracePos * 0.03125)); + + if (lTracePos > lViewPos) lightSample *= translucentMult; + lightFog += lightSample; + + tracePos += traceAdd; + } + + #ifdef NETHER + lightFog *= netherColor * 5.0; + #endif + + lightFog *= 1.0 - maxBlindnessDarkness; + + return pow(lightFog / sampleCount, vec3(0.25)); +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/mainFog.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/mainFog.glsl new file mode 100644 index 0000000..dc78ebf --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/mainFog.glsl @@ -0,0 +1,258 @@ +#ifdef ATM_COLOR_MULTS + #include "/lib/colors/colorMultipliers.glsl" +#endif +#ifdef MOON_PHASE_INF_ATMOSPHERE + #include "/lib/colors/moonPhaseInfluence.glsl" +#endif + +#ifdef BORDER_FOG + #ifdef OVERWORLD + #include "/lib/atmospherics/sky.glsl" + #elif defined NETHER + #include "/lib/colors/skyColors.glsl" + #endif + + void DoBorderFog(inout vec3 color, inout float skyFade, float lPos, float VdotU, float VdotS, float dither) { + #ifdef OVERWORLD + float fog = lPos / renderDistance; + fog = pow2(pow2(fog)); + #ifndef DISTANT_HORIZONS + fog = pow2(pow2(fog)); + #endif + fog = 1.0 - exp(-3.0 * fog); + #endif + #ifdef NETHER + float farM = min(renderDistance, NETHER_VIEW_LIMIT); // consistency9023HFUE85JG + float fog = lPos / farM; + fog = fog * 0.3 + 0.7 * pow(fog, 256.0 / max(farM, 256.0)); + #endif + #ifdef END + float fog = lPos / renderDistance; + fog = pow2(pow2(fog)); + fog = 1.0 - exp(-3.0 * fog); + #endif + + #ifdef DREAM_TWEAKED_BORDERFOG + fog *= fog * 0.5; + #endif + + if (fog > 0.0) { + fog = clamp(fog, 0.0, 1.0); + + #ifdef OVERWORLD + vec3 fogColorM = GetSky(VdotU, VdotS, dither, true, false); + #elif defined NETHER + vec3 fogColorM = netherColor; + #else + vec3 fogColorM = endSkyColor; + #endif + + #ifdef ATM_COLOR_MULTS + fogColorM *= atmColorMult; + #endif + #ifdef MOON_PHASE_INF_ATMOSPHERE + fogColorM *= moonPhaseInfluence; + #endif + + color = mix(color, fogColorM, fog); + + #ifndef GBUFFERS_WATER + skyFade = fog; + #else + skyFade = fog * (1.0 - isEyeInWater); + #endif + } + } +#endif + +#ifdef CAVE_FOG + #include "/lib/atmospherics/fog/caveFactor.glsl" + + void DoCaveFog(inout vec3 color, float lViewPos) { + float fog = GetCaveFactor() * (0.9 - 0.9 * exp(- lViewPos * 0.015)); + + color = mix(color, caveFogColor, fog); + } +#endif + +#ifdef ATMOSPHERIC_FOG + #include "/lib/colors/lightAndAmbientColors.glsl" + #include "/lib/colors/skyColors.glsl" + + // SRATA: Atm. fog starts reducing above this altitude + // CRFTM: Atm. fog continues reducing for this meters + #ifdef OVERWORLD + #define atmFogSRATA ATM_FOG_ALTITUDE + 0.1 + #ifndef DISTANT_HORIZONS + float atmFogCRFTM = 60.0; + #else + float atmFogCRFTM = 90.0; + #endif + + vec3 GetAtmFogColor(float altitudeFactorRaw, float VdotS) { + float nightFogMult = 2.5 - 0.625 * max(pow2(pow2(altitudeFactorRaw)), rainFactor); + float dayNightFogBlend = pow(invNightFactor, 4.0 - VdotS - 2.5 * sunVisibility2); + return mix( + nightUpSkyColor * (nightFogMult - dayNightFogBlend * nightFogMult), + dayDownSkyColor * (0.9 + 0.2 * noonFactor), + dayNightFogBlend + ); + } + #else + float atmFogSRATA = 55.1; + float atmFogCRFTM = 30.0; + #endif + + float GetAtmFogAltitudeFactor(float altitude) { + float altitudeFactor = pow2(1.0 - clamp(altitude - atmFogSRATA, 0.0, atmFogCRFTM) / atmFogCRFTM); + #ifndef LIGHTSHAFTS_ACTIVE + altitudeFactor = mix(altitudeFactor, 1.0, rainFactor * 0.2); + #endif + return altitudeFactor; + } + + void DoAtmosphericFog(inout vec3 color, vec3 playerPos, float lViewPos, float VdotS) { + #ifndef DISTANT_HORIZONS + float renDisFactor = min1(192.0 / renderDistance); + + #if ATM_FOG_DISTANCE != 100 + #define ATM_FOG_DISTANCE_M 100.0 / ATM_FOG_DISTANCE; + renDisFactor *= ATM_FOG_DISTANCE_M; + #endif + + float fog = 1.0 - exp(-pow(lViewPos * (0.001 - 0.0007 * rainFactor), 2.0 - rainFactor2) * lViewPos * renDisFactor); + #else + float fog = pow2(1.0 - exp(-max0(lViewPos - 40.0) * (0.7 + 0.7 * rainFactor) / ATM_FOG_DISTANCE)); + #endif + + fog *= ATM_FOG_MULT - 0.1 - 0.15 * invRainFactor; + + float altitudeFactorRaw = GetAtmFogAltitudeFactor(playerPos.y + cameraPosition.y); + + #ifndef DISTANT_HORIZONS + float altitudeFactor = altitudeFactorRaw * 0.9 + 0.1; + #else + float altitudeFactor = altitudeFactorRaw * 0.8 + 0.2; + #endif + + #ifdef OVERWORLD + altitudeFactor *= 1.0 - 0.75 * GetAtmFogAltitudeFactor(cameraPosition.y) * invRainFactor; + + #if defined SPECIAL_BIOME_WEATHER || RAIN_STYLE == 2 + #if RAIN_STYLE == 2 + float factor = 1.0; + #else + float factor = max(inSnowy, inDry); + #endif + + float fogFactor = 4.0; + #ifdef SPECIAL_BIOME_WEATHER + fogFactor += 2.0 * inDry; + #endif + + float fogIntense = pow2(1.0 - exp(-lViewPos * fogFactor / ATM_FOG_DISTANCE)); + fog = mix(fog, fogIntense / altitudeFactor, 0.8 * rainFactor * factor); + #endif + + #ifdef CAVE_FOG + fog *= 0.2 + 0.8 * sqrt2(eyeBrightnessM); + fog *= 1.0 - GetCaveFactor(); + #else + fog *= eyeBrightnessM; + #endif + #else + fog *= 0.5; + #endif + + fog *= altitudeFactor; + + if (fog > 0.0) { + fog = clamp(fog, 0.0, 1.0); + + #ifdef OVERWORLD + vec3 fogColorM = GetAtmFogColor(altitudeFactorRaw, VdotS); + #else + vec3 fogColorM = endSkyColor * 1.5; + #endif + + #ifdef ATM_COLOR_MULTS + fogColorM *= atmColorMult; + #endif + #ifdef MOON_PHASE_INF_ATMOSPHERE + fogColorM *= moonPhaseInfluence; + #endif + + color = mix(color, fogColorM, fog); + } + } +#endif + +#include "/lib/atmospherics/fog/waterFog.glsl" + +void DoWaterFog(inout vec3 color, float lViewPos) { + float fog = GetWaterFog(lViewPos); + + color = mix(color, waterFogColor, fog); +} + +void DoLavaFog(inout vec3 color, float lViewPos) { + float fog = (lViewPos * 3.0 - gl_Fog.start) * gl_Fog.scale; + + #ifdef LESS_LAVA_FOG + fog = sqrt(fog) * 0.4; + #endif + + fog = 1.0 - exp(-fog); + + fog = clamp(fog, 0.0, 1.0); + color = mix(color, fogColor * 5.0, fog); +} + +void DoPowderSnowFog(inout vec3 color, float lViewPos) { + float fog = lViewPos; + + #ifdef LESS_LAVA_FOG + fog = sqrt(fog) * 0.4; + #endif + + fog *= fog; + fog = 1.0 - exp(-fog); + + fog = clamp(fog, 0.0, 1.0); + color = mix(color, fogColor, fog); +} + +void DoBlindnessFog(inout vec3 color, float lViewPos) { + float fog = lViewPos * 0.3 * blindness; + fog *= fog; + fog = 1.0 - exp(-fog); + + fog = clamp(fog, 0.0, 1.0); + color = mix(color, vec3(0.0), fog); +} + +void DoDarknessFog(inout vec3 color, float lViewPos) { + float fog = lViewPos * 0.075 * darknessFactor; + fog *= fog; + fog *= fog; + color *= exp(-fog); +} + +void DoFog(inout vec3 color, inout float skyFade, float lViewPos, vec3 playerPos, float VdotU, float VdotS, float dither) { + #ifdef CAVE_FOG + DoCaveFog(color, lViewPos); + #endif + #ifdef ATMOSPHERIC_FOG + DoAtmosphericFog(color, playerPos, lViewPos, VdotS); + #endif + #ifdef BORDER_FOG + DoBorderFog(color, skyFade, max(length(playerPos.xz), abs(playerPos.y)), VdotU, VdotS, dither); + #endif + + if (isEyeInWater == 1) DoWaterFog(color, lViewPos); + else if (isEyeInWater == 2) DoLavaFog(color, lViewPos); + else if (isEyeInWater == 3) DoPowderSnowFog(color, lViewPos); + + if (blindness > 0.00001) DoBlindnessFog(color, lViewPos); + if (darknessFactor > 0.00001) DoDarknessFog(color, lViewPos); +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/waterFog.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/waterFog.glsl new file mode 100644 index 0000000..dc26f2e --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/fog/waterFog.glsl @@ -0,0 +1,19 @@ +#ifndef INCLUDE_WATER_FOG + #define INCLUDE_WATER_FOG + + float GetWaterFog(float lViewPos) { + #if WATER_FOG_MULT != 100 + #define WATER_FOG_MULT_M WATER_FOG_MULT * 0.01; + lViewPos *= WATER_FOG_MULT_M; + #endif + + #if LIGHTSHAFT_QUALI > 0 && SHADOW_QUALITY > -1 + float fog = lViewPos / 48.0; + fog *= fog; + #else + float fog = lViewPos / 32.0; + #endif + + return 1.0 - exp(-fog); + } +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/netherStorm.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/netherStorm.glsl new file mode 100644 index 0000000..53dbc15 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/netherStorm.glsl @@ -0,0 +1,83 @@ +float Noise3D(vec3 p) { + p.z = fract(p.z) * 128.0; + float iz = floor(p.z); + float fz = fract(p.z); + vec2 a_off = vec2(23.0, 29.0) * (iz) / 128.0; + vec2 b_off = vec2(23.0, 29.0) * (iz + 1.0) / 128.0; + float a = texture2D(noisetex, p.xy + a_off).r; + float b = texture2D(noisetex, p.xy + b_off).r; + return mix(a, b, fz); +} + +vec4 GetNetherStorm(vec3 color, vec3 translucentMult, vec3 nPlayerPos, vec3 playerPos, float lViewPos, float lViewPos1, float dither) { + if (isEyeInWater != 0) return vec4(0.0); + vec4 netherStorm = vec4(1.0, 1.0, 1.0, 0.0); + + #ifdef BORDER_FOG + float maxDist = min(renderDistance, NETHER_VIEW_LIMIT); // consistency9023HFUE85JG + #else + float maxDist = renderDistance; + #endif + + #ifndef LOW_QUALITY_NETHER_STORM + int sampleCount = int(maxDist / 8.0 + 0.001); + + vec3 traceAdd = nPlayerPos * maxDist / sampleCount; + vec3 tracePos = cameraPosition; + tracePos += traceAdd * dither; + #else + int sampleCount = int(maxDist / 16.0 + 0.001); + + vec3 traceAdd = 0.75 * nPlayerPos * maxDist / sampleCount; + vec3 tracePos = cameraPosition; + tracePos += traceAdd * dither; + tracePos += traceAdd * sampleCount * 0.25; + #endif + + vec3 translucentMultM = pow(translucentMult, vec3(1.0 / sampleCount)); + + for (int i = 0; i < sampleCount; i++) { + tracePos += traceAdd; + + vec3 tracedPlayerPos = tracePos - cameraPosition; + float lTracePos = length(tracedPlayerPos); + if (lTracePos > lViewPos1) break; + + vec3 wind = vec3(frameTimeCounter * 0.002); + + vec3 tracePosM = tracePos * 0.001; + tracePosM.y += tracePosM.x; + tracePosM += Noise3D(tracePosM - wind) * 0.01; + tracePosM = tracePosM * vec3(2.0, 0.5, 2.0); + + float traceAltitudeM = abs(tracePos.y - NETHER_STORM_LOWER_ALT); + if (tracePos.y < NETHER_STORM_LOWER_ALT) traceAltitudeM *= 10.0; + traceAltitudeM = 1.0 - min1(abs(traceAltitudeM) / NETHER_STORM_HEIGHT); + + for (int h = 0; h < 4; h++) { + float stormSample = pow2(Noise3D(tracePosM + wind)); + stormSample *= traceAltitudeM; + stormSample = pow2(pow2(stormSample)); + stormSample *= sqrt1(max0(1.0 - lTracePos / maxDist)); + + netherStorm.a += stormSample; + tracePosM *= 2.0; + wind *= -2.0; + } + + if (lTracePos > lViewPos) netherStorm.rgb *= translucentMultM; + } + + #ifdef LOW_QUALITY_NETHER_STORM + netherStorm.a *= 1.8; + #endif + + netherStorm.a = min1(netherStorm.a * NETHER_STORM_I); + + netherStorm.rgb *= netherColor * 3.0 * (1.0 - maxBlindnessDarkness); + + //if (netherStorm.a > 0.98) netherStorm.rgb = vec3(1,0,1); + //netherStorm.a *= 1.0 - max0(netherStorm.a - 0.98) * 50.0; + + return netherStorm; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/nightNebula.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/nightNebula.glsl new file mode 100644 index 0000000..0399ca5 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/nightNebula.glsl @@ -0,0 +1,106 @@ +#include "/lib/atmospherics/stars.glsl" + +// Nebula implementation by flytrap https://godotshaders.com/shader/2d-nebula-shader/ + +#ifndef HQ_NIGHT_NEBULA + const int OCTAVE = 5; +#else + const int OCTAVE = 8; +#endif +const float timescale = 5.0; +const float zoomScale = 3.5; +const vec4 CLOUD1_COL = vec4(0.41, 0.64, 0.97, 0.4); +const vec4 CLOUD2_COL = vec4(0.81, 0.55, 0.21, 0.2); +const vec4 CLOUD3_COL = vec4(0.51, 0.81, 0.98, 1.0); + +float sinM(float x) { + return sin(mod(x, 2.0 * pi)); +} + +float cosM(float x) { + return cos(mod(x, 2.0 * pi)); +} + +float rand(vec2 inCoord){ + return fract(sinM(dot(inCoord, vec2(23.53, 44.0))) * 42350.45); +} + +float perlin(vec2 inCoord){ + vec2 i = floor(inCoord); + vec2 j = fract(inCoord); + vec2 coord = smoothstep(0.0, 1.0, j); + + float a = rand(i); + float b = rand(i + vec2(1.0, 0.0)); + float c = rand(i + vec2(0.0, 1.0)); + float d = rand(i + vec2(1.0, 1.0)); + + return mix(mix(a, b, coord.x), mix(c, d, coord.x), coord.y); +} + +float fbmCloud(vec2 inCoord, float minimum){ + float value = 0.0; + float scale = 0.5; + + for (int i = 0; i < OCTAVE; i++){ + value += perlin(inCoord) * scale; + inCoord *= 2.0; + scale *= 0.5; + } + + return smoothstep(0.0, 1.0, (smoothstep(minimum, 1.0, value) - minimum) / (1.0 - minimum)); +} + +float fbmCloud2(vec2 inCoord, float minimum){ + float value = 0.0; + float scale = 0.5; + + for (int i = 0; i < OCTAVE; i++){ + value += perlin(inCoord) * scale; + inCoord *= 2.0; + scale *= 0.5; + } + + return (smoothstep(minimum, 1.0, value) - minimum) / (1.0 - minimum); +} + +vec3 GetNightNebula(vec3 viewPos, float VdotU, float VdotS) { + float nebulaFactor = pow2(max0(VdotU) * min1(nightFactor * 2.0)) * invRainFactor - maxBlindnessDarkness; + if (nebulaFactor < 0.001) return vec3(0.0); + + vec2 UV = GetStarCoord(viewPos, 0.75); + float TIME = syncedTime * 0.003 + 15.0; + + float timescaled = TIME * timescale; + vec2 zoomUV2 + = vec2(zoomScale * UV.x + 0.03 * timescaled * sinM(0.07 * timescaled), zoomScale * UV.y + 0.03 * timescaled * cosM(0.06 * timescaled)); + vec2 zoomUV3 + = vec2(zoomScale * UV.x + 0.027 * timescaled * sinM(0.07 * timescaled), zoomScale * UV.y + 0.025 * timescaled * cosM(0.06 * timescaled)); + vec2 zoomUV4 + = vec2(zoomScale * UV.x + 0.021 * timescaled * sinM(0.07 * timescaled), zoomScale * UV.y + 0.021 * timescaled * cosM(0.07 * timescaled)); + float tide = 0.05 * sinM(TIME); + float tide2 = 0.06 * cosM(0.3 * TIME); + + vec4 nebulaTexture = vec4(vec3(0.0), 0.5 + 0.2 * sinM(0.23 * TIME + UV.x - UV.y)); + nebulaTexture += fbmCloud2(zoomUV3, 0.24 + tide) * CLOUD1_COL; + nebulaTexture += fbmCloud(zoomUV2 * 0.9, 0.33 - tide) * CLOUD2_COL; + nebulaTexture = mix(nebulaTexture, CLOUD3_COL, fbmCloud(vec2(0.9 * zoomUV4.x, 0.9 * zoomUV4.y), 0.25 + tide2)); + + nebulaFactor *= 1.0 - pow2(pow2(pow2(abs(VdotS)))); + nebulaTexture.a *= min1(pow2(pow2(nebulaTexture.a))) * nebulaFactor; + + float starFactor = 1024.0; + vec2 starCoord = floor(UV * 0.25 * starFactor) / starFactor; + nebulaTexture.rgb *= 1.5 + 10.0 * pow2(max0(GetStarNoise(starCoord) * GetStarNoise(starCoord + 0.1) - 0.6)); + + #if NIGHT_NEBULA_I != 100 + #define NIGHT_NEBULA_IM NIGHT_NEBULA_I * 0.01 + nebulaTexture.a *= NIGHT_NEBULA_IM; + #endif + + #ifdef ATM_COLOR_MULTS + nebulaTexture.rgb *= sqrtAtmColorMult; // C72380KD - Reduced atmColorMult impact on some things + #endif + + return max(nebulaTexture.rgb * nebulaTexture.a, vec3(0.0)); +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/rainbow.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/rainbow.glsl new file mode 100644 index 0000000..681e0aa --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/rainbow.glsl @@ -0,0 +1,56 @@ +#define RAINBOW_DIAMETER 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.50 8.00] +#define RAINBOW_STYLE 1 //[1 2] + +vec3 GetRainbow(vec3 translucentMult, float z0, float z1, float lViewPos, float lViewPos1, float VdotL, float dither) { + vec3 rainbow = vec3(0.0); + + float rainbowTime = min1(max0(SdotU - 0.1) / 0.15); + rainbowTime = clamp(rainbowTime - pow2(pow2(pow2(noonFactor))) * 8.0, 0.0, 0.85); + #if RAINBOWS == 1 // After Rain + rainbowTime *= sqrt2(max0(wetness - 0.333) * 1.5) * invRainFactor * inRainy; + #endif + + if (rainbowTime > 0.001) { + float cloudLinearDepth = texelFetch(colortex4, texelCoord, 0).r; + float cloudDistance = pow2(cloudLinearDepth + OSIEBCA * dither) * far; + if (cloudDistance < lViewPos1) lViewPos = cloudDistance; + + float rainbowLength = max(far, 128.0) * 0.9; + + float rainbowCoord = clamp01(1.0 - (VdotL + 0.75) / (0.0625 * RAINBOW_DIAMETER)); + float rainbowFactor = rainbowCoord * (1.0 - rainbowCoord); + rainbowFactor = pow2(pow2(rainbowFactor * 3.7)); + rainbowFactor *= pow2(min1(lViewPos / rainbowLength)); + rainbowFactor *= rainbowTime; + rainbowFactor *= 1.0 - GetCaveFactor(); + + if (rainbowFactor > 0.0) { + #if RAINBOW_STYLE == 1 + float rainbowCoordM = pow(rainbowCoord, 1.4 + max(rainbowCoord - 0.5, 0.0) * 1.6); + rainbowCoordM = smoothstep(0.0, 1.0, rainbowCoordM) * 0.85; + rainbowCoordM += (dither - 0.5) * 0.1; + rainbow += clamp(abs(mod(rainbowCoordM * 6.0 + vec3(-0.55,4.3,2.2) ,6.0)-3.0)-1.0, 0.0, 1.0); + rainbowCoordM += 0.1; + rainbow += clamp(abs(mod(rainbowCoordM * 6.0 + vec3(-0.55,4.3,2.2) ,6.0)-3.0)-1.0, 0.0, 1.0); + rainbowCoordM -= 0.2; + rainbow += clamp(abs(mod(rainbowCoordM * 6.0 + vec3(-0.55,4.3,2.2) ,6.0)-3.0)-1.0, 0.0, 1.0); + rainbow /= 3.0; + rainbow.r += pow2(max(rainbowCoord - 0.5, 0.0)) * (max(1.0 - rainbowCoord, 0.0)) * 26.0; + rainbow = pow(rainbow, vec3(2.2)) * vec3(0.25, 0.075, 0.25) * 3.0; + #else + float rainbowCoordM = pow(rainbowCoord, 1.35); + rainbowCoordM = smoothstep(0.0, 1.0, rainbowCoordM); + rainbow += clamp(abs(mod(rainbowCoordM * 6.0 + vec3(0.0,4.0,2.0) ,6.0)-3.0)-1.0, 0.0, 1.0); + rainbow *= rainbow * (3.0 - 2.0 * rainbow); + rainbow = pow(rainbow, vec3(2.2)) * vec3(0.25, 0.075, 0.25) * 3.0; + #endif + + if (z1 > z0 && lViewPos < rainbowLength) + rainbow *= mix(translucentMult, vec3(1.0), lViewPos / rainbowLength); + + rainbow *= rainbowFactor; + } + } + + return rainbow; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/sky.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/sky.glsl new file mode 100644 index 0000000..6ffcdb4 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/sky.glsl @@ -0,0 +1,127 @@ +#ifndef INCLUDE_SKY + #define INCLUDE_SKY + + #include "/lib/colors/lightAndAmbientColors.glsl" + #include "/lib/colors/skyColors.glsl" + + #ifdef CAVE_FOG + #include "/lib/atmospherics/fog/caveFactor.glsl" + #endif + + vec3 GetSky(float VdotU, float VdotS, float dither, bool doGlare, bool doGround) { + // Prepare variables + float nightFactorSqrt2 = sqrt2(nightFactor); + float nightFactorM = sqrt2(nightFactorSqrt2) * 0.4; + float VdotSM1 = pow2(max(VdotS, 0.0)); + float VdotSM2 = pow2(VdotSM1); + float VdotSM3 = pow2(pow2(max(-VdotS, 0.0))); + float VdotSML = sunVisibility > 0.5 ? VdotS : -VdotS; + + float VdotUmax0 = max(VdotU, 0.0); + float VdotUmax0M = 1.0 - pow2(VdotUmax0); + + // Prepare colors + vec3 upColor = mix(nightUpSkyColor * (1.5 - 0.5 * nightFactorSqrt2 + nightFactorM * VdotSM3 * 1.5), dayUpSkyColor, sunFactor); + vec3 middleColor = mix(nightMiddleSkyColor * (3.0 - 2.0 * nightFactorSqrt2), dayMiddleSkyColor * (1.0 + VdotSM2 * 0.3), sunFactor); + vec3 downColor = mix(nightDownSkyColor, dayDownSkyColor, (sunFactor + sunVisibility) * 0.5); + + // Mix the colors + // Set sky gradient + float VdotUM1 = pow2(1.0 - VdotUmax0); + VdotUM1 = pow(VdotUM1, 1.0 - VdotSM2 * 0.4); + VdotUM1 = mix(VdotUM1, 1.0, rainFactor2 * 0.15); + vec3 finalSky = mix(upColor, middleColor, VdotUM1); + + // Add sunset color + float VdotUM2 = pow2(1.0 - abs(VdotU)); + VdotUM2 = VdotUM2 * VdotUM2 * (3.0 - 2.0 * VdotUM2); + VdotUM2 *= (0.7 - nightFactorM + VdotSM1 * (0.3 + nightFactorM)) * invNoonFactor * sunFactor; + finalSky = mix(finalSky, sunsetDownSkyColorP * (1.0 + VdotSM1 * 0.3), VdotUM2 * invRainFactor); + + // Add sky ground with fake light scattering + float VdotUM3 = min(max0(-VdotU + 0.08) / 0.35, 1.0); + VdotUM3 = smoothstep1(VdotUM3); + vec3 scatteredGroundMixer = vec3(VdotUM3 * VdotUM3, sqrt1(VdotUM3), sqrt3(VdotUM3)); + scatteredGroundMixer = mix(vec3(VdotUM3), scatteredGroundMixer, 0.75 - 0.5 * rainFactor); + finalSky = mix(finalSky, downColor, scatteredGroundMixer); + // + + // Sky Ground + if (doGround) + finalSky *= smoothstep1(pow2(1.0 + min(VdotU, 0.0))); + + // Apply Underwater Fog + if (isEyeInWater == 1) + finalSky = mix(finalSky * 3.0, waterFogColor, VdotUmax0M); + + // Sun/Moon Glare + if (doGlare) { + if (0.0 < VdotSML) { + float glareScatter = 4.0 * (2.0 - clamp01(VdotS * 1000.0)); + float VdotSM4 = pow(abs(VdotS), glareScatter); + + float visfactor = 0.075; + float glare = visfactor / (1.0 - (1.0 - visfactor) * VdotSM4) - visfactor; + + glare *= 0.5 + pow2(noonFactor) * 1.2; + glare *= 1.0 - rainFactor * 0.5; + + float glareWaterFactor = isEyeInWater * sunVisibility; + vec3 glareColor = mix(vec3(0.38, 0.4, 0.5) * 0.7, vec3(0.5), sunVisibility); + glareColor = glareColor + glareWaterFactor * vec3(7.0); + + finalSky += glare * shadowTime * glareColor; + } + } + + #ifdef CAVE_FOG + // Apply Cave Fog + finalSky = mix(finalSky, caveFogColor, GetCaveFactor() * VdotUmax0M); + #endif + + // Dither to fix banding + finalSky += (dither - 0.5) / 128.0; + + return finalSky; + } + + vec3 GetLowQualitySky(float VdotU, float VdotS, float dither, bool doGlare, bool doGround) { + // Prepare variables + float VdotUmax0 = max(VdotU, 0.0); + float VdotUmax0M = 1.0 - pow2(VdotUmax0); + + // Prepare colors + vec3 upColor = mix(nightUpSkyColor, dayUpSkyColor, sunFactor); + vec3 middleColor = mix(nightMiddleSkyColor, dayMiddleSkyColor, sunFactor); + + // Mix the colors + // Set sky gradient + float VdotUM1 = pow2(1.0 - VdotUmax0); + VdotUM1 = mix(VdotUM1, 1.0, rainFactor2 * 0.2); + vec3 finalSky = mix(upColor, middleColor, VdotUM1); + + // Add sunset color + float VdotUM2 = pow2(1.0 - abs(VdotU)); + VdotUM2 *= invNoonFactor * sunFactor * (0.8 + 0.2 * VdotS); + finalSky = mix(finalSky, sunsetDownSkyColorP * (shadowTime * 0.6 + 0.2), VdotUM2 * invRainFactor); + // + + // Sky Ground + finalSky *= pow2(pow2(1.0 + min(VdotU, 0.0))); + + // Apply Underwater Fog + if (isEyeInWater == 1) + finalSky = mix(finalSky, waterFogColor, VdotUmax0M); + + // Sun/Moon Glare + finalSky *= 1.0 + mix(nightFactor, 0.5 + 0.7 * noonFactor, VdotS * 0.5 + 0.5) * pow2(pow2(pow2(VdotS))); + + #ifdef CAVE_FOG + // Apply Cave Fog + finalSky = mix(finalSky, caveFogColor, GetCaveFactor() * VdotUmax0M); + #endif + + return finalSky; + } + +#endif //INCLUDE_SKY \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/stars.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/stars.glsl new file mode 100644 index 0000000..14df81d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/stars.glsl @@ -0,0 +1,39 @@ +#include "/lib/colors/skyColors.glsl" + +float GetStarNoise(vec2 pos) { + return fract(sin(dot(pos, vec2(12.9898, 4.1414))) * 43758.54953); +} + +vec2 GetStarCoord(vec3 viewPos, float sphereness) { + vec3 wpos = normalize((gbufferModelViewInverse * vec4(viewPos * 1000.0, 1.0)).xyz); + vec3 starCoord = wpos / (wpos.y + length(wpos.xz) * sphereness); + starCoord.x += 0.006 * syncedTime; + return starCoord.xz; +} + +vec3 GetStars(vec2 starCoord, float VdotU, float VdotS) { + if (VdotU < 0.0) return vec3(0.0); + + starCoord *= 0.2; + float starFactor = 1024.0; + starCoord = floor(starCoord * starFactor) / starFactor; + + float star = 1.0; + star *= GetStarNoise(starCoord.xy); + star *= GetStarNoise(starCoord.xy+0.1); + star *= GetStarNoise(starCoord.xy+0.23); + + #if NIGHT_STAR_AMOUNT == 2 + star -= 0.7; + #else + star -= 0.6; + star *= 0.65; + #endif + star = max0(star); + star *= star; + + star *= min1(VdotU * 3.0) * max0(1.0 - pow(abs(VdotS) * 1.002, 100.0)); + star *= invRainFactor * pow2(pow2(invNoonFactor2)) * (1.0 - 0.5 * sunVisibility); + + return 40.0 * star * vec3(0.38, 0.4, 0.5); +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/volumetricLight.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/volumetricLight.glsl new file mode 100644 index 0000000..e19d27f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/atmospherics/volumetricLight.glsl @@ -0,0 +1,338 @@ +// Volumetric tracing from Robobo1221, highly modified + +#include "/lib/colors/lightAndAmbientColors.glsl" + +float GetDepth(float depth) { + return 2.0 * near * far / (far + near - (2.0 * depth - 1.0) * (far - near)); +} + +float GetDistX(float dist) { + return (far * (dist - near)) / (dist * (far - near)); +} + +vec4 DistortShadow(vec4 shadowpos, float distortFactor) { + shadowpos.xy *= 1.0 / distortFactor; + shadowpos.z = shadowpos.z * 0.2; + shadowpos = shadowpos * 0.5 + 0.5; + + return shadowpos; +} + +float Noise3D(vec3 p) { + p.z = fract(p.z) * 128.0; + float iz = floor(p.z); + float fz = fract(p.z); + vec2 a_off = vec2(23.0, 29.0) * (iz) / 128.0; + vec2 b_off = vec2(23.0, 29.0) * (iz + 1.0) / 128.0; + float a = texture2D(noisetex, p.xy + a_off).r; + float b = texture2D(noisetex, p.xy + b_off).r; + return mix(a, b, fz); +} + +vec4 GetVolumetricLight(inout vec3 color, inout float vlFactor, vec3 translucentMult, float lViewPos0, float lViewPos1, vec3 nViewPos, float VdotL, float VdotU, vec2 texCoord, float z0, float z1, float dither) { + vec4 volumetricLight = vec4(0.0); + float vlMult = 1.0 - maxBlindnessDarkness; + + #if SHADOW_QUALITY > -1 + // Optifine for some reason doesn't provide correct shadowMapResolution if Shadow Quality isn't 1x + vec2 shadowMapResolutionM = textureSize(shadowtex0, 0); + #endif + + #ifdef OVERWORLD + vec3 vlColor = lightColor; + vec3 vlColorReducer = vec3(1.0); + float vlSceneIntensity = isEyeInWater != 1 ? vlFactor : 1.0; + + #ifdef SPECIAL_BIOME_WEATHER + vlSceneIntensity = mix(vlSceneIntensity, 1.0, inDry * rainFactor); + #endif + + if (sunVisibility < 0.5) { + vlSceneIntensity = 0.0; + + float vlMultNightModifier = 0.6 + 0.4 * max0(far - lViewPos1) / far; + #ifdef SPECIAL_PALE_GARDEN_LIGHTSHAFTS + vlMultNightModifier = mix(vlMultNightModifier, 1.0, inPaleGarden); + #endif + vlMult *= vlMultNightModifier; + + vlColor = normalize(pow(vlColor, vec3(1.0 - max0(1.0 - 1.5 * nightFactor)))); + vlColor *= 0.0766 + 0.0766 * vsBrightness; + } else { + vlColorReducer = 1.0 / sqrt(vlColor); + } + + #ifdef SPECIAL_PALE_GARDEN_LIGHTSHAFTS + vlSceneIntensity = mix(vlSceneIntensity, 1.0, inPaleGarden); + vlMult *= 1.0 + (3.0 * inPaleGarden) * (1.0 - sunVisibility); + #endif + + float rainyNight = (1.0 - sunVisibility) * rainFactor; + float VdotLM = max((VdotL + 1.0) / 2.0, 0.0); + float VdotUmax0 = max(VdotU, 0.0); + float VdotUM = mix(pow2(1.0 - VdotUmax0), 1.0, 0.5 * vlSceneIntensity); + VdotUM = smoothstep1(VdotUM); + VdotUM = pow(VdotUM, min(lViewPos1 / far, 1.0) * (3.0 - 2.0 * vlSceneIntensity)); + vlMult *= mix(VdotUM * VdotLM, 1.0, 0.4 * rainyNight) * vlTime; + vlMult *= mix(invNoonFactor2 * 0.875 + 0.125, 1.0, max(vlSceneIntensity, rainFactor2)); + + #if LIGHTSHAFT_QUALI == 4 + int sampleCount = vlSceneIntensity < 0.5 ? 30 : 50; + #elif LIGHTSHAFT_QUALI == 3 + int sampleCount = vlSceneIntensity < 0.5 ? 15 : 30; + #elif LIGHTSHAFT_QUALI == 2 + int sampleCount = vlSceneIntensity < 0.5 ? 10 : 20; + #elif LIGHTSHAFT_QUALI == 1 + int sampleCount = vlSceneIntensity < 0.5 ? 6 : 12; + #endif + + #ifdef LIGHTSHAFT_SMOKE + float totalSmoke = 0.0; + #endif + #else + translucentMult = sqrt(translucentMult); // Because we pow2() the vl result in composite for the End dimension + + float vlSceneIntensity = 0.0; + + #ifndef LOW_QUALITY_ENDER_NEBULA + int sampleCount = 16; + #else + int sampleCount = 10; + #endif + #endif + + float addition = 1.0; + float maxDist = mix(max(far, 96.0) * 0.55, 80.0, vlSceneIntensity); + + #if WATER_FOG_MULT != 100 + if (isEyeInWater == 1) { + #define WATER_FOG_MULT_M WATER_FOG_MULT * 0.01; + maxDist /= WATER_FOG_MULT_M; + } + #endif + + float distMult = maxDist / (sampleCount + addition); + float sampleMultIntense = isEyeInWater != 1 ? 1.0 : 0.85; + + float viewFactor = 1.0 - 0.7 * pow2(dot(nViewPos.xy, nViewPos.xy)); + + float depth0 = GetDepth(z0); + float depth1 = GetDepth(z1); + #ifdef END + if (z0 == 1.0) depth0 = 1000.0; + if (z1 == 1.0) depth1 = 1000.0; + #endif + + // Fast but inaccurate perspective distortion approximation + maxDist *= viewFactor; + distMult *= viewFactor; + + #ifdef OVERWORLD + float maxCurrentDist = min(depth1, maxDist); + #else + float maxCurrentDist = min(depth1, far); + #endif + + for (int i = 0; i < sampleCount; i++) { + float currentDist = (i + dither) * distMult + addition; + + if (currentDist > maxCurrentDist) break; + + vec4 viewPos = gbufferProjectionInverse * (vec4(texCoord, GetDistX(currentDist), 1.0) * 2.0 - 1.0); + viewPos /= viewPos.w; + vec4 wpos = gbufferModelViewInverse * viewPos; + vec3 playerPos = wpos.xyz / wpos.w; + #ifdef END + #ifdef DISTANT_HORIZONS + playerPos *= sqrt(renderDistance / far); + #endif + vec4 enderBeamSample = vec4(DrawEnderBeams(VdotU, playerPos), 1.0); + enderBeamSample /= sampleCount; + #endif + + float shadowSample = 1.0; + vec3 vlSample = vec3(1.0); + #if SHADOW_QUALITY > -1 + wpos = shadowModelView * wpos; + wpos = shadowProjection * wpos; + wpos /= wpos.w; + float distb = sqrt(wpos.x * wpos.x + wpos.y * wpos.y); + float distortFactor = 1.0 - shadowMapBias + distb * shadowMapBias; + vec4 shadowPosition = DistortShadow(wpos,distortFactor); + //shadowPosition.z += 0.0001; + + #ifdef OVERWORLD + float percentComplete = currentDist / maxDist; + float sampleMult = mix(percentComplete * 3.0, sampleMultIntense, max(rainFactor, vlSceneIntensity)); + if (currentDist < 5.0) sampleMult *= smoothstep1(clamp(currentDist / 5.0, 0.0, 1.0)); + sampleMult /= sampleCount; + #endif + + if (length(shadowPosition.xy * 2.0 - 1.0) < 1.0) { + // 28A3DK6 We need to use texelFetch here or a lot of Nvidia GPUs can't get a valid value + shadowSample = texelFetch(shadowtex0, ivec2(shadowPosition.xy * shadowMapResolutionM), 0).x; + shadowSample = clamp((shadowSample-shadowPosition.z)*65536.0,0.0,1.0); + + vlSample = vec3(shadowSample); + + #if SHADOW_QUALITY >= 1 + if (shadowSample == 0.0) { + float testsample = shadow2D(shadowtex1, shadowPosition.xyz).z; + if (testsample == 1.0) { + vec3 colsample = texture2D(shadowcolor1, shadowPosition.xy).rgb * 4.0; + colsample *= colsample; + vlSample = colsample; + shadowSample = 1.0; + #ifdef OVERWORLD + vlSample *= vlColorReducer; + #endif + } + } else { + #ifdef OVERWORLD + // For water-tinting the water surface when observed from below the surface + if (translucentMult != vec3(1.0) && currentDist > depth0) { + vec3 tinter = vec3(1.0); + if (isEyeInWater == 1) { + vec3 translucentMultM = translucentMult * 2.8; + tinter = pow(translucentMultM, vec3(sunVisibility * 3.0 * clamp01(playerPos.y * 0.03))); + } else { + tinter = 0.1 + 0.9 * pow2(pow2(translucentMult * 1.7)); + } + vlSample *= mix(vec3(1.0), tinter, clamp01(oceanAltitude - cameraPosition.y)); + } + #endif + + if (isEyeInWater == 1 && translucentMult == vec3(1.0)) vlSample = vec3(0.0); + } + #endif + } + #endif + + if (currentDist > depth0) vlSample *= translucentMult; + + #ifdef OVERWORLD + #ifdef LIGHTSHAFT_SMOKE + vec3 smokePos = 0.0015 * (playerPos + cameraPosition); + vec3 smokeWind = frameTimeCounter * vec3(0.002, 0.001, 0.0); + float smoke = 0.65 * Noise3D(smokePos + smokeWind) + + 0.25 * Noise3D((smokePos - smokeWind) * 3.0) + + 0.10 * Noise3D((smokePos + smokeWind) * 9.0); + smoke = smoothstep1(smoothstep1(smoothstep1(smoke))); + totalSmoke += smoke * shadowSample * sampleMult; + #endif + + volumetricLight += vec4(vlSample, shadowSample) * sampleMult; + #else + volumetricLight += vec4(vlSample, shadowSample) * enderBeamSample; + #endif + } + + #ifdef LIGHTSHAFT_SMOKE + volumetricLight *= pow(totalSmoke / volumetricLight.a, min(1.0 - volumetricLight.a, 0.5)); + volumetricLight.rgb /= pow(0.5, 1.0 - volumetricLight.a); + #endif + + // Decision of Intensity for Scene Aware Light Shafts // + #if defined OVERWORLD && LIGHTSHAFT_BEHAVIOUR == 1 && SHADOW_QUALITY >= 1 + if (viewWidth + viewHeight - gl_FragCoord.x - gl_FragCoord.y < 1.5) { + if (frameCounter % int(0.06666 / frameTimeSmooth + 0.5) == 0) { // Change speed is not too different above 10 fps + int salsX = 5; + int salsY = 5; + float heightThreshold = 6.0; + + vec2 viewM = 1.0 / vec2(salsX, salsY); + float salsSampleSum = 0.0; + int salsSampleCount = 0; + for (float i = 0.25; i < salsX; i++) { + for (float h = 0.45; h < salsY; h++) { + vec2 coord = 0.3 + 0.4 * viewM * vec2(i, h); + ivec2 icoord = ivec2(coord * shadowMapResolutionM); + float salsSample = texelFetch(shadowtex0, icoord, 0).x; // read 28A3DK6 + if (salsSample < 0.55) { + float sampledHeight = texture2D(shadowcolor1, coord).a; + if (sampledHeight > 0.0) { + sampledHeight = max0(sampledHeight - 0.25) / 0.05; // consistencyMEJHRI7DG + salsSampleSum += sampledHeight; + salsSampleCount++; + } + } + } + } + + float salsCheck = salsSampleSum / salsSampleCount; + int reduceAmount = 2; + + int skyCheck = 0; + for (float i = 0.1; i < 1.0; i += 0.2) { + skyCheck += int(texelFetch(depthtex0, ivec2(view.x * i, view.y * 0.9), 0).x == 1.0); + } + if (skyCheck >= 4) { + salsCheck = 0.0; + reduceAmount = 3; + } + + if (salsCheck > heightThreshold) { + vlFactor = min(vlFactor + OSIEBCA, 1.0); + } else { + vlFactor = max(vlFactor - OSIEBCA * reduceAmount, 0.0); + } + } + } else vlFactor = 0.0; + //if (gl_FragCoord.y < 50) color.rgb = vec3(1,0,1) * float(salsCheck / heightThreshold > gl_FragCoord.x / 1920.0); + + /*for (float i = 0.25; i < salsX; i++) { + for (float h = 0.45; h < salsY; h++) { + if (length(texCoord - (0.3 + 0.4 * viewM * vec2(i, h))) < 0.01) return vec4(1,0,1,1); + } + }*/ + #endif + + #ifdef OVERWORLD + vlColor = pow(vlColor, vec3(0.5 + 0.5 * invNoonFactor * invRainFactor + 0.3 * rainFactor)); + vlColor *= 1.0 - (0.3 + 0.3 * noonFactor) * rainFactor - 0.5 * rainyNight; + + #if LIGHTSHAFT_DAY_I != 100 || LIGHTSHAFT_NIGHT_I != 100 || LIGHTSHAFT_RAIN_I != 100 + #define LIGHTSHAFT_DAY_IM LIGHTSHAFT_DAY_I * 0.01 + #define LIGHTSHAFT_NIGHT_IM LIGHTSHAFT_NIGHT_I * 0.01 + #define LIGHTSHAFT_RAIN_IM LIGHTSHAFT_RAIN_I * 0.01 + + if (isEyeInWater == 0) { + #if LIGHTSHAFT_DAY_I != 100 || LIGHTSHAFT_NIGHT_I != 100 + vlColor.rgb *= mix(LIGHTSHAFT_NIGHT_IM, LIGHTSHAFT_DAY_IM, sunVisibility); + #endif + #if LIGHTSHAFT_RAIN_I != 100 + vlColor.rgb *= mix(1.0, LIGHTSHAFT_RAIN_IM, rainFactor); + #endif + } + #endif + + volumetricLight.rgb *= vlColor; + #endif + + volumetricLight.rgb *= vlMult; + volumetricLight = max(volumetricLight, vec4(0.0)); + + #ifdef DISTANT_HORIZONS + if (isEyeInWater == 0) { + #ifdef OVERWORLD + float lViewPosM = lViewPos0; + if (z0 >= 1.0) { + float z0DH = texelFetch(dhDepthTex, texelCoord, 0).r; + vec4 screenPosDH = vec4(texCoord, z0DH, 1.0); + vec4 viewPosDH = dhProjectionInverse * (screenPosDH * 2.0 - 1.0); + viewPosDH /= viewPosDH.w; + lViewPosM = length(viewPosDH.xyz); + } + lViewPosM = min(lViewPosM, renderDistance * 0.6); + + float dhVlStillIntense = max(max(vlSceneIntensity, rainFactor), nightFactor * 0.5); + + volumetricLight *= mix(0.0003 * lViewPosM, 1.0, dhVlStillIntense); + #else + volumetricLight *= min1(lViewPos1 * 3.0 / renderDistance); + #endif + } + #endif + + return volumetricLight; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/blocklightColors.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/blocklightColors.glsl new file mode 100644 index 0000000..7f1281f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/blocklightColors.glsl @@ -0,0 +1,220 @@ +vec3 blocklightCol = vec3(0.1775, 0.108, 0.0775) * vec3(XLIGHT_R, XLIGHT_G, XLIGHT_B); + +void AddSpecialLightDetail(inout vec3 light, vec3 albedo, float emission) { + vec3 lightM = max(light, vec3(0.0)); + lightM /= (0.2 + 0.8 * GetLuminance(lightM)); + lightM *= (1.0 / (1.0 + emission)) * 0.22; + light *= 0.9; + light += pow2(lightM / (albedo + 0.1)); +} + +vec3 fireSpecialLightColor = vec3(2.05, 0.83, 0.27) * 3.8; +vec3 lavaSpecialLightColor = vec3(3.0, 0.9, 0.2) * 4.0; +vec3 netherPortalSpecialLightColor = vec3(1.8, 0.4, 2.2) * 0.8; +vec3 redstoneSpecialLightColor = vec3(4.0, 0.1, 0.1); +vec4 soulFireSpecialColor = vec4(vec3(0.3, 2.0, 2.2) * 1.0, 0.3); +float candleColorMult = 2.0; +float candleExtraLight = 0.004; +vec4 GetSpecialBlocklightColor(int mat) { + /* Please note that these colors do not determine the intensity of the + final light. Instead; higher values of color change how long the color + will travel, and also how dominant it will be next to other colors.*/ + /* Additional feature: An alpha value bigger than 0 will make that + block cast extra light regardless of the vanilla lightmap. Use this + with caution though because our floodfill isn't as accurate as vanilla.*/ + + if (mat < 50) { + if (mat < 26) { + if (mat < 14) { + if (mat < 8) { + if (mat == 2) return vec4(fireSpecialLightColor, 0.0); // Torch + #ifndef END + if (mat == 3) return vec4(vec3(1.0, 1.0, 1.0) * 4.0, 0.0); // End Rod - This is the base for all lights. Total value 12 + #else + if (mat == 3) return vec4(vec3(1.25, 0.5, 1.25) * 4.0, 0.0); // End Rod in the End dimension + #endif + if (mat == 4) return vec4(vec3(0.7, 1.5, 2.0) * 3.0, 0.0); // Beacon + if (mat == 5) return vec4(fireSpecialLightColor, 0.0); // Fire + if (mat == 6) return vec4(vec3(0.7, 1.5, 1.5) * 1.7, 0.0); // Sea Pickle:Waterlogged + if (mat == 7) return vec4(vec3(1.1, 0.85, 0.35) * 5.0, 0.0); // Ochre Froglight + } else { + if (mat == 8) return vec4(vec3(0.6, 1.3, 0.6) * 4.5, 0.0); // Verdant Froglight + if (mat == 9) return vec4(vec3(1.1, 0.5, 0.9) * 4.5, 0.0); // Pearlescent Froglight + if (mat == 10) return vec4(vec3(1.7, 0.9, 0.4) * 4.0, 0.0); // Glowstone + if (mat == 11) return vec4(fireSpecialLightColor, 0.0); // Jack o'Lantern + if (mat == 12) return vec4(fireSpecialLightColor, 0.0); // Lantern + if (mat == 13) return vec4(lavaSpecialLightColor, 0.8); // Lava + } + } else { + if (mat < 20) { + if (mat == 14) return vec4(lavaSpecialLightColor, 0.0); // Lava Cauldron + if (mat == 15) return vec4(fireSpecialLightColor, 0.0); // Campfire:Lit + if (mat == 16) return vec4(vec3(1.7, 0.9, 0.4) * 4.0, 0.0); // Redstone Lamp:Lit + if (mat == 17) return vec4(vec3(1.7, 0.9, 0.4) * 2.0, 0.0); // Respawn Anchor:Lit + if (mat == 18) return vec4(vec3(1.0, 1.25, 1.5) * 3.4, 0.0); // Sea Lantern + if (mat == 19) return vec4(vec3(3.0, 0.9, 0.2) * 3.0, 0.0); // Shroomlight + } else { + if (mat == 20) return vec4(vec3(2.3, 0.9, 0.2) * 3.4, 0.0); // Cave Vines:With Glow Berries + if (mat == 21) return vec4(fireSpecialLightColor * 0.7, 0.0); // Furnace:Lit + if (mat == 22) return vec4(fireSpecialLightColor * 0.7, 0.0); // Smoker:Lit + if (mat == 23) return vec4(fireSpecialLightColor * 0.7, 0.0); // Blast Furnace:Lit + if (mat == 24) return vec4(fireSpecialLightColor * 0.25 * candleColorMult, candleExtraLight); // Standard Candles:Lit + if (mat == 25) return vec4(netherPortalSpecialLightColor * 2.0, 0.4); // Nether Portal + } + } + } else { + if (mat < 38) { + if (mat < 32) { + if (mat == 26) return vec4(netherPortalSpecialLightColor, 0.0); // Crying Obsidian + if (mat == 27) return soulFireSpecialColor; // Soul Fire + if (mat == 28) return soulFireSpecialColor; // Soul Torch + if (mat == 29) return soulFireSpecialColor; // Soul Lantern + if (mat == 30) return soulFireSpecialColor; // Soul Campfire:Lit + if (mat == 31) return vec4(redstoneSpecialLightColor * 0.5, 0.1); // Redstone Ores:Lit + } else { + if (mat == 32) return vec4(redstoneSpecialLightColor * 0.3, 0.1); // Redstone Ores:Unlit + if (mat == 33) return vec4(vec3(1.4, 1.1, 0.5), 0.0); // Enchanting Table + #if GLOWING_LICHEN > 0 + if (mat == 34) return vec4(vec3(0.8, 1.1, 1.1), 0.05); // Glow Lichen with IntegratedPBR + #else + if (mat == 34) return vec4(vec3(0.4, 0.55, 0.55), 0.0); // Glow Lichen vanilla + #endif + if (mat == 35) return vec4(redstoneSpecialLightColor * 0.25, 0.0); // Redstone Torch + if (mat == 36) return vec4(vec3(0.325, 0.15, 0.425) * 2.0, 0.05); // Amethyst Cluster, Amethyst Buds, Calibrated Sculk Sensor + if (mat == 37) return vec4(lavaSpecialLightColor * 0.1, 0.1); // Magma Block + } + } else { + if (mat < 44) { + if (mat == 38) return vec4(vec3(2.0, 0.5, 1.5) * 0.3, 0.1); // Dragon Egg + if (mat == 39) return vec4(vec3(2.0, 1.0, 1.5) * 0.25, 0.1); // Chorus Flower + if (mat == 40) return vec4(vec3(2.5, 1.2, 0.4) * 0.1, 0.1); // Brewing Stand + if (mat == 41) return vec4(redstoneSpecialLightColor * 0.4, 0.15); // Redstone Block + if (mat == 42) return vec4(vec3(0.75, 0.75, 3.0) * 0.277, 0.15); // Lapis Block + if (mat == 43) return vec4(vec3(1.7, 0.9, 0.4) * 0.45, 0.05); // Iron Ores + } else { + if (mat == 44) return vec4(vec3(1.7, 1.1, 0.2) * 0.45, 0.1); // Gold Ores + if (mat == 45) return vec4(vec3(1.7, 0.8, 0.4) * 0.45, 0.05); // Copper Ores + if (mat == 46) return vec4(vec3(0.75, 0.75, 3.0) * 0.2, 0.1); // Lapis Ores + if (mat == 47) return vec4(vec3(0.5, 3.5, 0.5) * 0.3, 0.1); // Emerald Ores + if (mat == 48) return vec4(vec3(0.5, 2.0, 2.0) * 0.4, 0.15); // Diamond Ores + if (mat == 49) return vec4(vec3(1.5, 1.5, 1.5) * 0.3, 0.05); // Nether Quartz Ore + } + } + } + } else { + if (mat < 74) { + if (mat < 62) { + if (mat < 56) { + if (mat == 50) return vec4(vec3(1.7, 1.1, 0.2) * 0.45, 0.05); // Nether Gold Ore + if (mat == 51) return vec4(vec3(1.7, 1.1, 0.2) * 0.45, 0.05); // Gilded Blackstone + if (mat == 52) return vec4(vec3(1.8, 0.8, 0.4) * 0.6, 0.15); // Ancient Debris + if (mat == 53) return vec4(vec3(1.4, 0.2, 1.4) * 0.3, 0.05); // Spawner + if (mat == 54) return vec4(vec3(3.1, 1.1, 0.3) * 1.0, 0.1); // Trial Spawner:NotOminous:Active, Vault:NotOminous:Active + if (mat == 55) return vec4(vec3(1.7, 0.9, 0.4) * 4.0, 0.0); // Copper Bulb:BrighterOnes:Lit + } else { + if (mat == 56) return vec4(vec3(1.7, 0.9, 0.4) * 2.0, 0.0); // Copper Bulb:DimmerOnes:Lit + if (mat == 57) return vec4(vec3(0.1, 0.3, 0.4) * 0.5, 0.0005); // Sculk++ + if (mat == 58) return vec4(vec3(0.0, 1.4, 1.4) * 4.0, 0.15); // End Portal Frame:Active + if (mat == 59) return vec4(0.0); // Bedrock + if (mat == 60) return vec4(vec3(3.1, 1.1, 0.3) * 0.125, 0.0125); // Command Block + if (mat == 61) return vec4(vec3(3.0, 0.9, 0.2) * 0.125, 0.0125); // Warped Fungus, Crimson Fungus + } + } else { + if (mat < 68) { + if (mat == 62) return vec4(vec3(3.5, 0.6, 0.4) * 0.3, 0.05); // Crimson Stem, Crimson Hyphae + if (mat == 63) return vec4(vec3(0.3, 1.9, 1.5) * 0.3, 0.05); // Warped Stem, Warped Hyphae + if (mat == 64) return vec4(vec3(1.0, 1.0, 1.0) * 0.45, 0.1); // Structure Block, Jigsaw Block, Test Block, Test Instance Block + if (mat == 65) return vec4(vec3(3.0, 0.9, 0.2) * 0.125, 0.0125); // Weeping Vines Plant + if (mat == 66) return vec4(redstoneSpecialLightColor * 0.05, 0.002); // Redstone Wire:Lit, Comparator:Unlit:Subtract + if (mat == 67) return vec4(redstoneSpecialLightColor * 0.125, 0.0125); // Repeater:Lit, Comparator:Lit + } else { + if (mat == 68) return vec4(vec3(0.75), 0.0); // Vault:Inactive + if (mat == 69) return vec4(vec3(1.3, 1.6, 1.6) * 1.0, 0.1); // Trial Spawner:Ominous:Active, Vault:Ominous:Active + if (mat == 70) return vec4(vec3(1.0, 0.1, 0.1) * candleColorMult, candleExtraLight); // Red Candles:Lit + if (mat == 71) return vec4(vec3(1.0, 0.4, 0.1) * candleColorMult, candleExtraLight); // Orange Candles:Lit + if (mat == 72) return vec4(vec3(1.0, 1.0, 0.1) * candleColorMult, candleExtraLight); // Yellow Candles:Lit + if (mat == 73) return vec4(vec3(0.1, 1.0, 0.1) * candleColorMult, candleExtraLight); // Lime Candles:Lit + } + } + } else { + if (mat < 86) { + if (mat < 80) { + if (mat == 74) return vec4(vec3(0.3, 1.0, 0.3) * candleColorMult, candleExtraLight); // Green Candles:Lit + if (mat == 75) return vec4(vec3(0.3, 0.8, 1.0) * candleColorMult, candleExtraLight); // Cyan Candles:Lit + if (mat == 76) return vec4(vec3(0.5, 0.65, 1.0) * candleColorMult, candleExtraLight); // Light Blue Candles:Lit + if (mat == 77) return vec4(vec3(0.1, 0.15, 1.0) * candleColorMult, candleExtraLight); // Blue Candles:Lit + if (mat == 78) return vec4(vec3(0.7, 0.3, 1.0) * candleColorMult, candleExtraLight); // Purple Candles:Lit + if (mat == 79) return vec4(vec3(1.0, 0.1, 1.0) * candleColorMult, candleExtraLight); // Magenta Candles:Lit + } else { + if (mat == 80) return vec4(vec3(1.0, 0.4, 1.0) * candleColorMult, candleExtraLight); // Pink Candles:Lit + if (mat == 81) return vec4(vec3(2.8, 1.1, 0.2) * 0.125, 0.0125); // Open Eyeblossom + if (mat == 82) return vec4(vec3(2.8, 1.1, 0.2) * 0.3, 0.05); // Creaking Heart: Active + if (mat == 83) return vec4(vec3(1.6, 1.6, 0.7) * 0.3, 0.05); // Firefly Bush + if (mat == 84) return vec4(0.0); + if (mat == 85) return vec4(0.0); + } + } else { + if (mat < 92) { + if (mat == 86) return vec4(0.0); + if (mat == 87) return vec4(0.0); + if (mat == 88) return vec4(0.0); + if (mat == 89) return vec4(0.0); + if (mat == 90) return vec4(0.0); + if (mat == 91) return vec4(0.0); + } else { + if (mat == 92) return vec4(0.0); + if (mat == 93) return vec4(0.0); + if (mat == 94) return vec4(0.0); + if (mat == 95) return vec4(0.0); + if (mat == 96) return vec4(0.0); + if (mat == 97) return vec4(0.0); + } + } + } + } + + return vec4(blocklightCol * 20.0, 0.0); +} + +vec3[] specialTintColor = vec3[]( + // 200: White + vec3(1.0), + // 201: Orange + vec3(1.0, 0.3, 0.1), + // 202: Magenta + vec3(1.0, 0.1, 1.0), + // 203: Light Blue + vec3(0.5, 0.65, 1.0), + // 204: Yellow + vec3(1.0, 1.0, 0.1), + // 205: Lime + vec3(0.1, 1.0, 0.1), + // 206: Pink + vec3(1.0, 0.4, 1.0), + // 207: Gray + vec3(1.0), + // 208: Light Gray + vec3(1.0), + // 209: Cyan + vec3(0.3, 0.8, 1.0), + // 210: Purple + vec3(0.7, 0.3, 1.0), + // 211: Blue + vec3(0.1, 0.15, 1.0), + // 212: Brown + vec3(1.0, 0.75, 0.5), + // 213: Green + vec3(0.3, 1.0, 0.3), + // 214: Red + vec3(1.0, 0.1, 0.1), + // 215: Black + vec3(1.0), + // 216: Ice + vec3(0.5, 0.65, 1.0), + // 217: Glass + vec3(1.0), + // 218: Glass Pane + vec3(1.0), + // 219++ + vec3(0.0) +); \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/cloudColors.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/cloudColors.glsl new file mode 100644 index 0000000..4fbc74b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/cloudColors.glsl @@ -0,0 +1,3 @@ +vec3 cloudRainColor = mix(nightMiddleSkyColor, dayMiddleSkyColor, sunFactor); +vec3 cloudAmbientColor = mix(ambientColor * (sunVisibility2 * (0.55 + 0.1 * noonFactor) + 0.35), cloudRainColor * 0.5, rainFactor); +vec3 cloudLightColor = mix(lightColor * (0.9 + 0.2 * noonFactor), cloudRainColor * 0.25, noonFactor * rainFactor); \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/colorMultipliers.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/colorMultipliers.glsl new file mode 100644 index 0000000..35e698a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/colorMultipliers.glsl @@ -0,0 +1,58 @@ +#ifndef INCLUDE_LIGHT_AND_AMBIENT_MULTIPLIERS + #define INCLUDE_LIGHT_AND_AMBIENT_MULTIPLIERS + + vec3 GetLightColorMult() { + vec3 lightColorMult; + + #ifdef OVERWORLD + vec3 morningLightMult = vec3(LIGHT_MORNING_R, LIGHT_MORNING_G, LIGHT_MORNING_B) * LIGHT_MORNING_I; + vec3 noonLightMult = vec3(LIGHT_NOON_R, LIGHT_NOON_G, LIGHT_NOON_B) * LIGHT_NOON_I; + vec3 nightLightMult = vec3(LIGHT_NIGHT_R, LIGHT_NIGHT_G, LIGHT_NIGHT_B) * LIGHT_NIGHT_I; + vec3 rainLightMult = vec3(LIGHT_RAIN_R, LIGHT_RAIN_G, LIGHT_RAIN_B) * LIGHT_RAIN_I; + + lightColorMult = mix(noonLightMult, morningLightMult, invNoonFactor2); + lightColorMult = mix(nightLightMult, lightColorMult, sunVisibility2); + lightColorMult = mix(lightColorMult, dot(lightColorMult, vec3(0.33333)) * rainLightMult, rainFactor); + #elif defined NETHER + vec3 netherLightMult = vec3(LIGHT_NETHER_R, LIGHT_NETHER_G, LIGHT_NETHER_B) * LIGHT_NETHER_I; + + lightColorMult = netherLightMult; + #elif defined END + vec3 endLightMult = vec3(LIGHT_END_R, LIGHT_END_G, LIGHT_END_B) * LIGHT_END_I; + + lightColorMult = endLightMult; + #endif + + return lightColorMult; + } + + vec3 GetAtmColorMult() { + vec3 atmColorMult; + + #ifdef OVERWORLD + vec3 morningAtmMult = vec3(ATM_MORNING_R, ATM_MORNING_G, ATM_MORNING_B) * ATM_MORNING_I; + vec3 noonAtmMult = vec3(ATM_NOON_R, ATM_NOON_G, ATM_NOON_B) * ATM_NOON_I; + vec3 nightAtmMult = vec3(ATM_NIGHT_R, ATM_NIGHT_G, ATM_NIGHT_B) * ATM_NIGHT_I; + vec3 rainAtmMult = vec3(ATM_RAIN_R, ATM_RAIN_G, ATM_RAIN_B) * ATM_RAIN_I; + + atmColorMult = mix(noonAtmMult, morningAtmMult, invNoonFactor2); + atmColorMult = mix(nightAtmMult, atmColorMult, sunVisibility2); + atmColorMult = mix(atmColorMult, dot(atmColorMult, vec3(0.33333)) * rainAtmMult, rainFactor); + #elif defined NETHER + vec3 netherAtmMult = vec3(ATM_NETHER_R, ATM_NETHER_G, ATM_NETHER_B) * ATM_NETHER_I; + + atmColorMult = netherAtmMult; + #elif defined END + vec3 endAtmMult = vec3(ATM_END_R, ATM_END_G, ATM_END_B) * ATM_END_I; + + atmColorMult = endAtmMult; + #endif + + return atmColorMult; + } + + vec3 lightColorMult; + vec3 atmColorMult; + vec3 sqrtAtmColorMult; + +#endif //INCLUDE_LIGHT_AND_AMBIENT_MULTIPLIERS \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/lightAndAmbientColors.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/lightAndAmbientColors.glsl new file mode 100644 index 0000000..f3139a1 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/lightAndAmbientColors.glsl @@ -0,0 +1,77 @@ +#ifndef INCLUDE_LIGHT_AND_AMBIENT_COLORS + #define INCLUDE_LIGHT_AND_AMBIENT_COLORS + + #if defined OVERWORLD + #ifndef COMPOSITE + vec3 noonClearLightColor = vec3(0.7, 0.55, 0.4) * 1.9; //ground and cloud color + #else + vec3 noonClearLightColor = vec3(0.4, 0.7, 1.4); //light shaft color + #endif + vec3 noonClearAmbientColor = pow(skyColor, vec3(0.65)) * 0.85; + + #ifndef COMPOSITE + vec3 sunsetClearLightColor = pow(vec3(0.64, 0.45, 0.3), vec3(1.5 + invNoonFactor)) * 5.0; //ground and cloud color + #else + vec3 sunsetClearLightColor = pow(vec3(0.62, 0.39, 0.24), vec3(1.5 + invNoonFactor)) * 6.8; //light shaft color + #endif + vec3 sunsetClearAmbientColor = noonClearAmbientColor * vec3(1.21, 0.92, 0.76) * 0.95; + + #if !defined COMPOSITE && !defined DEFERRED1 + vec3 nightClearLightColor = vec3(0.15, 0.14, 0.20) * (0.4 + vsBrightness * 0.4); //ground color + #elif defined DEFERRED1 + vec3 nightClearLightColor = vec3(0.11, 0.14, 0.20); //cloud color + #else + vec3 nightClearLightColor = vec3(0.07, 0.12, 0.27); //light shaft color + #endif + vec3 nightClearAmbientColor = vec3(0.09, 0.12, 0.17) * (1.55 + vsBrightness * 0.77); + + #ifdef SPECIAL_BIOME_WEATHER + vec3 drlcSnowM = inSnowy * vec3(-0.06, 0.0, 0.04); + vec3 drlcDryM = inDry * vec3(0.0, -0.03, -0.05); + #else + vec3 drlcSnowM = vec3(0.0), drlcDryM = vec3(0.0); + #endif + #if RAIN_STYLE == 2 + vec3 drlcRainMP = vec3(-0.03, 0.0, 0.02); + #ifdef SPECIAL_BIOME_WEATHER + vec3 drlcRainM = inRainy * drlcRainMP; + #else + vec3 drlcRainM = drlcRainMP; + #endif + #else + vec3 drlcRainM = vec3(0.0); + #endif + vec3 dayRainLightColor = vec3(0.21, 0.16, 0.13) * 0.85 + noonFactor * vec3(0.0, 0.02, 0.06) + + rainFactor * (drlcRainM + drlcSnowM + drlcDryM); + vec3 dayRainAmbientColor = vec3(0.2, 0.2, 0.25) * (1.8 + 0.5 * vsBrightness); + + vec3 nightRainLightColor = vec3(0.03, 0.035, 0.05) * (0.5 + 0.5 * vsBrightness); + vec3 nightRainAmbientColor = vec3(0.16, 0.20, 0.3) * (0.75 + 0.6 * vsBrightness); + + #ifndef COMPOSITE + float noonFactorDM = noonFactor; //ground and cloud factor + #else + float noonFactorDM = noonFactor * noonFactor; //light shaft factor + #endif + vec3 dayLightColor = mix(sunsetClearLightColor, noonClearLightColor, noonFactorDM); + vec3 dayAmbientColor = mix(sunsetClearAmbientColor, noonClearAmbientColor, noonFactorDM); + + vec3 clearLightColor = mix(nightClearLightColor, dayLightColor, sunVisibility2); + vec3 clearAmbientColor = mix(nightClearAmbientColor, dayAmbientColor, sunVisibility2); + + vec3 rainLightColor = mix(nightRainLightColor, dayRainLightColor, sunVisibility2) * 2.5; + vec3 rainAmbientColor = mix(nightRainAmbientColor, dayRainAmbientColor, sunVisibility2); + + vec3 lightColor = mix(clearLightColor, rainLightColor, rainFactor); + vec3 ambientColor = mix(clearAmbientColor, rainAmbientColor, rainFactor); + #elif defined NETHER + vec3 lightColor = vec3(0.0); + vec3 ambientColor = (netherColor + 0.5 * lavaLightColor) * (0.9 + 0.45 * vsBrightness); + #elif defined END + vec3 endLightColor = vec3(0.68, 0.51, 1.07); + float endLightBalancer = 0.2 * vsBrightness; + vec3 lightColor = endLightColor * (0.35 - endLightBalancer); + vec3 ambientColor = endLightColor * (0.2 + endLightBalancer); + #endif + +#endif //INCLUDE_LIGHT_AND_AMBIENT_COLORS \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/moonPhaseInfluence.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/moonPhaseInfluence.glsl new file mode 100644 index 0000000..800bc37 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/moonPhaseInfluence.glsl @@ -0,0 +1,13 @@ +#ifndef INCLUDE_MOON_PHASE_INF + #define INCLUDE_MOON_PHASE_INF + + #ifdef OVERWORLD + float moonPhaseInfluence = mix( + 1.0, + moonPhase == 0 ? MOON_PHASE_FULL : moonPhase != 4 ? MOON_PHASE_PARTIAL : MOON_PHASE_DARK, + 1.0 - sunVisibility2 + ); + #else + float moonPhaseInfluence = 1.0; + #endif +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/skyColors.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/skyColors.glsl new file mode 100644 index 0000000..f94ad84 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/colors/skyColors.glsl @@ -0,0 +1,56 @@ +#ifndef INCLUDE_SKY_COLORS + #define INCLUDE_SKY_COLORS + + #ifdef OVERWORLD + vec3 skyColorSqrt = sqrt(skyColor); + // Doing these things because vanilla skyColor gets to 0 during a thunderstorm + float invRainStrength2 = (1.0 - rainStrength) * (1.0 - rainStrength); + vec3 skyColorM = mix(max(skyColorSqrt, vec3(0.63, 0.67, 0.73)), skyColorSqrt, invRainStrength2); + vec3 skyColorM2 = mix(max(skyColor, sunFactor * vec3(0.265, 0.295, 0.35)), skyColor, invRainStrength2); + + #ifdef SPECIAL_BIOME_WEATHER + vec3 nmscSnowM = inSnowy * vec3(-0.3, 0.05, 0.2); + vec3 nmscDryM = inDry * vec3(-0.3); + vec3 ndscSnowM = inSnowy * vec3(-0.25, -0.01, 0.25); + vec3 ndscDryM = inDry * vec3(-0.05, -0.09, -0.1); + #else + vec3 nmscSnowM = vec3(0.0), nmscDryM = vec3(0.0), ndscSnowM = vec3(0.0), ndscDryM = vec3(0.0); + #endif + #if RAIN_STYLE == 2 + vec3 nmscRainMP = vec3(-0.15, 0.025, 0.1); + vec3 ndscRainMP = vec3(-0.125, -0.005, 0.125); + #ifdef SPECIAL_BIOME_WEATHER + vec3 nmscRainM = inRainy * ndscRainMP; + vec3 ndscRainM = inRainy * ndscRainMP; + #else + vec3 nmscRainM = ndscRainMP; + vec3 ndscRainM = ndscRainMP; + #endif + #else + vec3 nmscRainM = vec3(0.0), ndscRainM = vec3(0.0); + #endif + vec3 nmscWeatherM = vec3(-0.1, -0.4, -0.6) + vec3(0.0, 0.06, 0.12) * noonFactor; + vec3 ndscWeatherM = vec3(-0.15, -0.3, -0.42) + vec3(0.0, 0.02, 0.08) * noonFactor; + + vec3 noonUpSkyColor = pow(skyColorM, vec3(2.9)); + vec3 noonMiddleSkyColor = skyColorM * (vec3(1.15) + rainFactor * (nmscWeatherM + nmscRainM + nmscSnowM + nmscDryM)) + + noonUpSkyColor * 0.6; + vec3 noonDownSkyColor = skyColorM * (vec3(0.9) + rainFactor * (ndscWeatherM + ndscRainM + ndscSnowM + ndscDryM)) + + noonUpSkyColor * 0.25; + + vec3 sunsetUpSkyColor = skyColorM2 * (vec3(0.8, 0.58, 0.58) + vec3(0.1, 0.2, 0.35) * rainFactor2); + vec3 sunsetMiddleSkyColor = skyColorM2 * (vec3(1.8, 1.3, 1.2) + vec3(0.15, 0.25, -0.05) * rainFactor2); + vec3 sunsetDownSkyColorP = vec3(1.45, 0.86, 0.5) - vec3(0.8, 0.3, 0.0) * rainFactor; + vec3 sunsetDownSkyColor = sunsetDownSkyColorP * 0.5 + 0.25 * sunsetMiddleSkyColor; + + vec3 dayUpSkyColor = mix(noonUpSkyColor, sunsetUpSkyColor, invNoonFactor2); + vec3 dayMiddleSkyColor = mix(noonMiddleSkyColor, sunsetMiddleSkyColor, invNoonFactor2); + vec3 dayDownSkyColor = mix(noonDownSkyColor, sunsetDownSkyColor, invNoonFactor2); + + vec3 nightColFactor = vec3(0.07, 0.14, 0.24) * (1.0 - 0.5 * rainFactor) + skyColor; + vec3 nightUpSkyColor = pow(nightColFactor, vec3(0.90)) * 0.4; + vec3 nightMiddleSkyColor = sqrt(nightUpSkyColor) * 0.68; + vec3 nightDownSkyColor = nightMiddleSkyColor * vec3(0.82, 0.82, 0.88); + #endif + +#endif //INCLUDE_SKY_COLORS \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/common.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/common.glsl new file mode 100644 index 0000000..29122c3 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/common.glsl @@ -0,0 +1,767 @@ +/*--------------------------------------------------------------------- + ___ __ __ ____ ___ ____ _____ _ _ _ _____ + |_ _| \/ | _ \ / _ \| _ \_ _|/ \ | \ | |_ _| + | || |\/| | |_) | | | | |_) || | / _ \ | \| | | | + | || | | | __/| |_| | _ < | |/ ___ \| |\ | | | + |___|_| |_|_| \___/|_| \_\|_/_/ \_\_| \_| |_| + . + -> -> -> EDITING THIS FILE HAS A HIGH CHANCE TO BREAK THE SHADER PACK + -> -> -> DO NOT CHANGE ANYTHING UNLESS YOU KNOW WHAT YOU ARE DOING + -> -> -> DO NOT EXPECT SUPPORT AFTER MODIFYING SHADER FILES +---------------------------------------------------------------------*/ + +//User Settings// + #define SHADER_STYLE 4 //[1 4] + + #define RP_MODE 1 //[1 0 3 2] + + #define SHADOW_QUALITY 2 //[-1 0 1 2 3 4 5] + const float shadowDistance = 192.0; //[64.0 80.0 96.0 112.0 128.0 160.0 192.0 224.0 256.0 320.0 384.0 512.0 768.0 1024.0] + #define ENTITY_SHADOWS_DEFINE -1 //[-1 1] + #define SSAO_QUALI_DEFINE 2 //[0 2 3] + #define FXAA_DEFINE 1 //[-1 1] + #define DETAIL_QUALITY 2 //[0 2 3] + #define CLOUD_QUALITY 2 //[0 1 2 3] + #define LIGHTSHAFT_QUALI_DEFINE 2 //[0 1 2 3 4] + #define WATER_REFLECT_QUALITY 2 //[-1 0 1 2] + #define BLOCK_REFLECT_QUALITY 3 //[0 1 2 3] + #define ANISOTROPIC_FILTER 0 //[0 4 8 16] + + #define COLORED_LIGHTING 0 //[128 192 256 384 512 768 1024] + #if defined IRIS_FEATURE_CUSTOM_IMAGES && SHADOW_QUALITY > -1 && !defined MC_OS_MAC && !(defined DH_TERRAIN || defined DH_WATER) + #define COLORED_LIGHTING_INTERNAL COLORED_LIGHTING + #if COLORED_LIGHTING_INTERNAL > 0 + #define COLORED_LIGHT_SATURATION 100 //[50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125] + + #define COLORED_LIGHT_FOG + #define COLORED_LIGHT_FOG_I 0.65 //[0.15 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 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50] + + #define PORTAL_EDGE_EFFECT + #ifndef IRIS_HAS_CONNECTED_TEXTURES + #define CONNECTED_GLASS_EFFECT + #endif + //#define COLORED_CANDLE_LIGHT + #endif + #else + #define COLORED_LIGHTING_INTERNAL 0 + #endif + + #define WATER_STYLE_DEFINE -1 //[-1 1 2 3] + #define WATER_CAUSTIC_STYLE_DEFINE -1 //[-1 1 3] + #define WATER_REFRACTION_INTENSITY 2.0 //[0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0] + #define WATER_FOAM_I 100 //[0 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150] + #define WATER_ALPHA_MULT 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300 325 350 375 400 425 450 475 500 550 600 650 700 750 800 850 900] + #define WATER_FOG_MULT 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300 325 350 375 400 425 450 475 500 550 600 650 700 750 800 850 900] + #define WATERCOLOR_MODE 3 //[3 2 0] + #define BRIGHT_CAVE_WATER + #define WATERCOLOR_R 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300] + #define WATERCOLOR_G 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300] + #define WATERCOLOR_B 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300] + #define UNDERWATERCOLOR_R 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150] + #define UNDERWATERCOLOR_G 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150] + #define UNDERWATERCOLOR_B 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150] + #define WATER_BUMPINESS 1.25 //[0.05 0.10 0.15 0.20 0.25 0.30 0.40 0.50 0.65 0.80 1.00 1.25 1.50 2.00 2.50] + #define WATER_BUMP_SMALL 0.75 //[0.05 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.20 2.40 2.60 2.80 3.00 3.25 3.50 3.75 4.00 4.50 5.00] + #define WATER_BUMP_MED 1.70 //[0.05 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.20 2.40 2.60 2.80 3.00 3.25 3.50 3.75 4.00 4.50 5.00] + #define WATER_BUMP_BIG 2.00 //[0.05 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.20 2.40 2.60 2.80 3.00 3.25 3.50 3.75 4.00 4.50 5.00] + #define WATER_SPEED_MULT 1.10 //[0.00 0.05 0.10 0.15 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 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.20 2.40 2.60 2.80 3.00 3.25 3.50 3.75 4.00 4.50 5.00] + #define WATER_SIZE_MULT 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300] + + #define SHADOW_SMOOTHING 4 //[1 2 3 4] + #define RAIN_PUDDLES 0 //[0 1 2 3 4] + #define SSAO_I 100 //[0 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300] + #define VANILLAAO_I 100 //[0 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300] + + #define AURORA_STYLE_DEFINE -1 //[-1 0 1 2] + #define AURORA_CONDITION 3 //[0 1 2 3 4] + //#define NIGHT_NEBULA + #define NIGHT_NEBULA_I 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300] + #define WEATHER_TEX_OPACITY 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300 325 350 375 400 425 450 475 500 550 600 650 700 750 800 850 900] + #define SPECIAL_BIOME_WEATHER + #define RAIN_STYLE 1 //[1 2] + #define SUN_MOON_STYLE_DEFINE -1 //[-1 1 2 3] + #define SUN_MOON_HORIZON + #define SUN_MOON_DURING_RAIN + #define NIGHT_STAR_AMOUNT 2 //[2 3] + #define RAINBOWS 1 //[0 1 3] + #define CLOUD_STYLE_DEFINE -1 //[-1 0 1 3 50] + //#define CLOUD_SHADOWS + #define CLOUD_CLOSED_AREA_CHECK + #define CLOUD_ALT1 192 //[-96 -92 -88 -84 -80 -76 -72 -68 -64 -60 -56 -52 -48 -44 -40 -36 -32 -28 -24 -20 -16 -10 -8 -4 0 4 8 12 16 20 22 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 256 260 264 268 272 276 280 284 288 292 296 300 304 308 312 316 320 324 328 332 336 340 344 348 352 356 360 364 368 372 376 380 384 388 392 396 400 404 408 412 416 420 424 428 432 436 440 444 448 452 456 460 464 468 472 476 480 484 488 492 496 500 510 520 530 540 550 560 570 580 590 600 610 620 630 640 650 660 670 680 690 700 710 720 730 740 750 760 770 780 790 800] + #define CLOUD_SPEED_MULT 100 //[0 5 7 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300 325 350 375 400 425 450 475 500 550 600 650 700 750 800 850 900] + #define CLOUD_R 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300] + #define CLOUD_G 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300] + #define CLOUD_B 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300] + + #define CLOUD_UNBOUND_AMOUNT 1.00 //[0.70 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.80 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.90 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 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.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00] + #define CLOUD_UNBOUND_SIZE_MULT 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300] + #define CLOUD_UNBOUND_RAIN_ADD 0.40 //[0.00 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.14 0.16 0.18 0.22 0.26 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 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50] + + //#define DOUBLE_REIM_CLOUDS + #define CLOUD_ALT2 288 //[-96 -92 -88 -84 -80 -76 -72 -68 -64 -60 -56 -52 -48 -44 -40 -36 -32 -28 -24 -20 -16 -10 -8 -4 0 4 8 12 16 20 22 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 256 260 264 268 272 276 280 284 288 292 296 300 304 308 312 316 320 324 328 332 336 340 344 348 352 356 360 364 368 372 376 380 384 388 392 396 400 404 408 412 416 420 424 428 432 436 440 444 448 452 456 460 464 468 472 476 480 484 488 492 496 500 510 520 530 540 550 560 570 580 590 600 610 620 630 640 650 660 670 680 690 700 710 720 730 740 750 760 770 780 790 800] + + #define NETHER_VIEW_LIMIT 256.0 //[96.0 112.0 128.0 160.0 192.0 224.0 256.0 320.0 384.0 512.0 768.0 1024.0 99999.0] + #define NETHER_COLOR_MODE 3 //[3 2 0] + #define NETHER_STORM + #define NETHER_STORM_LOWER_ALT 28 //[-296 -292 -288 -284 -280 -276 -272 -268 -264 -260 -256 -252 -248 -244 -240 -236 -232 -228 -224 -220 -216 -212 -208 -204 -200 -196 -192 -188 -184 -180 -176 -172 -168 -164 -160 -156 -152 -148 -144 -140 -136 -132 -128 -124 -120 -116 -112 -108 -104 -100 -96 -92 -88 -84 -80 -76 -72 -68 -64 -60 -56 -52 -48 -44 -40 -36 -32 -28 -24 -20 -16 -12 -8 -4 0 4 8 12 16 20 22 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 256 260 264 268 272 276 280 284 288 292 296 300] + #define NETHER_STORM_HEIGHT 200 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300 325 350 375 400 425 450 475 500 550 600 650 700 750 800 850 900] + #define NETHER_STORM_I 0.40 //[0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.14 0.16 0.18 0.22 0.26 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 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50] + + #define BORDER_FOG + #define ATM_FOG_MULT 0.95 //[0.50 0.65 0.80 0.95] + #define ATM_FOG_DISTANCE 100 //[10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300] + #define ATM_FOG_ALTITUDE 63 //[0 5 10 15 20 25 30 35 40 45 50 52 54 56 58 60 61 62 63 64 65 66 67 68 69 70 72 74 76 78 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 260 270 280 290 300] + #define CAVE_FOG + #define LIGHTSHAFT_BEHAVIOUR 1 //[0 1 2 3] + #define LIGHTSHAFT_DAY_I 100 //[1 3 5 7 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200] + #define LIGHTSHAFT_NIGHT_I 100 //[1 3 5 7 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200] + #define LIGHTSHAFT_RAIN_I 100 //[1 3 5 7 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200] + //#define LIGHTSHAFT_SMOKE + #define SPECIAL_PALE_GARDEN_LIGHTSHAFTS + + #define BLOOM + #define BLOOM_STRENGTH 0.12 //[0.027 0.036 0.045 0.054 0.063 0.072 0.081 0.09 0.10 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.21 0.23 0.25 0.28 0.32 10.00] + #define IMAGE_SHARPENING 5 //[0 1 2 3 4 5 6 7 8 9 10] + //#define MOTION_BLURRING + #define MOTION_BLURRING_STRENGTH 1.00 //[0.15 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 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00] + #define VIGNETTE_R + #define CHROMA_ABERRATION 0 //[0 1 2 3 4 5 6 7 8] + #define UNDERWATER_DISTORTION + #define LENSFLARE_MODE 0 //[0 1 2] + #define LENSFLARE_I 1.00 //[0.05 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.20 2.40 2.60 2.80 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00] + #define TAA_MODE 1 //[1 2 0] + #define DISTANT_LIGHT_BOKEH + + #define WORLD_BLUR 0 //[0 1 2] + //#define WB_FOV_SCALED + //#define WB_CHROMATIC + //#define WB_ANAMORPHIC + #define WB_DOF_I 64.0 //[1.0 1.5 2.0 3.0 4.5 6.0 9.0 12.0 18.0 24.0 32.0 48.0 64.0 96.0 128.0 192.0 256.0 384.0 512.0 768.0 1024.0 1536.0 2048.0 3072.0 4096.0] + #define WB_DOF_FOCUS 0 //[-1 0 1 2 3 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 65 67 69 72 74 76 79 81 83 86 88 91 94 96 99 102 104 107 110 113 115 118 121 124 127 130 133 136 140 143 146 149 153 156 160 163 167 170 174 178 182 185 189 193 197 201 206 210 214 219 223 227 232 237 242 246 251 256 261 267 272 277 283 288 294 300 306 312 318 324 330 337 344 350 357 364 371 379 386 394 402 410 418 427 435 444 453 462 472 481 491 501 512 530 550 575 600 625 650 675 700 725 750 800 850 900] + #define WB_DB_DAY_I 64.0 //[1.0 1.5 2.0 3.0 4.5 6.0 9.0 12.0 18.0 24.0 32.0 48.0 64.0 96.0 128.0 192.0 256.0 384.0 512.0 768.0 1024.0 1536.0 2048.0 3072.0 4096.0] + #define WB_DB_NIGHT_I 64.0 //[1.0 1.5 2.0 3.0 4.5 6.0 9.0 12.0 18.0 24.0 32.0 48.0 64.0 96.0 128.0 192.0 256.0 384.0 512.0 768.0 1024.0 1536.0 2048.0 3072.0 4096.0] + #define WB_DB_RAIN_I 64.0 //[1.0 1.5 2.0 3.0 4.5 6.0 9.0 12.0 18.0 24.0 32.0 48.0 64.0 96.0 128.0 192.0 256.0 384.0 512.0 768.0 1024.0 1536.0 2048.0 3072.0 4096.0] + #define WB_DB_WATER_I 64.0 //[1.0 1.5 2.0 3.0 4.5 6.0 9.0 12.0 18.0 24.0 32.0 48.0 64.0 96.0 128.0 192.0 256.0 384.0 512.0 768.0 1024.0 1536.0 2048.0 3072.0 4096.0] + #define WB_DB_NETHER_I 64.0 //[1.0 1.5 2.0 3.0 4.5 6.0 9.0 12.0 18.0 24.0 32.0 48.0 64.0 96.0 128.0 192.0 256.0 384.0 512.0 768.0 1024.0 1536.0 2048.0 3072.0 4096.0] + #define WB_DB_END_I 64.0 //[1.0 1.5 2.0 3.0 4.5 6.0 9.0 12.0 18.0 24.0 32.0 48.0 64.0 96.0 128.0 192.0 256.0 384.0 512.0 768.0 1024.0 1536.0 2048.0 3072.0 4096.0] + + #define ENTITY_GN_AND_CT + #define GENERATED_NORMAL_MULT 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 250 300 400] + #define COATED_TEXTURE_MULT 100 //[25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200] + + #define GLOWING_ORE_MASTER 1 //[0 1 2] + #define GLOWING_ORE_MULT 1.00 //[0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #if GLOWING_ORE_MASTER == 2 || SHADER_STYLE == 4 && GLOWING_ORE_MASTER == 1 + #define GLOWING_ORE_IRON + #define GLOWING_ORE_GOLD + #define GLOWING_ORE_COPPER + #define GLOWING_ORE_REDSTONE + #define GLOWING_ORE_LAPIS + #define GLOWING_ORE_EMERALD + #define GLOWING_ORE_DIAMOND + #define GLOWING_ORE_NETHERQUARTZ + #define GLOWING_ORE_NETHERGOLD + #define GLOWING_ORE_GILDEDBLACKSTONE + #define GLOWING_ORE_ANCIENTDEBRIS + #define GLOWING_ORE_MODDED + #endif + + #define GLOWING_AMETHYST 1 //[0 1 2] + #define GLOWING_LICHEN 1 //[0 1 2] + //#define EMISSIVE_REDSTONE_BLOCK + //#define EMISSIVE_LAPIS_BLOCK + //#define GLOWING_ARMOR_TRIM + + #define IPBR_EMISSIVE_MODE 1 //[1 3 2] + //#define IPBR_COMPATIBILITY_MODE + + #define NORMAL_MAP_STRENGTH 100 //[0 10 15 20 30 40 60 80 100 120 140 160 180 200] + #define CUSTOM_EMISSION_INTENSITY 100 //[0 5 7 10 15 20 25 30 35 40 45 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 225 250] + #define POM_DEPTH 0.80 //[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 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00] + #define POM_QUALITY 128 //[16 32 64 128 256 512] + #define POM_DISTANCE 32 //[16 24 32 48 64 128 256 512 1024] + #define POM_LIGHTING_MODE 2 //[1 2] + //#define POM_ALLOW_CUTOUT + #define DIRECTIONAL_BLOCKLIGHT 0 //[0 3 7 11] + + #define CAVE_LIGHTING 100 //[0 5 7 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300 325 350 375 400 425 450 475 500 550 600 650 700 750 800 850 900 950 1000 1100 1200 1300 1400 1500 1600] + #define HELD_LIGHTING_MODE 2 //[0 1 2] + #define BLOCKLIGHT_FLICKERING 0 //[0 2 3 4 5 6 7 8 9 10] + #define AMBIENT_MULT 100 //[50 55 60 65 70 75 80 85 90 95 100 110 120 130 140 150 160 170 180 190 200] + #define PLAYER_SHADOW 1 //[-1 1] + + #define WAVING_SPEED 1.00 //[0.00 0.05 0.10 0.15 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 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.20 2.40 2.60 2.80 3.00 3.25 3.50 3.75 4.00 4.50 5.00] + #define WAVING_I 1.00 //[0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 50.0] + #define WAVING_I_RAIN_MULT 100 //[25 50 75 100 125 150 175 200] + #define NO_WAVING_INDOORS + #define WAVING_FOLIAGE + #define WAVING_LEAVES + #define WAVING_LAVA + #define WAVING_LILY_PAD + #define WAVING_WATER_VERTEX + #define WAVING_RAIN + + #define SPECIAL_PORTAL_EFFECTS + + #define SUN_ANGLE -1 //[-1 0 -20 -30 -40 -50 -60 60 50 40 30 20] + + #define SELECT_OUTLINE 1 //[0 1 3 4 2] + //#define SELECT_OUTLINE_AUTO_HIDE + #define SELECT_OUTLINE_I 1.00 //[0.00 0.05 0.10 0.15 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 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.20 2.40 2.60 2.80 3.00 3.25 3.50 3.75 4.00 4.50 5.00] + #define SELECT_OUTLINE_R 1.35 //[0.00 0.05 0.10 0.15 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 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00] + #define SELECT_OUTLINE_G 0.35 //[0.00 0.05 0.10 0.15 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 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00] + #define SELECT_OUTLINE_B 1.75 //[0.00 0.05 0.10 0.15 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 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00] + + //#define WORLD_OUTLINE + #define WORLD_OUTLINE_THICKNESS 1 //[1 2 3 4] + #define WORLD_OUTLINE_I 1.50 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.20 2.40 2.60 2.80 3.00 3.25 3.50 3.75 4.00] + #define WORLD_OUTLINE_ON_ENTITIES + //#define DARK_OUTLINE + #define DARK_OUTLINE_THICKNESS 1 //[1 2] + + #define HAND_SWAYING 0 //[0 1 2 3] + #define SHOW_LIGHT_LEVEL 0 //[0 1 2 3] + //#define REDUCE_CLOSE_PARTICLES + //#define LESS_LAVA_FOG + //#define SNOWY_WORLD + //#define COLOR_CODED_PROGRAMS + //#define GLOWING_COLORED_PARTICLES + + //#define MOON_PHASE_INF_LIGHT + //#define MOON_PHASE_INF_ATMOSPHERE + #define MOON_PHASE_INF_REFLECTION + #define MOON_PHASE_FULL 1.00 //[0.01 0.03 0.05 0.07 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define MOON_PHASE_PARTIAL 0.85 //[0.01 0.03 0.05 0.07 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define MOON_PHASE_DARK 0.60 //[0.01 0.03 0.05 0.07 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + + //#define PIXELATED_SHADOWS + //#define PIXELATED_BLOCKLIGHT + //#define PIXELATED_AO + #define PIXEL_SCALE 1 //[-2 -1 1 2 3 4 5] + + #define T_EXPOSURE 1.40 //[0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80] + #define TM_WHITE_CURVE 2.0 //[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 T_LOWER_CURVE 1.10 //[0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00] + #define T_UPPER_CURVE 1.30 //[0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00] + #define T_SATURATION 1.00 //[0.00 0.05 0.10 0.15 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 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00] + #define T_VIBRANCE 1.00 //[0.00 0.05 0.10 0.15 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 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00] + //#define COLORGRADING + #define GR_RR 100 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 108 116 124 132 140 148 156 164 172 180 188 196 200 212 224 236 248 260 272 284 296 300 316 332 348 364 380 396 400 424 448 472 496 500] + #define GR_RG 0 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 108 116 124 132 140 148 156 164 172 180 188 196 200 212 224 236 248 260 272 284 296 300 316 332 348 364 380 396 400 424 448 472 496 500] + #define GR_RB 0 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 108 116 124 132 140 148 156 164 172 180 188 196 200 212 224 236 248 260 272 284 296 300 316 332 348 364 380 396 400 424 448 472 496 500] + #define GR_RC 1.00 //[0.05 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.20 2.40 2.60 2.80 3.00 3.25 3.50 3.75 4.00 4.50 5.00] + #define GR_GR 0 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 108 116 124 132 140 148 156 164 172 180 188 196 200 212 224 236 248 260 272 284 296 300 316 332 348 364 380 396 400 424 448 472 496 500] + #define GR_GG 100 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 108 116 124 132 140 148 156 164 172 180 188 196 200 212 224 236 248 260 272 284 296 300 316 332 348 364 380 396 400 424 448 472 496 500] + #define GR_GB 0 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 108 116 124 132 140 148 156 164 172 180 188 196 200 212 224 236 248 260 272 284 296 300 316 332 348 364 380 396 400 424 448 472 496 500] + #define GR_GC 1.00 //[0.05 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.20 2.40 2.60 2.80 3.00 3.25 3.50 3.75 4.00 4.50 5.00] + #define GR_BR 0 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 108 116 124 132 140 148 156 164 172 180 188 196 200 212 224 236 248 260 272 284 296 300 316 332 348 364 380 396 400 424 448 472 496 500] + #define GR_BG 0 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 108 116 124 132 140 148 156 164 172 180 188 196 200 212 224 236 248 260 272 284 296 300 316 332 348 364 380 396 400 424 448 472 496 500] + #define GR_BB 100 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 108 116 124 132 140 148 156 164 172 180 188 196 200 212 224 236 248 260 272 284 296 300 316 332 348 364 380 396 400 424 448 472 496 500] + #define GR_BC 1.00 //[0.05 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.20 2.40 2.60 2.80 3.00 3.25 3.50 3.75 4.00 4.50 5.00] + + //#define LIGHT_COLOR_MULTS + //#define ATM_COLOR_MULTS + #define LIGHT_MORNING_R 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_MORNING_G 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_MORNING_B 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_MORNING_I 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_MORNING_R 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_MORNING_G 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_MORNING_B 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_MORNING_I 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_NOON_R 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_NOON_G 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_NOON_B 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_NOON_I 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_NOON_R 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_NOON_G 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_NOON_B 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_NOON_I 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_NIGHT_R 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_NIGHT_G 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_NIGHT_B 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_NIGHT_I 1.00 //[0.01 0.03 0.05 0.07 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_NIGHT_R 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_NIGHT_G 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_NIGHT_B 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_NIGHT_I 1.00 //[0.01 0.03 0.05 0.07 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_RAIN_R 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_RAIN_G 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_RAIN_B 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_RAIN_I 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_RAIN_R 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_RAIN_G 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_RAIN_B 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_RAIN_I 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_NETHER_R 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_NETHER_G 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_NETHER_B 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_NETHER_I 1.00 //[0.01 0.03 0.05 0.07 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_NETHER_R 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_NETHER_G 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_NETHER_B 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_NETHER_I 1.00 //[0.01 0.03 0.05 0.07 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_END_R 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_END_G 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_END_B 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define LIGHT_END_I 1.00 //[0.01 0.03 0.05 0.07 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_END_R 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_END_G 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_END_B 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define ATM_END_I 1.00 //[0.01 0.03 0.05 0.07 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + + #define XLIGHT_R 1.00 //[0.01 0.03 0.05 0.07 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define XLIGHT_G 1.00 //[0.01 0.03 0.05 0.07 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define XLIGHT_B 1.00 //[0.01 0.03 0.05 0.07 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + #define XLIGHT_I 1.00 //[0.01 0.03 0.05 0.07 0.10 0.15 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 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00] + + //#define DREAM_TWEAKED_LIGHTING + //#define DREAM_TWEAKED_BORDERFOG + //#define FOLIAGE_ALT_SUBSURFACE + +//Internal Settings// + #define SIDE_SHADOWING + #define SHADOW_FILTERING + + #define GLASS_OPACITY 0.25 + + #define DIRECTIONAL_SHADING + + #define ATMOSPHERIC_FOG + #define BLOOM_FOG + + #define GLOWING_ENTITY_FIX + #define FLICKERING_FIX + //#define SAFER_GENERATED_NORMALS + + #define SHADOW_FRUSTUM_FIT + +//Extensions// + +//Information// + #define info0 0 //[0] + #define info1 0 //[0] + #define info2 0 //[0] + #define info3 0 //[0] + #define info4 0 //[0] + #define info5 0 //[0] + #define info6 0 //[0] + #define info7 0 //[0] + #define info8 0 //[0] + #define info9 0 //[0] + #define info10 0 //[0] + +//Visual Style and Performance Setting Handling// + #if RP_MODE == 1 + #define IPBR + #define IPBR_PARTICLE_FEATURES + //#define GENERATED_NORMALS + //#define COATED_TEXTURES + //#define FANCY_GLASS + //#define GREEN_SCREEN_LIME + #endif + #if RP_MODE >= 2 + #define CUSTOM_PBR + #define POM + #endif + + #if SHADER_STYLE == 1 + #define WATER_STYLE_DEFAULT 1 + //#define WATER_CAUSTIC_STYLE_DEFAULT 1 + #define AURORA_STYLE_DEFAULT 1 + #define SUN_MOON_STYLE_DEFAULT 1 + #define CLOUD_STYLE_DEFAULT 1 + #elif SHADER_STYLE == 4 + #define WATER_STYLE_DEFAULT 3 + //#define WATER_CAUSTIC_STYLE_DEFAULT 3 + #define AURORA_STYLE_DEFAULT 2 + #define SUN_MOON_STYLE_DEFAULT 2 + #define CLOUD_STYLE_DEFAULT 3 + #endif + #if WATER_STYLE_DEFINE == -1 + #define WATER_STYLE WATER_STYLE_DEFAULT + #else + #define WATER_STYLE WATER_STYLE_DEFINE + #endif + #if WATER_CAUSTIC_STYLE_DEFINE == -1 + #define WATER_CAUSTIC_STYLE WATER_STYLE + #else + #define WATER_CAUSTIC_STYLE WATER_CAUSTIC_STYLE_DEFINE + #endif + #if AURORA_STYLE_DEFINE == -1 + #define AURORA_STYLE AURORA_STYLE_DEFAULT + #else + #define AURORA_STYLE AURORA_STYLE_DEFINE + #endif + #if SUN_MOON_STYLE_DEFINE == -1 + #define SUN_MOON_STYLE SUN_MOON_STYLE_DEFAULT + #else + #define SUN_MOON_STYLE SUN_MOON_STYLE_DEFINE + #endif + #if CLOUD_STYLE_DEFINE == -1 + #define CLOUD_STYLE CLOUD_STYLE_DEFAULT + #else + #define CLOUD_STYLE CLOUD_STYLE_DEFINE + #endif + // Thanks to SpacEagle17 and isuewo for the sun angle handling + #ifdef END + const float sunPathRotation = 0.0; + #else + #if SUN_ANGLE == -1 + #if SHADER_STYLE == 1 + const float sunPathRotation = 0.0; + #define PERPENDICULAR_TWEAKS + #elif SHADER_STYLE == 4 + const float sunPathRotation = -40.0; + #endif + #elif SUN_ANGLE == 0 + const float sunPathRotation = 0.0; + #define PERPENDICULAR_TWEAKS + #elif SUN_ANGLE == 20 + const float sunPathRotation = 20.0; + #elif SUN_ANGLE == 30 + const float sunPathRotation = 30.0; + #elif SUN_ANGLE == 40 + const float sunPathRotation = 40.0; + #elif SUN_ANGLE == 50 + const float sunPathRotation = 50.0; + #elif SUN_ANGLE == 60 + const float sunPathRotation = 60.0; + #elif SUN_ANGLE == -20 + const float sunPathRotation = -20.0; + #elif SUN_ANGLE == -30 + const float sunPathRotation = -30.0; + #elif SUN_ANGLE == -40 + const float sunPathRotation = -40.0; + #elif SUN_ANGLE == -50 + const float sunPathRotation = -50.0; + #elif SUN_ANGLE == -60 + const float sunPathRotation = -60.0; + #endif + #endif + + #if SHADOW_QUALITY >= 1 + #if SHADOW_QUALITY > 4 || SHADOW_SMOOTHING < 3 + const int shadowMapResolution = 4096; + #else + const int shadowMapResolution = 2048; + #endif + #else + const int shadowMapResolution = 1024; + #endif + + #if SSAO_I > 0 + #define SSAO_QUALI SSAO_QUALI_DEFINE + #else + #define SSAO_QUALI 0 + #endif + #if LIGHTSHAFT_BEHAVIOUR > 0 + #define LIGHTSHAFT_QUALI LIGHTSHAFT_QUALI_DEFINE + #else + #define LIGHTSHAFT_QUALI 0 + #endif + + #if BLOCK_REFLECT_QUALITY >= 1 + #define LIGHT_HIGHLIGHT + #endif + #if BLOCK_REFLECT_QUALITY >= 2 && RP_MODE >= 1 + #define PBR_REFLECTIONS + #endif + #if BLOCK_REFLECT_QUALITY >= 3 && RP_MODE >= 1 + #define TEMPORAL_FILTER + #endif + + #if DETAIL_QUALITY == 0 // Potato + #undef PERPENDICULAR_TWEAKS + #define LOW_QUALITY_NETHER_STORM + #define LOW_QUALITY_ENDER_NEBULA + #define WATER_MAT_QUALITY 1 + #endif + #if DETAIL_QUALITY >= 1 // not an option for now + #if TAA_MODE >= 1 + #define TAA + #endif + #define WATER_MAT_QUALITY 1 + #endif + #if DETAIL_QUALITY >= 2 // Medium + #undef WATER_MAT_QUALITY + #define WATER_MAT_QUALITY 2 + #define FXAA_TAA_INTERACTION + #define TAA_MOVEMENT_IMPROVEMENT_FILTER + #endif + #if DETAIL_QUALITY >= 3 // High + #undef WATER_MAT_QUALITY + #define WATER_MAT_QUALITY 3 // we use DETAIL_QUALITY >= 3 when writing in gbuffers_water because optifine bad + #define HQ_NIGHT_NEBULA + #define SKY_EFFECT_REFLECTION + #define CONNECTED_GLASS_CORNER_FIX + #define ACL_CORNER_LEAK_FIX + #define DO_NETHER_VINE_WAVING_OUTSIDE_NETHER + #define DO_MORE_FOLIAGE_WAVING + #if defined IRIS_FEATURE_CUSTOM_IMAGES && SHADOW_QUALITY > -1 && RAIN_PUDDLES > 0 && COLORED_LIGHTING_INTERNAL > 0 + #define PUDDLE_VOXELIZATION + #endif + #if CLOUD_QUALITY >= 3 && CLOUD_STYLE > 0 && CLOUD_STYLE != 50 + #define ENTITY_TAA_NOISY_CLOUD_FIX + #endif + #endif + +//Define Handling// + #ifdef OVERWORLD + #if CLOUD_STYLE > 0 && CLOUD_STYLE != 50 && CLOUD_QUALITY > 0 + #define VL_CLOUDS_ACTIVE + #if CLOUD_STYLE == 1 + #define CLOUDS_REIMAGINED + #endif + #if CLOUD_STYLE == 3 + #define CLOUDS_UNBOUND + #endif + #endif + #else + #undef LIGHT_HIGHLIGHT + #undef CAVE_FOG + #undef CLOUD_SHADOWS + #undef SNOWY_WORLD + #undef LIGHTSHAFT_SMOKE + #endif + #ifdef NETHER + #undef ATMOSPHERIC_FOG + #undef NO_WAVING_INDOORS + #else + #undef NETHER_STORM + #endif + #ifdef END + #undef BLOOM_FOG + #endif + + #ifndef BLOOM + #undef BLOOM_FOG + #endif + + #if defined PIXELATED_SHADOWS || defined PIXELATED_BLOCKLIGHT || defined PIXELATED_AO + #if !defined GBUFFERS_BASIC && !defined DH_TERRAIN && !defined DH_WATER + #define DO_PIXELATION_EFFECTS + #endif + #endif + + #ifndef GBUFFERS_TERRAIN + #undef PIXELATED_BLOCKLIGHT + #endif + + #ifdef BLOOM_FOG + #if WORLD_BLUR > 0 + #define BLOOM_FOG_COMPOSITE3 + #elif defined MOTION_BLURRING + #define BLOOM_FOG_COMPOSITE2 + #else + #define BLOOM_FOG_COMPOSITE + #endif + #endif + + #if defined GBUFFERS_HAND || defined GBUFFERS_ENTITIES + #undef SNOWY_WORLD + #undef DISTANT_LIGHT_BOKEH + #endif + #if defined GBUFFERS_TEXTURED || defined GBUFFERS_BASIC + #undef LIGHT_HIGHLIGHT + #undef DIRECTIONAL_SHADING + #undef SIDE_SHADOWING + #endif + #ifdef GBUFFERS_WATER + #undef LIGHT_HIGHLIGHT + #endif + + #ifndef GLOWING_ENTITY_FIX + #undef GBUFFERS_ENTITIES_GLOWING + #endif + + #if LIGHTSHAFT_QUALI > 0 && defined OVERWORLD && SHADOW_QUALITY > -1 || defined END + #define LIGHTSHAFTS_ACTIVE + #endif + + #if defined WAVING_FOLIAGE || defined WAVING_LEAVES || defined WAVING_LAVA || defined WAVING_LILY_PAD + #define WAVING_ANYTHING_TERRAIN + #endif + + #if WATERCOLOR_R != 100 || WATERCOLOR_G != 100 || WATERCOLOR_B != 100 + #define WATERCOLOR_RM WATERCOLOR_R * 0.01 + #define WATERCOLOR_GM WATERCOLOR_G * 0.01 + #define WATERCOLOR_BM WATERCOLOR_B * 0.01 + #define WATERCOLOR_CHANGED + #endif + + #if UNDERWATERCOLOR_R != 100 || UNDERWATERCOLOR_G != 100 || UNDERWATERCOLOR_B != 100 + #define UNDERWATERCOLOR_RM UNDERWATERCOLOR_R * 0.01 + #define UNDERWATERCOLOR_GM UNDERWATERCOLOR_G * 0.01 + #define UNDERWATERCOLOR_BM UNDERWATERCOLOR_B * 0.01 + #define UNDERWATERCOLOR_CHANGED + #endif + + #if defined IS_IRIS && !defined IRIS_HAS_TRANSLUCENCY_SORTING + #undef FANCY_GLASS + #endif + + #ifdef DISTANT_HORIZONS + #undef DISTANT_LIGHT_BOKEH + #endif + + #if defined MC_GL_VENDOR_AMD || defined MC_GL_VENDOR_ATI + #ifndef DEFERRED1 + #define FIX_AMD_REFLECTION_CRASH //BFARC: Fixes a driver crashing problem on AMD GPUs + #endif + #endif + + +//Activate Settings// + #ifdef POM_ALLOW_CUTOUT + #endif + #ifdef BRIGHT_CAVE_WATER + #endif + #ifdef IPBR_PARTICLE_FEATURES + #endif + #ifdef COLORED_CANDLE_LIGHT + #endif + #ifdef PIXELATED_AO + #endif + +//Very Common Stuff// + #include "/lib/uniforms.glsl" + + #if SHADOW_QUALITY == -1 + float timeAngle = worldTime / 24000.0; + #else + float tAmin = fract(sunAngle - 0.033333333); + float tAlin = tAmin < 0.433333333 ? tAmin * 1.15384615385 : tAmin * 0.882352941176 + 0.117647058824; + float hA = tAlin > 0.5 ? 1.0 : 0.0; + float tAfrc = fract(tAlin * 2.0); + float tAfrs = tAfrc*tAfrc*(3.0-2.0*tAfrc); + float tAmix = hA < 0.5 ? 0.3 : -0.1; + float timeAngle = (tAfrc * (1.0-tAmix) + tAfrs * tAmix + hA) * 0.5; + #endif + + #include "/lib/util/commonFunctions.glsl" + + #ifndef DISTANT_HORIZONS + float renderDistance = far; + #else + float renderDistance = float(dhRenderDistance); + #endif + + const float shadowMapBias = 1.0 - 25.6 / shadowDistance; + #ifndef DREAM_TWEAKED_LIGHTING + float noonFactor = sqrt(max(sin(timeAngle*6.28318530718),0.0)); + #else + float noonFactor = pow(max(sin(timeAngle*6.28318530718),0.0), 0.2); + #endif + float nightFactor = max(sin(timeAngle*(-6.28318530718)),0.0); + float invNightFactor = 1.0 - nightFactor; + float rainFactor2 = rainFactor * rainFactor; + float invRainFactor = 1.0 - rainFactor; + float invNoonFactor = 1.0 - noonFactor; + float invNoonFactor2 = invNoonFactor * invNoonFactor; + + float vsBrightness = clamp(screenBrightness, 0.0, 1.0); + + int modifiedWorldDay = int(mod(worldDay, 100) + 5.0); + float syncedTime = (worldTime + modifiedWorldDay * 24000) * 0.05; + + const float pi = 3.14159265359; + const float goldenRatio = 1.61803398875; + + const float oceanAltitude = 61.9; + + #if IRIS_VERSION >= 10800 + vec3 cameraPositionBestFract = cameraPositionFract; + #else + vec3 cameraPositionBestFract = fract(cameraPosition); + #endif + + #include "/lib/colors/blocklightColors.glsl" + + const vec3 caveFogColorRaw = vec3(0.13, 0.13, 0.15); + #if CAVE_LIGHTING < 100 + vec3 caveFogColor = caveFogColorRaw * 0.7; + #elif CAVE_LIGHTING == 100 + vec3 caveFogColor = caveFogColorRaw * (0.7 + 0.3 * vsBrightness); // Default + #elif CAVE_LIGHTING > 100 + vec3 caveFogColor = caveFogColorRaw; + #endif + + #if WATERCOLOR_MODE >= 2 + vec3 underwaterColorM1 = pow(fogColor, vec3(0.33, 0.21, 0.26)); + #else + vec3 underwaterColorM1 = vec3(0.46, 0.62, 1.0); + #endif + #ifndef UNDERWATERCOLOR_CHANGED + vec3 underwaterColorM2 = underwaterColorM1; + #else + vec3 underwaterColorM2 = underwaterColorM1 * vec3(UNDERWATERCOLOR_RM, UNDERWATERCOLOR_GM, UNDERWATERCOLOR_BM); + #endif + vec3 waterFogColor = underwaterColorM2 * vec3(0.2 + 0.1 * vsBrightness); + + #if NETHER_COLOR_MODE == 3 + float netherColorMixer = inNetherWastes + inCrimsonForest + inWarpedForest + inBasaltDeltas + inSoulValley; + vec3 netherColor = mix( + fogColor * 0.6 + 0.2 * normalize(fogColor + 0.0001), + ( + inNetherWastes * vec3(0.38, 0.15, 0.05) + inCrimsonForest * vec3(0.33, 0.07, 0.04) + + inWarpedForest * vec3(0.18, 0.1, 0.25) + inBasaltDeltas * vec3(0.25, 0.235, 0.23) + + inSoulValley * vec3(0.1, vec2(0.24)) + ), + netherColorMixer + ); + #elif NETHER_COLOR_MODE == 2 + vec3 netherColor = fogColor * 0.6 + 0.2 * normalize(fogColor + 0.0001); + #elif NETHER_COLOR_MODE == 0 + vec3 netherColor = vec3(0.7, 0.26, 0.08) * 0.6; + #endif + vec3 lavaLightColor = vec3(0.15, 0.06, 0.01); + + const vec3 endSkyColor = vec3(0.095, 0.07, 0.15) * 1.5; + + #if WEATHER_TEX_OPACITY == 100 + const float rainTexOpacity = 0.25; + const float snowTexOpacity = 0.5; + #else + #define WEATHER_TEX_OPACITY_M 100.0 / WEATHER_TEX_OPACITY + const float rainTexOpacity = pow(0.25, WEATHER_TEX_OPACITY_M); + const float snowTexOpacity = pow(0.5, WEATHER_TEX_OPACITY_M); + #endif + + #ifdef FRAGMENT_SHADER + ivec2 texelCoord = ivec2(gl_FragCoord.xy); + #endif + + const int cloudAlt1i = int(CLOUD_ALT1); // Old setting files can send float values + const int cloudAlt2i = int(CLOUD_ALT2); + + const float OSIEBCA = 1.0 / 255.0; // One Step In Eight Bit Color Attachment + /* materialMask steps + 0 to 240 - PBR Dependant: + IntegratedPBR: + 0 to 99: deferredMaterials + OSIEBCA * 0.0 = *Unused as 0.0 is the default value* + OSIEBCA * 1.0 = Intense Fresnel + OSIEBCA * 2.0 = Copper Fresnel + OSIEBCA * 3.0 = Gold Fresnel + OSIEBCA * 4.0 = + OSIEBCA * 5.0 = Redstone Fresnel + 100 to 199: Exact copy of deferredMaterials but toned down reflection handling for entities + materialMask += OSIEBCA * 100.0; // Entity Reflection Handling + 200 to 240: Random checks + OSIEBCA * 240.0 = Green Screen Lime Blocks + seuspbr: + 0 to 240: Increasing metalness + labPBR: + 0 to 229: Increasing f0 + 230 to 240: Consistent metalness with still increasing f0 + 241 to 255 - PBR Independant: + OSIEBCA * 241.0 = Water + + OSIEBCA * 252.0 = Versatile Selection Outline + OSIEBCA * 253.0 = Reduced Edge TAA + OSIEBCA * 254.0 = No SSAO, No TAA + OSIEBCA * 255.0 = *Unused as 1.0 is the clear color* + */ + +// 62 75 74 20 74 68 4F 73 65 20 77 68 6F 20 68 6F 70 65 20 69 6E 20 74 68 65 20 6C 69 6D 69 4E 61 6C 0A 77 69 6C 6C 20 72 65 6E 65 77 20 74 68 65 69 72 20 73 54 72 65 6E 67 74 48 2E 0A 74 68 65 79 20 77 69 6C 6C 20 73 6F 41 72 20 6F 6E 20 65 6C 79 54 72 61 73 20 6C 69 6B 65 20 70 68 61 6E 74 6F 6D 73 3B 0A 74 68 65 79 20 77 69 6C 6C 20 72 75 6E 20 61 6E 44 20 6E 6F 74 20 67 72 6F 77 20 77 65 41 72 79 2C 0A 74 68 65 59 20 77 69 6C 6C 20 77 61 6C 6B 20 61 6E 64 20 6E 6F 74 20 62 65 20 66 61 69 6E 74 2E \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/lighting/ggx.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/lighting/ggx.glsl new file mode 100644 index 0000000..af3da27 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/lighting/ggx.glsl @@ -0,0 +1,60 @@ +// GGX area light approximation from Horizon Zero Dawn +float GetNoHSquared(float radiusTan, float NoL, float NoV, float VoL) { + float radiusCos = 1.0 / sqrt(1.0 + radiusTan * radiusTan); + + float RoL = 2.0 * NoL * NoV - VoL; + if (RoL >= radiusCos) + return 1.0; + + float rOverLengthT = radiusCos * radiusTan / sqrt(1.0 - RoL * RoL); + float NoTr = rOverLengthT * (NoV - RoL * NoL); + float VoTr = rOverLengthT * (2.0 * NoV * NoV - 1.0 - RoL * VoL); + + float triple = sqrt(clamp(1.0 - NoL * NoL - NoV * NoV - VoL * VoL + 2.0 * NoL * NoV * VoL, 0.0, 1.0)); + + float NoBr = rOverLengthT * triple, VoBr = rOverLengthT * (2.0 * triple * NoV); + float NoLVTr = NoL * radiusCos + NoV + NoTr, VoLVTr = VoL * radiusCos + 1.0 + VoTr; + float p = NoBr * VoLVTr, q = NoLVTr * VoLVTr, s = VoBr * NoLVTr; + float xNum = q * (-0.5 * p + 0.25 * VoBr * NoLVTr); + float xDenom = p * p + s * ((s - 2.0 * p)) + NoLVTr * ((NoL * radiusCos + NoV) * VoLVTr * VoLVTr + + q * (-0.5 * (VoLVTr + VoL * radiusCos) - 0.5)); + float twoX1 = 2.0 * xNum / (xDenom * xDenom + xNum * xNum); + float sinTheta = twoX1 * xDenom; + float cosTheta = 1.0 - twoX1 * xNum; + NoTr = cosTheta * NoTr + sinTheta * NoBr; + VoTr = cosTheta * VoTr + sinTheta * VoBr; + + float newNoL = NoL * radiusCos + NoTr; + float newVoL = VoL * radiusCos + VoTr; + float NoH = NoV + newNoL; + float HoH = 2.0 * newVoL + 2.0; + return clamp(NoH * NoH / HoH, 0.0, 1.0); +} + +float GGX(vec3 normalM, vec3 viewPos, vec3 lightVec, float NdotLmax0, float smoothnessG) { + smoothnessG = sqrt1(smoothnessG * 0.9 + 0.1); + float roughnessP = (1.35 - smoothnessG); + float roughness = pow2(pow2(roughnessP)); + + vec3 halfVec = normalize(lightVec - viewPos); + + float dotLH = clamp(dot(halfVec, lightVec), 0.0, 1.0); + float dotNV = dot(normalM, -viewPos); + + #if WATER_REFLECT_QUALITY >= 2 + float dotNH = GetNoHSquared(0.01, NdotLmax0, dotNV, dot(-viewPos, lightVec)); + #else + float dotNH = pow2(min1(2.0 * NdotLmax0 * dotNV * length(halfVec) - dot(-viewPos, lightVec))); + #endif + + float denom = dotNH * roughness - dotNH + 1.0; + float D = roughness / (3.141592653589793 * pow2(denom)); + float f0 = 0.05; + float F = exp2((-5.55473 * dotLH - 6.98316) * dotLH) * (1.0 - f0) + f0; + + float NdotLmax0M = sqrt3(NdotLmax0 * max0(dot(normal, lightVec))); + float specular = max0(NdotLmax0M * D * F / pow2(dotLH)); + specular = specular / (0.125 * specular + 1.0); + + return specular; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/lighting/mainLighting.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/lighting/mainLighting.glsl new file mode 100644 index 0000000..93089a8 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/lighting/mainLighting.glsl @@ -0,0 +1,641 @@ +//Lighting Includes// +#include "/lib/colors/lightAndAmbientColors.glsl" +#include "/lib/lighting/ggx.glsl" + +#if SHADOW_QUALITY > -1 && (defined OVERWORLD || defined END) + #include "/lib/lighting/shadowSampling.glsl" +#endif + +#if defined CLOUDS_REIMAGINED && defined CLOUD_SHADOWS + #include "/lib/atmospherics/clouds/cloudCoord.glsl" +#endif + +#ifdef LIGHT_COLOR_MULTS + #include "/lib/colors/colorMultipliers.glsl" +#endif + +#if defined MOON_PHASE_INF_LIGHT || defined MOON_PHASE_INF_REFLECTION + #include "/lib/colors/moonPhaseInfluence.glsl" +#endif + +#if COLORED_LIGHTING_INTERNAL > 0 + #include "/lib/misc/voxelization.glsl" +#endif + +#ifdef DO_PIXELATION_EFFECTS + #include "/lib/misc/pixelation.glsl" +#endif + +vec3 highlightColor = normalize(pow(lightColor, vec3(0.37))) * (0.3 + 1.5 * sunVisibility2) * (1.0 - 0.85 * rainFactor); + +//Lighting// +void DoLighting(inout vec4 color, inout vec3 shadowMult, vec3 playerPos, vec3 viewPos, float lViewPos, vec3 geoNormal, vec3 normalM, float dither, + vec3 worldGeoNormal, vec2 lightmap, bool noSmoothLighting, bool noDirectionalShading, bool noVanillaAO, + bool centerShadowBias, int subsurfaceMode, float smoothnessG, float highlightMult, float emission) { + #ifdef DO_PIXELATION_EFFECTS + vec2 pixelationOffset = ComputeTexelOffset(tex, texCoord); + + #ifdef PIXELATED_SHADOWS + vec3 playerPosPixelated = TexelSnap(playerPos, pixelationOffset); + + #ifdef GBUFFERS_ENTITIES + if (entityId == 50076) { // Boats + playerPosPixelated.y += 0.38; // consistentBOAT2176 + } + #endif + #ifdef GBUFFERS_TERRAIN + if (subsurfaceMode == 1) { + playerPosPixelated.y += 0.05; // Fixes grounded foliage having dark bottom pixels depending on the random y-offset + } + #endif + #endif + #ifdef PIXELATED_BLOCKLIGHT + if (!noSmoothLighting) { + lightmap = clamp(TexelSnap(lightmap, pixelationOffset), 0.0, 1.0); + lViewPos = TexelSnap(lViewPos, pixelationOffset); + } + #endif + #endif + + float lightmapY2 = pow2(lightmap.y); + float lightmapYM = smoothstep1(lightmap.y); + float subsurfaceHighlight = 0.0; + float ambientMult = 1.0; + vec3 lightColorM = lightColor; + vec3 ambientColorM = ambientColor; + vec3 nViewPos = normalize(viewPos); + + #if defined LIGHT_COLOR_MULTS && !defined GBUFFERS_WATER // lightColorMult is defined early in gbuffers_water + lightColorMult = GetLightColorMult(); + #endif + + #ifdef OVERWORLD + float skyLightShadowMult = pow2(pow2(lightmapY2)); + #else + float skyLightShadowMult = 1.0; + #endif + + #if defined SIDE_SHADOWING || defined DIRECTIONAL_SHADING + float NdotN = dot(normalM, northVec); + float absNdotN = abs(NdotN); + #endif + + #if defined CUSTOM_PBR || defined GENERATED_NORMALS + float NPdotU = abs(dot(geoNormal, upVec)); + #endif + + // Shadows + #if defined OVERWORLD || defined END + float NdotL = dot(normalM, lightVec); + #ifdef GBUFFERS_WATER + //NdotL = mix(NdotL, 1.0, 1.0 - color.a); + #endif + #ifdef CUSTOM_PBR + float geoNdotL = dot(geoNormal, lightVec); + float geoNdotLM = geoNdotL > 0.0 ? geoNdotL * 10.0 : geoNdotL; + NdotL = min(geoNdotLM, NdotL); + + NdotL *= 1.0 - 0.7 * (1.0 - pow2(pow2(NdotUmax0))) * NPdotU; + #endif + #if SHADOW_QUALITY == -1 && defined GBUFFERS_TERRAIN || defined DREAM_TWEAKED_LIGHTING + if (subsurfaceMode == 1) { + NdotU = 1.0; + NdotUmax0 = 1.0; + NdotL = dot(upVec, lightVec); + } else if (subsurfaceMode == 2) { + highlightMult *= NdotL; + NdotL = mix(NdotL, 1.0, 0.35); + } + + subsurfaceMode = 0; + #endif + float NdotLmax0 = max0(NdotL); + float NdotLM = NdotLmax0 * 0.9999; + + #ifdef GBUFFERS_TEXTURED + NdotLM = 1.0; + #else + #ifdef GBUFFERS_TERRAIN + if (subsurfaceMode != 0) { + #if defined CUSTOM_PBR && defined POM && POM_QUALITY >= 128 && POM_LIGHTING_MODE == 2 + shadowMult *= max(pow2(pow2(dot(normalM, geoNormal))), sqrt2(NdotLmax0)); + #endif + NdotLM = 1.0; + } + #ifdef SIDE_SHADOWING + else + #endif + #endif + #ifdef SIDE_SHADOWING + NdotLM = max0(NdotL + 0.4) * 0.714; + + #ifdef END + NdotLM = sqrt3(NdotLM); + #endif + #endif + #endif + + #if ENTITY_SHADOWS_DEFINE == -1 && (defined GBUFFERS_ENTITIES || defined GBUFFERS_BLOCK) + lightColorM = mix(lightColorM * 0.75, ambientColorM, 0.5 * pow2(pow2(1.0 - NdotLM))); + NdotLM = NdotLM * 0.75 + 0.25; + #endif + + if (shadowMult.r > 0.00001) { + #if SHADOW_QUALITY > -1 + if (NdotLM > 0.0001) { + vec3 shadowMultBeforeLighting = shadowMult; + float shadowLength = min(shadowDistance, far) * 0.9166667 - lViewPos; //consistent08JJ622 + + if (shadowLength > 0.000001) { + #if SHADOW_SMOOTHING == 4 || SHADOW_QUALITY == 0 + float offset = 0.00098; + #elif SHADOW_SMOOTHING == 3 + float offset = 0.00075; + #elif SHADOW_SMOOTHING == 2 + float offset = 0.0005; + #elif SHADOW_SMOOTHING == 1 + float offset = 0.0003; + #endif + + vec3 playerPosM = playerPos; + vec3 centerPlayerPos = floor(playerPos + cameraPosition + worldGeoNormal * 0.01) - cameraPosition + 0.5; + + #if defined DO_PIXELATION_EFFECTS && defined PIXELATED_SHADOWS + playerPosM = playerPosPixelated; + offset *= 0.75; + #endif + + // Fix light leaking in caves // + #ifdef GBUFFERS_TERRAIN + if (centerShadowBias || subsurfaceMode == 1) { + #ifdef OVERWORLD + playerPosM = mix(centerPlayerPos, playerPosM, 0.5 + 0.5 * lightmapYM); + #endif + } else { + #if !defined DO_PIXELATION_EFFECTS || !defined PIXELATED_SHADOWS + float centerFactor = max(glColor.a, lightmapYM); + + #if defined PERPENDICULAR_TWEAKS && SHADOW_QUALITY >= 2 + // Fake Variable Penumbra Shadows + // Making centerFactor also work in daylight if AO gradient is facing towards sun + if (NdotU > 0.99) { + vec3 aoGradView = dFdx(glColor.a) * normalize(dFdx(playerPos.xyz)) + + dFdy(glColor.a) * normalize(dFdy(playerPos.xyz)); + if (dot(normalize(aoGradView.xz), normalize(ViewToPlayer(lightVec).xz)) < 0.3 + 0.4 * dither) + if (dot(lightVec, upVec) < 0.99999) centerFactor = sqrt1(max0(glColor.a - 0.55) / 0.45); + } + #endif + #else + // This works very well with Pixelated Shadows (at least at 16x) + float centerFactor = 1.0 - (1.0 - glColor.a) * max(max0(signMidCoordPos.y), NdotUmax0); + #endif + + playerPosM = mix(playerPosM, centerPlayerPos, 0.2 * (1.0 - pow2(pow2(centerFactor)))); + } + #elif defined GBUFFERS_HAND + playerPosM = mix(vec3(0.0), playerPosM, 0.2 + 0.8 * lightmapYM); + #elif defined GBUFFERS_TEXTURED + playerPosM = mix(centerPlayerPos, playerPosM + vec3(0.0, 0.02, 0.0), lightmapYM); + #else + playerPosM = mix(playerPosM, centerPlayerPos, 0.2 * (1.0 - lightmapYM)); + #endif + + // Shadow bias without peter-panning // + #ifndef GBUFFERS_TEXTURED + #ifdef GBUFFERS_TERRAIN + if (subsurfaceMode != 1) + #endif + { + float distanceBias = pow(dot(playerPos, playerPos), 0.75); + distanceBias = 0.12 + 0.0008 * distanceBias; + vec3 bias = worldGeoNormal * distanceBias * (2.0 - 0.95 * NdotLmax0); // 0.95 fixes pink petals noon shadows + + #ifdef GBUFFERS_TERRAIN + if (subsurfaceMode == 2) { + bias *= vec3(0.0, 0.0, -0.75); + } + #endif + + playerPosM += bias; + } + #endif + + vec3 shadowPos = GetShadowPos(playerPosM); + + bool leaves = false; + #ifdef GBUFFERS_TERRAIN + if (subsurfaceMode == 0) { + #if defined PERPENDICULAR_TWEAKS && defined SIDE_SHADOWING + offset *= 1.0 + pow2(absNdotN); + #endif + } else { + float VdotL = dot(nViewPos, lightVec); + float lightFactor = pow(max(VdotL, 0.0), 10.0) * float(isEyeInWater == 0); + if (subsurfaceMode == 1) { + offset = 0.0010235 * lightmapYM + 0.0009765; + shadowPos.z -= max(NdotL * 0.0001, 0.0) * lightmapYM; + subsurfaceHighlight = lightFactor * 0.8; + #ifndef SHADOW_FILTERING + shadowPos.z -= 0.0002; + #endif + } else if (subsurfaceMode == 2) { + leaves = true; + offset = 0.0005235 * lightmapYM + 0.0009765; + shadowPos.z -= 0.000175 * lightmapYM; + subsurfaceHighlight = lightFactor * 0.6; + #ifndef SHADOW_FILTERING + NdotLM = mix(NdotL, NdotLM, 0.5); + #endif + } else { + + } + } + #endif + + shadowMult *= GetShadow(shadowPos, lViewPos, lightmap.y, offset, leaves); + } + + float shadowSmooth = 16.0; + if (shadowLength < shadowSmooth) { + float shadowMixer = max0(shadowLength / shadowSmooth); + + #ifdef GBUFFERS_TERRAIN + if (subsurfaceMode != 0) { + float shadowMixerM = pow2(shadowMixer); + + if (subsurfaceMode == 1) skyLightShadowMult *= mix(0.6 + 0.3 * pow2(noonFactor), 1.0, shadowMixerM); + else skyLightShadowMult *= mix(NdotL * 0.4999 + 0.5, 1.0, shadowMixerM); + + subsurfaceHighlight *= shadowMixer; + } + #endif + + shadowMult = mix(vec3(skyLightShadowMult * shadowMultBeforeLighting), shadowMult, shadowMixer); + } + } + #else + shadowMult *= skyLightShadowMult; + #endif + + #ifdef CLOUD_SHADOWS + vec3 worldPos = playerPos + cameraPosition; + #if defined DO_PIXELATION_EFFECTS && defined PIXELATED_SHADOWS + worldPos = playerPosPixelated + cameraPosition; + #endif + + #ifdef CLOUDS_REIMAGINED + float EdotL = dot(eastVec, lightVec); + float EdotLM = tan(acos(EdotL)); + + #if SUN_ANGLE != 0 + float NVdotLM = tan(acos(dot(northVec, lightVec))); + #endif + + float distToCloudLayer1 = cloudAlt1i - worldPos.y; + vec3 cloudOffset1 = vec3(distToCloudLayer1 / EdotLM, 0.0, 0.0); + #if SUN_ANGLE != 0 + cloudOffset1.z += distToCloudLayer1 / NVdotLM; + #endif + vec2 cloudPos1 = GetRoundedCloudCoord(ModifyTracePos(worldPos + cloudOffset1, cloudAlt1i).xz, 0.35); + float cloudSample = texture2D(gaux4, cloudPos1).b; + cloudSample *= clamp(distToCloudLayer1 * 0.1, 0.0, 1.0); + + #ifdef DOUBLE_REIM_CLOUDS + float distToCloudLayer2 = cloudAlt2i - worldPos.y; + vec3 cloudOffset2 = vec3(distToCloudLayer2 / EdotLM, 0.0, 0.0); + #if SUN_ANGLE != 0 + cloudOffset2.z += distToCloudLayer2 / NVdotLM; + #endif + vec2 cloudPos2 = GetRoundedCloudCoord(ModifyTracePos(worldPos + cloudOffset2, cloudAlt2i).xz, 0.35); + float cloudSample2 = texture2D(gaux4, cloudPos2).b; + cloudSample2 *= clamp(distToCloudLayer2 * 0.1, 0.0, 1.0); + + cloudSample = 1.0 - (1.0 - cloudSample) * (1.0 - cloudSample2); + #endif + + cloudSample *= sqrt3(1.0 - abs(EdotL)); + shadowMult *= 1.0 - 0.85 * cloudSample; + #else + vec2 csPos = worldPos.xz + worldPos.y * 0.25; + csPos.x += syncedTime; + csPos *= 0.000002 * CLOUD_UNBOUND_SIZE_MULT; + + vec2 shadowoffsets[8] = vec2[8]( + vec2( 0.0 , 1.0 ), + vec2( 0.7071, 0.7071), + vec2( 1.0 , 0.0 ), + vec2( 0.7071,-0.7071), + vec2( 0.0 ,-1.0 ), + vec2(-0.7071,-0.7071), + vec2(-1.0 , 0.0 ), + vec2(-0.7071, 0.7071)); + float cloudSample = 0.0; + for (int i = 0; i < 8; i++) { + cloudSample += texture2D(noisetex, csPos + 0.005 * shadowoffsets[i]).b; + } + + shadowMult *= smoothstep1(pow2(min1(cloudSample * 0.2))); + #endif + #endif + + shadowMult *= max(NdotLM * shadowTime, 0.0); + } + #ifdef GBUFFERS_WATER + else { // Low Quality Water + shadowMult = vec3(pow2(lightmapY2) * max(NdotLM * shadowTime, 0.0)); + } + #endif + #endif + + // Blocklight + float lightmapXM; + if (!noSmoothLighting) { + float lightmapXMSteep = pow2(pow2(lightmap.x * lightmap.x)) * (3.8 - 0.6 * vsBrightness); + float lightmapXMCalm = (lightmap.x) * (1.8 + 0.6 * vsBrightness); + lightmapXM = pow(lightmapXMSteep + lightmapXMCalm, 2.25); + } else lightmapXM = pow2(lightmap.x) * lightmap.x * 10.0; + + #if BLOCKLIGHT_FLICKERING > 0 + vec2 flickerNoise = texture2D(noisetex, vec2(frameTimeCounter * 0.06)).rb; + lightmapXM *= mix(1.0, min1(max(flickerNoise.r, flickerNoise.g) * 1.7), pow2(BLOCKLIGHT_FLICKERING * 0.1)); + #endif + + vec3 blockLighting = lightmapXM * blocklightCol; + + #if COLORED_LIGHTING_INTERNAL > 0 + // Prepare + #if defined GBUFFERS_HAND + vec3 voxelPos = SceneToVoxel(vec3(0.0)); + #elif defined GBUFFERS_TEXTURED + vec3 voxelPos = SceneToVoxel(playerPos); + #else + vec3 voxelPos = SceneToVoxel(playerPos); + voxelPos = voxelPos + worldGeoNormal * 0.55; // should be close to 0.5 for ACL_CORNER_LEAK_FIX but 0.5 makes slabs flicker + #endif + + vec3 specialLighting = vec3(0.0); + vec4 lightVolume = vec4(0.0); + if (CheckInsideVoxelVolume(voxelPos)) { + vec3 voxelPosM = clamp01(voxelPos / vec3(voxelVolumeSize)); + lightVolume = GetLightVolume(voxelPosM); + lightVolume = sqrt(lightVolume); + specialLighting = lightVolume.rgb; + } + + // Add extra articial light for blocks that request it + lightmapXM = max(lightmapXM, mix(lightmapXM, 10.0, lightVolume.a)); + specialLighting *= 1.0 + 50.0 * lightVolume.a; + + // Color Balance + specialLighting = lightmapXM * 0.13 * DoLuminanceCorrection(specialLighting + blocklightCol * 0.05); + + // Add some extra non-contrasty detail + AddSpecialLightDetail(specialLighting, color.rgb, emission); + + #if COLORED_LIGHT_SATURATION != 100 + specialLighting = mix(blockLighting, specialLighting, COLORED_LIGHT_SATURATION * 0.01); + #endif + + // Serve with distance fade + vec3 absPlayerPosM = abs(playerPos); + #if COLORED_LIGHTING_INTERNAL <= 512 + absPlayerPosM.y *= 2.0; + #elif COLORED_LIGHTING_INTERNAL == 768 + absPlayerPosM.y *= 3.0; + #elif COLORED_LIGHTING_INTERNAL == 1024 + absPlayerPosM.y *= 4.0; + #endif + float maxPlayerPos = max(absPlayerPosM.x, max(absPlayerPosM.y, absPlayerPosM.z)); + float blocklightDecider = pow2(min1(maxPlayerPos / effectiveACLdistance * 2.0)); + //if (heldItemId != 40000 || heldItemId2 == 40000) // Hold spider eye to see vanilla lighting + blockLighting = mix(specialLighting, blockLighting, blocklightDecider); + //if (heldItemId2 == 40000 && heldItemId != 40000) blockLighting = lightVolume.rgb; // Hold spider eye to see light volume + #endif + + #if HELD_LIGHTING_MODE >= 1 + float heldLight = heldBlockLightValue; float heldLight2 = heldBlockLightValue2; + + #ifndef IS_IRIS + if (heldLight > 15.1) heldLight = 0.0; + if (heldLight2 > 15.1) heldLight2 = 0.0; + #endif + + #if COLORED_LIGHTING_INTERNAL == 0 + vec3 heldLightCol = blocklightCol; vec3 heldLightCol2 = blocklightCol; + + if (heldItemId == 45032) heldLight = 15; if (heldItemId2 == 45032) heldLight2 = 15; // Lava Bucket + #else + vec3 heldLightCol = GetSpecialBlocklightColor(heldItemId - 44000).rgb; + vec3 heldLightCol2 = GetSpecialBlocklightColor(heldItemId2 - 44000).rgb; + + if (heldItemId == 45032) { heldLightCol = lavaSpecialLightColor; heldLight = 15; } // Lava Bucket + if (heldItemId2 == 45032) { heldLightCol2 = lavaSpecialLightColor; heldLight2 = 15; } + + #if COLORED_LIGHT_SATURATION != 100 + heldLightCol = mix(blocklightCol, heldLightCol, COLORED_LIGHT_SATURATION * 0.01); + heldLightCol2 = mix(blocklightCol, heldLightCol2, COLORED_LIGHT_SATURATION * 0.01); + #endif + #endif + + vec3 playerPosLightM = playerPos + relativeEyePosition; + playerPosLightM.y += 0.7; + float lViewPosL = length(playerPosLightM) + 6.0; + #if HELD_LIGHTING_MODE == 1 + lViewPosL *= 1.5; + #endif + + heldLight = pow2(pow2(heldLight * 0.47 / lViewPosL)); + heldLight2 = pow2(pow2(heldLight2 * 0.47 / lViewPosL)); + + vec3 heldLighting = pow2(heldLight * DoLuminanceCorrection(heldLightCol + 0.001)) + + pow2(heldLight2 * DoLuminanceCorrection(heldLightCol2 + 0.001)); + + #if COLORED_LIGHTING_INTERNAL > 0 + AddSpecialLightDetail(heldLighting, color.rgb, emission); + #endif + + #ifdef GBUFFERS_HAND + blockLighting *= 0.5; + heldLighting *= 2.0; + #endif + #endif + + // Minimum Light + #if !defined END && CAVE_LIGHTING > 0 + vec3 minLighting = vec3(0.005625 + vsBrightness * 0.043); + #if CAVE_LIGHTING != 100 + #define CAVE_LIGHTING_M CAVE_LIGHTING * 0.01 + minLighting *= CAVE_LIGHTING_M; + #endif + minLighting *= vec3(0.45, 0.475, 0.6); + minLighting *= 1.0 - lightmapYM; + #else + vec3 minLighting = vec3(0.0); + #endif + + minLighting += nightVision * vec3(0.5, 0.5, 0.75); + + // Lighting Tweaks + #ifdef OVERWORLD + ambientMult = mix(lightmapYM, pow2(lightmapYM) * lightmapYM, rainFactor); + + #if SHADOW_QUALITY == -1 + float tweakFactor = 1.0 + 0.6 * (1.0 - pow2(pow2(pow2(noonFactor)))); + lightColorM /= tweakFactor; + ambientMult *= mix(tweakFactor, 1.0, 0.5 * NdotUmax0); + #endif + + #if AMBIENT_MULT != 100 + #define AMBIENT_MULT_M (AMBIENT_MULT - 100) * 0.006 + vec3 shadowMultP = shadowMult / (0.1 + 0.9 * sqrt2(max0(NdotLM))); + ambientMult *= 1.0 + pow2(pow2(max0(1.0 - dot(shadowMultP, shadowMultP)))) * AMBIENT_MULT_M * + (0.5 + 0.2 * sunFactor + 0.8 * noonFactor) * (1.0 - rainFactor * 0.5); + #endif + + if (isEyeInWater != 1) { + float lxFactor = (sunVisibility2 * 0.4 + (0.6 - 0.6 * pow2(invNoonFactor))) * (6.0 - 5.0 * rainFactor); + lxFactor *= lightmapY2 + lightmapY2 * 2.0 * pow2(shadowMult.r); + lxFactor = max0(lxFactor - emission * 1000000.0); + blockLighting *= pow(lightmapXM / 60.0 + 0.001, 0.09 * lxFactor); + + // Less light in the distance / more light closer to the camera during rain or night to simulate thicker fog + float rainLF = 0.1 * rainFactor; + float lightFogTweaks = 1.0 + max0(96.0 - lViewPos) * (0.002 * (1.0 - sunVisibility2) + 0.0104 * rainLF) - rainLF; + ambientMult *= lightFogTweaks; + lightColorM *= lightFogTweaks; + } + #endif + + #ifdef GBUFFERS_HAND + ambientMult *= 1.3; // To improve held map visibility + #endif + + // Directional Shading + float directionShade = 1.0; + #ifdef DIRECTIONAL_SHADING + if (!noDirectionalShading) { + float NdotE = dot(normalM, eastVec); + float absNdotE = abs(NdotE); + float absNdotE2 = pow2(absNdotE); + + #if !defined NETHER + float NdotUM = 0.75 + NdotU * 0.25; + #else + float NdotUM = 0.75 + abs(NdotU + 0.5) * 0.16666; + #endif + float NdotNM = 1.0 + 0.075 * absNdotN; + float NdotEM = 1.0 - 0.1 * absNdotE2; + directionShade = NdotUM * NdotEM * NdotNM; + + #ifdef OVERWORLD + lightColorM *= 1.0 + absNdotE2 * 0.75; + #elif defined NETHER + directionShade *= directionShade; + ambientColorM += lavaLightColor * pow2(absNdotN * 0.5 + max0(-NdotU)) * (0.7 + 0.35 * vsBrightness); + #endif + + #if defined CUSTOM_PBR || defined GENERATED_NORMALS + float cpbrAmbFactor = NdotN * NPdotU; + cpbrAmbFactor = 1.0 - 0.3 * cpbrAmbFactor; + ambientColorM *= cpbrAmbFactor; + minLighting *= cpbrAmbFactor; + #endif + + #if defined OVERWORLD && defined PERPENDICULAR_TWEAKS && defined SIDE_SHADOWING + // Fake bounced light + ambientColorM = mix(ambientColorM, lightColorM, (0.05 + 0.03 * subsurfaceMode) * absNdotN * lightmapY2); + + // Get a bit more natural looking lighting during noon + lightColorM *= 1.0 + max0(1.0 - subsurfaceMode) * pow(noonFactor, 20.0) * (pow2(absNdotN) - absNdotE2 * 0.1); + #endif + } + #endif + + #ifdef DREAM_TWEAKED_LIGHTING + ambientColorM = mix(ambientColorM, lightColorM, 0.25) * 1.5; + lightColorM = lightColorM * 0.3; + #endif + + // Scene Lighting Stuff + vec3 sceneLighting = lightColorM * shadowMult + ambientColorM * ambientMult; + float dotSceneLighting = dot(sceneLighting, sceneLighting); + + #if HELD_LIGHTING_MODE >= 1 + blockLighting = sqrt(pow2(blockLighting) + heldLighting); + #endif + + blockLighting *= XLIGHT_I; + + #ifdef LIGHT_COLOR_MULTS + sceneLighting *= lightColorMult; + #endif + #ifdef MOON_PHASE_INF_LIGHT + sceneLighting *= moonPhaseInfluence; + #endif + + // Vanilla Ambient Occlusion + float vanillaAO = 1.0; + #if VANILLAAO_I > 0 + vanillaAO = glColor.a; + + #if defined DO_PIXELATION_EFFECTS && defined PIXELATED_AO + vanillaAO = TexelSnap(vanillaAO, pixelationOffset); + #endif + + if (subsurfaceMode != 0) vanillaAO = mix(min1(vanillaAO * 1.15), 1.0, shadowMult.g); + else if (!noVanillaAO) { + #ifdef GBUFFERS_TERRAIN + vanillaAO = min1(vanillaAO + 0.08); + #ifdef OVERWORLD + vanillaAO = pow( + pow1_5(vanillaAO), + 1.0 + dotSceneLighting * 0.02 + NdotUmax0 * (0.15 + 0.25 * pow2(noonFactor * pow2(lightmapY2))) + ); + #elif defined NETHER + vanillaAO = pow( + pow1_5(vanillaAO), + 1.0 + NdotUmax0 * 0.5 + ); + #else + vanillaAO = pow( + vanillaAO, + 0.75 + NdotUmax0 * 0.25 + ); + #endif + #endif + vanillaAO = vanillaAO * 0.9 + 0.1; + + #if VANILLAAO_I != 100 + #define VANILLAAO_IM VANILLAAO_I * 0.01 + vanillaAO = pow(vanillaAO, VANILLAAO_IM); + #endif + } + #endif + + // Light Highlight + vec3 lightHighlight = vec3(0.0); + #ifdef LIGHT_HIGHLIGHT + float specularHighlight = GGX(normalM, nViewPos, lightVec, NdotLmax0, smoothnessG); + + specularHighlight *= highlightMult; + + lightHighlight = isEyeInWater != 1 ? shadowMult : pow(shadowMult, vec3(0.25)) * 0.35; + lightHighlight *= (subsurfaceHighlight + specularHighlight) * highlightColor; + + #ifdef LIGHT_COLOR_MULTS + lightHighlight *= lightColorMult; + #endif + #ifdef MOON_PHASE_INF_REFLECTION + lightHighlight *= pow2(moonPhaseInfluence); + #endif + #endif + + // Mix Colors + vec3 finalDiffuse = pow2(directionShade * vanillaAO) * (blockLighting + pow2(sceneLighting) + minLighting) + pow2(emission); + finalDiffuse = sqrt(max(finalDiffuse, vec3(0.0))); // sqrt() for a bit more realistic light mix, max() to prevent NaNs + + // Apply Lighting + color.rgb *= finalDiffuse; + color.rgb += lightHighlight; + color.rgb *= pow2(1.0 - darknessLightFactor); +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/lighting/shadowSampling.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/lighting/shadowSampling.glsl new file mode 100644 index 0000000..e0a7ffc --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/lighting/shadowSampling.glsl @@ -0,0 +1,118 @@ +vec3 GetShadowPos(vec3 playerPos) { + vec3 shadowPos = PlayerToShadow(playerPos); + float distb = sqrt(shadowPos.x * shadowPos.x + shadowPos.y * shadowPos.y); + float distortFactor = distb * shadowMapBias + (1.0 - shadowMapBias); + shadowPos.xy /= distortFactor; + shadowPos.z *= 0.2; + return shadowPos * 0.5 + 0.5; +} + +vec3 SampleShadow(vec3 shadowPos, float colorMult, float colorPow) { + float shadow0 = shadow2D(shadowtex0, vec3(shadowPos.st, shadowPos.z)).x; + + vec3 shadowcol = vec3(0.0); + if (shadow0 < 1.0) { + float shadow1 = shadow2D(shadowtex1, vec3(shadowPos.st, shadowPos.z)).x; + if (shadow1 > 0.9999) { + shadowcol = texture2D(shadowcolor0, shadowPos.st).rgb * shadow1; + + shadowcol *= colorMult; + shadowcol = pow(shadowcol, vec3(colorPow)); + } + } + + return shadowcol * (1.0 - shadow0) + shadow0; +} + +float InterleavedGradientNoiseForShadows() { + float n = 52.9829189 * fract(0.06711056 * gl_FragCoord.x + 0.00583715 * gl_FragCoord.y); + #if !defined GBUFFERS_ENTITIES && !defined GBUFFERS_HAND && !defined GBUFFERS_TEXTURED && defined TAA + return fract(n + goldenRatio * mod(float(frameCounter), 3600.0)); + #else + return fract(n); + #endif +} + +vec2 offsetDist(float x, int s) { + float n = fract(x * 2.427) * 3.1415; + return vec2(cos(n), sin(n)) * 1.4 * x / s; +} + +vec3 SampleTAAFilteredShadow(vec3 shadowPos, float lViewPos, float offset, bool leaves, float colorMult, float colorPow) { + vec3 shadow = vec3(0.0); + float gradientNoise = InterleavedGradientNoiseForShadows(); + + #if SHADOW_QUALITY == 0 + int shadowSamples = 0; // We don't use SampleTAAFilteredShadow on Shadow Quality 0 + #elif SHADOW_QUALITY == 1 + int shadowSamples = 1; + #elif SHADOW_QUALITY == 2 || SHADOW_QUALITY == 3 + int shadowSamples = 2; + #elif SHADOW_QUALITY == 4 + int shadowSamples = 2; + if (lViewPos < 10.0) shadowSamples = 6; + #elif SHADOW_QUALITY == 5 + int shadowSamples = 6; + if (lViewPos < 10.0) shadowSamples = 12; + #endif + + #if !defined GBUFFERS_ENTITIES && !defined GBUFFERS_HAND && !defined GBUFFERS_TEXTURED + offset *= 1.3875; + #else + shadowSamples *= 2; + offset *= 0.69375; + #endif + + float shadowPosZM = shadowPos.z; + for (int i = 0; i < shadowSamples; i++) { + vec2 offset2 = offsetDist(gradientNoise + i, shadowSamples) * offset; + if (leaves) shadowPosZM = shadowPos.z - 0.12 * offset * (gradientNoise + i) / shadowSamples; + shadow += SampleShadow(vec3(shadowPos.st + offset2, shadowPosZM), colorMult, colorPow); + shadow += SampleShadow(vec3(shadowPos.st - offset2, shadowPosZM), colorMult, colorPow); + } + + shadow /= shadowSamples * 2.0; + + return shadow; +} + +vec2 shadowOffsets[4] = vec2[4]( + vec2( 1.0, 0.0), + vec2( 0.0, 1.0), + vec2(-1.0, 0.0), + vec2( 0.0,-1.0)); + +vec3 SampleBasicFilteredShadow(vec3 shadowPos, float offset) { + float shadow = 0.0; + + for (int i = 0; i < 4; i++) { + shadow += shadow2D(shadowtex0, vec3(offset * shadowOffsets[i] + shadowPos.st, shadowPos.z)).x; + } + + return vec3(shadow * 0.25); +} + +vec3 GetShadow(vec3 shadowPos, float lViewPos, float lightmapY, float offset, bool leaves) { + #if SHADOW_QUALITY > 0 + #if ENTITY_SHADOWS_DEFINE == -1 && defined GBUFFERS_BLOCK + offset *= 4.0; + #else + #ifdef OVERWORLD + offset *= 1.0 + rainFactor2 * 2.0; + #else + offset *= 3.0; + #endif + #endif + #endif + + float colorMult = 1.2 + 3.8 * lightmapY; // Natural strength is 5.0 + float colorPow = 1.1 - 0.6 * pow2(pow2(pow2(lightmapY))); + + #if SHADOW_QUALITY >= 1 + vec3 shadow = SampleTAAFilteredShadow(shadowPos, lViewPos, offset, leaves, colorMult, colorPow); + #else + vec3 shadow = SampleBasicFilteredShadow(shadowPos, offset); + #endif + + return shadow; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/blockEntityMaterials.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/blockEntityMaterials.glsl new file mode 100644 index 0000000..854ce2d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/blockEntityMaterials.glsl @@ -0,0 +1,107 @@ +if (blockEntityId < 5028) { + if (blockEntityId < 5012) { + if (blockEntityId < 5004) { + if (blockEntityId == 5000) { // + + } else { // blockEntityId < 5000 + + } + } else { + if (blockEntityId == 5004) { // Signs + noSmoothLighting = true; + + if (glColor.r + glColor.g + glColor.b <= 2.99 || lmCoord.x > 0.999) { // Sign Text + #include "/lib/materials/specificMaterials/others/signText.glsl" + } + + #ifdef COATED_TEXTURES + noiseFactor = 0.66; + #endif + } else /*if (blockEntityId == 5008)*/ { // Chest + noSmoothLighting = true; + + smoothnessG = pow2(color.g); + + #ifdef COATED_TEXTURES + noiseFactor = 0.66; + #endif + } + } + } else { + if (blockEntityId < 5020) { + if (blockEntityId == 5012) { // Ender Chest + noSmoothLighting = true; + + float factor = min(pow2(color.g), 0.25); + smoothnessG = factor * 2.0; + + if (color.g > color.r || color.b > color.g) + emission = pow2(factor) * 20.0; + emission += 0.35; + + #ifdef COATED_TEXTURES + noiseFactor = 0.66; + #endif + } else /*if (blockEntityId == 5016)*/ { // Shulker Box+, Banner+, Head+, Bed+ + noSmoothLighting = true; + #ifdef COATED_TEXTURES + noiseFactor = 0.2; + #endif + } + } else { + if (blockEntityId == 5020) { // Conduit + noSmoothLighting = true; + lmCoordM.x = 0.9; + + if (color.b > color.r) { // Conduit:Wind, Conduit:Blue Pixels of The Eye + emission = color.r * 16.0; + } else if (color.r > color.b * 2.5) { // Conduit:Red Pixels of The Eye + emission = 20.0; + color.rgb *= vec3(1.0, 0.25, 0.1); + } + } else /*if (blockEntityId == 5024)*/ { // End Portal, End Gateway + #ifdef SPECIAL_PORTAL_EFFECTS + #include "/lib/materials/specificMaterials/others/endPortalEffect.glsl" + #endif + } + } + } +} else { + if (blockEntityId < 5044) { + if (blockEntityId < 5036) { + if (blockEntityId == 5028) { // Bell + if (color.r + color.g > color.b + 0.5) { // Bell:Golden Part + #include "/lib/materials/specificMaterials/terrain/goldBlock.glsl" + } else { + #include "/lib/materials/specificMaterials/terrain/stone.glsl" + } + } else /*if (blockEntityId == 5032)*/ { // + + } + } else { + if (blockEntityId == 5036) { // + + } else /*if (blockEntityId == 5040)*/ { // + + } + } + } else { + if (blockEntityId < 5052) { + if (blockEntityId == 5044) { // + + } else /*if (blockEntityId == 5048)*/ { // + + } + } else { + if (blockEntityId == 5052) { // + + } else if (blockEntityId == 10548) { // Enchanting Table:Book + smoothnessG = pow2(color.g) * 0.35; + + if (color.b < 0.0001 && color.r > color.g) { + emission = color.g * 4.0; + } + } + } + } +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/customMaterials.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/customMaterials.glsl new file mode 100644 index 0000000..2552a6f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/customMaterials.glsl @@ -0,0 +1,150 @@ +#ifdef POM + #include "/lib/materials/materialMethods/pomEffects.glsl" +#endif + +#include "/lib/materials/materialMethods/customEmission.glsl" + +void GetCustomMaterials(inout vec4 color, inout vec3 normalM, inout vec2 lmCoordM, inout float NdotU, inout vec3 shadowMult, inout float smoothnessG, inout float smoothnessD, inout float highlightMult, inout float emission, inout float materialMask, vec3 viewPos, float lViewPos) { + vec2 texCoordM = texCoord; + + #ifdef POM + float parallaxFade, parallaxTexDepth; + vec2 parallaxLocalCoord; + vec3 parallaxTraceCoordDepth; + vec4 normalMap; + bool skipPom = false; + + if (!skipPom) { + texCoordM = vTexCoord.xy * vTexCoordAM.zw + vTexCoordAM.xy; + + parallaxFade = pow2(lViewPos / POM_DISTANCE); + #ifdef GBUFFERS_ENTITIES + if (entityId == 50008) parallaxFade = 1.1; // Item Frame, Glow Item Frame + #endif + #ifdef GBUFFERS_BLOCK + if (blockEntityId == 5004) parallaxFade = 1.1; // Signs + #endif + #ifdef GBUFFERS_HAND + if (heldItemId == 40004 || heldItemId2 == 40004) parallaxFade = 1.1; // Filled Map + #endif + + parallaxTraceCoordDepth = vec3(texCoordM, 1.0); + parallaxLocalCoord = vTexCoord.st; + + normalMap = ReadNormal(vTexCoord.st); + parallaxFade += pow(normalMap.a, 64.0); + + if (parallaxFade < 1.0) { + float dither = Bayer64(gl_FragCoord.xy); + #ifdef TAA + dither = fract(dither + goldenRatio * mod(float(frameCounter), 3600.0)); + #endif + + parallaxLocalCoord = GetParallaxCoord(parallaxFade, dither, texCoordM, parallaxTexDepth, parallaxTraceCoordDepth); + + normalMap = textureGrad(normals, texCoordM, dcdx, dcdy); + color = textureGrad(tex, texCoordM, dcdx, dcdy); + #if !defined GBUFFERS_ENTITIES && !defined GBUFFERS_BLOCK + color.rgb *= glColor.rgb; + #else + color *= glColor; + #endif + + shadowMult *= GetParallaxShadow(parallaxFade, dither, normalMap.a, parallaxLocalCoord, lightVec, tbnMatrix); + } + } + #endif + + // Normal Map + #if NORMAL_MAP_STRENGTH != 0 + #ifdef POM + else normalMap = texture2D(normals, texCoordM); + #else + vec4 normalMap = texture2D(normals, texCoordM); + #endif + + normalM = normalMap.xyz; + normalM += vec3(0.5, 0.5, 0.0); + normalM = pow(normalM, vec3(NORMAL_MAP_STRENGTH * 0.007)); // 70% strength by default + normalM -= vec3(0.5, 0.5, 0.0); + normalM = normalM * 2.0 - 1.0; + + #if RP_MODE == 3 // labPBR + if (normalM.x + normalM.y > -1.999) { + if (length(normalM.xy) > 1.0) normalM.xy = normalize(normalM.xy); + normalM.z = sqrt(1.0 - dot(normalM.xy, normalM.xy)); + normalM.xyz = normalize(clamp(normalM.xyz, vec3(-1.0), vec3(1.0))); + } else normalM = vec3(0.0, 0.0, 1.0); + #endif + + #if defined POM && POM_QUALITY >= 128 && POM_LIGHTING_MODE == 2 + if (!skipPom) { + float slopeThreshold = max(1.0 / POM_QUALITY, 1.0/255.0); + if (parallaxTexDepth - parallaxTraceCoordDepth.z > slopeThreshold) { + vec3 slopeNormal = GetParallaxSlopeNormal(parallaxLocalCoord, parallaxTraceCoordDepth.z, viewVector); + normalM = mix(normalM, slopeNormal, 0.5 * pow2(max0(1.0 - parallaxFade * 2.0))); + } + } + #endif + + normalM = clamp(normalize(normalM * tbnMatrix), vec3(-1.0), vec3(1.0)); + + NdotU = dot(normalM, upVec); + NdotUmax0 = max0(NdotU); + #endif + + #if DIRECTIONAL_BLOCKLIGHT > 0 + mat3 lightmapTBN = mat3(normalize(dFdx(viewPos)), normalize(dFdy(viewPos)), vec3(0.0)); + lightmapTBN[2] = cross(lightmapTBN[0], lightmapTBN[1]); + + float lmCoordXDir = lmCoordM.x; + vec2 deriv = vec2(dFdx(lmCoordXDir), dFdy(lmCoordXDir)) * 256.0; + vec3 dir = normalize(vec3(deriv.x * lightmapTBN[0] + + 0.0005 * lightmapTBN[2] + + deriv.y * lightmapTBN[1])); + + float pwr = clamp(dot(normalM, dir), -1.0, 1.0); + float absPwr = abs(pwr); + if (absPwr > 0.0) pwr = pow(absPwr, 9.0 / DIRECTIONAL_BLOCKLIGHT) * sign(pwr) * lmCoordXDir; + if (length(deriv) > 0.001) lmCoordXDir = pow(max(lmCoordXDir, 0.00001), 1.0 - pwr); + + lmCoordM.x = mix(lmCoordM.x, lmCoordXDir, 0.01 * max0(100.0 - pow2(lViewPos))); + #endif + + // Specular Map + vec4 specularMap = texture2D(specular, texCoordM); + + float smoothnessM = pow2(specularMap.r); + smoothnessG = smoothnessM; + smoothnessD = smoothnessM; + highlightMult = 1.0 + 2.5 * specularMap.r; + + #if RP_MODE == 3 // labPBR + highlightMult *= 0.5 + 0.5 * specularMap.g; + #endif + + emission = GetCustomEmission(specularMap, texCoordM); + + #ifndef GBUFFERS_WATER + #if defined GBUFFERS_ENTITIES || defined GBUFFERS_HAND + if ( + materialMask > OSIEBCA * 240.1 + && specularMap.g < 0.01 + ) return; + #endif + + #if RP_MODE == 2 // seuspbr + materialMask = specularMap.g * OSIEBCA * 240.0; + + color.rgb *= 1.0 - 0.25 * specularMap.g; + #elif RP_MODE == 3 // labPBR + if (specularMap.g < OSIEBCA * 229.1) { + materialMask = specularMap.g * OSIEBCA * 214.0; + } else { + materialMask = specularMap.g - OSIEBCA * 15.0; + + color.rgb *= 0.75; + } + #endif + #endif +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/deferredMaterials.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/deferredMaterials.glsl new file mode 100644 index 0000000..e3b64c5 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/deferredMaterials.glsl @@ -0,0 +1,71 @@ +if (abs(materialMaskInt - 149.5) < 50.0) { // Entity Reflection Handling (see common.glsl for details) + materialMaskInt -= 100; + entityOrHand = true; +} + +if (materialMaskInt != 0) { + if (materialMaskInt < 9) { + if (materialMaskInt < 5) { + if (materialMaskInt < 3) { + if (materialMaskInt == 1) { // Intense Fresnel + intenseFresnel = 1.0; + } else /*if (materialMaskInt == 2)*/ { // Copper Fresnel + intenseFresnel = 1.0; + reflectColor = mix(vec3(0.5, 0.75, 0.5), vec3(1.0, 0.45, 0.3), sqrt1(smoothnessD)); + } + } else { + if (materialMaskInt == 3) { // Gold Fresnel + intenseFresnel = 1.0; + reflectColor = vec3(1.0, 0.8, 0.5); + } else /*if (materialMaskInt == 4)*/ { // End Portal + + } + } + } else { + if (materialMaskInt < 7) { + if (materialMaskInt == 5) { // Redstone Fresnel + intenseFresnel = 1.0; + reflectColor = vec3(1.0, 0.3, 0.2); + } else /*if (materialMaskInt == 6)*/ { // + + } + } else { + if (materialMaskInt == 7) { // + + } else /*if (materialMaskInt == 8)*/ { // + + } + } + } + } else { + if (materialMaskInt < 13) { + if (materialMaskInt < 11) { + if (materialMaskInt == 9) { // + + } else /*if (materialMaskInt == 10)*/ { // + + } + } else { + if (materialMaskInt == 11) { // + + } else /*if (materialMaskInt == 12)*/ { // + + } + } + } else { + if (materialMaskInt < 15) { + if (materialMaskInt == 13) { // + + } else /*if (materialMaskInt == 14)*/ { // + + } + } else { + if (materialMaskInt == 15) { // + + } else { // materialMaskInt >= 16 && <= 240 + + } + } + } + } +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/entityMaterials.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/entityMaterials.glsl new file mode 100644 index 0000000..f10bd59 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/entityMaterials.glsl @@ -0,0 +1,214 @@ +if (entityId < 50064) { + if (entityId < 50032) { + if (entityId < 50016) { + if (entityId < 50008) { + if (entityId == 50000) { // End Crystal + lmCoordM.x *= 0.7; + + if (color.g * 1.2 < color.r) { + emission = 12.0 * color.g; + color.r *= 1.1; + } + } else if (entityId == 50004) { // Lightning Bolt + #include "/lib/materials/specificMaterials/entities/lightningBolt.glsl" + } + } else { + if (entityId == 50008) { // Item Frame, Glow Item Frame + noSmoothLighting = true; + } else /*if (entityId == 50012)*/ { // Iron Golem + #include "/lib/materials/specificMaterials/terrain/ironBlock.glsl" + + smoothnessD *= 0.4; + } + } + } else { + if (entityId < 50024) { + if (entityId == 50016) { // Player + if (entityColor.a < 0.001) { + #ifdef COATED_TEXTURES + noiseFactor = 0.5; + #endif + + if (CheckForColor(texelFetch(tex, ivec2(0, 0), 0).rgb, vec3(23, 46, 92))) { + for (int i = 63; i >= 56; i--) { + vec3 dif = color.rgb - texelFetch(tex, ivec2(i, 0), 0).rgb; + if (dif == clamp(dif, vec3(-0.001), vec3(0.001))) { + emission = 2.0 * texelFetch(tex, ivec2(i, 1), 0).r; + } + } + } + } + } else /*if (entityId == 50020)*/ { // Blaze + lmCoordM = vec2(0.9, 0.0); + emission = min(color.r, 0.7) * 1.4; + + float dotColor = dot(color.rgb, color.rgb); + if (abs(dotColor - 1.5) > 1.4) { + emission = 5.0; + } + } + } else { + if (entityId == 50024) { // Creeper + emission = max0(color.b - color.g - color.r) * 10.0; + } else /*if (entityId == 50028)*/ { // Drowned + if (atlasSize.x < 900) { + if (CheckForColor(color.rgb, vec3(143, 241, 215)) || + CheckForColor(color.rgb, vec3( 49, 173, 183)) || + CheckForColor(color.rgb, vec3(101, 224, 221))) emission = 2.5; + } + } + } + } + } else { + if (entityId < 50048) { + if (entityId < 50040) { + if (entityId == 50032) { // Guardian + vec3 absDif = abs(vec3(color.r - color.g, color.g - color.b, color.r - color.b)); + float maxDif = max(absDif.r, max(absDif.g, absDif.b)); + if (maxDif < 0.1 && color.b > 0.5 && color.b < 0.88) { + emission = pow2(pow1_5(color.b)) * 5.0; + color.rgb *= color.rgb; + } + } else /*if (entityId == 50036)*/ { // Elder Guardian + if (CheckForColor(color.rgb, vec3(203, 177, 165)) || + CheckForColor(color.rgb, vec3(214, 155, 126))) { + emission = pow2(pow1_5(color.b)) * 10.0; + color.r *= 1.2; + } + } + } else { + if (entityId == 50040) { // Endermite + if (CheckForColor(color.rgb, vec3(87, 23, 50))) { + emission = 8.0; + color.rgb *= color.rgb; + } + } else /*if (entityId == 50044)*/ { // Ghast + if (entityColor.a < 0.001) + emission = max0(color.r - color.g - color.b) * 6.0; + } + } + } else { + if (entityId < 50056) { + if (entityId == 50048) { // Glow Squid + lmCoordM.x = 0.0; + float dotColor = dot(color.rgb, color.rgb); + emission = pow2(pow2(min(dotColor * 0.65, 1.5))) + 0.45; + } else /*if (entityId == 50052)*/ { // Magma Cube + emission = color.g * 6.0; + } + } else { + if (entityId == 50056) { // Stray + if (CheckForColor(color.rgb, vec3(230, 242, 246)) && texCoord.y > 0.35) + emission = 2.5; + } else /*if (entityId == 50060)*/ { // Vex + lmCoordM = vec2(0.0); + emission = pow2(pow2(color.r)) * 3.5 + 0.5; + color.a *= color.a; + } + } + } + } +} else { + if (entityId < 50096) { + if (entityId < 50080) { + if (entityId < 50072) { + if (entityId == 50064) { // Witch + emission = 2.0 * color.g * float(color.g * 1.5 > color.b + color.r); + } else /*if (entityId == 50068)*/ { // Wither, Wither Skull + lmCoordM.x = 0.9; + emission = 3.0 * float(dot(color.rgb, color.rgb) > 1.0); + } + } else { + if (entityId == 50072) { // Experience Orb + emission = 7.5; + + color.rgb *= color.rgb; + } else /*if (entityId == 50076)*/ { // Boats + playerPos.y += 0.38; // consistentBOAT2176: to avoid water shadow and the black inner shadow bug + } + } + } else { + if (entityId < 50088) { + if (entityId == 50080) { // Allay + if (atlasSize.x < 900) { + lmCoordM = vec2(0.0); + emission = float(color.r > 0.9 && color.b > 0.9) * 5.0 + color.g; + } else { + lmCoordM.x = 0.8; + } + } else /*if (entityId == 50084)*/ { // Slime, Chicken + //only code is in Vertex Shader for now + } + } else { + if (entityId == 50088) { // Entity Flame (Iris Feature) + emission = 1.3; + } else /*if (entityId == 50092)*/ { // Trident Entity + #ifdef IS_IRIS + // Only on Iris, because otherwise it would be inconsistent with the Trident item + #include "/lib/materials/specificMaterials/others/trident.glsl" + #endif + } + } + } + } else { + if (entityId < 50112) { + if (entityId < 50104) { + if (entityId == 50096) { // Minecart++ + if (atlasSize.x < 900 && color.r * color.g * color.b + color.b > 0.3) { + #include "/lib/materials/specificMaterials/terrain/ironBlock.glsl" + + smoothnessD *= 0.6; + } + } else /*if (entityId == 50100)*/ { // Bogged + if (CheckForColor(color.rgb, vec3(239, 254, 194))) + emission = 2.5; + } + } else { + if (entityId == 50104) { // Piglin++, Hoglin+ + if (atlasSize.x < 900) { + if (CheckForColor(color.rgb, vec3(255)) || CheckForColor(color.rgb, vec3(255, 242, 246))) { + vec2 tSize = textureSize(tex, 0); + vec4 checkRightmostColor = texelFetch(tex, ivec2(texCoord * tSize) + ivec2(1, 0), 0); + if ( + CheckForColor(checkRightmostColor.rgb, vec3(201, 130, 101)) || + CheckForColor(checkRightmostColor.rgb, vec3(241, 158, 152)) || + CheckForColor(checkRightmostColor.rgb, vec3(223, 127, 119)) || + CheckForColor(checkRightmostColor.rgb, vec3(241, 158, 152)) || + CheckForColor(checkRightmostColor.rgb, vec3(165, 99, 80)) || + CheckForColor(checkRightmostColor.rgb, vec3(213, 149, 122)) || + CheckForColor(checkRightmostColor.rgb, vec3(255)) + ) { + emission = 1.0; + } + } + } + } else /*if (entityId == 50108)*/ { // Creaking + if (color.r > 0.7 && color.r > color.g * 1.2 && color.g > color.b * 2.0) { // Eyes + lmCoordM.x = 0.5; + emission = 5.0 * color.g; + color.rgb *= color.rgb; + } + } + } + } else { + if (entityId < 50120) { + if (entityId == 50112) { // Name Tag + noDirectionalShading = true; + color.rgb *= 1.5; + if (color.a < 0.5) { + color.a = 0.12; + color.rgb *= 5.0; + } + } else /*if (entityId == 50116)*/ { // + + } + } else { + if (entityId == 50120) { // + + } else /*if (entityId == 50124)*/ { // + + } + } + } + } +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/irisMaterials.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/irisMaterials.glsl new file mode 100644 index 0000000..5eabd4c --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/irisMaterials.glsl @@ -0,0 +1,226 @@ +int mat = currentRenderedItemId; + +#ifdef GBUFFERS_HAND + float lViewPos = 0.0; +#endif + +int subsurfaceMode; +bool centerShadowBias; +float noPuddles; + +if (currentRenderedItemId < 45000) { + #include "/lib/materials/materialHandling/terrainMaterials.glsl" +} else + +if (currentRenderedItemId < 45064) { + if (currentRenderedItemId < 45032) { + if (currentRenderedItemId < 45016) { + if (currentRenderedItemId < 45008) { + if (currentRenderedItemId == 45000) { // Armor Trims + smoothnessG = 0.5; + highlightMult = 2.0; + smoothnessD = 0.5; + + #ifdef GLOWING_ARMOR_TRIM + emission = 1.0; + #endif + } else if (currentRenderedItemId == 45004) { // Wooden Tools, Bow, Fishing Rod + #include "/lib/materials/specificMaterials/planks/sprucePlanks.glsl" + smoothnessG = min(smoothnessG, 0.4); + smoothnessD = smoothnessG; + } + } else { + if (currentRenderedItemId == 45008) { // Stone Tools + if (CheckForStick(color.rgb)) { + #include "/lib/materials/specificMaterials/planks/sprucePlanks.glsl" + } else { + #include "/lib/materials/specificMaterials/terrain/stone.glsl" + } + } else /*if (currentRenderedItemId == 45012)*/ { // Iron Tools, Iron Armor, Iron Ingot, Iron Nugget, Iron Horse Armor, Flint and Steel, Flint, Spyglass, Shears, Chainmail Armor + if (CheckForStick(color.rgb)) { + #include "/lib/materials/specificMaterials/planks/sprucePlanks.glsl" + } else { + #include "/lib/materials/specificMaterials/terrain/ironBlock.glsl" + } + } + } + } else { + if (currentRenderedItemId < 45024) { + if (currentRenderedItemId == 45016) { // Golden Tools, Golden Armor, Gold Ingot, Gold Nugget, Golden Apple, Enchanted Golden Apple, Golden Carrot, Golden Horse Armor, Copper Ingot + if (CheckForStick(color.rgb)) { + #include "/lib/materials/specificMaterials/planks/sprucePlanks.glsl" + } else { + #include "/lib/materials/specificMaterials/terrain/goldBlock.glsl" + } + } else /*if (currentRenderedItemId == 45020)*/ { // Diamond Tools, Diamond Armor, Diamond, Diamond Horse Armor, Emerald + if (CheckForStick(color.rgb)) { + #include "/lib/materials/specificMaterials/planks/sprucePlanks.glsl" + } else { + #include "/lib/materials/specificMaterials/terrain/diamondBlock.glsl" + } + } + } else { + if (currentRenderedItemId == 45024) { // Netherite Tools, Netherite Armor, Netherite Ingot + materialMask = OSIEBCA; // Intense Fresnel + smoothnessG = color.r * 1.5; + smoothnessG = min1(smoothnessG); + highlightMult = smoothnessG * 2.0; + smoothnessD = smoothnessG * smoothnessG * 0.5; + + #ifdef COATED_TEXTURES + noiseFactor = 0.33; + #endif + } else /*if (currentRenderedItemId == 45028)*/ { // Trident Item + #include "/lib/materials/specificMaterials/others/trident.glsl" + } + } + } + } else { + if (currentRenderedItemId < 45048) { + if (currentRenderedItemId < 45040) { + if (currentRenderedItemId == 45032) { // Lava Bucket + if (color.r + color.g > color.b * 2.0) { + emission = color.r + color.g - color.b * 1.5; + emission *= 1.8; + color.rg += color.b * vec2(0.4, 0.15); + color.b *= 0.8; + } else { + #include "/lib/materials/specificMaterials/terrain/ironBlock.glsl" + } + } else /*if (currentRenderedItemId == 45036)*/ { // Bucket++ + if (GetMaxColorDif(color.rgb) < 0.01) { + #include "/lib/materials/specificMaterials/terrain/ironBlock.glsl" + } else { + float factor = color.b; + smoothnessG = factor; + highlightMult = factor * 2.0; + smoothnessD = factor; + } + } + } else { + if (currentRenderedItemId == 45040) { // Blaze Rod, Blaze Powder + noSmoothLighting = false; + lmCoordM.x = 0.85; + emission = color.g; + color.rgb = sqrt1(color.rgb); + } else /*if (currentRenderedItemId == 45044)*/ { // Bottle o' Enchanting, Glow Inc Sac + emission = color.b * 2.0; + } + } + } else { + if (currentRenderedItemId < 45056) { + if (currentRenderedItemId == 45048) { // Fire Charge + emission = max0(color.r + color.g - color.b * 0.5); + } else /*if (currentRenderedItemId == 45052)*/ { // Chorus Fruit + emission = max0(color.b * 2.0 - color.r) * 1.5; + } + } else { + if (currentRenderedItemId == 45056) { // Amethyst Shard + materialMask = OSIEBCA; // Intense Fresnel + float factor = pow2(color.r); + smoothnessG = 0.8 - factor * 0.3; + highlightMult = factor * 3.0; + smoothnessD = factor; + } else /*if (currentRenderedItemId == 45060)*/ { // Shield + float factor = min(color.r * color.g * color.b * 4.0, 0.7) * 0.7; + smoothnessG = factor; + highlightMult = factor * 3.0; + smoothnessD = factor; + } + } + } + } +} else { + if (currentRenderedItemId < 45096) { + if (currentRenderedItemId < 45080) { + if (currentRenderedItemId < 45072) { + if (currentRenderedItemId == 45064) { // Turtle Shell + float factor = color.g * 0.7; + smoothnessG = factor; + highlightMult = factor * 3.0; + smoothnessD = factor; + } else /*if (currentRenderedItemId == 45068)*/ { // Ender Pearl + smoothnessG = 1.0; + highlightMult = 2.0; + smoothnessD = 1.0; + } + } else { + if (currentRenderedItemId == 45072) { // Eye of Ender + smoothnessG = 1.0; + highlightMult = 2.0; + smoothnessD = 1.0; + emission = max0(color.g - color.b * 0.25); + color.rgb = pow(color.rgb, vec3(1.0 - 0.75 * emission)); + } else /*if (currentRenderedItemId == 45076)*/ { // Clock + if ( + CheckForColor(color.rgb, vec3(255, 255, 0)) || + CheckForColor(color.rgb, vec3(204, 204, 0)) || + CheckForColor(color.rgb, vec3(73, 104, 216)) || + CheckForColor(color.rgb, vec3(58, 83, 172)) || + CheckForColor(color.rgb, vec3(108, 108, 137)) || + CheckForColor(color.rgb, vec3(86, 86, 109)) + ) { + emission = 1.0; + color.rgb += vec3(0.1); + } + + #include "/lib/materials/specificMaterials/terrain/goldBlock.glsl" + } + } + } else { + if (currentRenderedItemId < 45088) { + if (currentRenderedItemId == 45080) { // Compass + if (color.r - 0.1 > color.b + color.g) { + emission = color.r * 1.5; + } + + #include "/lib/materials/specificMaterials/terrain/ironBlock.glsl" + } else /*if (currentRenderedItemId == 45084)*/ { // Echo Shard, Recovery Compass, Music Disc 5 + emission = max0(color.b + color.g - color.r * 2.0); + + #include "/lib/materials/specificMaterials/terrain/ironBlock.glsl" + } + } else { + if (currentRenderedItemId == 45088) { // Nether Star + emission = pow2(color.r + color.g) * 0.5; + } else /*if (currentRenderedItemId == 45092)*/ { // End Crystal + if (color.g < color.r) { + emission = 3.0; + color.r *= 1.1; + } + } + } + } + } else { + if (currentRenderedItemId < 45112) { + if (currentRenderedItemId < 45104) { + if (currentRenderedItemId == 45096) { // Glow Berries + // iris needs to add support + } else /*if (currentRenderedItemId == 45100)*/ { // Glowstone Dust + emission = dot(color.rgb, color.rgb) * 0.5 + 1.0; + } + } else { + if (currentRenderedItemId == 45104) { // Prismarine Crystals + emission = pow1_5(color.r) * 2.5 + 0.2; + } else /*if (currentRenderedItemId == 45108)*/ { // Totem of Undying + #include "/lib/materials/specificMaterials/terrain/goldBlock.glsl" + } + } + } else { + if (currentRenderedItemId < 45120) { + if (currentRenderedItemId == 45112) { // Trial Key, Ominous Trial Key + emission = abs(color.r - color.b) * 3.0; + color.rgb = pow(color.rgb, vec3(1.0 + 0.5 * sqrt(emission))); + } else /*if (currentRenderedItemId == 45116)*/ { // + + } + } else { + if (currentRenderedItemId == 45120) { // + + } else /*if (currentRenderedItemId == 45124)*/ { // + + } + } + } + } +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/terrainMaterials.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/terrainMaterials.glsl new file mode 100644 index 0000000..259586c --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/terrainMaterials.glsl @@ -0,0 +1,2650 @@ +if (mat >= 10000) { +if (mat < 11024) { + if (mat < 10512) { + if (mat < 10256) { + if (mat < 10128) { + if (mat < 10064) { + if (mat < 10032) { + if (mat < 10016) { + if (mat < 10008) { + if (mat < 10004) { // No directional shading + noDirectionalShading = true; + } + else /*if (mat < 10008)*/ { // Grounded Waving Foliage + subsurfaceMode = 1, noSmoothLighting = true, noDirectionalShading = true; + + #ifdef GBUFFERS_TERRAIN + DoFoliageColorTweaks(color.rgb, shadowMult, snowMinNdotU, viewPos, nViewPos, lViewPos, dither); + + #ifdef COATED_TEXTURES + doTileRandomisation = false; + #endif + #endif + + #if SHADOW_QUALITY == -1 + shadowMult *= 1.0 - 0.3 * (signMidCoordPos.y + 1.0) * (1.0 - abs(signMidCoordPos.x)) + + 0.5 * (1.0 - signMidCoordPos.y) * invNoonFactor; // consistency357381 + #endif + } + } else { + if (mat < 10012) { // Leaves + #include "/lib/materials/specificMaterials/terrain/leaves.glsl" + } + else /*if (mat < 10016)*/ { // Vine + subsurfaceMode = 3, centerShadowBias = true; noSmoothLighting = true; + + #if defined COATED_TEXTURES && defined GBUFFERS_TERRAIN + doTileRandomisation = false; + #endif + + float factor = color.g; + smoothnessG = factor * 0.5; + highlightMult = factor * 4.0 + 2.0; + float fresnel = clamp(1.0 + dot(normalM, normalize(viewPos)), 0.0, 1.0); + highlightMult *= 1.0 - pow2(pow2(fresnel)); + } + } + } else { + if (mat < 10024) { + if (mat < 10020) { // Non-waving Foliage + subsurfaceMode = 1, noSmoothLighting = true, noDirectionalShading = true; + } + else /*if (mat < 10024)*/ { // Upper Waving Foliage + subsurfaceMode = 1, noSmoothLighting = true, noDirectionalShading = true; + + #ifdef GBUFFERS_TERRAIN + DoFoliageColorTweaks(color.rgb, shadowMult, snowMinNdotU, viewPos, nViewPos, lViewPos, dither); + + #ifdef COATED_TEXTURES + doTileRandomisation = false; + #endif + #endif + + #if SHADOW_QUALITY == -1 + shadowMult *= 1.0 + invNoonFactor; // consistency357381 + #endif + } + } else { + if (mat < 10028) { // Modded Ores + #ifdef GLOWING_ORE_MODDED + float epsilon = 0.00001; + vec2 absMidCoordPosM = absMidCoordPos - epsilon; + vec3 avgBorderColor = vec3(0.0); + + avgBorderColor += texture2D(tex, midCoord + vec2( absMidCoordPosM.x, absMidCoordPosM.y)).rgb; + avgBorderColor += texture2D(tex, midCoord + vec2(-absMidCoordPosM.x, absMidCoordPosM.y)).rgb; + avgBorderColor += texture2D(tex, midCoord + vec2( absMidCoordPosM.x,-absMidCoordPosM.y)).rgb; + avgBorderColor += texture2D(tex, midCoord + vec2(-absMidCoordPosM.x,-absMidCoordPosM.y)).rgb; + avgBorderColor += texture2D(tex, midCoord + vec2(epsilon, absMidCoordPosM.y)).rgb; + avgBorderColor += texture2D(tex, midCoord + vec2(epsilon,-absMidCoordPosM.y)).rgb; + avgBorderColor += texture2D(tex, midCoord + vec2( absMidCoordPosM.x, epsilon)).rgb; + avgBorderColor += texture2D(tex, midCoord + vec2(-absMidCoordPosM.x, epsilon)).rgb; + avgBorderColor *= 0.125; + + vec3 colorDif = abs(avgBorderColor - color.rgb); + emission = max(colorDif.r, max(colorDif.g, colorDif.b)); + emission = pow2(emission * 2.5 - 0.15); + + emission *= GLOWING_ORE_MULT; + //color.rgb = avgBorderColor; + #endif + } + else /*if (mat < 10032)*/ { // Modded Light Sources + noSmoothLighting = true; noDirectionalShading = true; + emission = GetLuminance(color.rgb) * 2.5; + } + } + } + } else { + if (mat < 10048) { + if (mat < 10040) { + if (mat < 10036) { // Stone Bricks++ + #include "/lib/materials/specificMaterials/terrain/stone.glsl" + + #ifdef COATED_TEXTURES + noiseFactor = 0.66; + #endif + } + else /*if (mat < 10040)*/ { // Anvil+ + #include "/lib/materials/specificMaterials/terrain/anvil.glsl" + } + } else { + if (mat < 10044) { // Rails + #if ANISOTROPIC_FILTER == 0 + color = texture2DLod(tex, texCoord, 0); + #endif + + noSmoothLighting = true; + if (color.r > 0.1 && color.g + color.b < 0.1) { // Redstone Parts + noSmoothLighting = true; noDirectionalShading = true; + lmCoordM.x = min(lmCoordM.x * 0.9, 0.77); + + if (color.r > 0.5) { + color.rgb *= color.rgb; + emission = 8.0 * color.r; + } else if (color.r > color.g * 2.0) { + materialMask = OSIEBCA * 5.0; // Redstone Fresnel + + float factor = pow2(color.r); + smoothnessG = 0.4; + highlightMult = factor + 0.4; + + smoothnessD = factor * 0.7 + 0.3; + } + } else if (abs(color.r - color.b) < 0.15) { // Iron Parts + #include "/lib/materials/specificMaterials/terrain/ironBlock.glsl" + } else if (color.g > color.b * 2.0) { // Gold Parts + #include "/lib/materials/specificMaterials/terrain/goldBlock.glsl" + } else { // Wood Parts + #include "/lib/materials/specificMaterials/planks/oakPlanks.glsl" + } + } + else /*if (mat < 10048)*/ { // Empty Cauldron, Hopper + noSmoothLighting = true; + lmCoordM.x = min(lmCoordM.x, 0.9333); + + #include "/lib/materials/specificMaterials/terrain/anvil.glsl" + } + } + } else { + if (mat < 10056) { + if (mat < 10052) { // Water Cauldron + noSmoothLighting = true; + lmCoordM.x = min(lmCoordM.x, 0.9333); + + vec3 worldPos = playerPos + cameraPosition; + vec3 fractPos = fract(worldPos.xyz); + vec2 coordM = abs(fractPos.xz - 0.5); + if (max(coordM.x, coordM.y) < 0.375 && fractPos.y > 0.3 && NdotU > 0.9) { + #if WATER_STYLE < 3 + vec3 colorP = color.rgb / glColor.rgb; + smoothnessG = min(pow2(pow2(dot(colorP.rgb, colorP.rgb) * 0.4)), 1.0); + highlightMult = 3.25; + smoothnessD = 0.8; + #else + smoothnessG = 0.3; + smoothnessD = 1.0; + #endif + + #include "/lib/materials/specificMaterials/translucents/water.glsl" + + #ifdef COATED_TEXTURES + noiseFactor = 0.0; + #endif + } else { + #include "/lib/materials/specificMaterials/terrain/anvil.glsl" + } + } + else /*if (mat < 10056)*/ { // Powder Snow Cauldron + noSmoothLighting = true; + lmCoordM.x = min(lmCoordM.x, 0.9333); + + vec3 worldPos = playerPos + cameraPosition; + vec3 fractPos = fract(worldPos.xyz); + vec2 coordM = abs(fractPos.xz - 0.5); + if (max(coordM.x, coordM.y) < 0.375 && + fractPos.y > 0.3 && + NdotU > 0.9) { + + #include "/lib/materials/specificMaterials/terrain/snow.glsl" + } else { + #include "/lib/materials/specificMaterials/terrain/anvil.glsl" + } + } + } else { + if (mat < 10060) { // Lava Cauldron + noSmoothLighting = true; + lmCoordM.x = min(lmCoordM.x, 0.9333); + + vec3 worldPos = playerPos + cameraPosition; + vec3 fractPos = fract(worldPos.xyz); + vec2 coordM = abs(fractPos.xz - 0.5); + if (max(coordM.x, coordM.y) < 0.375 && + fractPos.y > 0.3 && + NdotU > 0.9) { + + #include "/lib/materials/specificMaterials/terrain/lava.glsl" + } else { + #include "/lib/materials/specificMaterials/terrain/anvil.glsl" + } + } + else /*if (mat < 10064)*/ { // Lever + if (color.r > color.g + color.b) { + color.rgb *= color.rgb; + emission = 4.0; + } else { + #include "/lib/materials/specificMaterials/terrain/cobblestone.glsl" + } + } + } + } + } + } else { + if (mat < 10096) { + if (mat < 10080) { + if (mat < 10072) { + if (mat < 10068) { // Lectern + #include "/lib/materials/specificMaterials/planks/oakPlanks.glsl" + } + else /*if (mat < 10072)*/ { // Lava + #include "/lib/materials/specificMaterials/terrain/lava.glsl" + + #if defined COATED_TEXTURES && defined GBUFFERS_TERRAIN + doTileRandomisation = false; + #endif + + #ifdef DISTANT_LIGHT_BOKEH + DoDistantLightBokehMaterial(emission, 4.5, lViewPos); + #endif + } + } else { + if (mat < 10076) { // Fire + noSmoothLighting = true, noDirectionalShading = true; + emission = 2.35; + color.rgb *= sqrt1(GetLuminance(color.rgb)); + } + else /*if (mat < 10080)*/ { // Soul Fire + noSmoothLighting = true, noDirectionalShading = true; + emission = 1.5; + color.rgb = pow1_5(color.rgb); + } + } + } else { + if (mat < 10088) { + if (mat < 10084) { // Stone+, Coal Ore, Smooth Stone+, Grindstone, Stonecutter + #include "/lib/materials/specificMaterials/terrain/stone.glsl" + } + else /*if (mat < 10088)*/ { // Granite+ + smoothnessG = pow2(pow2(color.r)) * 0.75; + smoothnessD = smoothnessG; + } + } else { + if (mat < 10092) { // Diorite+ + smoothnessG = pow2(pow2(color.g)) * 0.5; + smoothnessD = smoothnessG; + + #ifdef GBUFFERS_TERRAIN + DoBrightBlockTweaks(color.rgb, 0.75, shadowMult, highlightMult); + #endif + } + else /*if (mat < 10096)*/ { // Andesite+ + smoothnessG = pow2(pow2(color.g)) * 1.3; + smoothnessG = min1(smoothnessG); + smoothnessD = smoothnessG; + } + } + } + } else { + if (mat < 10112) { + if (mat < 10104) { + if (mat < 10100) { // Polished Granite+ + smoothnessG = 0.1 + color.r * 0.4; + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 0.77; + #endif + } + else /*if (mat < 10104)*/ { // Polished Diorite+ + smoothnessG = pow2(color.g) * 0.7; + smoothnessD = smoothnessG; + + #ifdef GBUFFERS_TERRAIN + DoBrightBlockTweaks(color.rgb, 0.75, shadowMult, highlightMult); + #endif + + #ifdef COATED_TEXTURES + noiseFactor = 0.77; + #endif + } + } else { + if (mat < 10108) { // Polished Andesite+, Packed Mud, Mud Bricks+, Bricks+ + smoothnessG = pow2(color.g); + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 0.77; + #endif + } + else /*if (mat < 10112)*/ { // Deepslate:Non-polished Variants, Deepslate Coal Ore + #include "/lib/materials/specificMaterials/terrain/deepslate.glsl" + } + } + } else { + if (mat < 10120) { + if (mat < 10116) { // Deepslate:Polished Variants, Mud, Mangrove Roots, Muddy Mangrove Roots + #include "/lib/materials/specificMaterials/terrain/deepslate.glsl" + + #ifdef COATED_TEXTURES + noiseFactor = 0.77; + #endif + } + else /*if (mat < 10120)*/ { // Calcite + highlightMult = pow2(color.g) + 1.0; + smoothnessG = 1.0 - color.g * 0.5; + smoothnessD = smoothnessG; + + #ifdef GBUFFERS_TERRAIN + DoBrightBlockTweaks(color.rgb, 0.75, shadowMult, highlightMult); + #endif + } + } else { + if (mat < 10124) { // Dripstone+, Daylight Detector + smoothnessG = color.r * 0.35 + 0.2; + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 0.66; + #endif + } + else /*if (mat < 10128)*/ { // Snowy Variants of Grass Block, Podzol, Mycelium + float dotColor = dot(color.rgb, color.rgb); + if (dotColor > 1.5) { // Snowy Variants:Snowy Part + #include "/lib/materials/specificMaterials/terrain/snow.glsl" + } else { // Snowy Variants:Dirt Part + #include "/lib/materials/specificMaterials/terrain/dirt.glsl" + } + } + } + } + } + } + } else { + if (mat < 10192) { + if (mat < 10160) { + if (mat < 10144) { + if (mat < 10136) { + if (mat < 10132) { // Dirt, Coarse Dirt, Rooted Dirt, Podzol:Normal, Mycelium:Normal, Farmland:Dry + #include "/lib/materials/specificMaterials/terrain/dirt.glsl" + } + else /*if (mat < 10136)*/ { // Grass Block:Normal + if (glColor.b < 0.999) { // Grass Block:Normal:Grass Part + smoothnessG = pow2(color.g); + + #ifdef SNOWY_WORLD + snowMinNdotU = min(pow2(pow2(color.g)) * 1.9, 0.1); + color.rgb = color.rgb * 0.5 + 0.5 * (color.rgb / glColor.rgb); + #endif + } else { //Grass Block:Normal:Dirt Part + #include "/lib/materials/specificMaterials/terrain/dirt.glsl" + } + } + } else { + if (mat < 10140) { // Farmland:Wet + if (NdotU > 0.99) { // Farmland:Wet:Top Part + #if MC_VERSION >= 11300 + smoothnessG = clamp(pow2(pow2(1.0 - color.r)) * 2.5, 0.5, 1.0); + highlightMult = 0.5 + smoothnessG * smoothnessG * 2.0; + smoothnessD = smoothnessG * 0.75; + #else + smoothnessG = 0.5 * (1.0 + abs(color.r - color.b) + color.b); + smoothnessD = smoothnessG * 0.5; + #endif + } else { // Farmland:Wet:Dirt Part + #include "/lib/materials/specificMaterials/terrain/dirt.glsl" + } + } + else /*if (mat < 10144)*/ { // Netherrack + #include "/lib/materials/specificMaterials/terrain/netherrack.glsl" + } + } + } else { + if (mat < 10152) { + if (mat < 10148) { // Warped Nylium, Warped Wart Block + if (color.g == color.b && color.g > 0.0001) { // Warped Nylium:Netherrack Part + #include "/lib/materials/specificMaterials/terrain/netherrack.glsl" + } else { // Warped Nylium:Nylium Part, Warped Wart Block + smoothnessG = color.g * 0.5; + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 0.77; + #endif + } + } + else /*if (mat < 10152)*/ { // Crimson Nylium, Nether Wart Block + if (color.g == color.b && color.g > 0.0001 && color.r < 0.522) { // Crimson Nylium:Netherrack Part + #include "/lib/materials/specificMaterials/terrain/netherrack.glsl" + } else { // Crimson Nylium:Nylium Part, Nether Wart Block + smoothnessG = color.r * 0.5; + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 0.77; + #endif + } + } + } else { + if (mat < 10156) { // Cobblestone+, Mossy Cobblestone+, Furnace:Unlit, Smoker:Unlit, Blast Furnace:Unlit, Moss Block+, Lodestone, Piston, Sticky Piston, Dispenser, Dropper + #include "/lib/materials/specificMaterials/terrain/cobblestone.glsl" + } + else /*if (mat < 10160)*/ { // Oak Planks++:Clean Variants, Bookshelf, Crafting Table, Tripwire Hook + #include "/lib/materials/specificMaterials/planks/oakPlanks.glsl" + } + } + } + } else { + if (mat < 10176) { + if (mat < 10168) { + if (mat < 10164) { // Oak Log, Oak Wood + if (color.g > 0.48 || + CheckForColor(color.rgb, vec3(126, 98, 55)) || + CheckForColor(color.rgb, vec3(150, 116, 65))) { // Oak Log:Clean Part + #include "/lib/materials/specificMaterials/planks/oakPlanks.glsl" + } else { // Oak Log:Wood Part, Oak Wood + #include "/lib/materials/specificMaterials/terrain/oakWood.glsl" + } + } + else /*if (mat < 10168)*/ { // Spruce Planks++:Clean Variants + #include "/lib/materials/specificMaterials/planks/sprucePlanks.glsl" + } + } else { + if (mat < 10172) { // Spruce Log, Spruce Wood + if (color.g > 0.25) { // Spruce Log:Clean Part + #include "/lib/materials/specificMaterials/planks/sprucePlanks.glsl" + } else { // Spruce Log:Wood Part, Spruce Wood + smoothnessG = pow2(color.g) * 2.5; + smoothnessG = min1(smoothnessG); + smoothnessD = smoothnessG; + } + } + else /*if (mat < 10176)*/ { // Birch Planks++:Clean Variants, Scaffolding, Loom + #include "/lib/materials/specificMaterials/planks/birchPlanks.glsl" + } + } + } else { + if (mat < 10184) { + if (mat < 10180) { // Birch Log, Birch Wood + if (color.r - color.b > 0.15) { // Birch Log:Clean Part + #include "/lib/materials/specificMaterials/planks/birchPlanks.glsl" + } else { // Birch Log:Wood Part, Birch Wood + smoothnessG = pow2(color.g) * 0.25; + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 1.25; + #endif + } + } + else /*if (mat < 10184)*/ { // Jungle Planks++:Clean Variants, Composter + #include "/lib/materials/specificMaterials/planks/junglePlanks.glsl" + } + } else { + if (mat < 10188) { // Jungle Log, Jungle Wood + if (color.g > 0.405) { // Jungle Log:Clean Part + #include "/lib/materials/specificMaterials/planks/junglePlanks.glsl" + } else { // Jungle Log:Wood Part, Jungle Wood + smoothnessG = pow2(pow2(color.g)) * 5.0; + smoothnessG = min1(smoothnessG); + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 0.77; + #endif + } + } + else /*if (mat < 10192)*/ { // Acacia Planks++:Clean Variants + #include "/lib/materials/specificMaterials/planks/acaciaPlanks.glsl" + } + } + } + } + } else { + if (mat < 10224) { + if (mat < 10208) { + if (mat < 10200) { + if (mat < 10196) { // Acacia Log, Acacia Wood + if (color.r - color.b > 0.2) { // Acacia Log:Clean Part + #include "/lib/materials/specificMaterials/planks/acaciaPlanks.glsl" + } else { // Acacia Log:Wood Part, Acacia Wood + smoothnessG = pow2(color.b) * 1.3; + smoothnessG = min1(smoothnessG); + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 0.66; + #endif + } + } + else /*if (mat < 10200)*/ { // Dark Oak Planks++:Clean Variants + #include "/lib/materials/specificMaterials/planks/darkOakPlanks.glsl" + } + } else { + if (mat < 10204) { // Dark Oak Log, Dark Oak Wood + if (color.r - color.g > 0.08 || + CheckForColor(color.rgb, vec3(48, 30, 14))) { // Dark Oak Log:Clean Part + #include "/lib/materials/specificMaterials/planks/darkOakPlanks.glsl" + } else { // Dark Oak Log:Wood Part, Dark Oak Wood + smoothnessG = color.r * 0.4; + smoothnessD = smoothnessG; + } + } + else /*if (mat < 10208)*/ { // Mangrove Planks++:Clean Variants + #include "/lib/materials/specificMaterials/planks/mangrovePlanks.glsl" + } + } + } else { + if (mat < 10216) { + if (mat < 10212) { // Mangrove Log, Mangrove Wood + if (color.r - color.g > 0.2) { // Mangrove Log:Clean Part + #include "/lib/materials/specificMaterials/planks/mangrovePlanks.glsl" + } else { // Mangrove Log:Wood Part, Mangrove Wood + smoothnessG = pow2(color.r) * 0.6; + smoothnessD = smoothnessG; + } + } + else /*if (mat < 10216)*/ { // Crimson Planks++:Clean Variants + #include "/lib/materials/specificMaterials/planks/crimsonPlanks.glsl" + } + } else { + if (mat < 10220) { // Crimson Stem, Crimson Hyphae + if (color.r / color.b > 2.5) { // Emissive Part + emission = pow2(color.r) * 6.5; + color.gb *= 0.5; + } else { // Flat Part + #include "/lib/materials/specificMaterials/planks/crimsonPlanks.glsl" + } + } + else /*if (mat < 10224)*/ { // Warped Planks++:Clean Variants + #include "/lib/materials/specificMaterials/planks/warpedPlanks.glsl" + } + } + } + } else { + if (mat < 10240) { + if (mat < 10232) { + if (mat < 10228) { // Warped Stem, Warped Hyphae + //if (color.r < 0.12 || color.r + color.g * 3.0 < 3.4 * color.b) { // Emissive Part + if (color.r < 0.37 * color.b || color.r + color.g * 3.0 < 3.4 * color.b) { // Emissive Part + emission = pow2(color.g + 0.2 * color.b) * 4.5 + 0.15; + } else { // Flat Part + #include "/lib/materials/specificMaterials/planks/warpedPlanks.glsl" + } + } + else /*if (mat < 10232)*/ { // Bedrock + smoothnessG = color.b * 0.2 + 0.1; + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 1.5; + #endif + } + } else { + if (mat < 10236) { // Sand, Suspicious Sand + smoothnessG = pow(color.g, 16.0) * 2.0; + smoothnessG = min1(smoothnessG); + smoothnessD = smoothnessG; + highlightMult = 2.0; + + #ifdef GBUFFERS_TERRAIN + DoBrightBlockTweaks(color.rgb, 0.5, shadowMult, highlightMult); + + DoOceanBlockTweaks(smoothnessD); + #endif + + #if RAIN_PUDDLES >= 1 + noPuddles = 1.0; + #endif + } + else /*if (mat < 10240)*/ { // Red Sand + smoothnessG = pow(color.r * 1.08, 16.0) * 2.0; + smoothnessG = min1(smoothnessG); + smoothnessD = smoothnessG; + highlightMult = 2.0; + + #ifdef COATED_TEXTURES + noiseFactor = 0.77; + #endif + + #if RAIN_PUDDLES >= 1 + noPuddles = 1.0; + #endif + } + } + } else { + if (mat < 10248) { + if (mat < 10244) { // Sandstone+ + highlightMult = 2.0; + smoothnessG = pow2(pow2(color.g)) * 0.5; + smoothnessG = min1(smoothnessG); + smoothnessD = smoothnessG; + + #ifdef GBUFFERS_TERRAIN + DoBrightBlockTweaks(color.rgb, 0.5, shadowMult, highlightMult); + #endif + + #ifdef COATED_TEXTURES + noiseFactor = 0.77; + #endif + } + else /*if (mat < 10248)*/ { // Red Sandstone+ + highlightMult = 2.0; + smoothnessG = pow2(pow2(color.r * 1.08)) * 0.5; + smoothnessG = min1(smoothnessG); + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 0.5; + #endif + } + } else { + if (mat < 10252) { // Netherite Block + #include "/lib/materials/specificMaterials/terrain/netheriteBlock.glsl" + } + else /*if (mat < 10256)*/ { // Ancient Debris + smoothnessG = pow2(color.r); + smoothnessG = min1(smoothnessG); + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 1.5; + #endif + + #ifdef GLOWING_ORE_ANCIENTDEBRIS + emission = min(pow2(color.g * 6.0), 8.0); + color.rgb *= pow(color.rgb, vec3(min1(GLOWING_ORE_MULT))); + emission *= GLOWING_ORE_MULT; + #endif + } + } + } + } + } + } + } else { + if (mat < 10384) { + if (mat < 10320) { + if (mat < 10288) { + if (mat < 10272) { + if (mat < 10264) { + if (mat < 10260) { // Iron Bars + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/terrain/ironBlock.glsl" + } + else /*if (mat < 10264)*/ { // ACL solid blocks with no properties + + } + } else { + if (mat < 10268) { // Iron Block, Heavy Weighted Pressure Plate + #include "/lib/materials/specificMaterials/terrain/ironBlock.glsl" + color.rgb *= max(color.r, 0.85) * 0.9; + } + else /*if (mat < 10272)*/ { // Raw Iron Block + #include "/lib/materials/specificMaterials/terrain/rawIronBlock.glsl" + } + } + } else { + if (mat < 10280) { + if (mat < 10276) { // Iron Ore + if (color.r != color.g) { // Iron Ore:Raw Iron Part + #include "/lib/materials/specificMaterials/terrain/rawIronBlock.glsl" + #ifdef GLOWING_ORE_IRON + if (color.r - color.b > 0.15) { + emission = pow1_5(color.r) * 1.5; + color.rgb *= pow(color.rgb, vec3(0.5 * min1(GLOWING_ORE_MULT))); + emission *= GLOWING_ORE_MULT; + } + #endif + } else { // Iron Ore:Stone Part + #include "/lib/materials/specificMaterials/terrain/stone.glsl" + } + } + else /*if (mat < 10280)*/ { // Deepslate Iron Ore + if (color.r != color.g) { // Deepslate Iron Ore:Raw Iron Part + #include "/lib/materials/specificMaterials/terrain/rawIronBlock.glsl" + #ifdef GLOWING_ORE_IRON + if (color.r - color.b > 0.15) { + emission = pow1_5(color.r) * 1.5; + color.rgb *= pow(color.rgb, vec3(0.5 * min1(GLOWING_ORE_MULT))); + emission *= GLOWING_ORE_MULT; + } + #endif + } else { // Deepslate Iron Ore:Deepslate Part + #include "/lib/materials/specificMaterials/terrain/deepslate.glsl" + } + } + } else { + if (mat < 10284) { // Raw Copper Block + #include "/lib/materials/specificMaterials/terrain/rawCopperBlock.glsl" + } + else /*if (mat < 10288)*/ { // Copper Ore + if (color.r != color.g) { // Copper Ore:Raw Copper Part + #include "/lib/materials/specificMaterials/terrain/rawCopperBlock.glsl" + #ifdef GLOWING_ORE_COPPER + if (max(color.r * 0.5, color.g) - color.b > 0.05) { + emission = color.r * 2.0 + 0.7; + color.rgb *= pow(color.rgb, vec3(min1(GLOWING_ORE_MULT))); + emission *= GLOWING_ORE_MULT; + } + #endif + } else { // Copper Ore:Stone Part + #include "/lib/materials/specificMaterials/terrain/stone.glsl" + } + } + } + } + } else { + if (mat < 10304) { + if (mat < 10296) { + if (mat < 10292) { // Deepslate Copper Ore + if (color.r != color.g) { // Deepslate Copper Ore:Raw Copper Part + #include "/lib/materials/specificMaterials/terrain/rawCopperBlock.glsl" + #ifdef GLOWING_ORE_COPPER + if (max(color.r * 0.5, color.g) - color.b > 0.05) { + emission = color.r * 2.0 + 0.7; + color.rgb *= pow(color.rgb, vec3(min1(GLOWING_ORE_MULT))); + emission *= GLOWING_ORE_MULT; + } + #endif + } else { // Deepslate Copper Ore:Deepslate Part + #include "/lib/materials/specificMaterials/terrain/deepslate.glsl" + } + } + else /*if (mat < 10296)*/ { // Copper Block++:All Non-raw Variants + #include "/lib/materials/specificMaterials/terrain/copperBlock.glsl" + } + } else { + if (mat < 10300) { // Raw Gold Block + #include "/lib/materials/specificMaterials/terrain/rawGoldBlock.glsl" + } + else /*if (mat < 10304)*/ { // Gold Ore + if (color.r != color.g || color.r > 0.99) { // Gold Ore:Raw Gold Part + #include "/lib/materials/specificMaterials/terrain/rawGoldBlock.glsl" + #ifdef GLOWING_ORE_GOLD + if (color.g - color.b > 0.15 || color.r > 0.99) { + emission = color.r + 1.0; + color.rgb *= pow(color.rgb, vec3(min1(GLOWING_ORE_MULT))); + emission *= GLOWING_ORE_MULT; + } + #endif + } else { // Gold Ore:Stone Part + #include "/lib/materials/specificMaterials/terrain/stone.glsl" + } + } + } + } else { + if (mat < 10312) { + if (mat < 10308) { // Deepslate Gold Ore + if (color.r != color.g || color.r > 0.99) { // Deepslate Gold Ore:Raw Gold Part + #include "/lib/materials/specificMaterials/terrain/rawGoldBlock.glsl" + #ifdef GLOWING_ORE_GOLD + if (color.g - color.b > 0.15 || color.r > 0.99) { + emission = color.r + 1.0; + color.rgb *= pow(color.rgb, vec3(min1(GLOWING_ORE_MULT))); + emission *= GLOWING_ORE_MULT; + } + #endif + } else { // Deepslate Gold Ore:Deepslate Part + #include "/lib/materials/specificMaterials/terrain/deepslate.glsl" + } + } + else /*if (mat < 10312)*/ { // Nether Gold Ore + if (color.g != color.b) { // Nether Gold Ore:Raw Gold Part + #include "/lib/materials/specificMaterials/terrain/rawGoldBlock.glsl" + #ifdef GLOWING_ORE_NETHERGOLD + emission = color.g * 1.5; + emission *= GLOWING_ORE_MULT; + #endif + } else { // Nether Gold Ore:Netherrack Part + #include "/lib/materials/specificMaterials/terrain/netherrack.glsl" + } + } + } else { + if (mat < 10316) { // Gold Block, Light Weighted Pressure Plate + #include "/lib/materials/specificMaterials/terrain/goldBlock.glsl" + } + else /*if (mat < 10320)*/ { // Diamond Block + #include "/lib/materials/specificMaterials/terrain/diamondBlock.glsl" + } + } + } + } + } else { + if (mat < 10352) { + if (mat < 10336) { + if (mat < 10328) { + if (mat < 10324) { // Diamond Ore + if (color.b / color.r > 1.5 || color.b > 0.8) { // Diamond Ore:Diamond Part + #include "/lib/materials/specificMaterials/terrain/diamondBlock.glsl" + #ifdef GLOWING_ORE_DIAMOND + emission = color.g + 1.5; + color.rgb *= pow(color.rgb, vec3(min1(GLOWING_ORE_MULT))); + emission *= GLOWING_ORE_MULT; + #endif + } else { // Diamond Ore:Stone Part, Diamond Ore:StoneToDiamond part + #include "/lib/materials/specificMaterials/terrain/stone.glsl" + } + } + else /*if (mat < 10328)*/ { // Deepslate Diamond Ore + if (color.b / color.r > 1.5 || color.b > 0.8) { // Deepslate Diamond Ore:Diamond Part + #include "/lib/materials/specificMaterials/terrain/diamondBlock.glsl" + #ifdef GLOWING_ORE_DIAMOND + emission = color.g + 1.5; + color.rgb *= pow(color.rgb, vec3(min1(GLOWING_ORE_MULT))); + emission *= GLOWING_ORE_MULT; + #endif + } else { // Deepslate Diamond Ore:Deepslate Part, Deepslate Diamond Ore:DeepslateToDiamond part + #include "/lib/materials/specificMaterials/terrain/deepslate.glsl" + } + } + } else { + if (mat < 10332) { // Amethyst Block, Budding Amethyst + materialMask = OSIEBCA; // Intense Fresnel + float factor = pow2(color.r); + smoothnessG = 0.8 - factor * 0.3; + highlightMult = factor * 3.0; + smoothnessD = factor; + + #if GLOWING_AMETHYST >= 2 + emission = dot(color.rgb, color.rgb) * 0.3; + #endif + + color.rgb *= 0.7 + 0.3 * GetLuminance(color.rgb); + + #ifdef COATED_TEXTURES + noiseFactor = 0.66; + #endif + } + else /*if (mat < 10336)*/ { // Amethyst Cluster, Amethyst Buds + materialMask = OSIEBCA; // Intense Fresnel + float factor = pow2(color.r); + smoothnessG = 0.8 - factor * 0.3; + highlightMult = factor * 3.0; + smoothnessD = factor; + + noSmoothLighting = true; + lmCoordM.x *= 0.85; + + #if GLOWING_AMETHYST >= 1 + #if defined GBUFFERS_TERRAIN && !defined IPBR_COMPATIBILITY_MODE + vec3 worldPos = playerPos.xyz + cameraPosition.xyz; + vec3 blockPos = abs(fract(worldPos) - vec3(0.5)); + float maxBlockPos = max(blockPos.x, max(blockPos.y, blockPos.z)); + emission = pow2(max0(1.0 - maxBlockPos * 1.85) * color.g) * 7.0; + + if (CheckForColor(color.rgb, vec3(254, 203, 230))) + emission = pow(emission, max0(1.0 - 0.2 * max0(emission - 1.0))); + + color.g *= 1.0 - emission * 0.07; + + emission *= 1.3; + #else + emission = pow2(color.g + color.b) * 0.4; + #endif + #endif + + #ifdef COATED_TEXTURES + noiseFactor = 0.66; + #endif + } + } + } else { + if (mat < 10344) { + if (mat < 10340) { // Emerald Block + #include "/lib/materials/specificMaterials/terrain/emeraldBlock.glsl" + } + else /*if (mat < 10344)*/ { // Emerald Ore + float dif = GetMaxColorDif(color.rgb); + if (dif > 0.4 || color.b > 0.85) { // Emerald Ore:Emerald Part + #include "/lib/materials/specificMaterials/terrain/emeraldBlock.glsl" + #ifdef GLOWING_ORE_EMERALD + emission = 2.0; + color.rgb *= pow(color.rgb, vec3(min1(GLOWING_ORE_MULT))); + emission *= GLOWING_ORE_MULT; + #endif + } else { // Emerald Ore:Stone Part + #include "/lib/materials/specificMaterials/terrain/stone.glsl" + } + } + } else { + if (mat < 10348) { // Deepslate Emerald Ore + float dif = GetMaxColorDif(color.rgb); + if (dif > 0.4 || color.b > 0.85) { // Deepslate Emerald Ore:Emerald Part + #include "/lib/materials/specificMaterials/terrain/emeraldBlock.glsl" + #ifdef GLOWING_ORE_EMERALD + emission = 2.0; + color.rgb *= pow(color.rgb, vec3(min1(GLOWING_ORE_MULT))); + emission *= GLOWING_ORE_MULT; + #endif + } else { // Deepslate Emerald Ore:Deepslate Part + #include "/lib/materials/specificMaterials/terrain/deepslate.glsl" + } + } + else /*if (mat < 10352)*/ { // Azalea, Flowering Azalea + #include "/lib/materials/specificMaterials/terrain/cobblestone.glsl" + } + } + } + } else { + if (mat < 10368) { + if (mat < 10360) { + if (mat < 10356) { // Lapis Block + #include "/lib/materials/specificMaterials/terrain/lapisBlock.glsl" + + #ifdef EMISSIVE_LAPIS_BLOCK + emission = pow2(dot(color.rgb, color.rgb)) * 10.0; + #endif + } + else /*if (mat < 10360)*/ { // Lapis Ore + if (color.r != color.g) { // Lapis Ore:Lapis Part + #include "/lib/materials/specificMaterials/terrain/lapisBlock.glsl" + smoothnessG *= 0.5; + smoothnessD *= 0.5; + #ifdef GLOWING_ORE_LAPIS + if (color.b - color.r > 0.2) { + emission = 2.0; + color.rgb *= pow(color.rgb, vec3(min1(GLOWING_ORE_MULT))); + emission *= GLOWING_ORE_MULT; + } + #endif + } else { // Lapis Ore:Stone Part + #include "/lib/materials/specificMaterials/terrain/stone.glsl" + } + } + } else { + if (mat < 10364) { // Deepslate Lapis Ore + if (color.r != color.g) { // Deepslate Lapis Ore:Lapis Part + #include "/lib/materials/specificMaterials/terrain/lapisBlock.glsl" + smoothnessG *= 0.5; + smoothnessD *= 0.5; + #ifdef GLOWING_ORE_LAPIS + if (color.b - color.r > 0.2) { + emission = 2.0; + color.rgb *= pow(color.rgb, vec3(min1(GLOWING_ORE_MULT))); + emission *= GLOWING_ORE_MULT; + } + #endif + } else { // Deepslate Lapis Ore:Deepslate Part + #include "/lib/materials/specificMaterials/terrain/deepslate.glsl" + } + } + else /*if (mat < 10368)*/ { // Quartz Block++ + #include "/lib/materials/specificMaterials/terrain/quartzBlock.glsl" + } + } + } else { + if (mat < 10376) { + if (mat < 10372) { // Nether Quartz Ore + if (color.g != color.b) { // Nether Quartz Ore:Quartz Part + #include "/lib/materials/specificMaterials/terrain/quartzBlock.glsl" + #ifdef GLOWING_ORE_NETHERQUARTZ + emission = pow2(color.b * 1.6); + emission *= GLOWING_ORE_MULT; + #endif + } else { // Nether Quartz Ore:Netherrack Part + #include "/lib/materials/specificMaterials/terrain/netherrack.glsl" + } + } + else /*if (mat < 10376)*/ { // Obsidian + #include "/lib/materials/specificMaterials/terrain/obsidian.glsl" + } + } else { + if (mat < 10380) { // Purpur Block+ + highlightMult = 2.0; + smoothnessG = pow2(color.r) * 0.6; + smoothnessG = min1(smoothnessG); + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 0.5; + #endif + } + else /*if (mat < 10384)*/ { // 8 Layer Snow, Snow Block, Powder Snow + #include "/lib/materials/specificMaterials/terrain/snow.glsl" + } + } + } + } + } + } else { + if (mat < 10448) { + if (mat < 10416) { + if (mat < 10400) { + if (mat < 10392) { + if (mat < 10388) { // Packed Ice + materialMask = OSIEBCA; // Intense Fresnel + float factor = pow2(color.g); + float factor2 = pow2(factor); + smoothnessG = 1.0 - 0.5 * factor; + highlightMult = factor2 * 3.5; + smoothnessD = factor; + + #ifdef COATED_TEXTURES + noiseFactor = 0.33; + #endif + } + else /*if (mat < 10392)*/ { // Blue Ice + materialMask = OSIEBCA; // Intense Fresnel + float factor = min1(pow2(color.g) * 1.38); + float factor2 = pow2(factor); + smoothnessG = 1.0 - 0.5 * factor; + highlightMult = factor2 * 3.5; + smoothnessD = pow1_5(color.g); + + #ifdef COATED_TEXTURES + noiseFactor = 0.33; + #endif + } + } else { + if (mat < 10396) { // Pumpkin, Carved Pumpkin + #include "/lib/materials/specificMaterials/terrain/pumpkin.glsl" + } + else /*if (mat < 10400)*/ { // Jack o'Lantern + #include "/lib/materials/specificMaterials/terrain/pumpkin.glsl" + noSmoothLighting = true, noDirectionalShading = true; + lmCoordM.y = 0.0; + lmCoordM.x = 1.0; + + #if MC_VERSION >= 11300 + if (color.b > 0.28 && color.r > 0.9) { + float factor = pow2(color.g); + emission = pow2(factor) * factor * 5.0; + } + #else + if (color.b < 0.4) + emission = clamp01(color.g * 1.3 - color.r) * 5.0; + #endif + } + } + } else { + if (mat < 10408) { + if (mat < 10404) { // Sea Pickle:Not Waterlogged + noSmoothLighting = true; + } + else /*if (mat < 10408)*/ { // Sea Pickle:Waterlogged + noSmoothLighting = true; + if (color.b > 0.5) { // Sea Pickle:Emissive Part + #ifdef GBUFFERS_TERRAIN + color.g *= 1.1; + emission = 5.0; + #endif + } + } + } else { + if (mat < 10412) { // Basalt+ + smoothnessG = color.r * 0.45; + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 0.77; + #endif + } + else /*if (mat < 10416)*/ { // Glowstone + noSmoothLighting = true; noDirectionalShading = true; + lmCoordM = vec2(0.9, 0.0); + + emission = max0(color.g - 0.3) * 4.6; + color.rg += emission * vec2(0.15, 0.05); + + #ifdef DISTANT_LIGHT_BOKEH + DoDistantLightBokehMaterial(emission, 2.0, lViewPos); + #endif + } + } + } + } else { + if (mat < 10432) { + if (mat < 10424) { + if (mat < 10420) { // Nether Bricks+ + float factor = smoothstep1(min1(color.r * 1.5)); + factor = factor > 0.12 ? factor : factor * 0.5; + smoothnessG = factor; + smoothnessD = factor; + } + else /*if (mat < 10424)*/ { // Red Nether Bricks+ + float factor = color.r * 0.9; + factor = color.r > 0.215 ? factor : factor * 0.25; + smoothnessG = factor; + smoothnessD = factor; + + #ifdef COATED_TEXTURES + noiseFactor = 0.77; + #endif + } + } else { + if (mat < 10428) { // Melon + smoothnessG = color.r * 0.75; + smoothnessD = color.r * 0.5; + + #ifdef COATED_TEXTURES + noiseFactor = 0.66; + #endif + } + else /*if (mat < 10432)*/ { // End Stone++, + #include "/lib/materials/specificMaterials/terrain/endStone.glsl" + } + } + } else { + if (mat < 10440) { + if (mat < 10436) { // Terracotta+ + smoothnessG = 0.25; + highlightMult = 1.5; + smoothnessD = 0.17; + + #ifdef COATED_TEXTURES + noiseFactor = 0.33; + #endif + } + else /*if (mat < 10440)*/ { // Glazed Terracotta+ + smoothnessG = 0.75; + smoothnessD = 0.35; + + #ifdef COATED_TEXTURES + noiseFactor = 0.5; + #endif + } + } else { + if (mat < 10444) { // Prismarine+, Prismarine Bricks+ + smoothnessG = pow2(color.g) * 0.8; + highlightMult = 1.5; + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 0.66; + #endif + } + else /*if (mat < 10448)*/ { // Dark Prismarine+ + smoothnessG = min1(pow2(color.g) * 2.0); + highlightMult = 1.5; + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 0.77; + #endif + } + } + } + } + } else { + if (mat < 10480) { + if (mat < 10464) { + if (mat < 10456) { + if (mat < 10452) { // Sea Lantern + noSmoothLighting = true; noDirectionalShading = true; + lmCoordM.x = 0.85; + + smoothnessD = min1(max0(0.5 - color.r) * 2.0); + smoothnessG = color.g; + + #ifndef IPBR_COMPATIBILITY_MODE + float blockRes = absMidCoordPos.x * atlasSize.x; + vec2 signMidCoordPosM = (floor((signMidCoordPos + 1.0) * blockRes) + 0.5) / blockRes - 1.0; + float dotsignMidCoordPos = dot(signMidCoordPosM, signMidCoordPosM); + float factor = pow2(max0(1.0 - 1.7 * pow2(pow2(dotsignMidCoordPos)))); + #else + float factor = pow2(pow2(min(dot(color.rgb, color.rgb), 2.5) / 2.5)); + #endif + + emission = pow2(color.b) * 1.6 + 2.2 * factor; + emission *= 0.4 + max0(0.6 - 0.006 * lViewPos); + + color.rb *= vec2(1.13, 1.1); + + #ifdef DISTANT_LIGHT_BOKEH + DoDistantLightBokehMaterial(emission, 2.0, lViewPos); + #endif + + #ifdef COATED_TEXTURES + noiseFactor = 0.5; + #endif + } + else /*if (mat < 10456)*/ { // Magma Block + noSmoothLighting = true; noDirectionalShading = true; + lmCoordM = vec2(0.75, 0.0); + + if (color.g > 0.22) { // Emissive Part + emission = pow2(pow2(color.r)) * 4.0; + + #if RAIN_PUDDLES >= 1 + noPuddles = color.g * 4.0; + #endif + + color.gb *= max(2.0 - 11.0 * pow2(color.g), 0.5); + + maRecolor = vec3(emission * 0.075); + } else { // Netherrack Part + #include "/lib/materials/specificMaterials/terrain/netherrack.glsl" + + emission = 0.2; + } + + } + } else { + if (mat < 10460) { // Command Block+ + color = texture2DLod(tex, texCoord, 0); + + vec2 coord = signMidCoordPos; + float blockRes = absMidCoordPos.x * atlasSize.x; + vec2 absCoord = abs(coord); + float maxCoord = max(absCoord.x, absCoord.y); + + float dif = GetMaxColorDif(color.rgb); + + if ( // This mess exists because Iris' midCoord is slightly inaccurate + dif > 0.1 && maxCoord < 0.375 && + !CheckForColor(color.rgb, vec3(111, 73, 43)) && + !CheckForColor(color.rgb, vec3(207, 166, 139)) && + !CheckForColor(color.rgb, vec3(155, 139, 207)) && + !CheckForColor(color.rgb, vec3(161, 195, 180)) && + !CheckForColor(color.rgb, vec3(201, 143, 107)) && + !CheckForColor(color.rgb, vec3(135, 121, 181)) && + !CheckForColor(color.rgb, vec3(131, 181, 145)) + ) { + emission = 6.0; + color.rgb *= color.rgb; + highlightMult = 2.0; + maRecolor = vec3(0.5); + } else { + smoothnessG = dot(color.rgb, color.rgb) * 0.33; + smoothnessD = smoothnessG; + } + } + else /*if (mat < 10464)*/ { // Concrete+ except Lime + smoothnessG = 0.4; + highlightMult = 1.5; + smoothnessD = 0.3; + + #ifdef COATED_TEXTURES + noiseFactor = 0.2; + #endif + } + } + } else { + if (mat < 10472) { + if (mat < 10468) { // Concrete Powder+ + smoothnessG = 0.2; + smoothnessD = 0.1; + + #ifdef COATED_TEXTURES + noiseFactor = 0.5; + #endif + } + else /*if (mat < 10472)*/ { // Coral Block+ + #include "/lib/materials/specificMaterials/terrain/coral.glsl" + } + } else { + if (mat < 10476) { // Coral Fan+, Coral+ + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/terrain/coral.glsl" + } + else /*if (mat < 10480)*/ { // Crying Obsidian + #include "/lib/materials/specificMaterials/terrain/cryingObsidian.glsl" + + #ifdef SNOWY_WORLD + snowFactor = 0.0; + #endif + } + } + } + } else { + if (mat < 10496) { + if (mat < 10488) { + if (mat < 10484) { // Blackstone++ + #include "/lib/materials/specificMaterials/terrain/blackstone.glsl" + } + else /*if (mat < 10488)*/ { // Gilded Blackstone + if (color.r > color.b * 3.0) { // Gilded Blackstone:Gilded Part + #include "/lib/materials/specificMaterials/terrain/rawGoldBlock.glsl" + #ifdef GLOWING_ORE_GILDEDBLACKSTONE + emission = color.g * 1.5; + emission *= GLOWING_ORE_MULT; + #endif + } else { // Gilded Blackstone:Blackstone Part + #include "/lib/materials/specificMaterials/terrain/blackstone.glsl" + } + + } + } else { + if (mat < 10492) { // Lily Pad + noSmoothLighting = true; + subsurfaceMode = 2; + + #if defined COATED_TEXTURES && defined GBUFFERS_TERRAIN + doTileRandomisation = false; + #endif + + #ifdef IPBR + float factor = min1(color.g * 2.0); + smoothnessG = factor * 0.5; + highlightMult = factor; + #endif + } + else /*if (mat < 10496)*/ { // Dirt Path + #include "/lib/materials/specificMaterials/terrain/dirt.glsl" + #ifdef GBUFFERS_TERRAIN + glColor.a = sqrt(glColor.a); + #endif + } + } + } else { + if (mat < 10504) { + if (mat < 10500) { // Torch + noDirectionalShading = true; + + if (color.r > 0.95) { + noSmoothLighting = true; + lmCoordM.x = 1.0; + emission = GetLuminance(color.rgb) * 4.1; + #ifndef GBUFFERS_TERRAIN + emission *= 0.65; + #endif + color.r *= 1.4; + color.b *= 0.5; + } + + #ifdef GBUFFERS_TERRAIN + else if (abs(NdotU) < 0.5) { + #ifndef IPBR_COMPATIBILITY_MODE + #if MC_VERSION >= 12102 // torch model got changed in 1.21.2 + lmCoordM.x = min1(0.7 + 0.3 * smoothstep1(max0(0.4 - signMidCoordPos.y))); + #else + lmCoordM.x = min1(0.7 + 0.3 * pow2(1.0 - signMidCoordPos.y)); + #endif + #else + lmCoordM.x = 0.82; + #endif + } + #else + else { + color.rgb *= 1.5; + } + #endif + + #ifdef DISTANT_LIGHT_BOKEH + DoDistantLightBokehMaterial(color, vec4(1.0, 0.6, 0.2, 1.0), emission, 5.0, lViewPos); + #endif + + emission += 0.0001; // No light reducing during noon + } + else /*if (mat < 10504)*/ { // End Rod + noDirectionalShading = true; + + #ifdef GBUFFERS_TERRAIN + noSmoothLighting = true; + lmCoordM.x = 0.92; + #else + lmCoordM.x = 0.9; + #endif + + float dotColor = dot(color.rgb, color.rgb); + if (dotColor > 2.0) { + emission = 3.3; + emission *= 0.4 + max0(0.6 - 0.006 * lViewPos); + + color.rgb = pow2(color.rgb); + color.g *= 0.95; + } + + #ifdef GBUFFERS_TERRAIN + else { // Directional Self-light Effect + vec3 fractPos = abs(fract(playerPos + cameraPosition) - 0.5); + float maxCoord = max(fractPos.x, max(fractPos.y, fractPos.z)); + if (maxCoord < 0.4376) { + lmCoordM.x = 1.0; + color.rgb *= 1.8; + } + } + #endif + + #ifdef DISTANT_LIGHT_BOKEH + DoDistantLightBokehMaterial(emission, 4.0, lViewPos); + #endif + } + } else { + if (mat < 10508) { // Chorus Plant + + } + else /*if (mat < 10512)*/ { // Chorus Flower:Alive + float dotColor = dot(color.rgb, color.rgb); + if (dotColor > 1.0) + emission = pow2(pow2(pow2(dotColor * 0.33))) + 0.2 * dotColor; + } + } + } + } + } + } + } + } else { + if (mat < 10768) { + if (mat < 10640) { + if (mat < 10576) { + if (mat < 10544) { + if (mat < 10528) { + if (mat < 10520) { + if (mat < 10516) { // Chorus Flower:Dead + vec3 checkColor = texture2DLod(tex, texCoord, 0).rgb; + if (CheckForColor(checkColor, vec3(164, 157, 126)) || + CheckForColor(checkColor, vec3(201, 197, 176)) || + CheckForColor(checkColor, vec3(226, 221, 188)) || + CheckForColor(checkColor, vec3(153, 142, 95)) + ) { + emission = min(GetLuminance(color.rgb), 0.75) / 0.75; + emission = pow2(pow2(emission)) * 6.5; + color.gb *= 0.85; + } else emission = max0(GetLuminance(color.rgb) - 0.5) * 3.0; + } + else /*if (mat < 10520)*/ { // Furnace:Lit + lmCoordM.x *= 0.95; + + #include "/lib/materials/specificMaterials/terrain/cobblestone.glsl" + + float dotColor = dot(color.rgb, color.rgb); + emission = 2.5 * dotColor * max0(pow2(pow2(pow2(color.r))) - color.b) + pow(dotColor * 0.35, 32.0); + color.r *= 1.0 + 0.1 * emission; + } + } else { + if (mat < 10524) { // Cactus + float factor = sqrt1(color.r); + smoothnessG = factor * 0.5; + highlightMult = factor; + } + else /*if (mat < 10528)*/ { // Note Block, Jukebox + float factor = color.r * 0.5; + smoothnessG = factor; + smoothnessD = factor; + + #ifdef COATED_TEXTURES + noiseFactor = 0.66; + #endif + } + } + } else { + if (mat < 10536) { + if (mat < 10532) { // Soul Torch + noSmoothLighting = true; noDirectionalShading = true; + lmCoordM.x = min(lmCoordM.x * 0.9, 0.77); + + if (color.b > 0.6) { + emission = 2.7; + color.rgb = pow1_5(color.rgb); + color.r = min1(color.r + 0.1); + } + emission += 0.0001; // No light reducing during noon + + #ifdef DISTANT_LIGHT_BOKEH + DoDistantLightBokehMaterial(color, vec4(0.5, 1.0, 1.0, 1.0), emission, 3.0, lViewPos); + #endif + + #ifdef SNOWY_WORLD + snowFactor = 0.0; + #endif + } + else /*if (mat < 10536)*/ { // Brown Mushroom Block + if (color.r > color.g && color.g > color.b && color.b > 0.37) { + #include "/lib/materials/specificMaterials/terrain/cobblestone.glsl" + } else { + float factor = pow2(color.r) * color.r * 0.8; + highlightMult = 1.5; + smoothnessG = factor; + smoothnessD = factor * 0.9; + + #ifdef COATED_TEXTURES + noiseFactor = 0.33; + #endif + } + } + } else { + if (mat < 10540) { // Red Mushroom Block + if (color.r > color.g && color.g > color.b && color.b > 0.37) { + #include "/lib/materials/specificMaterials/terrain/cobblestone.glsl" + } else { + float factor = min1(pow2(color.g) + 0.25); + highlightMult = 1.5; + smoothnessG = factor; + smoothnessD = factor * 0.7; + + #ifdef COATED_TEXTURES + noiseFactor = 0.33; + #endif + } + } + else /*if (mat < 10544)*/ { // Mushroom Stem, + if (color.r > color.g && color.g > color.b && color.b < 0.6) { + #include "/lib/materials/specificMaterials/terrain/cobblestone.glsl" + } else { + float factor = pow2(pow2(color.g)); + highlightMult = 1.5; + smoothnessG = factor; + smoothnessD = factor * 0.5; + + #ifdef COATED_TEXTURES + noiseFactor = 0.33; + #endif + } + } + } + } + } else { + if (mat < 10560) { + if (mat < 10552) { + if (mat < 10548) { // Glow Lichen + noSmoothLighting = true; + + #if GLOWING_LICHEN > 0 + float dotColor = dot(color.rgb, color.rgb); + emission = min(pow2(pow2(dotColor) * dotColor) * 1.4 + dotColor * 0.9, 6.0); + emission = mix(emission, dotColor * 1.5, min1(lViewPos / 96.0)); // Less noise in the distance + + #if GLOWING_LICHEN == 1 + float skyLightFactor = pow2(1.0 - min1(lmCoord.y * 2.9)); + emission *= skyLightFactor; + + color.r *= 1.0 + 0.15 * skyLightFactor; + #else + color.r *= 1.15; + #endif + #endif + } + else /*if (mat < 10552)*/ { // Enchanting Table:Base + float dotColor = dot(color.rgb, color.rgb); + if (dotColor < 0.19 && color.r < color.b) { + #include "/lib/materials/specificMaterials/terrain/obsidian.glsl" + } else if (color.g >= color.r) { + #include "/lib/materials/specificMaterials/terrain/diamondBlock.glsl" + } else { + smoothnessG = color.r * 0.3 + 0.1; + } + + #ifdef SNOWY_WORLD + snowFactor = 0.0; + #endif + } + } else { + if (mat < 10556) { // End Portal Frame:Inactive + noSmoothLighting = true; + + if (abs(color.r - color.g - 0.05) < 0.10) { + #include "/lib/materials/specificMaterials/terrain/endStone.glsl" + } else { + #include "/lib/materials/specificMaterials/terrain/endPortalFrame.glsl" + } + + #ifdef SNOWY_WORLD + snowFactor = 0.0; + #endif + } + else /*if (mat < 10560)*/ { // End Portal Frame:Active + noSmoothLighting = true; + + if (abs(color.r - color.g - 0.05) < 0.10) { + #include "/lib/materials/specificMaterials/terrain/endStone.glsl" + } else { + #include "/lib/materials/specificMaterials/terrain/endPortalFrame.glsl" + + vec2 absCoord = abs(fract(playerPos.xz + cameraPosition.xz) - 0.5); + float maxCoord = max(absCoord.x, absCoord.y); + if (maxCoord < 0.2505) { // End Portal Frame:Eye of Ender + smoothnessG = 0.5; + smoothnessD = 0.5; + emission = pow2(min(color.g, 0.25)) * 170.0 * (0.28 - maxCoord); + } else { + float minCoord = min(absCoord.x, absCoord.y); + if (CheckForColor(color.rgb, vec3(153, 198, 147)) + && minCoord > 0.25) { // End Portal Frame:Emissive Corner Bits + emission = 1.4; + color.rgb = vec3(0.45, 1.0, 0.6); + } + } + } + + #ifdef SNOWY_WORLD + snowFactor = 0.0; + #endif + } + } + } else { + if (mat < 10568) { + if (mat < 10564) { // Lantern + noSmoothLighting = true; + lmCoordM.x = 0.77; + + #include "/lib/materials/specificMaterials/terrain/lanternMetal.glsl" + + emission = 4.3 * max0(color.r - color.b); + emission += min(pow2(pow2(0.75 * dot(color.rgb, color.rgb))), 5.0); + color.gb *= pow(vec2(0.8, 0.7), vec2(sqrt(emission) * 0.5)); + + #ifdef DISTANT_LIGHT_BOKEH + DoDistantLightBokehMaterial(color, vec4(1.0, 0.6, 0.2, 1.0), emission, 5.0, lViewPos); + #endif + + #ifdef SNOWY_WORLD + snowFactor = 0.0; + #endif + } + else /*if (mat < 10568)*/ { // Soul Lantern + noSmoothLighting = true; + lmCoordM.x = min(lmCoordM.x, 0.77); // consistency748523 + + #include "/lib/materials/specificMaterials/terrain/lanternMetal.glsl" + + emission = 1.45 * max0(color.g - color.r * 2.0); + emission += 1.17 * min(pow2(pow2(0.55 * dot(color.rgb, color.rgb))), 3.5); + + #ifdef DISTANT_LIGHT_BOKEH + DoDistantLightBokehMaterial(color, vec4(0.5, 1.0, 1.0, 1.0), emission, 3.0, lViewPos); + #endif + + #ifdef SNOWY_WORLD + snowFactor = 0.0; + #endif + } + } else { + if (mat < 10572) { // Turtle Egg, Sniffer Egg + smoothnessG = (color.r + color.g) * 0.35; + smoothnessD = (color.r + color.g) * 0.25; + } + else /*if (mat < 10576)*/ { // Dragon Egg + emission = float(color.b > 0.1) * 10.0 + 1.25; + } + } + } + } + } else { + if (mat < 10608) { + if (mat < 10592) { + if (mat < 10584) { + if (mat < 10580) { // Smoker:Lit + lmCoordM.x *= 0.95; + + float dotColor = dot(color.rgb, color.rgb); + if (color.r > color.b * 2.0 && dotColor > 0.7) { + emission = 2.5 * dotColor; + color.r *= 1.5; + } else { + #include "/lib/materials/specificMaterials/terrain/cobblestone.glsl" + } + } + else /*if (mat < 10584)*/ { // Blast Furnace:Lit + lmCoordM.x *= 0.95; + + float dotColor = dot(color.rgb, color.rgb); + if (color.r > color.b * 2.0 && dotColor > 0.7) { + emission = pow2(color.g) * (20.0 - 13.7 * float(color.b > 0.25)); + color.r *= 1.5; + } else { + #include "/lib/materials/specificMaterials/terrain/cobblestone.glsl" + } + } + } else { + if (mat < 10588) { // Coal Block + smoothnessG = dot(color.rgb, vec3(0.5)); + smoothnessG = min1(smoothnessG); + smoothnessD = smoothnessG; + } + else /*if (mat < 10592)*/ { // Respawn Anchor:Unlit + noSmoothLighting = true; + + #include "/lib/materials/specificMaterials/terrain/cryingObsidian.glsl" + emission += 0.2; + + #ifdef SNOWY_WORLD + snowFactor = 0.0; + #endif + } + } + } else { + if (mat < 10600) { + if (mat < 10596) { // Respawn Anchor:Lit + noSmoothLighting = true; + + #include "/lib/materials/specificMaterials/terrain/cryingObsidian.glsl" + + vec2 absCoord = abs(signMidCoordPos); + if (NdotU > 0.9 && max(absCoord.x, absCoord.y) < 0.754) { // Portal + highlightMult = 0.0; + smoothnessD = 0.0; + emission = pow2(color.r) * color.r * 16.0; + maRecolor = vec3(0.0); + } else if (color.r + color.g > 1.3) { // Respawn Anchor:Glowstone Part + emission = 4.5 * sqrt3(max0(color.r + color.g - 1.3)); + } + + emission += 0.3; + + #ifdef SNOWY_WORLD + snowFactor = 0.0; + #endif + } + else /*if (mat < 10600)*/ { // Redstone Wire:Lit + #include "/lib/materials/specificMaterials/terrain/redstoneBlock.glsl" + + #if COLORED_LIGHTING_INTERNAL == 0 + emission = pow2(min(color.r, 0.9)) * 4.0; + #else + vec3 colorP = color.rgb / glColor.rgb; + emission = pow2((colorP.r + color.r) * 0.5) * 3.5; + #endif + + color.gb *= 0.25; + } + } else { + if (mat < 10604) { // Redstone Wire:Unlit + #include "/lib/materials/specificMaterials/terrain/redstoneBlock.glsl" + } + else /*if (mat < 10608)*/ { // Redstone Torch + noSmoothLighting = true; noDirectionalShading = true; + lmCoordM.x = min(lmCoordM.x * 0.9, 0.77); + + #include "/lib/materials/specificMaterials/terrain/redstoneTorch.glsl" + emission += 0.0001; // No light reducing during noon + + #ifdef DISTANT_LIGHT_BOKEH + DoDistantLightBokehMaterial(color, vec4(1.0, 0.0, 0.0, 1.0), emission, 5.0, lViewPos); + #endif + } + } + } + } else { + if (mat < 10624) { + if (mat < 10616) { + if (mat < 10612) { // Redstone Block + #include "/lib/materials/specificMaterials/terrain/redstoneBlock.glsl" + #ifdef EMISSIVE_REDSTONE_BLOCK + emission = 0.75 + 3.0 * pow2(pow2(color.r)); + color.gb *= 0.65; + + #ifdef SNOWY_WORLD + snowFactor = 0.0; + #endif + #endif + } + else /*if (mat < 10616)*/ { // Redstone Ore:Unlit + if (color.r - color.g > 0.2) { // Redstone Ore:Unlit:Redstone Part + #include "/lib/materials/specificMaterials/terrain/redstoneBlock.glsl" + #ifdef GLOWING_ORE_REDSTONE + emission = color.r * pow1_5(color.r) * 4.0; + color.gb *= 1.0 - 0.9 * min1(GLOWING_ORE_MULT); + emission *= GLOWING_ORE_MULT; + #endif + } else { // Redstone Ore:Unlit:Stone Part + #include "/lib/materials/specificMaterials/terrain/stone.glsl" + } + } + } else { + if (mat < 10620) { // Redstone Ore:Lit + if (color.r - color.g > 0.2) { // Redstone Ore:Lit:Redstone Part + #include "/lib/materials/specificMaterials/terrain/redstoneBlock.glsl" + emission = pow2(color.r) * color.r * 5.5; + color.gb *= 0.1; + } else { // Redstone Ore:Lit:Stone Part + #include "/lib/materials/specificMaterials/terrain/stone.glsl" + } + noSmoothLighting = true; + } + else /*if (mat < 10624)*/ { // Deepslate Redstone Ore:Unlit + if (color.r - color.g > 0.2) { // Deepslate Redstone Ore:Unlit:Redstone Part + #include "/lib/materials/specificMaterials/terrain/redstoneBlock.glsl" + #ifdef GLOWING_ORE_REDSTONE + emission = color.r * pow1_5(color.r) * 4.0; + color.gb *= 1.0 - 0.9 * min1(GLOWING_ORE_MULT); + emission *= GLOWING_ORE_MULT; + #endif + } else { // Deepslate Redstone Ore:Unlit:Deepslate Part + #include "/lib/materials/specificMaterials/terrain/deepslate.glsl" + } + } + } + } else { + if (mat < 10632) { + if (mat < 10628) { // Deepslate Redstone Ore:Lit + if (color.r - color.g > 0.2) { // Deepslate Redstone Ore:Lit:Redstone Part + #include "/lib/materials/specificMaterials/terrain/redstoneBlock.glsl" + emission = pow2(color.r) * color.r * 6.0; + color.gb *= 0.05; + } else { // Deepslate Redstone Ore:Lit:Deepslate Part + #include "/lib/materials/specificMaterials/terrain/deepslate.glsl" + } + noSmoothLighting = true; + } + else /*if (mat < 10632)*/ { // Cave Vines:No Glow Berries + subsurfaceMode = 1; + lmCoordM.x *= 0.875; + } + } else { + if (mat < 10636) { // Cave Vines:With Glow Berries + subsurfaceMode = 1; + lmCoordM.x *= 0.875; + + if (color.r > 0.64) { + emission = color.r < 0.75 ? 2.5 : 8.0; + color.rgb = color.rgb * vec3(1.0, 0.8, 0.6); + } + } + else /*if (mat < 10640)*/ { // Redstone Lamp:Unlit + materialMask = OSIEBCA; // Intense Fresnel + smoothnessG = color.r * 0.5 + 0.2; + float factor = pow2(smoothnessG); + highlightMult = factor * 2.0 + 1.0; + smoothnessD = min1(factor * 2.0); + } + } + } + } + } + } else { + if (mat < 10704) { + if (mat < 10672) { + if (mat < 10656) { + if (mat < 10648) { + if (mat < 10644) { // Redstone Lamp:Lit + noDirectionalShading = true; + lmCoordM.x = 0.84; + + materialMask = OSIEBCA; // Intense Fresnel + smoothnessG = color.r * 0.35 + 0.2; + float factor = pow2(smoothnessG); + highlightMult = factor * 2.0 + 1.0; + smoothnessD = min1(factor * 2.0); + + if (color.b > 0.1) { + float dotColor = dot(color.rgb, color.rgb); + #if MC_VERSION >= 11300 + emission = pow2(dotColor) * 1.0; + #else + emission = dotColor * 1.2; + #endif + color.rgb = pow1_5(color.rgb); + maRecolor = vec3(emission * 0.2); + } + + #ifdef DISTANT_LIGHT_BOKEH + DoDistantLightBokehMaterial(emission, 5.0, lViewPos); + #endif + } + else /*if (mat < 10648)*/ { // Repeater, Comparator + noSmoothLighting = true; + + #if ANISOTROPIC_FILTER > 0 + color = texture2D(tex, texCoord); // Fixes artifacts + color.rgb *= glColor.rgb; + #endif + + vec3 absDif = abs(vec3(color.r - color.g, color.g - color.b, color.r - color.b)); + float maxDif = max(absDif.r, max(absDif.g, absDif.b)); + if (maxDif > 0.125 || color.b > 0.99) { // Redstone Parts + if (color.r < 0.999 && color.b > 0.4) color.gb *= 0.5; // Comparator:Emissive Wire + + #include "/lib/materials/specificMaterials/terrain/redstoneTorch.glsl" + } else { // Quartz Base + float factor = pow2(color.g) * 0.6; + + smoothnessG = factor; + highlightMult = 1.0 + 2.5 * factor; + smoothnessD = factor; + } + } + } else { + if (mat < 10652) { // Shroomlight + noSmoothLighting = true; noDirectionalShading = true; + lmCoordM = vec2(1.0, 0.0); + + float dotColor = dot(color.rgb, color.rgb); + emission = min(pow2(pow2(pow2(dotColor * 0.6))), 6.0) * 0.8 + 0.5; + + #ifdef DISTANT_LIGHT_BOKEH + DoDistantLightBokehMaterial(emission, 2.5, lViewPos); + #endif + } + else /*if (mat < 10656)*/ { // Campfire:Lit + #ifdef GBUFFERS_TERRAIN + vec3 fractPos = fract(playerPos + cameraPosition) - 0.5; + lmCoordM.x = pow2(pow2(smoothstep1(1.0 - 0.4 * dot(fractPos.xz, fractPos.xz)))); + #endif + + float dotColor = dot(color.rgb, color.rgb); + if (color.r > color.b && color.r - color.g < 0.15 && dotColor < 1.4) { + #include "/lib/materials/specificMaterials/terrain/oakWood.glsl" + } else if (color.r > color.b || dotColor > 2.9) { + noDirectionalShading = true; + emission = 3.5; + color.rgb *= sqrt1(GetLuminance(color.rgb)); + } + } + } + } else { + if (mat < 10664) { + if (mat < 10660) { // Soul Campfire:Lit + #if COLORED_LIGHTING_INTERNAL == 0 + noSmoothLighting = true; + #else + #ifdef GBUFFERS_TERRAIN + vec3 fractPos = fract(playerPos + cameraPosition) - 0.5; + lmCoordM.x = pow2(pow2(smoothstep1(1.0 - 0.4 * dot(fractPos.xz, fractPos.xz)))); + lmCoordM.x *= 0.95; + #endif + #endif + + float dotColor = dot(color.rgb, color.rgb); + if (color.r > color.b) { + #include "/lib/materials/specificMaterials/terrain/oakWood.glsl" + } else if (color.g - color.r > 0.1 || dotColor > 2.9) { + noDirectionalShading = true; + emission = 2.1; + color.rgb *= sqrt1(GetLuminance(color.rgb)); + } + + #ifdef SNOWY_WORLD + snowFactor = 0.0; + #endif + } + else /*if (mat < 10664)*/ { // Campfire:Unlit, Soul Campfire:Unlit + noSmoothLighting = true; + + if (color.r > color.b) { + #include "/lib/materials/specificMaterials/terrain/oakWood.glsl" + } + } + } else { + if (mat < 10668) { // Observer + if (color.r > 0.1 && color.g + color.b < 0.1) { + #include "/lib/materials/specificMaterials/terrain/redstoneTorch.glsl" + } else { + #include "/lib/materials/specificMaterials/terrain/cobblestone.glsl" + } + } + else /*if (mat < 10672)*/ { // Wool+, Carpet+ except Lime + #ifdef COATED_TEXTURES + noiseFactor = 0.77; + #endif + } + } + } + } else { + if (mat < 10688) { + if (mat < 10680) { + if (mat < 10676) { // Bone Block + smoothnessG = color.r * 0.2; + smoothnessD = smoothnessG; + + #ifdef GBUFFERS_TERRAIN + DoBrightBlockTweaks(color.rgb, 0.5, shadowMult, highlightMult); + #endif + + #ifdef COATED_TEXTURES + noiseFactor = 0.33; + #endif + } + else /*if (mat < 10680)*/ { // Barrel, Beehive, Bee Nest, Honeycomb Block + #include "/lib/materials/specificMaterials/terrain/cobblestone.glsl" + + #ifdef COATED_TEXTURES + noiseFactor = 0.66; + #endif + } + } else { + if (mat < 10684) { // Ochre Froglight + float frogPow = 8.0; + #include "/lib/materials/specificMaterials/terrain/froglights.glsl" + } + else /*if (mat < 10688)*/ { // Verdant Froglight + float frogPow = 16.0; + #include "/lib/materials/specificMaterials/terrain/froglights.glsl" + } + } + } else { + if (mat < 10696) { + if (mat < 10692) { // Pearlescent Froglight + float frogPow = 24.0; + #include "/lib/materials/specificMaterials/terrain/froglights.glsl" + } + else /*if (mat < 10696)*/ { // Reinforced Deepslate + if (abs(color.r - color.g) < 0.01) { // Reinforced Deepslate:Deepslate Part + #include "/lib/materials/specificMaterials/terrain/deepslate.glsl" + } else { // Reinforced Deepslate:Sculk + float boneFactor = max0(color.r * 1.25 - color.b); + + if (boneFactor < 0.0001) emission = 0.15; + + smoothnessG = min1(boneFactor * 1.7); + smoothnessD = smoothnessG; + } + } + } else { + if (mat < 10700) { // Sculk, Sculk Catalyst, Sculk Vein, Sculk Sensor:Unlit + float boneFactor = max0(color.r * 1.25 - color.b); + + if (boneFactor < 0.0001) { + emission = pow2(max0(color.g - color.r)) * 1.7; + + #ifdef GBUFFERS_TERRAIN + vec2 bpos = floor(playerPos.xz + cameraPosition.xz + 0.501) + + floor(playerPos.y + cameraPosition.y + 0.501); + bpos = bpos * 0.01 + 0.003 * frameTimeCounter; + emission *= pow2(texture2D(noisetex, bpos).r * pow1_5(texture2D(noisetex, bpos * 0.5).r)); + emission *= 6.0; + #endif + } + + smoothnessG = min1(boneFactor * 1.7); + smoothnessD = smoothnessG; + + #ifdef SNOWY_WORLD + snowFactor = 0.0; + #endif + } + else /*if (mat < 10704)*/ { // Sculk Shrieker + float boneFactor = max0(color.r * 1.25 - color.b); + + if (boneFactor < 0.0001) { + emission = pow2(max0(color.g - color.r)) * 2.0; + + #ifdef GBUFFERS_TERRAIN + vec2 coordFactor = abs(fract(playerPos.xz + cameraPosition.xz) - 0.5); + float coordFactorM = max(coordFactor.x, coordFactor.y); + if (coordFactorM < 0.43) emission += color.g * 7.0; + #endif + } + + smoothnessG = min1(boneFactor * 1.7); + smoothnessD = smoothnessG; + + #ifdef SNOWY_WORLD + snowFactor = 0.0; + #endif + } + } + } + } + } else { + if (mat < 10736) { + if (mat < 10720) { + if (mat < 10712) { + if (mat < 10708) { // Sculk Sensor:Lit + lmCoordM = vec2(0.0, 0.0); + emission = pow2(max0(color.g - color.r)) * 7.0 + 0.7; + } + else /*if (mat < 10712)*/ { // Spawner + smoothnessG = color.b + 0.2; + smoothnessD = smoothnessG; + + emission = 7.0 * float(CheckForColor(color.rgb, vec3(110, 4, 83))); + } + } else { + if (mat < 10716) { // Tuff++ + smoothnessG = color.r * 0.4; + smoothnessD = smoothnessG; + } + else /*if (mat < 10720)*/ { // Clay + highlightMult = 2.0; + smoothnessG = pow2(pow2(color.g)) * 0.5; + smoothnessG = min1(smoothnessG); + smoothnessD = smoothnessG * 0.7; + + #ifdef GBUFFERS_TERRAIN + DoOceanBlockTweaks(smoothnessD); + #endif + + #ifdef COATED_TEXTURES + noiseFactor = 0.77; + #endif + } + } + } else { + if (mat < 10728) { + if (mat < 10724) { // Ladder + noSmoothLighting = true; + } + else /*if (mat < 10728)*/ { // Gravel, Suspicious Gravel + #include "/lib/materials/specificMaterials/terrain/stone.glsl" + + #ifdef GBUFFERS_TERRAIN + DoOceanBlockTweaks(smoothnessD); + #endif + + #ifdef COATED_TEXTURES + noiseFactor = 1.25; + #endif + } + } else { + if (mat < 10732) { // Flower Pot, Potted Stuff:Without Subsurface + noSmoothLighting = true; + } + else /*if (mat < 10736)*/ { // Potted Stuff:With Subsurface + noSmoothLighting = true; + + float NdotE = dot(normalM, eastVec); + if (abs(abs(NdotE) - 0.5) < 0.4) { + subsurfaceMode = 1, noDirectionalShading = true; + } + } + } + } + } else { + if (mat < 10752) { + if (mat < 10744) { + if (mat < 10740) { // Structure Block, Jigsaw Block, Test Block, Test Instance Block + float blockRes = absMidCoordPos.x * atlasSize.x; + vec2 signMidCoordPosM = (floor((signMidCoordPos + 1.0) * blockRes) + 0.5) / blockRes - 1.0; + float dotsignMidCoordPos = dot(signMidCoordPosM, signMidCoordPosM); + float lBlockPosM = pow2(max0(1.0 - 1.125 * pow2(dotsignMidCoordPos))); + + emission = 2.5 * lBlockPosM + 1.0; + color.rgb = mix(color.rgb, pow2(color.rgb), 0.5); + } + else /*if (mat < 10744)*/ { // Chain + noSmoothLighting = true; + lmCoordM.x = min(lmCoordM.x, 0.77); // consistency748523 + + #include "/lib/materials/specificMaterials/terrain/lanternMetal.glsl" + } + } else { + if (mat < 10748) { // Soul Sand, Soul Soil + smoothnessG = color.r * 0.4; + smoothnessD = color.r * 0.25; + } + else /*if (mat < 10752)*/ { // Dried Kelp Block + smoothnessG = pow2(color.b) * 0.8; + smoothnessD = smoothnessG; + + #ifdef COATED_TEXTURES + noiseFactor = 0.5; + #endif + } + } + } else { + if (mat < 10760) { + if (mat < 10756) { // Bamboo + if (absMidCoordPos.x > 0.005) + subsurfaceMode = 1, noSmoothLighting = true, noDirectionalShading = true; + // No further material properties as bamboo jungles are already slow + } + else /*if (mat < 10760)*/ { // Block of Bamboo, Bamboo Planks++ + #include "/lib/materials/specificMaterials/planks/bambooPlanks.glsl" + } + } else { + if (mat < 10764) { // Cherry Planks++ + #include "/lib/materials/specificMaterials/planks/cherryPlanks.glsl" + } + else /*if (mat < 10768)*/ { // Cherry Log, Cherry Wood + if (color.g > 0.33) { // Cherry Log:Clean Part + #include "/lib/materials/specificMaterials/planks/cherryPlanks.glsl" + } else { // Cherry Log:Wood Part, Cherry Wood + smoothnessG = pow2(color.r); + smoothnessD = smoothnessG; + } + } + } + } + } + } + } + } else { + if (mat < 10896) { + if (mat < 10832) { + if (mat < 10800) { + if (mat < 10784) { + if (mat < 10776) { + if (mat < 10772) { // Torchflower + #include "/lib/materials/specificMaterials/terrain/torchflower.glsl" + } + else /*if (mat < 10776)*/ { // Potted Torchflower + noSmoothLighting = true; + + float NdotE = dot(normalM, eastVec); + if (abs(abs(NdotE) - 0.5) < 0.4) { + #include "/lib/materials/specificMaterials/terrain/torchflower.glsl" + } + } + } else { + if (mat < 10780) { // Crimson Fungus, Warped Fungus + noSmoothLighting = true; + + if (color.r > 0.91) { + emission = 3.0 * color.g; + color.r *= 1.2; + maRecolor = vec3(0.1); + } + } + else /*if (mat < 10784)*/ { // Potted Crimson Fungus, Potted Warped Fungus + noSmoothLighting = true; + + float NdotE = dot(normalM, eastVec); + if (abs(abs(NdotE) - 0.5) < 0.4) { + if (color.r > 0.91) { + emission = 3.0 * color.g; + color.r *= 1.2; + maRecolor = vec3(0.1); + } + } + } + } + } else { + if (mat < 10792) { + if (mat < 10788) { // Calibrated Sculk Sensor:Unlit + #if ANISOTROPIC_FILTER == 0 + vec4 checkColor = color; + #else + vec4 checkColor = texture2D(tex, texCoord); // Fixes artifacts + #endif + if (checkColor.r + checkColor.b > checkColor.g * 2.2 || checkColor.r > 0.99) { // Amethyst Part + #if GLOWING_AMETHYST >= 1 + #if defined GBUFFERS_TERRAIN && !defined IPBR_COMPATIBILITY_MODE + vec2 absCoord = abs(signMidCoordPos); + float maxBlockPos = max(absCoord.x, absCoord.y); + emission = pow2(max0(1.0 - maxBlockPos) * color.g) * 5.4 + 1.2 * color.g; + + color.g *= 1.0 - emission * 0.07; + color.rgb *= color.g; + #else + emission = pow2(color.g + color.b) * 0.32; + #endif + #endif + + #ifdef COATED_TEXTURES + noiseFactor = 0.66; + #endif + } else { // Sculk Part + float boneFactor = max0(color.r * 1.25 - color.b); + + if (boneFactor < 0.0001) emission = pow2(max0(color.g - color.r)); + + smoothnessG = min1(boneFactor * 1.7); + smoothnessD = smoothnessG; + } + + #ifdef SNOWY_WORLD + snowFactor = 0.0; + #endif + } + else /*if (mat < 10792)*/ { // Calibrated Sculk Sensor:Lit + lmCoordM = vec2(0.0, 0.0); + + #if ANISOTROPIC_FILTER == 0 + vec4 checkColor = color; + #else + vec4 checkColor = texture2D(tex, texCoord); // Fixes artifacts + #endif + if (checkColor.r + checkColor.b > checkColor.g * 2.2 || checkColor.r > 0.99) { // Amethyst Part + lmCoordM.x = 1.0; + + #if GLOWING_AMETHYST >= 1 + #if defined GBUFFERS_TERRAIN && !defined IPBR_COMPATIBILITY_MODE + vec2 absCoord = abs(signMidCoordPos); + float maxBlockPos = max(absCoord.x, absCoord.y); + emission = pow2(max0(1.0 - maxBlockPos) * color.g) * 5.4 + 1.2 * color.g; + + color.g *= 1.0 - emission * 0.07; + color.rgb *= color.g; + #else + emission = pow2(color.g + color.b) * 0.32; + #endif + #endif + + #ifdef COATED_TEXTURES + noiseFactor = 0.66; + #endif + } else { // Sculk Part + emission = pow2(max0(color.g - color.r)) * 7.0 + 0.7; + } + } + } else { + if (mat < 10796) { // Oak Door + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/planks/oakPlanks.glsl" + } + else /*if (mat < 10800)*/ { // Spruce Door + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/planks/sprucePlanks.glsl" + } + } + } + } else { + if (mat < 10816) { + if (mat < 10808) { + if (mat < 10804) { // Birch Door + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/planks/birchPlanks.glsl" + } + else /*if (mat < 10808)*/ { // Jungle Door + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/planks/junglePlanks.glsl" + } + } else { + if (mat < 10812) { // Acacia Door + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/planks/acaciaPlanks.glsl" + } + else /*if (mat < 10816)*/ { // Dark Oak Door + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/planks/darkOakPlanks.glsl" + } + } + } else { + if (mat < 10824) { + if (mat < 10820) { // Mangrove Door + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/planks/mangrovePlanks.glsl" + } + else /*if (mat < 10824)*/ { // Crimson Door + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/planks/crimsonPlanks.glsl" + } + } else { + if (mat < 10828) { // Warped Door + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/planks/warpedPlanks.glsl" + } + else /*if (mat < 10832)*/ { // Bamboo Door + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/planks/bambooPlanks.glsl" + } + } + } + } + } else { + if (mat < 10864) { + if (mat < 10848) { + if (mat < 10840) { + if (mat < 10836) { // Cherry Door + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/planks/cherryPlanks.glsl" + } + else /*if (mat < 10840)*/ { // Brewing Stand + #ifdef GBUFFERS_TERRAIN + vec3 worldPos = playerPos + cameraPosition; + vec3 fractPos = fract(worldPos.xyz); + vec3 coordM = abs(fractPos.xyz - 0.5); + float cLength = dot(coordM, coordM) * 1.3333333; + cLength = pow2(1.0 - cLength); + + if (color.r + color.g > color.b * 3.0 && max(coordM.x, coordM.z) < 0.07) { + emission = 2.5 * pow1_5(cLength); + } else { + lmCoordM.x = max(lmCoordM.x * 0.9, cLength); + + #include "/lib/materials/specificMaterials/terrain/cobblestone.glsl" + } + #else + emission = max0(color.r + color.g - color.b * 1.8 - 0.3) * 2.2; + #endif + } + } else { + if (mat < 10844) { // Lime Concrete + smoothnessG = 0.4; + highlightMult = 1.5; + smoothnessD = 0.3; + + #ifdef COATED_TEXTURES + noiseFactor = 0.2; + #endif + + #ifdef GREEN_SCREEN_LIME + materialMask = OSIEBCA * 240.0; // Green Screen Lime Blocks + #endif + } + else /*if (mat < 10848)*/ { // Lime Carpet, Lime Wool + #ifdef COATED_TEXTURES + noiseFactor = 0.77; + #endif + + #ifdef GREEN_SCREEN_LIME + materialMask = OSIEBCA * 240.0; // Green Screen Lime Blocks + #endif + } + } + } else { + if (mat < 10856) { + if (mat < 10852) { // Crafter + smoothnessG = pow2(color.b); + smoothnessD = max(smoothnessG, 0.2); + + if (color.r > 2.5 * (color.g + color.b)) { + emission = 4.0; + color.rgb *= color.rgb; + } + } + else /*if (mat < 10856)*/ { // Copper Bulb:BrighterOnes + #include "/lib/materials/specificMaterials/terrain/copperBulb.glsl" + } + } else { + if (mat < 10860) { // Copper Bulb:DimmerOnes + #include "/lib/materials/specificMaterials/terrain/copperBulb.glsl" + emission *= 0.85; + } + else /*if (mat < 10864)*/ { // Copper Door+ + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/terrain/copperBlock.glsl" + } + } + } + } else { + if (mat < 10880) { + if (mat < 10872) { + if (mat < 10868) { // Copper Trapdoor+ + #include "/lib/materials/specificMaterials/terrain/copperBlock.glsl" + } + else /*if (mat < 10872)*/ { // Trial Spawner:NotOminous:Active, Vault:NotOminous:Active + smoothnessG = max0(color.b - color.r * 0.5); + smoothnessD = smoothnessG; + + emission = max0(color.r - color.b) * 3.0; + color.rgb = pow(color.rgb, vec3(1.0 + 0.5 * sqrt(emission))); + } + } else { + if (mat < 10876) { // Trial Spawner:Inactive, Vault:Inactive + smoothnessG = max0(color.b - color.r * 0.5); + smoothnessD = smoothnessG; + } + else /*if (mat < 10880)*/ { // Trial Spawner:Ominous:Active, Vault:Ominous:Active + float maxComponent = max(max(color.r, color.g), color.b); + float minComponent = min(min(color.r, color.g), color.b); + float saturation = (maxComponent - minComponent) / (1.0 - abs(maxComponent + minComponent - 1.0)); + + smoothnessG = max0(color.b - pow2(saturation) * 0.5) * 0.5 + 0.1; + smoothnessD = smoothnessG; + + emission = saturation > 0.5 ? 4.0 : 0.0; + color.rgb = pow(color.rgb, vec3(1.0 + (0.3 + 0.5 * color.r) * emission)); + } + } + } else { + if (mat < 10888) { + if (mat < 10884) { // + + } + else /*if (mat < 10888)*/ { // Weeping Vines, Twisting Vines + noSmoothLighting = true; + + #if defined COATED_TEXTURES && defined GBUFFERS_TERRAIN + doTileRandomisation = false; + #endif + + if (color.r > 0.91) { + emission = 3.0 * color.g; + color.r *= 1.2; + maRecolor = vec3(0.1); + } + } + } else { + if (mat < 10892) { // Hay Block + smoothnessG = pow2(color.r) * 0.5; + highlightMult *= 1.5; + smoothnessD = float(color.r > color.g * 2.0) * 0.3; + } + else /*if (mat < 10896)*/ { // Iron Door + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/terrain/ironBlock.glsl" + color.rgb *= 0.9; + } + } + } + } + } + } else { + if (mat < 10960) { + if (mat < 10928) { + if (mat < 10900) { // Iron Trapdoor + #include "/lib/materials/specificMaterials/terrain/ironBlock.glsl" + color.rgb *= 0.9; + } + else if (mat < 10924) { // Candles:Lit, Candle Cakes:Lit + #include "/lib/materials/specificMaterials/terrain/candle.glsl" + } + else /*if (mat < 10928)*/ { // + + } + } else { + if (mat < 10944) { + if (mat < 10936) { + if (mat < 10932) { // Pale Oak Planks++ + #include "/lib/materials/specificMaterials/planks/paleOakPlanks.glsl" + } + else /*if (mat < 10936)*/ { // // Pale Oak Log, Pale Oak Wood + if (color.g > 0.45) { // Pale Oak Log:Clean Part + #include "/lib/materials/specificMaterials/planks/paleOakPlanks.glsl" + } else { // Pale Oak Log:Wood Part, Pale Oak Wood + #include "/lib/materials/specificMaterials/terrain/paleOakWood.glsl" + } + } + } else { + if (mat < 10940) { // Pale Oak Door + noSmoothLighting = true; + #include "/lib/materials/specificMaterials/planks/paleOakPlanks.glsl" + } + else /*if (mat < 10944)*/ { // Resin++ + smoothnessG = color.r * 0.25; + smoothnessD = smoothnessG; + } + } + } else { + if (mat < 10952) { + if (mat < 10948) { // Creaking Heart: Inactive + #include "/lib/materials/specificMaterials/terrain/paleOakWood.glsl" + } + else /*if (mat < 10952)*/ { // Creaking Heart: Active + #include "/lib/materials/specificMaterials/terrain/paleOakWood.glsl" + + if (color.r + color.g > color.b * 4.0) { + emission = pow2(color.r) * 2.5 + 0.2; + } + } + } else { + if (mat < 10956) { // Snow: Layers 1 to 7 + #include "/lib/materials/specificMaterials/terrain/snow.glsl" + + #if defined GBUFFERS_TERRAIN && defined TAA + float snowFadeOut = 0.0; + snowFadeOut = clamp01((playerPos.y) * 0.1); + snowFadeOut *= clamp01((lViewPos - 64.0) * 0.01); + + if (dither + 0.25 < snowFadeOut) discard; + #endif + } + else /*if (mat < 10960)*/ { // Target Block: Inactive + smoothnessG = pow2(color.r) * 0.5; + smoothnessD = smoothnessG * 0.5; + } + } + } + } + } else { + if (mat < 10992) { + if (mat < 10976) { + if (mat < 10968) { + if (mat < 10964) { // Target Block: Active + smoothnessG = pow2(color.r) * 0.5; + smoothnessD = smoothnessG * 0.5; + + if (color.r > color.g + color.b) { + if (CheckForColor(color.rgb, vec3(220, 74, 74))) { + emission = 5.0; + color.rgb *= mix(vec3(1.0), pow2(color.rgb), 0.9); + } else { + emission = 3.0; + color.rgb *= pow2(color.rgb); + } + } + } + else /*if (mat < 10968)*/ { // Sponge + smoothnessG = pow2(color.g) * 0.2; + smoothnessD = smoothnessG * 0.5; + } + } else { + if (mat < 10972) { // Wet Sponge + smoothnessG = color.g * 0.75; + highlightMult = 0.3; + smoothnessD = smoothnessG * 0.25; + } + else /*if (mat < 10976)*/ { // Firefly Bush + subsurfaceMode = 1, noSmoothLighting = true, noDirectionalShading = true; + + #if defined COATED_TEXTURES && defined GBUFFERS_TERRAIN + doTileRandomisation = false; + #endif + + color.rgb *= 1.5; + } + } + } else { + if (mat < 10984) { + if (mat < 10980) { // Open Eyeblossom + #include "/lib/materials/specificMaterials/terrain/openEyeblossom.glsl" + } + else /*if (mat < 10984)*/ { // + noSmoothLighting = true; + + float NdotE = dot(normalM, eastVec); + if (abs(abs(NdotE) - 0.5) < 0.4) { + #include "/lib/materials/specificMaterials/terrain/openEyeblossom.glsl" + } + } + } else { + if (mat < 10988) { // + + } + else /*if (mat < 10992)*/ { // + + } + } + } + } else { + if (mat < 11008) { + if (mat < 11000) { + if (mat < 10996) { // + + } + else /*if (mat < 11000)*/ { // + + } + } else { + if (mat < 11004) { // + + } + else /*if (mat < 11008)*/ { // + + } + } + } else { + if (mat < 11016) { + if (mat < 11012) { // + + } + else /*if (mat < 11016)*/ { // + + } + } else { + if (mat < 11020) { // + + } + else /*if (mat < 11024)*/ { // + + } + } + } + } + } + } + } + } +} +} + +#ifdef GBUFFERS_TERRAIN + else { // mat < 10000 + // Support for the Enhanced Block Entities mod. The mod makes block entities render in gbuffers_terrain + int blockEntityId = mat; + #include "/lib/materials/materialHandling/blockEntityMaterials.glsl" + } +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/translucentMaterials.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/translucentMaterials.glsl new file mode 100644 index 0000000..a7d610d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialHandling/translucentMaterials.glsl @@ -0,0 +1,140 @@ +if (mat < 32008) { + if (mat < 30016) { + if (mat < 30008) { + if (mat == 30000) { // + + } else if (mat == 30004) { // + + } + } else { + if (mat == 30008) { // Tinted Glass + #ifdef CONNECTED_GLASS_EFFECT + uint voxelID = uint(254); + bool isPane = false; + DoConnectedGlass(colorP, color, noGeneratedNormals, playerPos, worldGeoNormal, voxelID, isPane); + #endif + color.a = pow(color.a, 1.0 - fresnel * 0.65); + reflectMult = 0.75; + } else /*if (mat == 30012)*/ { // Slime Block + translucentMultCalculated = true; + reflectMult = 0.7; + translucentMult.rgb = pow2(color.rgb) * 0.2; + + smoothnessG = color.g * 0.7; + highlightMult = 2.5; + } + } + } else { + if (mat < 32000) { + if (mat < 31000) { + if (mat == 30016) { // Honey Block + translucentMultCalculated = true; + reflectMult = 1.0; + translucentMult.rgb = pow2(color.rgb) * 0.2; + + smoothnessG = color.r * 0.7; + highlightMult = 2.5; + } else /*if (mat == 30020)*/ { // Nether Portal + #ifdef SPECIAL_PORTAL_EFFECTS + #include "/lib/materials/specificMaterials/translucents/netherPortal.glsl" + #endif + } + } else { // (31XXX) + if (mat % 2 == 0) { // Stained Glass + #ifdef CONNECTED_GLASS_EFFECT + uint voxelID = uint(200 + (mat - 31000) / 2); + bool isPane = false; + DoConnectedGlass(colorP, color, noGeneratedNormals, playerPos, worldGeoNormal, voxelID, isPane); + #endif + #include "/lib/materials/specificMaterials/translucents/stainedGlass.glsl" + } else /*if (mat % 2 == 1)*/ { // Stained Glass Pane + #ifdef CONNECTED_GLASS_EFFECT + uint voxelID = uint(200 + (mat - 31000) / 2); + bool isPane = true; + DoConnectedGlass(colorP, color, noGeneratedNormals, playerPos, worldGeoNormal, voxelID, isPane); + #endif + #include "/lib/materials/specificMaterials/translucents/stainedGlass.glsl" + noSmoothLighting = true; + } + } + } else { + if (mat == 32000) { // Water + #include "/lib/materials/specificMaterials/translucents/water.glsl" + } else /*if (mat == 32004)*/ { // Ice + smoothnessG = pow2(color.g) * color.g; + highlightMult = pow2(min1(pow2(color.g) * 1.5)) * 3.5; + + reflectMult = 0.7; + } + } + } +} else { + if (mat < 32024) { + if (mat < 32016) { + if (mat == 32008) { // Glass + #ifdef CONNECTED_GLASS_EFFECT + uint voxelID = uint(217); + bool isPane = false; + DoConnectedGlass(colorP, color, noGeneratedNormals, playerPos, worldGeoNormal, voxelID, isPane); + #endif + #include "/lib/materials/specificMaterials/translucents/glass.glsl" + } else /*if (mat == 32012)*/ { // Glass Pane + #ifdef CONNECTED_GLASS_EFFECT + uint voxelID = uint(218); + bool isPane = true; + DoConnectedGlass(colorP, color, noGeneratedNormals, playerPos, worldGeoNormal, voxelID, isPane); + #endif + if (color.a < 0.001 && abs(NdotU) > 0.95) discard; // Fixing artifacts on CTM/Opti connected glass panes + #include "/lib/materials/specificMaterials/translucents/glass.glsl" + noSmoothLighting = true; + } + } else { + if (mat == 32016) { // Beacon + lmCoordM.x = 0.88; + + translucentMultCalculated = true; + translucentMult = vec4(0.0, 0.0, 0.0, 1.0); + + if (color.b > 0.5) { + if (color.g - color.b < 0.01 && color.g < 0.99) { + #include "/lib/materials/specificMaterials/translucents/glass.glsl" + } else { // Beacon:Center + lmCoordM = vec2(0.0); + noDirectionalShading = true; + + float lColor = length(color.rgb); + vec3 baseColor = vec3(0.1, 1.0, 0.92); + if (lColor > 1.5) color.rgb = baseColor + 0.22; + else if (lColor > 1.3) color.rgb = baseColor + 0.15; + else if (lColor > 1.15) color.rgb = baseColor + 0.09; + else color.rgb = baseColor + 0.05; + emission = 4.0; + } + } else { // Beacon:Obsidian + float factor = color.r * 1.5; + + smoothnessG = factor; + highlightMult = 2.0 + min1(smoothnessG * 2.0) * 1.5; + smoothnessG = min1(smoothnessG); + } + + } else /*if (mat == 32020)*/ { // + + } + } + } else { + if (mat < 32032) { + if (mat == 32024) { // + + } else /*if (mat == 32028)*/ { // + + } + } else { + if (mat == 32032) { // + + } else /*if (mat == 32036)*/ { // + + } + } + } +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/anisotropicFiltering.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/anisotropicFiltering.glsl new file mode 100644 index 0000000..b570749 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/anisotropicFiltering.glsl @@ -0,0 +1,69 @@ +/* + This file is specifically licensed with Mozilla Public License Version 2.0. + You can get a copy from https://www.mozilla.org/MPL/2.0/ +*/ + +float manualDeterminant(mat2 matrix) { + return matrix[0].x * matrix[1].y - matrix[0].y * matrix[1].x; +} + +mat2 inverseM(mat2 m) { + #if MC_VERSION >= 11700 + return inverse(m); + #else + mat2 adj; + adj[0][0] = m[1][1]; + adj[0][1] = -m[0][1]; + adj[1][0] = -m[1][0]; + adj[1][1] = m[0][0]; + return adj / manualDeterminant(m); + #endif +} + +vec4 textureAF(sampler2D texSampler, vec2 uv) { + vec2 spriteDimensions = vec2(spriteBounds.z - spriteBounds.x, spriteBounds.w - spriteBounds.y); + + mat2 J = inverseM(mat2(dFdx(uv), dFdy(uv))); + J = transpose(J)*J; + float d = manualDeterminant(J), t = J[0][0]+J[1][1], + D = sqrt(abs(t*t-4.001*d)), // using 4.001 instead of 4.0 fixes a rare texture glitch with square texture atlas + V = (t-D)/2.0, v = (t+D)/2.0, + M = 1.0/sqrt(V), m = 1./sqrt(v); + vec2 A = M * normalize(vec2(-J[0][1], J[0][0]-V)); + + float lod = 0.0; + #if ANISOTROPIC_FILTER >= 8 && defined GBUFFERS_TERRAIN + // Fix257062 - Checking if absMidCoordPos is fine or else miplevel will be broken. This can be an issue for flowing lava. + if (absMidCoordPos.x > 0.0001 && absMidCoordPos.y > 0.0001) + // Excluding cutout blocks for better looks + if (texture2DLod(texSampler, uv, 10000.0).a == 1.0) + lod = miplevel * 0.4; + #endif + + float samplesDiv2 = ANISOTROPIC_FILTER / 2.0; + vec2 ADivSamples = A / ANISOTROPIC_FILTER; + + vec4 filteredColor = vec4(0.0); + float totalModifiedAlpha = 0.0; + vec4 spriteBoundsM = mix(spriteBounds, vec4(midCoord, midCoord), 0.0001); // Fixes some mods causing issues with cutout blocks + for (float i = -samplesDiv2 + 0.5; i < samplesDiv2; i++) { + vec2 sampleUV = uv + ADivSamples * i; + sampleUV = clamp(sampleUV, spriteBoundsM.xy, spriteBoundsM.zw); + vec4 colorSample = texture2DLod(texSampler, sampleUV, lod); + + #if !defined POM || !defined POM_ALLOW_CUTOUT + float modifiedAlpha = colorSample.a; + #else + // To avoid NaNs because we don't discard low alpha if POM_ALLOW_CUTOUT is enabled (see 6WIR4HT23) + float modifiedAlpha = max(colorSample.a, 0.00001); + #endif + + totalModifiedAlpha += modifiedAlpha; + filteredColor.rgb += colorSample.rgb * modifiedAlpha; + filteredColor.a += colorSample.a; + } + filteredColor.rgb /= totalModifiedAlpha; + filteredColor.a /= ANISOTROPIC_FILTER; + + return filteredColor; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/coatedTextures.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/coatedTextures.glsl new file mode 100644 index 0000000..5a4822b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/coatedTextures.glsl @@ -0,0 +1,30 @@ +const float packSizeNT = 64.0; + +void CoatTextures(inout vec3 color, float noiseFactor, vec3 playerPos, bool doTileRandomisation) { + #ifndef ENTITY_GN_AND_CT + #if defined GBUFFERS_ENTITIES || defined GBUFFERS_HAND + return; + #endif + #endif + + #ifndef SAFER_GENERATED_NORMALS + vec2 noiseCoord = floor(midCoordPos / 16.0 * packSizeNT * atlasSizeM) / packSizeNT / 3.0; + #else + vec2 offsetR = max(absMidCoordPos.x, absMidCoordPos.y) * vec2(float(atlasSizeM.y) / float(atlasSizeM.x), 1.0); + vec2 noiseCoord = floor(midCoordPos / 2.0 * packSizeNT / offsetR) / packSizeNT / 3.0; + #endif + + if (doTileRandomisation) { + vec3 floorWorldPos = floor(playerPos + cameraPosition + 0.001); + noiseCoord += 0.84 * (floorWorldPos.xz + floorWorldPos.y); + } + + float noiseTexture = texture2D(noisetex, noiseCoord).r; + noiseTexture = noiseTexture + 0.6; + float colorBrightness = dot(color, color) * 0.3; + #define COATED_TEXTURE_MULT_M COATED_TEXTURE_MULT * 0.0027 + noiseFactor *= COATED_TEXTURE_MULT_M * max0(1.0 - colorBrightness); + noiseFactor *= max(1.0 - miplevel * 0.25, 0.0); + noiseTexture = pow(noiseTexture, noiseFactor); + color *= noiseTexture; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/connectedGlass.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/connectedGlass.glsl new file mode 100644 index 0000000..ac7a978 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/connectedGlass.glsl @@ -0,0 +1,115 @@ +ivec3[6] glassOffsets = ivec3[]( + ivec3( 1, 0, 0), + ivec3(-1, 0, 0), + ivec3( 0, 1, 0), + ivec3( 0,-1, 0), + ivec3( 0, 0, 1), + ivec3( 0, 0,-1) +); + +ivec3[12] glassCornerOffsets = ivec3[]( + ivec3( 1, 1, 0), + ivec3( 1,-1, 0), + ivec3(-1, 1, 0), + ivec3(-1,-1, 0), + ivec3( 0, 1, 1), + ivec3( 0, 1,-1), + ivec3( 0,-1, 1), + ivec3( 0,-1,-1), + ivec3( 1, 0, 1), + ivec3( 1, 0,-1), + ivec3(-1, 0, 1), + ivec3(-1, 0,-1) +); + +vec2 GetModifiedMidCoord() { + float epsilon1 = 0.00001; + vec2 midCoord = texCoord - signMidCoordPos * absMidCoordPos; + return midCoord - epsilon1; +} + +void DoSimpleConnectedGlass(inout vec4 color) { + color = texture2DLod(tex, GetModifiedMidCoord(), 0); +} + +#ifdef GBUFFERS_WATER + void DoConnectedGlass(inout vec4 colorP, inout vec4 color, inout bool noGeneratedNormals, vec3 playerPos, vec3 worldGeoNormal, uint voxelID, bool isPane) { + vec3 worldGeoNormalM = vec3( // Fixes Iris 1.8 normal precision issues causing the coordinates to be imperfect + round(worldGeoNormal.x), + round(worldGeoNormal.y), + round(worldGeoNormal.z) + ); + vec3 playerPosM = playerPos - worldGeoNormalM * 0.25; + vec3 voxelPos = SceneToVoxel(playerPosM); + + if (CheckInsideVoxelVolume(voxelPos)) { + #if IRIS_VERSION >= 10800 + float epsilon2 = 0.0; + #else + float epsilon2 = 0.001; + #endif + float pixelOffset = 0.5 / (absMidCoordPos.y * atlasSize.y); + float pixelOffsetPlus = pixelOffset + epsilon2; + float pixelOffsetMinus = pixelOffset - epsilon2; + + colorP = texture2DLod(tex, texCoord, 0); + vec4 colorPvanilla = colorP; + + vec2 midCoordM = GetModifiedMidCoord(); + vec3 worldPos = playerPosM + cameraPositionBestFract; + vec3 floorWorldPos = floor(worldPos); + + // Remove edges + for (int i = 0; i < 6; i++) { + uint voxel = texelFetch(voxel_sampler, ivec3(voxelPos) + glassOffsets[i], 0).r; + if (voxel == voxelID) { + if (floor(worldPos + glassOffsets[i] * pixelOffsetPlus) != floorWorldPos) { + colorP = texture2DLod(tex, midCoordM, 0); + } + #ifdef GENERATED_NORMALS + if (floor(worldPos + glassOffsets[i] * pixelOffsetPlus * 1.25) != floorWorldPos) { + noGeneratedNormals = true; + } + #endif + } + } + + // Fixes the connections by restoring the edges that aren't connected + for (int i = 0; i < 6; i++) { + uint voxel = texelFetch(voxel_sampler, ivec3(voxelPos) + glassOffsets[i], 0).r; + if (voxel != voxelID) { + //if (floor(worldPos + glassOffsets[i] * 0.0625) != floorWorldPos) { + if (floor(worldPos + glassOffsets[i] * pixelOffsetMinus) != floorWorldPos) { + colorP = colorPvanilla; + } + } + } + + if (isPane) { + // Fixes lines between layers of glass panes + if (NdotU > 0.9) { + uint voxel = texelFetch(voxel_sampler, ivec3(voxelPos) + ivec3(0, 1, 0), 0).r; + if (voxel == voxelID) discard; + } + if (NdotU < -0.9) { + uint voxel = texelFetch(voxel_sampler, ivec3(voxelPos) - ivec3(0, 1, 0), 0).r; + if (voxel == voxelID) discard; + } + } + + #ifdef CONNECTED_GLASS_CORNER_FIX + // Restores corners + for (int i = 0; i < 12; i++) { + uint voxel = texelFetch(voxel_sampler, ivec3(voxelPos) + glassCornerOffsets[i], 0).r; + if ((voxel != voxelID) && (!isPane || voxel > 0u)) { + if (floor((worldPos - glassCornerOffsets[i] * (1.0 - pixelOffsetMinus))) == floorWorldPos) { + colorP = colorPvanilla; + } + } + } + #endif + + color = colorP * vec4(glColor.rgb, 1.0); + } + } +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/customEmission.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/customEmission.glsl new file mode 100644 index 0000000..c7e5c8e --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/customEmission.glsl @@ -0,0 +1,35 @@ +#ifndef INCLUDE_CUSTOM_EMISSION +#define INCLUDE_CUSTOM_EMISSION + +float GetCustomEmission(vec4 specularMap, vec2 texCoordM) { + #if CUSTOM_EMISSION_INTENSITY > 0 + #if RP_MODE == 2 || RP_MODE == 1 && IPBR_EMISSIVE_MODE == 2 // seuspbr + float emission = specularMap.b; + #elif RP_MODE == 3 || RP_MODE == 1 && IPBR_EMISSIVE_MODE == 3 // labPBR + float emission = specularMap.a < 1.0 ? specularMap.a : 0.0; + + vec4 specularMapL0 = texture2DLod(specular, texCoordM, 0); + float emissionL0 = specularMapL0.a < 1.0 ? specularMapL0.a : 0.0; + emission = min(emission, emissionL0); // Fixes issues caused by mipmaps + #endif + + return emission * 0.03 * CUSTOM_EMISSION_INTENSITY; + #else + return 0.0; + #endif +} + +#ifdef IPBR + float GetCustomEmissionForIPBR(inout vec4 color, float emission) { + vec4 specularMapCheck = texture2DLod(specular, texCoord, 1000.0); + if (specularMapCheck.a == 0.0) return emission; + + color = texture2D(tex, texCoord); + + vec4 specularMap = texture2D(specular, texCoord); + float customEmission = GetCustomEmission(specularMap, texCoord); + return customEmission; + } +#endif + +#endif //INCLUDE_CUSTOM_EMISSION \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/generatedNormals.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/generatedNormals.glsl new file mode 100644 index 0000000..747fd0f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/generatedNormals.glsl @@ -0,0 +1,85 @@ +const float normalThreshold = 0.05; +const float normalClamp = 0.2; +const float packSizeGN = 128.0; + +#ifndef GBUFFERS_HAND + const float normalMult = GENERATED_NORMAL_MULT * 0.025; +#else + const float normalMult = GENERATED_NORMAL_MULT * 0.015; +#endif + +float GetDif(float lOriginalAlbedo, vec2 offsetCoord) { + #ifndef GBUFFERS_WATER + float lNearbyAlbedo = length(texture2D(tex, offsetCoord).rgb); + #else + vec4 textureSample = texture2D(tex, offsetCoord); + float lNearbyAlbedo = length(textureSample.rgb * textureSample.a * 1.5); + #endif + + #ifdef GBUFFERS_ENTITIES + lOriginalAlbedo = abs(lOriginalAlbedo - 1.0); + lNearbyAlbedo = abs(lNearbyAlbedo - 1.0); + #endif + + float dif = lOriginalAlbedo - lNearbyAlbedo; + + #ifdef GBUFFERS_ENTITIES + dif = -dif; + #endif + + #ifndef GBUFFERS_WATER + if (dif > 0.0) dif = max(dif - normalThreshold, 0.0); + else dif = min(dif + normalThreshold, 0.0); + #endif + + return clamp(dif, -normalClamp, normalClamp); +} + +void GenerateNormals(inout vec3 normalM, vec3 color) { + #ifndef ENTITY_GN_AND_CT + #if defined GBUFFERS_ENTITIES || defined GBUFFERS_HAND + return; + #endif + #endif + + vec2 absMidCoordPos2 = absMidCoordPos * 2.0; + float lOriginalAlbedo = length(color.rgb); + + float normalMult = max0(1.0 - mipDelta) * normalMult; + + #ifndef SAFER_GENERATED_NORMALS + vec2 offsetR = 16.0 / atlasSizeM; + #else + vec2 offsetR = max(absMidCoordPos2.x, absMidCoordPos2.y) * vec2(float(atlasSizeM.y) / float(atlasSizeM.x), 1.0); + #endif + offsetR /= packSizeGN; + + vec2 midCoord = texCoord - midCoordPos; + vec2 maxOffsetCoord = midCoord + absMidCoordPos; + vec2 minOffsetCoord = midCoord - absMidCoordPos; + if (normalMult > 0.0) { + vec3 normalMap = vec3(0.0, 0.0, 1.0); + + vec2 offsetCoord = texCoord + vec2( 0.0, offsetR.y); + if (offsetCoord.y < maxOffsetCoord.y) + normalMap.y += GetDif(lOriginalAlbedo, offsetCoord); + + offsetCoord = texCoord + vec2( offsetR.x, 0.0); + if (offsetCoord.x < maxOffsetCoord.x) + normalMap.x += GetDif(lOriginalAlbedo, offsetCoord); + + offsetCoord = texCoord + vec2( 0.0,-offsetR.y); + if (offsetCoord.y > minOffsetCoord.y) + normalMap.y -= GetDif(lOriginalAlbedo, offsetCoord); + + offsetCoord = texCoord + vec2(-offsetR.x, 0.0); + if (offsetCoord.x > minOffsetCoord.x) + normalMap.x -= GetDif(lOriginalAlbedo, offsetCoord); + + normalMap.xy *= normalMult; + normalMap.xy = clamp(normalMap.xy, vec2(-1.0), vec2(1.0)); + + if (normalMap.xy != vec2(0.0, 0.0)) + normalM = clamp(normalize(normalMap * tbnMatrix), vec3(-1.0), vec3(1.0)); + } +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/pomEffects.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/pomEffects.glsl new file mode 100644 index 0000000..834c57e --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/pomEffects.glsl @@ -0,0 +1,121 @@ +#include "/lib/util/dither.glsl" + +vec2 vTexCoord = signMidCoordPos * 0.5 + 0.5; + +#include "/lib/util/dFdxdFdy.glsl" + +vec4 ReadNormal(vec2 coord) { + coord = fract(coord) * vTexCoordAM.pq + vTexCoordAM.st; + return textureGrad(normals, coord, dcdx, dcdy); +} + +vec2 GetParallaxCoord(float parallaxFade, float dither, inout vec2 newCoord, inout float texDepth, inout vec3 traceCoordDepth) { + float invParallaxQuality = 1.0 / POM_QUALITY; + vec4 normalMap = ReadNormal(vTexCoord.st); + vec2 normalMapM = normalMap.xy * 2.0 - 1.0; + float normalCheck = normalMapM.x + normalMapM.y; + float minHeight = 1.0 - invParallaxQuality; + + if (viewVector.z >= 0.0 || normalMap.a >= minHeight || normalCheck <= -1.999) return vTexCoord.st; + + vec2 interval = viewVector.xy * 0.25 * (1.0 - parallaxFade) * POM_DEPTH / (-viewVector.z * POM_QUALITY); + + float i = 0.0; + vec2 localCoord; + #if defined GBUFFERS_TERRAIN || defined GBUFFERS_BLOCK + if (texDepth <= 1.0 - i * invParallaxQuality) { + localCoord = vTexCoord.st + i * interval; + texDepth = ReadNormal(localCoord).a; + i = dither; + } + #endif + + for (; i < POM_QUALITY && texDepth <= 1.0 - i * invParallaxQuality; i++) { + localCoord = vTexCoord.st + i * interval; + texDepth = ReadNormal(localCoord).a; + } + + float pI = float(max(i - 1, 0)); + traceCoordDepth.xy -= pI * interval; + traceCoordDepth.z -= pI * invParallaxQuality; + + localCoord = fract(vTexCoord.st + pI * interval); + newCoord = localCoord * vTexCoordAM.pq + vTexCoordAM.st; + return localCoord; +} + +float GetParallaxShadow(float parallaxFade, float dither, float height, vec2 coord, vec3 lightVec, mat3 tbn) { + float parallaxshadow = 1.0; + + vec3 parallaxdir = tbn * lightVec; + parallaxdir.xy *= 1.0 * POM_DEPTH; // Angle + + for (int i = 0; i < 4 && parallaxshadow >= 0.01; i++) { + float stepLC = 0.025 * (i + dither); + + float currentHeight = height + parallaxdir.z * stepLC; + + vec2 parallaxCoord = fract(coord + parallaxdir.xy * stepLC) * vTexCoordAM.pq + vTexCoordAM.st; + float offsetHeight = textureGrad(normals, parallaxCoord, dcdx, dcdy).a; + + parallaxshadow *= clamp(1.0 - (offsetHeight - currentHeight) * 4.0, 0.0, 1.0); + } + + return mix(parallaxshadow, 1.0, parallaxFade); +} + +// Big thanks to null511 for slope normals +vec3 GetParallaxSlopeNormal(vec2 texCoord, float traceDepth, vec3 viewDir) { + vec2 atlasPixelSize = 1.0 / atlasSize; + float atlasAspect = atlasSize.x / atlasSize.y; + vec2 atlasCoord = fract(texCoord) * vTexCoordAM.pq + vTexCoordAM.st; + + vec2 tileSize = atlasSize * vTexCoordAM.pq; + vec2 tilePixelSize = 1.0 / tileSize; + + vec2 tex_snapped = floor(atlasCoord * atlasSize) * atlasPixelSize; + vec2 tex_offset = atlasCoord - (tex_snapped + 0.5 * atlasPixelSize); + + vec2 stepSign = sign(tex_offset); + vec2 viewSign = sign(viewDir.xy); + + bool dir = abs(tex_offset.x * atlasAspect) < abs(tex_offset.y); + vec2 tex_x, tex_y; + + if (dir) { + tex_x = texCoord - vec2(tilePixelSize.x * viewSign.x, 0.0); + tex_y = texCoord + vec2(0.0, stepSign.y * tilePixelSize.y); + } + else { + tex_x = texCoord + vec2(tilePixelSize.x * stepSign.x, 0.0); + tex_y = texCoord - vec2(0.0, viewSign.y * tilePixelSize.y); + } + + float height_x = ReadNormal(tex_x).a; + float height_y = ReadNormal(tex_y).a; + + if (dir) { + if (!(traceDepth > height_y && viewSign.y != stepSign.y)) { + if (traceDepth > height_x) return vec3(-viewSign.x, 0.0, 0.0); + + if (abs(viewDir.y) > abs(viewDir.x)) + return vec3(0.0, -viewSign.y, 0.0); + else + return vec3(-viewSign.x, 0.0, 0.0); + } + + return vec3(0.0, -viewSign.y, 0.0); + } + else { + if (!(traceDepth > height_x && viewSign.x != stepSign.x)) { + if (traceDepth > height_y) return vec3(0.0, -viewSign.y, 0.0); + + if (abs(viewDir.y) > abs(viewDir.x)) + return vec3(0.0, -viewSign.y, 0.0); + else + return vec3(-viewSign.x, 0.0, 0.0); + } + + return vec3(-viewSign.x, 0.0, 0.0); + } +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/reflections.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/reflections.glsl new file mode 100644 index 0000000..58133be --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/reflections.glsl @@ -0,0 +1,245 @@ +#ifdef OVERWORLD + #include "/lib/atmospherics/sky.glsl" +#endif +#if defined END && defined DEFERRED1 + #include "/lib/atmospherics/enderBeams.glsl" +#endif + +#ifdef ATM_COLOR_MULTS + #include "/lib/colors/colorMultipliers.glsl" +#endif +#ifdef MOON_PHASE_INF_ATMOSPHERE + #include "/lib/colors/moonPhaseInfluence.glsl" +#endif + +vec3 nvec3(vec4 pos) { + return pos.xyz/pos.w; +} + +vec3 refPos = vec3(0.0); + +vec4 GetReflection(vec3 normalM, vec3 viewPos, vec3 nViewPos, vec3 playerPos, float lViewPos, float z0, + sampler2D depthtex, float dither, float skyLightFactor, float fresnel, + float smoothness, vec3 geoNormal, vec3 color, vec3 shadowMult, float highlightMult) { + // ============================== Step 1: Prepare ============================== // + vec2 rEdge = vec2(0.6, 0.55); + vec3 normalMR = normalM; + + #if defined GBUFFERS_WATER && WATER_STYLE == 1 && defined GENERATED_NORMALS + normalMR = normalize(mix(geoNormal, normalM, 0.05)); + #endif + + vec3 nViewPosR = normalize(reflect(nViewPos, normalMR)); + float RVdotU = dot(nViewPosR, upVec); + float RVdotS = dot(nViewPosR, sunVec); + + #if defined GBUFFERS_WATER && WATER_STYLE >= 2 + normalMR = normalize(mix(geoNormal, normalM, 0.8)); + #endif + // ============================== End of Step 1 ============================== // + + // ============================== Step 2: Calculate Terrain Reflection and Alpha ============================== // + vec4 reflection = vec4(0.0); + #if defined DEFERRED1 || WATER_REFLECT_QUALITY >= 1 + #if defined DEFERRED1 || WATER_REFLECT_QUALITY >= 2 && !defined DH_WATER + // Method 1: Ray Marched Reflection // + + // Ray Marching + vec3 start = viewPos + normalMR * (lViewPos * 0.025 * (1.0 - fresnel) + 0.05); + #if defined GBUFFERS_WATER && WATER_STYLE >= 2 + vec3 vector = normalize(reflect(nViewPos, normalMR)); // Not using nViewPosR because normalMR changed + #else + vec3 vector = nViewPosR; + #endif + //vector = normalize(vector - 0.5 * (1.0 - smoothness) * (1.0 - fresnel) * normalMR); // reflection anisotropy test + //vector = normalize(vector - 0.075 * dither * (1.0 - pow2(pow2(fresnel))) * normalMR); + vector *= 0.5; + vec3 viewPosRT = viewPos + vector; + vec3 tvector = vector; + + int sr = 0; + float dist = 0.0; + vec3 rfragpos = vec3(0.0); + for (int i = 0; i < 30; i++) { + refPos = nvec3(gbufferProjection * vec4(viewPosRT, 1.0)) * 0.5 + 0.5; + if (abs(refPos.x - 0.5) > rEdge.x || abs(refPos.y - 0.5) > rEdge.y) break; + + rfragpos = vec3(refPos.xy, texture2D(depthtex, refPos.xy).r); + rfragpos = nvec3(gbufferProjectionInverse * vec4(rfragpos * 2.0 - 1.0, 1.0)); + dist = length(start - rfragpos); + + float err = length(viewPosRT - rfragpos); + + if (err < length(vector) * 3.0) { + sr++; + if (sr >= 6) break; + tvector -= vector; + vector *= 0.1; + } + vector *= 2.0; + tvector += vector * (0.95 + 0.1 * dither); + viewPosRT = start + tvector; + } + + // Finalizing Terrain Reflection and Alpha + if (refPos.z < 0.99997) { + vec2 absPos = abs(refPos.xy - 0.5); + vec2 cdist = absPos / rEdge; + float border = clamp(1.0 - pow(max(cdist.x, cdist.y), 50.0), 0.0, 1.0); + reflection.a = border; + + float lViewPosRT = length(rfragpos); + + if (reflection.a > 0.001) { + vec2 edgeFactor = pow2(pow2(pow2(cdist))); + refPos.y += (dither - 0.5) * (0.05 * (edgeFactor.x + edgeFactor.y)); + + #ifdef DEFERRED1 + float smoothnessDM = pow2(smoothness); + float lodFactor = 1.0 - exp(-0.125 * (1.0 - smoothnessDM) * dist); + float lod = log2(viewHeight / 8.0 * (1.0 - smoothnessDM) * lodFactor) * 0.45; + if (z0 <= 0.56) lod *= 2.22; // Using more lod to compensate for less roughness noise on held items + lod = max(lod - 1.0, 0.0); + + reflection.rgb = texture2DLod(colortex0, refPos.xy, lod).rgb; + #else + reflection = texture2D(gaux2, refPos.xy); + reflection.rgb = pow2(reflection.rgb + 1.0); + #endif + + float skyFade = 0.0; + DoFog(reflection.rgb, skyFade, lViewPosRT, ViewToPlayer(rfragpos.xyz), RVdotU, RVdotS, dither); + + edgeFactor.x = pow2(edgeFactor.x); + edgeFactor = 1.0 - edgeFactor; + reflection.a *= pow(edgeFactor.x * edgeFactor.y, 2.0 + 3.0 * GetLuminance(reflection.rgb)); + } + + float posDif = lViewPosRT - lViewPos; + reflection.a *= clamp(posDif + 3.0, 0.0, 1.0); + } + #if defined DEFERRED1 && defined TEMPORAL_FILTER + else refPos.z = 1.0; + #endif + #if !defined DEFERRED1 && defined DISTANT_HORIZONS + else + #endif + #endif + #if !defined DEFERRED1 && (WATER_REFLECT_QUALITY < 2 || defined DISTANT_HORIZONS) || defined DH_WATER + { // Method 2: Mirorred Image Reflection // + + #if WATER_REFLECT_QUALITY < 2 + float verticalStretch = 0.013; // for potato quality reflections + #else + float verticalStretch = 0.0025; // for distant horizons reflections + #endif + + vec4 clipPosR = gbufferProjection * vec4(nViewPosR + verticalStretch * viewPos, 1.0); + vec3 screenPosR = clipPosR.xyz / clipPosR.w * 0.5 + 0.5; + vec2 screenPosRM = abs(screenPosR.xy - 0.5); + + if (screenPosRM.x < rEdge.x && screenPosRM.y < rEdge.y) { + vec2 edgeFactor = pow2(pow2(pow2(screenPosRM / rEdge))); + screenPosR.y += (dither - 0.5) * (0.03 * (edgeFactor.x + edgeFactor.y) + 0.004); + + screenPosR.z = texture2D(depthtex1, screenPosR.xy).x; + vec3 viewPosR = ScreenToView(screenPosR); + if (lViewPos <= 2.0 + length(viewPosR)) { + reflection = texture2D(gaux2, screenPosR.xy); + reflection.rgb = pow2(reflection.rgb + 1.0); + } + + edgeFactor.x = pow2(edgeFactor.x); + edgeFactor = 1.0 - edgeFactor; + reflection.a *= edgeFactor.x * edgeFactor.y; + } + + reflection.a *= reflection.a; + reflection.a *= clamp01((dot(nViewPos, nViewPosR) - 0.45) * 10.0); // Fixes perpendicular ref + } + #endif + #endif + // ============================== End of Step 2 ============================== // + + // ============================== Step 3: Add Sky Reflection ============================== // + #if defined DEFERRED1 || WATER_REFLECT_QUALITY >= 1 + if (reflection.a < 1.0) + #endif + { + #ifdef OVERWORLD + #if defined DEFERRED1 || WATER_REFLECT_QUALITY >= 2 + vec3 skyReflection = GetSky(RVdotU, RVdotS, dither, true, true); + #else + vec3 skyReflection = GetLowQualitySky(RVdotU, RVdotS, dither, true, true); + #endif + + #ifdef ATM_COLOR_MULTS + skyReflection *= atmColorMult; + #endif + #ifdef MOON_PHASE_INF_ATMOSPHERE + skyReflection *= moonPhaseInfluence; + #endif + + #ifdef DEFERRED1 + skyReflection *= skyLightFactor; + #else + float specularHighlight = GGX(normalM, nViewPos, lightVec, max(dot(normalM, lightVec), 0.0), smoothness); + skyReflection += specularHighlight * highlightColor * shadowMult * highlightMult * invRainFactor; + + #if WATER_REFLECT_QUALITY >= 1 + #ifdef SKY_EFFECT_REFLECTION + float cloudLinearDepth = 1.0; + float skyFade = 1.0; + vec3 auroraBorealis = vec3(0.0); + vec3 nightNebula = vec3(0.0); + + #if AURORA_STYLE > 0 + auroraBorealis = GetAuroraBorealis(nViewPosR, RVdotU, dither); + skyReflection += auroraBorealis; + #endif + #ifdef NIGHT_NEBULA + nightNebula += GetNightNebula(nViewPosR, RVdotU, RVdotS); + skyReflection += nightNebula; + #endif + + vec2 starCoord = GetStarCoord(nViewPosR, 0.5); + skyReflection += GetStars(starCoord, RVdotU, RVdotS); + + #ifdef VL_CLOUDS_ACTIVE + vec3 worldNormalMR = normalize(mat3(gbufferModelViewInverse) * normalMR); + vec3 RCameraPos = cameraPosition + 2.0 * worldNormalMR * dot(playerPos, worldNormalMR); + vec3 RPlayerPos = normalize(mat3(gbufferModelViewInverse) * nViewPosR); + float RlViewPos = 100000.0; + + vec4 clouds = GetClouds(cloudLinearDepth, skyFade, RCameraPos, RPlayerPos, + RlViewPos, RVdotS, RVdotU, dither, auroraBorealis, nightNebula); + + skyReflection = mix(skyReflection, clouds.rgb, clouds.a); + #endif + #endif + + skyReflection = mix(color * 0.5, skyReflection, skyLightFactor); + #else + skyReflection = mix(color, skyReflection, skyLightFactor * 0.5); + #endif + #endif + #elif defined END + #ifdef DEFERRED1 + vec3 skyReflection = (endSkyColor + 0.4 * DrawEnderBeams(RVdotU, playerPos)) * skyLightFactor; + #else + vec3 skyReflection = endSkyColor * shadowMult; + #endif + + #ifdef ATM_COLOR_MULTS + skyReflection *= atmColorMult; + #endif + #else + vec3 skyReflection = vec3(0.0); + #endif + + reflection.rgb = mix(skyReflection, reflection.rgb, reflection.a); + } + // ============================== End of Step 3 ============================== // + + return reflection; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/refraction.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/refraction.glsl new file mode 100644 index 0000000..f3739a7 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/refraction.glsl @@ -0,0 +1,42 @@ +float GetApproxDistance(float depth) { + return near * far / (far - depth * far); +} + +void DoRefraction(inout vec3 color, inout float z0, inout float z1, vec3 viewPos, float lViewPos) { + // Prep + if (int(texelFetch(colortex6, texelCoord, 0).g * 255.1) != 241) return; + + float fovScale = gbufferProjection[1][1]; + + vec3 playerPos = ViewToPlayer(viewPos.xyz); + vec3 worldPos = playerPos.xyz + cameraPosition.xyz; + vec2 worldPosRM = worldPos.xz * 0.02 + worldPos.y * 0.01 + 0.01 * frameTimeCounter; + + vec2 refractNoise = texture2D(noisetex, worldPosRM).rb - vec2(0.5); + refractNoise *= WATER_REFRACTION_INTENSITY * fovScale / (3.0 + lViewPos); + + #if WATER_STYLE < 3 + refractNoise *= 0.015; + #else + refractNoise *= 0.02; + #endif + + // Check + float approxDif = GetApproxDistance(z1) - GetApproxDistance(z0); + refractNoise *= clamp(approxDif, 0.0, 1.0); + + vec2 refractCoord = texCoord.xy + refractNoise; + + if (int(texture2D(colortex6, refractCoord).g * 255.1) != 241) return; + + float z0check = texture2D(depthtex0, refractCoord).r; + float z1check = texture2D(depthtex1, refractCoord).r; + float approxDifCheck = GetApproxDistance(z1check) - GetApproxDistance(z0check); + refractNoise *= clamp(approxDifCheck, 0.0, 1.0); + + // Sample + refractCoord = texCoord.xy + refractNoise; + color = texture2D(colortex0, refractCoord).rgb; + z0 = texture2D(depthtex0, refractCoord).r; + z1 = texture2D(depthtex1, refractCoord).r; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/snowyWorld.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/snowyWorld.glsl new file mode 100644 index 0000000..bb360c0 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/snowyWorld.glsl @@ -0,0 +1,19 @@ +const float packSizeSW = 16.0; + +void DoSnowyWorld(inout vec4 color, inout float smoothnessG, inout float highlightMult, inout float smoothnessD, inout float emission, + vec3 playerPos, vec2 lmCoord, float snowFactor, float snowMinNdotU, float NdotU, int subsurfaceMode) { + float snowFactorM = snowFactor * 1000.0 * max(NdotU - 0.9, snowMinNdotU) * max0(lmCoord.y - 0.9) * (0.9 - clamp(lmCoord.x, 0.8, 0.9)); + if (snowFactorM <= 0.0001) return; + + vec3 worldPos = playerPos + cameraPosition; + vec2 noiseCoord = floor(packSizeSW * worldPos.xz + 0.001) / packSizeSW; + noiseCoord += floor(packSizeSW * worldPos.y + 0.001) / packSizeSW; + float noiseTexture = dot(vec2(0.25, 0.75), texture2D(noisetex, noiseCoord * 0.45).rg); + vec3 snowColor = mix(vec3(0.65, 0.8, 0.85), vec3(1.0, 1.0, 1.0), noiseTexture * 0.75 + 0.125); + + color.rgb = mix(color.rgb, snowColor + color.rgb * emission * 0.2, snowFactorM); + smoothnessG = mix(smoothnessG, 0.25 + 0.25 * noiseTexture, snowFactorM); + highlightMult = mix(highlightMult, 2.0 - subsurfaceMode * 0.666, snowFactorM); + smoothnessD = mix(smoothnessD, 0.0, snowFactorM); + emission *= 1.0 - snowFactorM * 0.85; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/wavingBlocks.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/wavingBlocks.glsl new file mode 100644 index 0000000..6c4ce71 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/materialMethods/wavingBlocks.glsl @@ -0,0 +1,186 @@ +#if COLORED_LIGHTING_INTERNAL > 0 + #include "/lib/misc/voxelization.glsl" +#endif + +vec3 GetRawWave(in vec3 pos, float wind) { + float magnitude = sin(wind * 0.0027 + pos.z + pos.y) * 0.04 + 0.04; + float d0 = sin(wind * 0.0127); + float d1 = sin(wind * 0.0089); + float d2 = sin(wind * 0.0114); + vec3 wave; + wave.x = sin(wind*0.0063 + d0 + d1 - pos.x + pos.z + pos.y) * magnitude; + wave.z = sin(wind*0.0224 + d1 + d2 + pos.x - pos.z + pos.y) * magnitude; + wave.y = sin(wind*0.0015 + d2 + d0 + pos.z + pos.y - pos.y) * magnitude; + + return wave; +} + +vec3 GetWave(in vec3 pos, float waveSpeed) { + float wind = frameTimeCounter * waveSpeed * WAVING_SPEED; + vec3 wave = GetRawWave(pos, wind); + + #define WAVING_I_RAIN_MULT_M WAVING_I_RAIN_MULT * 0.01 + + #if WAVING_I_RAIN_MULT > 100 + float windRain = frameTimeCounter * waveSpeed * WAVING_I_RAIN_MULT_M * WAVING_SPEED; + vec3 waveRain = GetRawWave(pos, windRain); + wave = mix(wave, waveRain, rainFactor); + #endif + + #ifdef NO_WAVING_INDOORS + wave *= clamp(lmCoord.y - 0.87, 0.0, 0.1); + #else + wave *= 0.1; + #endif + + float wavingIntensity = WAVING_I * mix(1.0, WAVING_I_RAIN_MULT_M, rainFactor); + + return wave * wavingIntensity; +} + +void DoWave_Foliage(inout vec3 playerPos, vec3 worldPos, float waveMult) { + worldPos.y *= 0.5; + + vec3 wave = GetWave(worldPos, 170.0); + wave.x = wave.x * 8.0 + wave.y * 4.0; + wave.y = 0.0; + wave.z = wave.z * 3.0; + + playerPos.xyz += wave * waveMult; +} + +void DoWave_Leaves(inout vec3 playerPos, vec3 worldPos, float waveMult) { + worldPos *= vec3(0.75, 0.375, 0.75); + + vec3 wave = GetWave(worldPos, 170.0); + wave *= vec3(8.0, 3.0, 4.0); + + wave *= 1.0 - inSnowy; // Leaves with snow on top look wrong + + playerPos.xyz += wave * waveMult; +} + +void DoWave_Water(inout vec3 playerPos, vec3 worldPos) { + float waterWaveTime = frameTimeCounter * 6.0 * WAVING_SPEED; + worldPos.xz *= 14.0; + + float wave = sin(waterWaveTime * 0.7 + worldPos.x * 0.14 + worldPos.z * 0.07); + wave += sin(waterWaveTime * 0.5 + worldPos.x * 0.10 + worldPos.z * 0.05); + + #ifdef NO_WAVING_INDOORS + wave *= clamp(lmCoord.y - 0.87, 0.0, 0.1); + #else + wave *= 0.1; + #endif + + playerPos.y += wave * 0.125 - 0.05; + + #if defined GBUFFERS_WATER && WATER_STYLE == 1 + normal = mix(normal, tangent, wave * 0.01); + #endif +} + +void DoWave_Lava(inout vec3 playerPos, vec3 worldPos) { + if (fract(worldPos.y + 0.005) > 0.06) { + float lavaWaveTime = frameTimeCounter * 3.0 * WAVING_SPEED; + worldPos.xz *= 14.0; + + float wave = sin(lavaWaveTime * 0.7 + worldPos.x * 0.14 + worldPos.z * 0.07); + wave += sin(lavaWaveTime * 0.5 + worldPos.x * 0.05 + worldPos.z * 0.10); + + playerPos.y += wave * 0.0125; + } +} + +void DoWave(inout vec3 playerPos, int mat) { + vec3 worldPos = playerPos.xyz + cameraPosition.xyz; + + #if defined GBUFFERS_TERRAIN || defined SHADOW + #ifdef WAVING_FOLIAGE + if (mat == 10005 + #ifdef DO_MORE_FOLIAGE_WAVING + || mat == 10769 + || mat == 10924 + || mat == 10972 + #endif + ) { // Grounded Waving Foliage + if (gl_MultiTexCoord0.t < mc_midTexCoord.t || fract(worldPos.y + 0.21) > 0.26) + DoWave_Foliage(playerPos.xyz, worldPos, 1.0); + } + + else if (mat == 10021) { // Upper Layer Waving Foliage + DoWave_Foliage(playerPos.xyz, worldPos, 1.0); + } + + #if defined WAVING_LEAVES || defined WAVING_LAVA || defined WAVING_LILY_PAD + else + #endif + #endif + + #ifdef WAVING_LEAVES + if (mat == 10009) { // Leaves + DoWave_Leaves(playerPos.xyz, worldPos, 1.0); + } else if (mat == 10013) { // Vine + // Reduced waving on vines to prevent clipping through blocks + DoWave_Leaves(playerPos.xyz, worldPos, 0.75); + } + #if defined NETHER || defined DO_NETHER_VINE_WAVING_OUTSIDE_NETHER + else if (mat == 10884 || mat == 10885) { // Weeping Vines, Twisting Vines + float waveMult = 1.0; + #if COLORED_LIGHTING_INTERNAL > 0 + vec3 playerPosP = playerPos + vec3(0.0, 0.1, 0.0); + vec3 voxelPosP = SceneToVoxel(playerPosP); + vec3 playerPosN = playerPos - vec3(0.0, 0.1, 0.0); + vec3 voxelPosN = SceneToVoxel(playerPosN); + + if (CheckInsideVoxelVolume(voxelPosP)) { + int voxelP = int(texelFetch(voxel_sampler, ivec3(voxelPosP), 0).r); + int voxelN = int(texelFetch(voxel_sampler, ivec3(voxelPosN), 0).r); + if (voxelP != 0 && voxelP != 65 || voxelN != 0 && voxelN != 65) // not air, not weeping vines + waveMult = 0.0; + } + #endif + DoWave_Foliage(playerPos.xyz, worldPos, waveMult); + } + #endif + + #if defined WAVING_LAVA || defined WAVING_LILY_PAD + else + #endif + #endif + + #ifdef WAVING_LAVA + if (mat == 10068) { // Lava + DoWave_Lava(playerPos.xyz, worldPos); + + #ifdef GBUFFERS_TERRAIN + // G8FL735 Fixes Optifine-Iris parity. Optifine has 0.9 gl_Color.rgb on a lot of versions + glColorRaw.rgb = min(glColorRaw.rgb, vec3(0.9)); + #endif + } + + #ifdef WAVING_LILY_PAD + else + #endif + #endif + + #ifdef WAVING_LILY_PAD + if (mat == 10489) { // Lily Pad + DoWave_Water(playerPos.xyz, worldPos); + } + #endif + #endif + + #if defined GBUFFERS_WATER || defined SHADOW + #ifdef WAVING_WATER_VERTEX + #if defined WAVING_ANYTHING_TERRAIN && defined SHADOW + else + #endif + + if (mat == 32000) { // Water + if (fract(worldPos.y + 0.005) > 0.06) + DoWave_Water(playerPos.xyz, worldPos); + } + #endif + #endif +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/entities/glowItemFrame.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/entities/glowItemFrame.glsl new file mode 100644 index 0000000..8cf0b2f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/entities/glowItemFrame.glsl @@ -0,0 +1 @@ +#include "/lib/materials/specificMaterials/entities/itemFrame.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/entities/itemFrame.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/entities/itemFrame.glsl new file mode 100644 index 0000000..9e61797 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/entities/itemFrame.glsl @@ -0,0 +1 @@ +noSmoothLighting = true; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/entities/lightningBolt.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/entities/lightningBolt.glsl new file mode 100644 index 0000000..ffc2f87 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/entities/lightningBolt.glsl @@ -0,0 +1,6 @@ +color = vec4(1.0, 1.1, 1.4, 1.0); + +lmCoordM = vec2(0.0); +shadowMult = vec3(0.0); + +emission = 0.5; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/others/endPortalEffect.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/others/endPortalEffect.glsl new file mode 100644 index 0000000..72c8750 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/others/endPortalEffect.glsl @@ -0,0 +1,101 @@ +// End Portal fix by fayer3#2332 (Modified) +vec3[8] colors = vec3[]( + vec3(0.3472479, 0.6559956, 0.7387838) * 1.5, + vec3(0.6010780, 0.7153565, 1.060625 ), + vec3(0.4221090, 0.8135094, 0.9026056), + vec3(0.3492291, 1.0241201, 1.8612821), + vec3(0.7543085, 0.8238697, 0.6803233), + vec3(0.4144472, 0.5648165, 0.8037 ), + vec3(0.508905 , 0.6719649, 0.9982805), + vec3(0.5361914, 0.4476583, 0.8008522)); +color.rgb = vec3(0.421, 0.7, 1.6) * 0.14; + +float dither = Bayer64(gl_FragCoord.xy); +#ifdef TAA + dither = fract(dither + goldenRatio * mod(float(frameCounter), 3600.0)); + int repeat = 4; +#else + int repeat = 8; +#endif +float dismult = 0.5; +for (int j = 0; j < repeat; j++) { + float add = float(j + dither) * 0.0625 / float(repeat); + for (int i = 1; i <= 8; i++) { + float colormult = 0.9/(30.0+i); + float rotation = (i - 0.1 * i + 0.71 * i - 11 * i + 21) * 0.01 + i * 0.01; + float Cos = cos(radians(rotation)); + float Sin = sin(radians(rotation)); + vec2 offset = vec2(0.0, 1.0/(3600.0/24.0)) * pow(16.0 - i, 2.0) * 0.004; + + vec3 wpos = normalize((gbufferModelViewInverse * vec4(viewPos * (i * dismult + 1), 1.0)).xyz); + if (abs(NdotU) > 0.9) { + wpos.xz /= wpos.y; + wpos.xz *= 0.06 * sign(- playerPos.y); + wpos.xz *= abs(playerPos.y) + i * dismult + add; + wpos.xz -= cameraPosition.xz * 0.05; + } else { + vec3 absPos = abs(playerPos); + if (abs(dot(normal, eastVec)) > 0.9) { + wpos.xz = wpos.yz / wpos.x; + wpos.xz *= 0.06 * sign(- playerPos.x); + wpos.xz *= abs(playerPos.x) + i * dismult + add; + wpos.xz -= cameraPosition.yz * 0.05; + } else { + wpos.xz = wpos.yx / wpos.z; + wpos.xz *= 0.06 * sign(- playerPos.z); + wpos.xz *= abs(playerPos.z) + i * dismult + add; + wpos.xz -= cameraPosition.yx * 0.05; + } + } + vec2 pos = wpos.xz; + + vec2 wind = fract((frameTimeCounter + 984.0) * (i + 8) * 0.125 * offset); + vec2 coord = mat2(Cos, Sin, -Sin, Cos) * pos + wind; + if (mod(float(i), 4) < 1.5) coord = coord.yx + vec2(-1.0, 1.0) * wind.y; + + vec3 psample = pow(texture2D(tex, coord).rgb, vec3(0.85)) * colors[i-1] * colormult; + color.rgb += psample * length(psample.rgb) * (3000.0 / repeat); + } +} +color.rgb *= vec3(0.09, 0.086, 0.06) * 0.9; +emission = 10.0; +noDirectionalShading = true; + +#ifdef COATED_TEXTURES + noiseFactor = 0.0; +#endif + +#ifdef PORTAL_EDGE_EFFECT + //vec3 voxelPos = SceneToVoxel(mix(playerPos, vec3(0.0), -0.02)); // Fixes weird parallax offset + vec3 voxelPos = SceneToVoxel(playerPos); + + if (CheckInsideVoxelVolume(voxelPos)) { + float portalOffset = 0.08333 * dither; + vec3[4] portalOffsets = vec3[]( + vec3( portalOffset, 0, portalOffset), + vec3( portalOffset, 0,-portalOffset), + vec3(-portalOffset, 0, portalOffset), + vec3(-portalOffset, 0,-portalOffset) + ); + + float edge = 0.0; + for (int i = 0; i < 4; i++) { + int voxel = int(texelFetch(voxel_sampler, ivec3(voxelPos + portalOffsets[i]), 0).r); + if (voxel == 58 || voxel == 255) { // End Portal Frame or Bedrock + edge = 1.0; break; + } + } + + #ifdef END + // No edge effect in the middle of the return fountain + vec2 var1 = abs(playerPos.xz + cameraPosition.xz - 0.5); + float var2 = max(var1.x, var1.y); + if (var2 > 1.0) + #endif + { + vec4 edgeColor = vec4(vec3(0.18, 0.5, 0.45), 1.0); + color = mix(color, edgeColor, edge); + emission = mix(emission, 5.0, edge); + } + } +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/others/signText.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/others/signText.glsl new file mode 100644 index 0000000..c196c54 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/others/signText.glsl @@ -0,0 +1,15 @@ +normalM = upVec; + +highlightMult = 0.0; +shadowMult = vec3(0.0); + +#if MC_VERSION >= 11700 + if (lmCoord.x > 0.99) { // Glowing Sign Text + lmCoordM = vec2(0.0); + + emission = 1.0; + + color.rgb *= length(color.rgb) + 0.5; + } else // Normal Sign Text +#endif +color.rgb *= 5.0; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/others/trident.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/others/trident.glsl new file mode 100644 index 0000000..daeea3a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/others/trident.glsl @@ -0,0 +1,4 @@ +smoothnessG = color.g; +smoothnessD = color.g; + +emission = min(max0(dot(color.rgb, color.rgb) - 1.0) * 6.0, 1.0); \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/acaciaPlanks.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/acaciaPlanks.glsl new file mode 100644 index 0000000..8ea0ab5 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/acaciaPlanks.glsl @@ -0,0 +1,6 @@ +smoothnessG = pow2(pow2(color.r)) * 0.65; +smoothnessD = smoothnessG; + +#ifdef COATED_TEXTURES + noiseFactor = 0.5; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/bambooPlanks.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/bambooPlanks.glsl new file mode 100644 index 0000000..2b0a45e --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/bambooPlanks.glsl @@ -0,0 +1,3 @@ +smoothnessG = color.r * 0.4; + +smoothnessD = color.r * 0.3; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/birchPlanks.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/birchPlanks.glsl new file mode 100644 index 0000000..6ed814d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/birchPlanks.glsl @@ -0,0 +1,6 @@ +smoothnessG = pow2(pow2(color.g)) * 0.75; +smoothnessD = smoothnessG; + +#ifdef COATED_TEXTURES + noiseFactor = 0.66; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/cherryPlanks.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/cherryPlanks.glsl new file mode 100644 index 0000000..80ef5a9 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/cherryPlanks.glsl @@ -0,0 +1,6 @@ +smoothnessG = pow2(pow2(color.g)) * 0.7; +smoothnessD = smoothnessG; + +#ifdef COATED_TEXTURES + noiseFactor = 0.66; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/crimsonPlanks.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/crimsonPlanks.glsl new file mode 100644 index 0000000..2506ad2 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/crimsonPlanks.glsl @@ -0,0 +1,6 @@ +smoothnessG = pow2(color.r) * 0.7; +smoothnessD = smoothnessG; + +#ifdef COATED_TEXTURES + noiseFactor = 0.77; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/darkOakPlanks.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/darkOakPlanks.glsl new file mode 100644 index 0000000..7b61730 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/darkOakPlanks.glsl @@ -0,0 +1,6 @@ +smoothnessG = color.r * 0.7; +smoothnessD = smoothnessG; + +#ifdef COATED_TEXTURES + noiseFactor = 0.66; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/junglePlanks.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/junglePlanks.glsl new file mode 100644 index 0000000..68e61b6 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/junglePlanks.glsl @@ -0,0 +1,7 @@ +smoothnessG = pow2(pow2(pow2(color.g))) * 12.0; +smoothnessG = min1(smoothnessG); +smoothnessD = smoothnessG; + +#ifdef COATED_TEXTURES + noiseFactor = 0.66; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/mangrovePlanks.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/mangrovePlanks.glsl new file mode 100644 index 0000000..cc5f933 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/mangrovePlanks.glsl @@ -0,0 +1,3 @@ +smoothnessG = pow2(color.r) * 0.7; +smoothnessG = min1(smoothnessG); +smoothnessD = smoothnessG; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/oakPlanks.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/oakPlanks.glsl new file mode 100644 index 0000000..56e3772 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/oakPlanks.glsl @@ -0,0 +1,7 @@ +smoothnessG = pow2(pow2(pow2(color.g))) * 12.0; +smoothnessG = min1(smoothnessG); +smoothnessD = smoothnessG; + +#ifdef COATED_TEXTURES + noiseFactor = 0.77; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/paleOakPlanks.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/paleOakPlanks.glsl new file mode 100644 index 0000000..7aa8edf --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/paleOakPlanks.glsl @@ -0,0 +1,6 @@ +smoothnessG = pow2(color.g) * 0.25; +smoothnessD = smoothnessG; + +#ifdef COATED_TEXTURES + noiseFactor = 0.66; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/sprucePlanks.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/sprucePlanks.glsl new file mode 100644 index 0000000..6d37644 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/sprucePlanks.glsl @@ -0,0 +1,7 @@ +smoothnessG = pow2(pow2(color.g)) * 8.0; +smoothnessG = min1(smoothnessG); +smoothnessD = smoothnessG; + +#ifdef COATED_TEXTURES + noiseFactor = 0.66; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/warpedPlanks.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/warpedPlanks.glsl new file mode 100644 index 0000000..434288d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/planks/warpedPlanks.glsl @@ -0,0 +1,6 @@ +smoothnessG = pow2(color.g) * 0.7; +smoothnessD = smoothnessG; + +#ifdef COATED_TEXTURES + noiseFactor = 0.77; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/anvil.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/anvil.glsl new file mode 100644 index 0000000..f55110b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/anvil.glsl @@ -0,0 +1,6 @@ +smoothnessG = color.r; +smoothnessD = color.r; + +#ifdef COATED_TEXTURES + noiseFactor = 0.33; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/blackstone.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/blackstone.glsl new file mode 100644 index 0000000..cd04345 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/blackstone.glsl @@ -0,0 +1,2 @@ +smoothnessG = color.r; +smoothnessD = color.r * 0.65; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/candle.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/candle.glsl new file mode 100644 index 0000000..99c9247 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/candle.glsl @@ -0,0 +1,7 @@ +noSmoothLighting = true; + +color.rgb *= 1.0 + 0.7 * pow2(max(-signMidCoordPos.y + 0.6, float(NdotU > 0.9) * 1.6)); + +#ifdef SNOWY_WORLD + snowFactor = 0.0; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/cobblestone.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/cobblestone.glsl new file mode 100644 index 0000000..f96f771 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/cobblestone.glsl @@ -0,0 +1,4 @@ +smoothnessG = pow2(pow2(color.g)) * 1.5; +smoothnessG = min1(smoothnessG); +smoothnessD = smoothnessG; +smoothnessG = max(smoothnessG, 0.3 * color.g * float(color.g > color.b * 1.5)); \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/copperBlock.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/copperBlock.glsl new file mode 100644 index 0000000..81bbfc3 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/copperBlock.glsl @@ -0,0 +1,10 @@ +materialMask = OSIEBCA * 2.0; // Copper Fresnel +smoothnessG = pow2(pow2(color.r)) + pow2(max0(color.g - color.r * 0.5)) * 0.3; +smoothnessG = min1(smoothnessG); +smoothnessD = smoothnessG; + +color.rgb *= 0.6 + 0.7 * GetLuminance(color.rgb); + +#ifdef COATED_TEXTURES + noiseFactor = 0.5; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/copperBulb.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/copperBulb.glsl new file mode 100644 index 0000000..dba61fc --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/copperBulb.glsl @@ -0,0 +1,20 @@ +noSmoothLighting = true; + +vec3 hsvColor = rgb2hsv(color.rgb); +if (abs(hsvColor.r - 0.09722) < 0.04305 && hsvColor.b > 0.7) { // Active Light Part + smoothnessG = 0.75; + smoothnessD = 0.35; + + float blockRes = absMidCoordPos.x * atlasSize.x; + vec2 signMidCoordPosM = (floor((signMidCoordPos + 1.0) * blockRes) + 0.5) / blockRes - 1.0; + float dotsignMidCoordPos = dot(signMidCoordPosM, signMidCoordPosM); + float lBlockPosM = pow2(max0(1.0 - 1.7 * pow2(pow2(dotsignMidCoordPos)))); + + emission = pow2(lmCoordM.x) + 0.3 * color.r; + emission *= (0.7 + 2.0 * pow2(lBlockPosM)); +} else if (color.r > 2.5 * (color.g + color.b)) { // Middle Redstone Part + emission = 4.0; + color.rgb *= color.rgb; +} else { // Copper Base + #include "/lib/materials/specificMaterials/terrain/copperBlock.glsl" +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/coral.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/coral.glsl new file mode 100644 index 0000000..77d5d72 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/coral.glsl @@ -0,0 +1,7 @@ +float lColor = length(color.rgb); +smoothnessG = lColor * 0.2; +smoothnessD = lColor * 0.15; + +#ifdef COATED_TEXTURES + noiseFactor = 0.66; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/cryingObsidian.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/cryingObsidian.glsl new file mode 100644 index 0000000..ffcdada --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/cryingObsidian.glsl @@ -0,0 +1,11 @@ +#include "/lib/materials/specificMaterials/terrain/obsidian.glsl" + +highlightMult *= 0.5; + +float factor0 = sqrt2(max0(color.b - color.g * 6.0)); +float factor1 = pow2(color.b); +emission = 1.35 + pow2(pow2(factor1)) * 7.5; +emission *= factor0; +color.r *= 1.15; + +maRecolor = vec3(factor0 * min(max0(factor1 * 0.7 - 0.1) * 1.3, 0.5)); \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/deepslate.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/deepslate.glsl new file mode 100644 index 0000000..7c4210e --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/deepslate.glsl @@ -0,0 +1,5 @@ +smoothnessG = pow2(color.g); +smoothnessG = smoothnessG; +smoothnessD = smoothnessG; + +materialMask = OSIEBCA; // Intense Fresnel \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/diamondBlock.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/diamondBlock.glsl new file mode 100644 index 0000000..f59184b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/diamondBlock.glsl @@ -0,0 +1,25 @@ +materialMask = OSIEBCA; // Intense Fresnel + +float factor = max(color.g, 0.8); +float factor2 = pow2(factor); +#ifdef GBUFFERS_TERRAIN + float factor4 = pow2(factor2); +#else + float factor4 = factor2; +#endif + +smoothnessG = factor - pow2(pow2(color.g)) * 0.4; +highlightMult = 3.0 * max(pow2(factor4), 0.2); + +smoothnessD = factor4 * 0.75; + +#if MC_VERSION < 11300 + highlightMult *= 2.0; + smoothnessD /= 0.75; +#endif + +color.rgb *= 0.7 + 0.4 * GetLuminance(color.rgb); + +#ifdef COATED_TEXTURES + noiseFactor = 0.5; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/dirt.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/dirt.glsl new file mode 100644 index 0000000..342053e --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/dirt.glsl @@ -0,0 +1 @@ +smoothnessG = color.r * 0.1 + 0.1; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/emeraldBlock.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/emeraldBlock.glsl new file mode 100644 index 0000000..f2e049c --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/emeraldBlock.glsl @@ -0,0 +1,14 @@ +materialMask = OSIEBCA; // Intense Fresnel + +float factor = pow2(sqrt2(GetLuminance(color.rgb))); +float factor2 = pow2(factor); +float factor4 = pow2(factor2); + +smoothnessG = factor - factor4 * 0.4; +highlightMult = 3.0 * factor4; + +smoothnessD = factor4 * 0.75; + +#ifdef COATED_TEXTURES + noiseFactor = 0.5; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/endPortalFrame.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/endPortalFrame.glsl new file mode 100644 index 0000000..65dba9f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/endPortalFrame.glsl @@ -0,0 +1,3 @@ +// End Portal Frame:Green Parts +smoothnessG = 0.25; +smoothnessD = 0.45; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/endStone.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/endStone.glsl new file mode 100644 index 0000000..d34805f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/endStone.glsl @@ -0,0 +1,7 @@ +float factor = pow2(pow2(color.r)); +smoothnessG = factor * 0.65; +smoothnessD = smoothnessG * 0.6; + +#ifdef COATED_TEXTURES + noiseFactor = 0.66; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/froglights.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/froglights.glsl new file mode 100644 index 0000000..73f0504 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/froglights.glsl @@ -0,0 +1,14 @@ +noSmoothLighting = true; noDirectionalShading = true; +lmCoordM = vec2(1.0, 0.0); + +float blockRes = absMidCoordPos.x * atlasSize.x; +vec2 signMidCoordPosM = abs((floor((signMidCoordPos + 1.0) * blockRes) + 0.5) / blockRes - 1.0); +float value = 1.0 - max(signMidCoordPosM.x, signMidCoordPosM.y); +emission = 0.3 + value + pow(dot(color.rgb, color.rgb) * 0.33, frogPow); +emission *= 1.7; + +#ifdef DISTANT_LIGHT_BOKEH + DoDistantLightBokehMaterial(emission, 2.0, lViewPos); +#endif + +color.rgb = pow2(color.rgb); \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/goldBlock.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/goldBlock.glsl new file mode 100644 index 0000000..44e1532 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/goldBlock.glsl @@ -0,0 +1,20 @@ +materialMask = OSIEBCA * 3.0; // Gold Fresnel + +#ifdef GBUFFERS_TERRAIN + float colorG2 = pow2(color.g); +#else + float colorG2 = color.g; +#endif +float colorG4 = pow2(colorG2); +float factor = max(color.g, 0.8); + +smoothnessG = min1(factor - colorG4 * 0.5); +highlightMult = 3.5 * max(colorG4, 0.2); + +smoothnessD = colorG4; + +color.rgb *= 0.5 + 0.4 * GetLuminance(color.rgb); + +#ifdef COATED_TEXTURES + noiseFactor = 0.33; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/ironBlock.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/ironBlock.glsl new file mode 100644 index 0000000..824e57b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/ironBlock.glsl @@ -0,0 +1,14 @@ +#ifdef GBUFFERS_TERRAIN + smoothnessG = pow2(pow2(color.r)); +#else + smoothnessG = pow2(color.r); +#endif +highlightMult = smoothnessG * 3.0; +smoothnessD = smoothnessG; +materialMask = OSIEBCA; // Intense Fresnel + +color.rgb *= 0.6 + 0.5 * GetLuminance(color.rgb); + +#ifdef COATED_TEXTURES + noiseFactor = 0.33; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/lanternMetal.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/lanternMetal.glsl new file mode 100644 index 0000000..374efc7 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/lanternMetal.glsl @@ -0,0 +1,6 @@ +smoothnessG = color.b; +smoothnessD = color.b; + +#ifdef COATED_TEXTURES + noiseFactor = 0.66; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/lapisBlock.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/lapisBlock.glsl new file mode 100644 index 0000000..1b562e0 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/lapisBlock.glsl @@ -0,0 +1,6 @@ +smoothnessG = pow2(color.b) * 0.8; +smoothnessD = smoothnessG; + +#ifdef COATED_TEXTURES + noiseFactor = 0.5; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/lava.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/lava.glsl new file mode 100644 index 0000000..7ca0d1d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/lava.glsl @@ -0,0 +1,34 @@ +#ifndef IPBR_COMPATIBILITY_MODE + // Tweak to prevent the animation of lava causing brightness pulsing + vec3 avgColor = vec3(0.0); + ivec2 itexCoordC = ivec2(midCoord * atlasSize + 0.0001); + for (int x = -8; x < 8; x += 2) { + for (int y = -8; y < 8; y += 2) { + avgColor += texelFetch(tex, itexCoordC + ivec2(x, y), 0).rgb; + } + } + color.rgb /= max(GetLuminance(avgColor) * 0.0390625, 0.001); +#else + color.rgb *= 0.86; +#endif + +#ifdef NETHER + vec3 worldPos = playerPos + cameraPosition; + vec2 lavaPos = (floor(worldPos.xz * 16.0) + worldPos.y * 32.0) * 0.000666; + vec2 wind = vec2(frameTimeCounter * 0.012, 0.0); + + float noiseSample = texture2D(noisetex, lavaPos + wind).g; + noiseSample = noiseSample - 0.5; + noiseSample *= 0.1; + color.rgb = pow(color.rgb, vec3(1.0 + noiseSample)); +#endif + +noDirectionalShading = true; +lmCoordM = vec2(0.0); +emission = GetLuminance(color.rgb) * 6.5; + +maRecolor = vec3(clamp(pow2(pow2(pow2(smoothstep1(emission * 0.28)))), 0.12, 0.4) * 1.3) * vec3(1.0, vec2(0.7)); + +#if RAIN_PUDDLES >= 1 + noPuddles = 1.0; +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/leaves.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/leaves.glsl new file mode 100644 index 0000000..334241b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/leaves.glsl @@ -0,0 +1,26 @@ +subsurfaceMode = 2; + +#ifdef GBUFFERS_TERRAIN + materialMask = OSIEBCA * 253.0; // Reduced Edge TAA + + #ifdef COATED_TEXTURES + doTileRandomisation = false; + #endif +#endif + +#ifdef IPBR + float factor = min1(pow2(color.g - 0.15 * (color.r + color.b)) * 2.5); + smoothnessG = factor * 0.4; + highlightMult = factor * 4.0 + 2.0; + float fresnel = clamp(1.0 + dot(normalM, normalize(viewPos)), 0.0, 1.0); + highlightMult *= 1.0 - pow2(pow2(fresnel)); +#endif + +#ifdef SNOWY_WORLD + snowMinNdotU = min(pow2(pow2(color.g)), 0.1); + color.rgb = color.rgb * 0.5 + 0.5 * (color.rgb / glColor.rgb); +#endif + +#if SHADOW_QUALITY > -1 && SHADOW_QUALITY < 3 && defined OVERWORLD + shadowMult = vec3(sqrt1(max0(max(lmCoordM.y, min1(lmCoordM.x * 2.0)) - 0.95) * 20.0)); +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/netheriteBlock.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/netheriteBlock.glsl new file mode 100644 index 0000000..88229f9 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/netheriteBlock.glsl @@ -0,0 +1,8 @@ +smoothnessG = pow2(color.r * 2.0); +smoothnessG = min1(smoothnessG); +highlightMult = smoothnessG * 2.0; +smoothnessD = smoothnessG; + +#ifdef COATED_TEXTURES + noiseFactor = 0.33; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/netherrack.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/netherrack.glsl new file mode 100644 index 0000000..c5fba0f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/netherrack.glsl @@ -0,0 +1,7 @@ +#if MC_VERSION >= 11300 + smoothnessG = pow2(color.r) * 1.5; + smoothnessG = min1(smoothnessG); +#else + smoothnessG = color.r * 0.4 + 0.2; +#endif +smoothnessD = smoothnessG; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/oakWood.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/oakWood.glsl new file mode 100644 index 0000000..763ba83 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/oakWood.glsl @@ -0,0 +1,3 @@ +smoothnessG = pow2(pow2(color.g)) * 2.5; +smoothnessG = min1(smoothnessG); +smoothnessD = smoothnessG; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/obsidian.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/obsidian.glsl new file mode 100644 index 0000000..a768754 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/obsidian.glsl @@ -0,0 +1,13 @@ +materialMask = OSIEBCA; // Intense Fresnel + +float factor = max0(0.3 - abs(color.r - 0.3)) * 1.5; + +smoothnessG = factor; +highlightMult = 2.0 + min1(smoothnessG * 2.0) * 1.5; +smoothnessG = min1(smoothnessG); + +smoothnessD = min1(factor + 0.07); + +#ifdef COATED_TEXTURES + noiseFactor = 1.25; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/openEyeblossom.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/openEyeblossom.glsl new file mode 100644 index 0000000..f0190c5 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/openEyeblossom.glsl @@ -0,0 +1,15 @@ +subsurfaceMode = 1, noSmoothLighting = true, noDirectionalShading = true; + +#ifdef GBUFFERS_TERRAIN + DoFoliageColorTweaks(color.rgb, shadowMult, snowMinNdotU, viewPos, nViewPos, lViewPos, dither); + + #ifdef COATED_TEXTURES + doTileRandomisation = false; + #endif +#endif + +if (color.r > 0.7 && color.r > color.g * 1.2 && color.g > color.b * 2.0) { // Emissive Part + lmCoordM.x = 0.5; + emission = 5.0 * color.g; + color.rgb *= color.rgb; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/paleOakWood.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/paleOakWood.glsl new file mode 100644 index 0000000..51c5498 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/paleOakWood.glsl @@ -0,0 +1,2 @@ +smoothnessD = pow2(color.g) * 0.7; +smoothnessG = smoothnessD; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/pumpkin.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/pumpkin.glsl new file mode 100644 index 0000000..a5c240c --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/pumpkin.glsl @@ -0,0 +1 @@ +smoothnessG = color.g * 0.25; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/quartzBlock.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/quartzBlock.glsl new file mode 100644 index 0000000..d0c0122 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/quartzBlock.glsl @@ -0,0 +1,19 @@ +materialMask = OSIEBCA; // Intense Fresnel + +float factor = color.g; +float factor2 = pow2(factor); +float factor4 = pow2(factor2); +float factor8 = pow2(factor4); + +smoothnessG = factor - factor8 * 0.5; +highlightMult = 3.5 * factor8; + +smoothnessD = factor8; + +#ifdef GBUFFERS_TERRAIN + DoBrightBlockTweaks(color.rgb, 0.5, shadowMult, highlightMult); +#endif + +#ifdef COATED_TEXTURES + noiseFactor = 0.5; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/rawCopperBlock.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/rawCopperBlock.glsl new file mode 100644 index 0000000..baf471f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/rawCopperBlock.glsl @@ -0,0 +1,4 @@ +materialMask = OSIEBCA * 2.0; // Copper Fresnel +smoothnessG = pow2(color.r + color.g * 0.25) * 0.4; +smoothnessG = min1(smoothnessG); +smoothnessD = min1(smoothnessG * smoothnessG * 2.0); \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/rawGoldBlock.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/rawGoldBlock.glsl new file mode 100644 index 0000000..4168ef6 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/rawGoldBlock.glsl @@ -0,0 +1,3 @@ +materialMask = OSIEBCA * 3.0; // Gold Fresnel +smoothnessG = pow2(pow2(color.g)); +smoothnessD = 0.5 * (smoothnessG + color.b); \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/rawIronBlock.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/rawIronBlock.glsl new file mode 100644 index 0000000..6ffa82a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/rawIronBlock.glsl @@ -0,0 +1,3 @@ +materialMask = OSIEBCA; // Intense Fresnel +smoothnessG = pow2(pow2(color.r)) * 0.7; +smoothnessD = smoothnessG * 0.6; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/redstoneBlock.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/redstoneBlock.glsl new file mode 100644 index 0000000..7bc1fa0 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/redstoneBlock.glsl @@ -0,0 +1,11 @@ +materialMask = OSIEBCA * 5.0; // Redstone Fresnel + +float factor = pow2(color.r); +smoothnessG = 0.4; +highlightMult = factor + 0.2; + +smoothnessD = factor * 0.5 + 0.1; + +#ifdef COATED_TEXTURES + noiseFactor = 0.77; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/redstoneTorch.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/redstoneTorch.glsl new file mode 100644 index 0000000..4b584c0 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/redstoneTorch.glsl @@ -0,0 +1,16 @@ +if (color.r > 0.65) { + emission = (3.5 - 2.25 * color.g) * 0.97; + color.rgb *= color.rgb; + + #if MC_VERSION >= 12102 // redstone torch model got changed in 1.21.2 + color.gb = max(color.gb * vec2(0.75, 0.5), pow2(color.gb)); + #endif +} else if (color.r > color.g * 2.0) { + materialMask = OSIEBCA * 5.0; // Redstone Fresnel + + float factor = pow2(color.r); + smoothnessG = 0.4; + highlightMult = factor + 0.4; + + smoothnessD = factor * 0.7 + 0.3; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/snow.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/snow.glsl new file mode 100644 index 0000000..6cc4f52 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/snow.glsl @@ -0,0 +1,12 @@ +smoothnessG = (1.0 - pow(color.g, 64.0) * 0.3) * 0.4; +highlightMult = 2.0; + +smoothnessD = smoothnessG; + +#ifdef GBUFFERS_TERRAIN + DoBrightBlockTweaks(color.rgb, 0.5, shadowMult, highlightMult); +#endif + +#if RAIN_PUDDLES >= 1 + noPuddles = 1.0; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/stone.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/stone.glsl new file mode 100644 index 0000000..e00ffcf --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/stone.glsl @@ -0,0 +1,7 @@ +smoothnessG = pow2(pow2(color.g)) * 2.0; +smoothnessG = min1(smoothnessG); +smoothnessD = smoothnessG; + +#ifdef COATED_TEXTURES + noiseFactor = 0.77; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/torchflower.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/torchflower.glsl new file mode 100644 index 0000000..7c81b1b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/terrain/torchflower.glsl @@ -0,0 +1,17 @@ +subsurfaceMode = 1, noSmoothLighting = true, noDirectionalShading = true; + +#ifdef GBUFFERS_TERRAIN + DoFoliageColorTweaks(color.rgb, shadowMult, snowMinNdotU, viewPos, nViewPos, lViewPos, dither); + + #ifdef COATED_TEXTURES + doTileRandomisation = false; + #endif +#endif + +#if defined GBUFFERS_TERRAIN && !defined IPBR_COMPATIBILITY_MODE + emission = (1.0 - abs(signMidCoordPos.x)) * max0(0.7 - abs(signMidCoordPos.y + 0.7)); + emission = pow1_5(emission) * 2.5; +#else + if (color.r + color.g > color.b + 1.1) emission = 0.8; + else if (color.r > color.g + color.b) emission = 0.2; +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/glass.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/glass.glsl new file mode 100644 index 0000000..ac70429 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/glass.glsl @@ -0,0 +1,22 @@ +if (color.a > 0.001) { + smoothnessG = 1.0; + highlightMult = 3.5; + reflectMult = 0.5; + + translucentMultCalculated = true; + translucentMult = vec4(0.0, 0.0, 0.0, 1.0); +} else { + #ifdef FANCY_GLASS + smoothnessG = 0.5; + highlightMult = 2.5; + reflectMult = 1.0; + color.rgb = vec3(0.75, 0.8, 0.85); + + translucentMultCalculated = true; + translucentMult.a = 0.0; + + color.a = max(color.a, GLASS_OPACITY); + #else + //discard; + #endif +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/netherPortal.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/netherPortal.glsl new file mode 100644 index 0000000..0aaa9b6 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/netherPortal.glsl @@ -0,0 +1,72 @@ +lmCoordM = vec2(0.0); +color = vec4(0.0); + +int sampleCount = 8; + +float multiplier = 0.4 / (-viewVector.z * sampleCount); +vec2 interval = viewVector.xy * multiplier; +vec2 coord = signMidCoordPos * 0.5 + 0.5; +vec2 absMidCoordPos2 = absMidCoordPos * 2.0; +vec2 midCoord = texCoord - absMidCoordPos * signMidCoordPos; +vec2 minimumMidCoordPos = midCoord - absMidCoordPos; + +for (int i = 0; i < sampleCount; i++) { + float portalStep = (i + dither) / sampleCount; + coord += interval * portalStep; + vec2 sampleCoord = fract(coord) * absMidCoordPos2 + minimumMidCoordPos; + vec4 psample = texture2DLod(tex, sampleCoord, 0); + + float factor = 1.0 - portalStep; + psample *= pow(factor, 0.1); + + emission = max(emission, psample.r); + + color += psample; +} +color /= sampleCount; + +color.rgb *= color.rgb * vec3(1.25, 1.0, 0.65); +color.a = sqrt1(color.a) * 0.8; + +emission *= emission; +emission *= emission; +emission *= emission; +emission = clamp(emission * 120.0, 0.03, 1.2) * 8.0; + +#define PORTAL_REDUCE_CLOSEUP +#ifdef PORTAL_REDUCE_CLOSEUP + color.a *= min1(lViewPos - 0.2); + if (color.a < 0.101) { + if (color.a < 0.101 * dither) discard; + else color.a = 0.101; + } +#endif + +#ifdef PORTAL_EDGE_EFFECT + vec3 voxelPos = SceneToVoxel(playerPos); + + if (CheckInsideVoxelVolume(voxelPos)) { + float portalOffset = 0.0625 * dither; + vec3[6] portalOffsets = vec3[]( + vec3( portalOffset, 0, 0), + vec3(-portalOffset, 0, 0), + vec3( 0, portalOffset, 0), + vec3( 0,-portalOffset, 0), + vec3( 0, 0, portalOffset), + vec3( 0, 0,-portalOffset) + ); + + float edge = 0.0; + for (int i = 0; i < 6; i++) { + uint voxel = texelFetch(voxel_sampler, ivec3(voxelPos + portalOffsets[i]), 0).r; + if (voxel != uint(25)) { + edge = 1.0; break; + } + } + + vec4 edgeColor = vec4(normalize(color.rgb), 1.0); + edgeColor.b *= 0.8; + color = mix(color, edgeColor, edge); + emission = mix(emission, 5.0, edge); + } +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/stainedGlass.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/stainedGlass.glsl new file mode 100644 index 0000000..1b89bf7 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/stainedGlass.glsl @@ -0,0 +1,3 @@ +smoothnessG = 0.5; +highlightMult = 1.5; +reflectMult = 1.0; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/water.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/water.glsl new file mode 100644 index 0000000..5fe1691 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/materials/specificMaterials/translucents/water.glsl @@ -0,0 +1,276 @@ +// ============================== Step 1: Color Prep ============================== // +#if MC_VERSION >= 11300 + #if WATERCOLOR_MODE >= 2 + vec3 glColorM = glColor.rgb; + + #if WATERCOLOR_MODE >= 3 + glColorM.g = max(glColorM.g, 0.39); + #endif + + #ifdef GBUFFERS_WATER + translucentMultCalculated = true; + translucentMult.rgb = normalize(sqrt2(glColor.rgb)); + translucentMult.g *= 0.88; + #endif + + glColorM = sqrt1(glColorM) * vec3(1.0, 0.85, 0.8); + #else + vec3 glColorM = vec3(0.43, 0.6, 0.8); + #endif + + #if WATER_STYLE < 3 + vec3 colorPM = pow2(colorP.rgb); + color.rgb = colorPM * glColorM; + #else + vec3 colorPM = vec3(0.25); + color.rgb = 0.375 * glColorM; + #endif +#else + #if WATER_STYLE < 3 + color.rgb = mix(color.rgb, vec3(GetLuminance(color.rgb)), 0.88); + color.rgb = pow2(color.rgb) * vec3(2.3, 3.5, 3.1) * 0.9; + #else + color.rgb = vec3(0.13, 0.2, 0.27); + #endif +#endif + +#ifdef WATERCOLOR_CHANGED + color.rgb *= vec3(WATERCOLOR_RM, WATERCOLOR_GM, WATERCOLOR_BM); +#endif +// ============================== End of Step 1 ============================== // + +#define PHYSICS_OCEAN_INJECTION +#if defined GENERATED_NORMALS && (WATER_STYLE >= 2 || defined PHYSICS_OCEAN) && !defined DH_WATER + noGeneratedNormals = true; +#endif + +#if defined GBUFFERS_WATER || defined DH_WATER + lmCoordM.y = min(lmCoord.y * 1.07, 1.0); // Iris/Sodium skylight inconsistency workaround + + float fresnel2 = pow2(fresnel); + float fresnel4 = pow2(fresnel2); + + // ============================== Step 2: Water Normals ============================== // + reflectMult = 1.0; + + #if WATER_MAT_QUALITY >= 3 + materialMask = OSIEBCA * 241.0; // Water + #endif + + #if WATER_MAT_QUALITY >= 2 || WATER_STYLE >= 2 + #define WATER_SPEED_MULT_M WATER_SPEED_MULT * 0.018 + float rawWind = frameTimeCounter * WATER_SPEED_MULT_M; + vec2 wind = vec2(rawWind, 0.0); + vec3 worldPos = playerPos + cameraPosition; + vec2 waterPos = worldPos.xz; + #if WATER_STYLE < 3 && defined GBUFFERS_WATER + float blockRes = absMidCoordPos.x * atlasSize.x * 2.0; + waterPos = floor(waterPos * blockRes) / blockRes; + #endif + waterPos = 0.032 * (waterPos + worldPos.y * 2.0); + #endif + + #if WATER_STYLE >= 2 || RAIN_PUDDLES >= 1 && WATER_STYLE == 1 && WATER_MAT_QUALITY >= 2 + vec3 normalMap = vec3(0.0, 0.0, 1.0); + #if WATER_STYLE >= 2 + vec2 waterPosM = waterPos; + + #if WATER_SIZE_MULT != 100 + #define WATER_SIZE_MULT_M WATER_SIZE_MULT * 0.01 + waterPosM *= WATER_SIZE_MULT_M; + #endif + + #define WATER_BUMPINESS_M WATER_BUMPINESS * 0.8 + + #if WATER_STYLE >= 2 + waterPosM *= 2.5; wind *= 2.5; + + #if WATER_MAT_QUALITY >= 2 + vec2 parallaxMult = -0.01 * viewVector.xy / viewVector.z; + for (int i = 0; i < 4; i++) { + waterPosM += parallaxMult * texture2D(gaux4, waterPosM - wind).a; + waterPosM += parallaxMult * texture2D(gaux4, waterPosM * 0.25 - 0.5 * wind).a; + } + #endif + + vec2 normalMed = texture2D(gaux4, waterPosM + wind).rg - 0.5; + vec2 normalSmall = texture2D(gaux4, waterPosM * 4.0 - 2.0 * wind).rg - 0.5; + vec2 normalBig = texture2D(gaux4, waterPosM * 0.25 - 0.5 * wind).rg - 0.5; + normalBig += texture2D(gaux4, waterPosM * 0.05 - 0.05 * wind).rg - 0.5; + + normalMap.xy = normalMed * WATER_BUMP_MED + normalSmall * WATER_BUMP_SMALL + normalBig * WATER_BUMP_BIG; + normalMap.xy *= 6.0 * (1.0 - 0.7 * fresnel) * WATER_BUMPINESS_M; + #endif + + normalMap.xy *= 0.03 * lmCoordM.y + 0.01; + #else + float pNormalMult = 0.02 * rainFactor * inRainy * pow2(lmCoordM.y); + + if (pNormalMult > 0.0005) { + vec2 puddlePos = floor((playerPos.xz + cameraPosition.xz) * 16.0) * 0.00625; + + vec2 puddleWind = vec2(frameTimeCounter) * 0.015; + vec2 pNormalCoord1 = puddlePos + vec2(puddleWind.x, puddleWind.y); + vec2 pNormalCoord2 = puddlePos + vec2(puddleWind.x * -1.5, puddleWind.y * -1.0); + vec3 pNormalNoise1 = texture2D(noisetex, pNormalCoord1).rgb; + vec3 pNormalNoise2 = texture2D(noisetex, pNormalCoord2).rgb; + + normalMap.xy = (pNormalNoise1.xy + pNormalNoise2.xy - vec2(1.0)) * pNormalMult; + #endif + + normalMap.z = sqrt(1.0 - (pow2(normalMap.x) + pow2(normalMap.y))); + normalM = clamp(normalize(normalMap * tbnMatrix), vec3(-1.0), vec3(1.0)); + + #if WATER_STYLE == 1 + } + #endif + + #if WATER_STYLE >= 2 + vec3 vector = reflect(nViewPos, normalize(normalM)); + float norMix = pow2(pow2(pow2(1.0 - max0(dot(normal, vector))))) * 0.5; + normalM = mix(normalM, normal, norMix); // Fixes normals pointing inside water + + float fresnelP = fresnel; + fresnel = clamp(1.0 + dot(normalM, nViewPos), 0.0, 1.0); + #endif + #endif + // ============================== End of Step 2 ============================== // + + // ============================== Step 3: Water Material Features ============================== // + #if WATER_MAT_QUALITY >= 2 + if (isEyeInWater != 1) { + // Noise Coloring // + float noise = texture2D(noisetex, (waterPos + wind) * 0.25).g; + noise = noise - 0.5; + noise *= 0.25; + color.rgb = pow(color.rgb, vec3(1.0 + noise)); + + // Water Alpha // + #ifdef GBUFFERS_WATER + float depthT = texelFetch(depthtex1, texelCoord, 0).r; + #elif defined DH_WATER + float depthT = texelFetch(dhDepthTex1, texelCoord, 0).r; + #endif + vec3 screenPosT = vec3(screenPos.xy, depthT); + #ifdef TAA + vec3 viewPosT = ScreenToView(vec3(TAAJitter(screenPosT.xy, -0.5), screenPosT.z)); + #else + vec3 viewPosT = ScreenToView(screenPosT); + #endif + float lViewPosT = length(viewPosT); + float lViewPosDifM = lViewPos - lViewPosT; + + #if WATER_STYLE < 3 + color.a = sqrt1(color.a); + #else + color.a = 0.98; + #endif + + #ifdef DISTANT_HORIZONS + if (depthT == 1.0) color.a *= smoothstep(far, far * 0.9, lViewPos); + #endif + + #if WATER_FOG_MULT != 100 + #define WATER_FOG_MULT_M WATER_FOG_MULT * 0.01; + lViewPosDifM *= WATER_FOG_MULT_M; + #endif + + float waterFog = max0(1.0 - exp(lViewPosDifM * 0.075)); + color.a *= 0.25 + 0.75 * waterFog; + + #if defined BRIGHT_CAVE_WATER && WATER_ALPHA_MULT < 200 + // For better water visibility in caves and some extra color pop outdoors + color.rgb *= 2.5 - sqrt2(waterFog) - 0.5 * lmCoordM.y; + #endif + + #if WATER_ALPHA_MULT != 100 + #define WATER_ALPHA_MULT_M 100.0 / WATER_ALPHA_MULT + color.a = pow(color.a, WATER_ALPHA_MULT_M); + #endif + //// + + // Water Foam // + #if WATER_FOAM_I > 0 && defined GBUFFERS_WATER + if (NdotU > 0.99) { + vec3 matrixM = vec3( + gbufferModelViewInverse[0].y, + gbufferModelViewInverse[1].y, + gbufferModelViewInverse[2].y + ); + float playerPosTY = dot(matrixM, viewPosT) + gbufferModelViewInverse[3].y; + float yPosDif = playerPosTY - playerPos.y; + + #if WATER_STYLE < 3 && MC_VERSION >= 11300 + float dotColorPM = dot(colorPM, colorPM); + float foamThreshold = min(pow2(dotColorPM) * 1.6, 1.2); + #else + float foamThreshold = pow2(texture2D(noisetex, waterPos * 4.0 + wind * 0.5).g) * 1.6; + #endif + float foam = pow2(clamp((foamThreshold + yPosDif) / foamThreshold, 0.0, 1.0)); + #ifndef END + foam *= 0.4 + 0.25 * lmCoord.y; + #else + foam *= 0.6; + #endif + foam *= clamp((fract(worldPos.y) - 0.7) * 10.0, 0.0, 1.0); + + vec4 foamColor = vec4(0.9, 0.95, 1.05, 1.0); + + #define WATER_FOAM_IM WATER_FOAM_I * 0.01 + #if WATER_FOAM_I < 100 + foam *= WATER_FOAM_IM; + #elif WATER_FOAM_I > 100 + foamColor *= WATER_FOAM_IM; + #endif + + color = mix(color, foamColor, foam); + reflectMult = 1.0 - foam; + } + #endif + //// + } else { // Underwater + noDirectionalShading = true; + + reflectMult = 0.5; + + #if MC_VERSION < 11300 && WATER_STYLE >= 3 + color.a = 0.7; + #endif + + #ifdef GBUFFERS_WATER + #if WATER_STYLE == 1 + translucentMult.rgb *= 1.0 - fresnel4; + #else + translucentMult.rgb *= 1.0 - 0.9 * max(0.5 * sqrt(fresnel4), fresnel4); + #endif + #endif + } + #else + shadowMult = vec3(0.0); + #endif + // ============================== End of Step 3 ============================== // + + // ============================== Step 4: Final Tweaks ============================== // + reflectMult *= 0.5 + 0.5 * NdotUmax0; + + color.a = mix(color.a, 1.0, fresnel4); + + #ifdef GBUFFERS_WATER + #if WATER_STYLE == 3 || WATER_STYLE == 2 && SUN_MOON_STYLE >= 2 + smoothnessG = 1.0; + + const float WATER_BUMPINESS_M2 = min(WATER_BUMP_MED * WATER_BUMP_SMALL * WATER_BUMPINESS * 0.65, 1.0); + vec2 lightNormalP = WATER_BUMPINESS_M2 * (normalMed + 0.5 * normalSmall); + vec3 lightNormal = normalize(vec3(lightNormalP, 1.0) * tbnMatrix); + highlightMult = dot(lightNormal, lightVec); + highlightMult = max0(highlightMult) / max(dot(normal, lightVec), 0.17); + highlightMult = mix(pow2(pow2(highlightMult * 1.1)), 1.0, min1(sqrt(miplevel) * 0.45)) * 0.24; + #else + smoothnessG = 0.5; + + highlightMult = min(pow2(pow2(dot(colorP.rgb, colorP.rgb) * 0.4)), 0.5); + highlightMult *= (16.0 - 15.0 * fresnel2) * (sunVisibility > 0.5 ? 0.85 : 0.425); + #endif + #endif + // ============================== End of Step 4 ============================== // +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/colorCodedPrograms.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/colorCodedPrograms.glsl new file mode 100644 index 0000000..882dcda --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/colorCodedPrograms.glsl @@ -0,0 +1,46 @@ +void ColorCodeProgram(inout vec4 color, int mat) { + // Hold spider eyes in both hands to disable the function + if (heldItemId == 40000 && heldItemId2 == 40000) return; + + #if defined GBUFFERS_TERRAIN // Green + color.rgb = vec3(0.0, 1.0, 0.0); + #elif defined GBUFFERS_WATER // Dark Blue + color.rgb = vec3(0.0, 0.0, 1.0); + #elif defined GBUFFERS_SKYBASIC // Light Blue + color.rgb = vec3(0.0, 1.0, 2.0); + #elif defined GBUFFERS_WEATHER // Magenta + color.rgb = vec3(3.0, 0.0, 3.0); + #elif defined GBUFFERS_BLOCK // Yellow + color.rgb = vec3(1.5, 1.5, 0.0); + #elif defined GBUFFERS_HAND // Orange + color.rgb = vec3(1.5, 0.7, 0.0); + #elif defined GBUFFERS_ENTITIES // Red + color.rgb = vec3(1.5, 0.0, 0.0); + #elif defined GBUFFERS_BASIC // White + color.rgb = vec3(3.0, 3.0, 3.0); + #elif defined GBUFFERS_SPIDEREYES // Red-Blue Vertical Stripes + color.rgb = mix(vec3(2.0, 0.0, 0.0), vec3(0.0, 0.0, 2.0), mod(gl_FragCoord.x, 20.0) / 20.0); + #elif defined GBUFFERS_TEXTURED // Red-Blue Horizontal Stripes + color.rgb = mix(vec3(2.0, 0.0, 0.0), vec3(0.0, 0.0, 2.0), mod(gl_FragCoord.y, 20.0) / 20.0); + #elif defined GBUFFERS_CLOUDS // Red-Green Vertical Stripes + color.rgb = mix(vec3(2.0, 0.0, 0.0), vec3(0.0, 2.0, 0.0), mod(gl_FragCoord.x, 20.0) / 20.0); + #elif defined GBUFFERS_BEACONBEAM // Red-Green Horizontal Stripes + color.rgb = mix(vec3(2.0, 0.0, 0.0), vec3(0.0, 2.0, 0.0), mod(gl_FragCoord.y, 20.0) / 20.0); + #elif defined GBUFFERS_ARMOR_GLINT // Black-White Vertical Stripes + color.rgb = mix(vec3(0.0, 0.0, 0.0), vec3(1.5, 1.5, 1.5), mod(gl_FragCoord.x, 20.0) / 20.0); + #elif defined GBUFFERS_DAMAGEDBLOCK // Black-White Horizontal Stripes + color.rgb = mix(vec3(0.0, 0.0, 0.0), vec3(1.5, 1.5, 1.5), mod(gl_FragCoord.y, 20.0) / 20.0); + #elif defined GBUFFERS_SKYTEXTURED // Green-Blue Horizontal Stripes + color.rgb = mix(vec3(0.0, 2.0, 0.0), vec3(0.0, 0.0, 2.0), mod(gl_FragCoord.y, 20.0) / 20.0); + #endif + + color.rgb *= 0.75; + + // Hold spider eye in one hand to switch to ID=0 check mode + if (heldItemId == 40000 || heldItemId2 == 40000) { + if (mat == 0) // Magenta-Black Horizontal Stripes + color.rgb = mix(vec3(0.0, 0.0, 0.0), vec3(3.0, 0.0, 3.0), mod(gl_FragCoord.y, 20.0) / 20.0); + else + color.rgb = vec3(0.25); + } +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/darkOutline.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/darkOutline.glsl new file mode 100644 index 0000000..b9d05c1 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/darkOutline.glsl @@ -0,0 +1,52 @@ +vec2 darkOutlineOffsets[12] = vec2[12]( + vec2( 1.0,0.0), + vec2(-1.0,1.0), + vec2( 0.0,1.0), + vec2( 1.0,1.0), + vec2(-2.0,2.0), + vec2(-1.0,2.0), + vec2( 0.0,2.0), + vec2( 1.0,2.0), + vec2( 2.0,2.0), + vec2(-2.0,1.0), + vec2( 2.0,1.0), + vec2( 2.0,0.0) +); + +void DoDarkOutline(inout vec3 color, inout float skyFade, float z0, float dither) { + vec2 scale = vec2(1.0 / view); + + float outline = 1.0; + float z = GetLinearDepth(z0) * far * 2.0; + float minZ = 1.0, sampleZA = 0.0, sampleZB = 0.0; + + #if DARK_OUTLINE_THICKNESS == 1 + int sampleCount = 4; + #elif DARK_OUTLINE_THICKNESS == 2 + int sampleCount = 12; + #endif + + for (int i = 0; i < sampleCount; i++) { + vec2 offset = scale * darkOutlineOffsets[i]; + sampleZA = texture2D(depthtex0, texCoord + offset).r; + sampleZB = texture2D(depthtex0, texCoord - offset).r; + float sampleZsum = GetLinearDepth(sampleZA) + GetLinearDepth(sampleZB); + outline *= clamp(1.0 - (z - sampleZsum * far), 0.0, 1.0); + minZ = min(minZ, min(sampleZA, sampleZB)); + } + + if (outline < 0.909091) { + vec4 viewPos = gbufferProjectionInverse * (vec4(texCoord, minZ, 1.0) * 2.0 - 1.0); + viewPos /= viewPos.w; + float lViewPos = length(viewPos.xyz); + vec3 playerPos = ViewToPlayer(viewPos.xyz); + vec3 nViewPos = normalize(viewPos.xyz); + float VdotU = dot(nViewPos, upVec); + float VdotS = dot(nViewPos, sunVec); + + vec3 newColor = vec3(0.0); + DoFog(newColor, skyFade, lViewPos, playerPos, VdotU, VdotS, dither); + + color = mix(color, newColor, 1.0 - outline * 1.1); + } +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/distantLightBokeh.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/distantLightBokeh.glsl new file mode 100644 index 0000000..7f2628b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/distantLightBokeh.glsl @@ -0,0 +1,21 @@ +float GetDistantLightBokehMix(float lViewPos) { + //if (heldItemId == 40000 || heldItemId2 == 40000) return 0.0; // Hold spider eye to disable; + return clamp01(0.005 * (lViewPos - 60.0)); +} + +#ifdef GBUFFERS_TERRAIN + float GetDistantLightBokehMixMipmapped(float lViewPos) { + float dlbMix = GetDistantLightBokehMix(lViewPos); + return dlbMix * min1(miplevel * 0.4); + } + + void DoDistantLightBokehMaterial(inout vec4 color, vec4 distantColor, inout float emission, float distantEmission, float lViewPos) { + float dlbMix = GetDistantLightBokehMixMipmapped(lViewPos); + color = mix(color, distantColor, dlbMix); + emission = mix(emission, distantEmission, dlbMix); + } + void DoDistantLightBokehMaterial(inout float emission, float distantEmission, float lViewPos) { + float dlbMix = GetDistantLightBokehMixMipmapped(lViewPos); + emission = mix(emission, distantEmission, dlbMix); + } +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/handSway.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/handSway.glsl new file mode 100644 index 0000000..3fc0da5 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/handSway.glsl @@ -0,0 +1,13 @@ +#if HAND_SWAYING == 1 + const float handSwayMult = 0.5; +#elif HAND_SWAYING == 2 + const float handSwayMult = 1.0; +#elif HAND_SWAYING == 3 + const float handSwayMult = 2.0; +#endif +gl_Position.x += handSwayMult * (sin(frameTimeCounter * 0.86)) / 256.0; +gl_Position.y += handSwayMult * (cos(frameTimeCounter * 1.5)) / 64.0; + +//dvd screensaver +//gl_Position.x -= - 0.1 + mod(frameTimeCounter * 0.3, 1.0) * sign(mod(frameTimeCounter * 0.3, 2.0) - 1.0) + float(mod(frameTimeCounter * 0.3, 2.0) < 1.0); +//gl_Position.y += mod(frameTimeCounter * 0.61803398875, 1.0) * sign(mod(frameTimeCounter * 0.61803398875, 2.0) - 1.0) + float(mod(frameTimeCounter * 0.61803398875, 2.0) < 1.0); \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/lensFlare.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/lensFlare.glsl new file mode 100644 index 0000000..894f4a4 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/lensFlare.glsl @@ -0,0 +1,121 @@ +float fovmult = gbufferProjection[1][1] / 1.37373871; + +float BaseLens(vec2 lightPos, float size, float dist, float hardness) { + vec2 lensCoord = (texCoord + (lightPos * dist - 0.5)) * vec2(aspectRatio, 1.0); + float lens = clamp(1.0 - length(lensCoord) / (size * fovmult), 0.0, 1.0 / hardness) * hardness; + lens *= lens; lens *= lens; + return lens; +} + +float OverlapLens(vec2 lightPos, float size, float dista, float distb) { + return BaseLens(lightPos, size, dista, 2.0) * BaseLens(lightPos, size, distb, 2.0); +} + +float PointLens(vec2 lightPos, float size, float dist) { + float lens = BaseLens(lightPos, size, dist, 1.5) + BaseLens(lightPos, size * 4.0, dist, 1.0) * 0.5; + return lens * (0.5 + 0.5 * sunFactor); +} + +float RingLensTransform(float lensFlare) { + return pow(1.0 - pow(1.0 - pow(lensFlare, 0.25), 10.0), 5.0); +} +float RingLens(vec2 lightPos, float size, float distA, float distB) { + float lensFlare1 = RingLensTransform(BaseLens(lightPos, size, distA, 1.0)); + float lensFlare2 = RingLensTransform(BaseLens(lightPos, size, distB, 1.0)); + + float lensFlare = clamp(lensFlare2 - lensFlare1, 0.0, 1.0); + lensFlare *= sqrt(lensFlare); + + lensFlare *= 1.0 - length(texCoord - lightPos - 0.5); + return lensFlare; +} + +vec2 lensFlareCheckOffsets[4] = vec2[4]( + vec2( 1.0,0.0), + vec2(-1.0,1.0), + vec2( 0.0,1.0), + vec2( 1.0,1.0) +); + +void DoLensFlare(inout vec3 color, vec3 viewPos, float dither) { + #if LENSFLARE_MODE == 1 + if (sunVec.z > 0.0) return; + #endif + + vec4 clipPosSun = gbufferProjection * vec4(sunVec + 0.001, 1.0); //+0.001 fixes black screen with camera rotation set to 0,0 + vec3 lightPos3 = clipPosSun.xyz / clipPosSun.w * 0.5; + vec2 lightPos = lightPos3.xy; + vec3 screenPosSun = lightPos3 + 0.5; + + float flareFactor = 1.0; + vec2 cScale = 40.0 / vec2(viewWidth, viewHeight); + for (int i = 0; i < 4; i++) { + vec2 cOffset = (lensFlareCheckOffsets[i] - dither) * cScale; + vec2 checkCoord1 = screenPosSun.xy + cOffset; + vec2 checkCoord2 = screenPosSun.xy - cOffset; + + float zSample1 = texture2D(depthtex0, checkCoord1).r; + float zSample2 = texture2D(depthtex0, checkCoord2).r; + #ifdef VL_CLOUDS_ACTIVE + float cloudLinearDepth1 = texture2D(colortex4, checkCoord1).r; + float cloudLinearDepth2 = texture2D(colortex4, checkCoord2).r; + zSample1 = min(zSample1, cloudLinearDepth1); + zSample2 = min(zSample2, cloudLinearDepth2); + #endif + + if (zSample1 < 1.0) + flareFactor -= 0.125; + if (zSample2 < 1.0) + flareFactor -= 0.125; + } + + float str = length(lightPos * vec2(aspectRatio, 1.0)); + str = pow(clamp(str * 8.0, 0.0, 1.0), 2.0) - clamp(str * 3.0 - 1.5, 0.0, 1.0); + flareFactor *= str; + + #ifdef SUN_MOON_DURING_RAIN + flareFactor *= 0.65 - 0.4 * rainFactor; + #else + flareFactor *= 1.0 - rainFactor; + #endif + + vec3 flare = ( + BaseLens(lightPos, 0.3, -0.45, 1.0) * vec3(2.2, 1.2, 0.1) * 0.07 + + BaseLens(lightPos, 0.3, 0.10, 1.0) * vec3(2.2, 0.4, 0.1) * 0.03 + + BaseLens(lightPos, 0.3, 0.30, 1.0) * vec3(2.2, 0.2, 0.1) * 0.04 + + BaseLens(lightPos, 0.3, 0.50, 1.0) * vec3(2.2, 0.4, 2.5) * 0.05 + + BaseLens(lightPos, 0.3, 0.70, 1.0) * vec3(1.8, 0.4, 2.5) * 0.06 + + BaseLens(lightPos, 0.3, 0.90, 1.0) * vec3(0.1, 0.2, 2.5) * 0.07 + + + OverlapLens(lightPos, 0.08, -0.28, -0.39) * vec3(2.5, 1.2, 0.1) * 0.015 + + OverlapLens(lightPos, 0.08, -0.20, -0.31) * vec3(2.5, 0.5, 0.1) * 0.010 + + OverlapLens(lightPos, 0.12, 0.06, 0.19) * vec3(2.5, 0.2, 0.1) * 0.020 + + OverlapLens(lightPos, 0.12, 0.15, 0.28) * vec3(1.8, 0.1, 1.2) * 0.015 + + OverlapLens(lightPos, 0.12, 0.24, 0.37) * vec3(1.0, 0.1, 2.5) * 0.010 + + + PointLens(lightPos, 0.03, -0.55) * vec3(2.5, 1.6, 0.0) * 0.06 + + PointLens(lightPos, 0.02, -0.40) * vec3(2.5, 1.0, 0.0) * 0.045 + + PointLens(lightPos, 0.04, 0.43) * vec3(2.5, 0.6, 0.6) * 0.06 + + PointLens(lightPos, 0.02, 0.60) * vec3(0.2, 0.6, 2.5) * 0.045 + + PointLens(lightPos, 0.03, 0.67) * vec3(0.7, 1.1, 3.0) * 0.075 + + + RingLens(lightPos, 0.22, 0.44, 0.46) * vec3(0.10, 0.35, 2.50) * 1.5 + + RingLens(lightPos, 0.15, 0.98, 0.99) * vec3(0.15, 0.40, 2.55) * 2.5 + ); + + #if LENSFLARE_MODE == 2 + if (sunVec.z > 0.0) { + flare = flare * 0.2 + GetLuminance(flare) * vec3(0.3, 0.4, 0.6); + flare *= clamp01(1.0 - (SdotU + 0.1) * 5.0); + flareFactor *= LENSFLARE_I > 1.001 ? sqrt(LENSFLARE_I) : LENSFLARE_I; + } else + #endif + { + flareFactor *= LENSFLARE_I; + flare *= clamp01((SdotU + 0.1) * 5.0); + } + + flare *= flareFactor; + + color = mix(color, vec3(1.0), flare); +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/pixelation.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/pixelation.glsl new file mode 100644 index 0000000..e7a9381 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/pixelation.glsl @@ -0,0 +1,92 @@ +#if PIXEL_SCALE == -2 + #define PIXEL_TEXEL_SCALE 4.0 +#elif PIXEL_SCALE == -1 + #define PIXEL_TEXEL_SCALE 2.0 +#elif PIXEL_SCALE == 2 + #define PIXEL_TEXEL_SCALE 0.5 +#elif PIXEL_SCALE == 3 + #define PIXEL_TEXEL_SCALE 0.25 +#elif PIXEL_SCALE == 4 + #define PIXEL_TEXEL_SCALE 0.125 +#elif PIXEL_SCALE == 5 + #define PIXEL_TEXEL_SCALE 0.0625 +#else // 1 or out of range + #define PIXEL_TEXEL_SCALE 1.0 +#endif + +#ifdef FRAGMENT_SHADER + // Thanks to Nestorboy + + // Computes axis-aligned screen space offset to texel center. + // https://forum.unity.com/threads/the-quest-for-efficient-per-texel-lighting.529948/#post-7536023 + vec2 ComputeTexelOffset(vec2 uv, vec4 texelSize) { + // 1. Calculate how much the texture UV coords need to shift to be at the center of the nearest texel. + vec2 uvCenter = (floor(uv * texelSize.zw) + 0.5) * texelSize.xy; + vec2 dUV = uvCenter - uv; + + // 2. Calculate how much the texture coords vary over fragment space. + // This essentially defines a 2x2 matrix that gets texture space (UV) deltas from fragment space (ST) deltas. + vec2 dUVdS = dFdx(uv); + vec2 dUVdT = dFdy(uv); + + if (abs(dUVdS) + abs(dUVdT) == vec2(0.0)) return vec2(0.0); + + // 3. Invert the texture delta from fragment delta matrix. Where the magic happens. + mat2x2 dSTdUV = mat2x2(dUVdT[1], -dUVdT[0], -dUVdS[1], dUVdS[0]) * (1.0 / (dUVdS[0] * dUVdT[1] - dUVdT[0] * dUVdS[1])); + + // 4. Convert the texture delta to fragment delta. + vec2 dST = dUV * dSTdUV; + return dST; + } + + vec2 ComputeTexelOffset(sampler2D tex, vec2 uv) { + vec2 texSize = textureSize(tex, 0) * PIXEL_TEXEL_SCALE; + vec4 texelSize = vec4(1.0 / texSize.xy, texSize.xy); + + return ComputeTexelOffset(uv, texelSize); + } + + vec4 TexelSnap(vec4 value, vec2 texelOffset) { + if (texelOffset == vec2(0.0)) return value; + vec4 dx = dFdx(value); + vec4 dy = dFdy(value); + + vec4 valueOffset = dx * texelOffset.x + dy * texelOffset.y; + valueOffset = clamp(valueOffset, -1.0, 1.0); + + return value + valueOffset; + } + + vec3 TexelSnap(vec3 value, vec2 texelOffset) { + if (texelOffset == vec2(0.0)) return value; + vec3 dx = dFdx(value); + vec3 dy = dFdy(value); + + vec3 valueOffset = dx * texelOffset.x + dy * texelOffset.y; + valueOffset = clamp(valueOffset, -1.0, 1.0); + + return value + valueOffset; + } + + vec2 TexelSnap(vec2 value, vec2 texelOffset) { + if (texelOffset == vec2(0.0)) return value; + vec2 dx = dFdx(value); + vec2 dy = dFdy(value); + + vec2 valueOffset = dx * texelOffset.x + dy * texelOffset.y; + valueOffset = clamp(valueOffset, -1.0, 1.0); + + return value + valueOffset; + } + + float TexelSnap(float value, vec2 texelOffset) { + if (texelOffset == vec2(0.0)) return value; + float dx = dFdx(value); + float dy = dFdy(value); + + float valueOffset = dx * texelOffset.x + dy * texelOffset.y; + valueOffset = clamp(valueOffset, -1.0, 1.0); + + return value + valueOffset; + } +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/puddleVoxelization.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/puddleVoxelization.glsl new file mode 100644 index 0000000..ed590e0 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/puddleVoxelization.glsl @@ -0,0 +1,35 @@ +const ivec3 puddle_voxelVolumeSize = ivec3(128); + +vec3 TransformMat(mat4 m, vec3 pos) { + return mat3(m) * pos + m[3].xyz; +} + +vec3 SceneToPuddleVoxel(vec3 scenePos) { + return scenePos + fract(cameraPosition) + (0.5 * vec3(puddle_voxelVolumeSize)); +} + +bool CheckInsidePuddleVoxelVolume(vec3 voxelPos) { + #ifndef SHADOW + voxelPos -= puddle_voxelVolumeSize / 2; + voxelPos += sign(voxelPos) * 0.95; + voxelPos += puddle_voxelVolumeSize / 2; + #endif + voxelPos /= vec3(puddle_voxelVolumeSize); + return clamp01(voxelPos) == voxelPos; +} + +#if defined SHADOW && defined VERTEX_SHADER + void UpdatePuddleVoxelMap(int mat) { + if (renderStage != MC_RENDER_STAGE_TERRAIN_TRANSLUCENT) return; + if (mat == 32000) return; // Water + + vec3 model_pos = gl_Vertex.xyz + at_midBlock / 64.0; + vec3 view_pos = TransformMat(gl_ModelViewMatrix, model_pos); + vec3 scenePos = TransformMat(shadowModelViewInverse, view_pos); + vec3 voxelPos = SceneToPuddleVoxel(scenePos); + + if (CheckInsidePuddleVoxelVolume(voxelPos)) + if (scenePos.y >= -3.5) + imageStore(puddle_img, ivec2(voxelPos.xz), uvec4(10u, 0u, 0u, 0u)); + } +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/showLightLevels.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/showLightLevels.glsl new file mode 100644 index 0000000..b2118f5 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/showLightLevels.glsl @@ -0,0 +1,42 @@ +#if SHOW_LIGHT_LEVEL == 1 + if (heldItemId == 40000 || heldItemId2 == 40000) +#elif SHOW_LIGHT_LEVEL == 2 + if (heldBlockLightValue > 7.4 || heldBlockLightValue2 > 7.4) +#endif + +if (NdotU > 0.99) { + #ifdef OVERWORLD + #if MC_VERSION < 11800 + float lxMin = 0.533334; + #else + float lxMin = 0.034; // Quite high minimum value because of an Iris/Sodium issue + #endif + float lyMin = 0.533334; + #else + float lxMin = 0.8; + float lyMin = 0.533334; + #endif + + bool xDanger = lmCoord.x < lxMin; + #ifndef NETHER + bool yDanger = lmCoord.y < lyMin; + #else + bool yDanger = lmCoord.x < lyMin; + #endif + + if (xDanger) { + vec2 indicatePos = playerPos.xz + cameraPosition.xz; + indicatePos = 1.0 - 2.0 * abs(fract(indicatePos) - 0.5); + float minPos = min(indicatePos.x, indicatePos.y); + + if (minPos > 0.5) { + color.rgb = yDanger ? vec3(0.4, 0.05, 0.05) : vec3(0.3, 0.3, 0.05); + + smoothnessG = 0.5; + highlightMult = 1.0; + smoothnessD = 0.0; + + emission = 3.0; + } + } +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/voxelization.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/voxelization.glsl new file mode 100644 index 0000000..a1fcedd --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/voxelization.glsl @@ -0,0 +1,325 @@ +#ifndef INCLUDE_VOXELIZATION + #define INCLUDE_VOXELIZATION + + #if COLORED_LIGHTING_INTERNAL <= 512 + const ivec3 voxelVolumeSize = ivec3(COLORED_LIGHTING_INTERNAL, COLORED_LIGHTING_INTERNAL * 0.5, COLORED_LIGHTING_INTERNAL); + #else + const ivec3 voxelVolumeSize = ivec3(COLORED_LIGHTING_INTERNAL, 512 * 0.5, COLORED_LIGHTING_INTERNAL); + #endif + + float effectiveACLdistance = min(float(COLORED_LIGHTING_INTERNAL), shadowDistance * 2.0); + + vec3 transform(mat4 m, vec3 pos) { + return mat3(m) * pos + m[3].xyz; + } + + vec3 SceneToVoxel(vec3 scenePos) { + return scenePos + cameraPositionBestFract + (0.5 * vec3(voxelVolumeSize)); + } + + bool CheckInsideVoxelVolume(vec3 voxelPos) { + #ifndef SHADOW + voxelPos -= voxelVolumeSize / 2; + voxelPos += sign(voxelPos) * 0.95; + voxelPos += voxelVolumeSize / 2; + #endif + voxelPos /= vec3(voxelVolumeSize); + return clamp01(voxelPos) == voxelPos; + } + + vec4 GetLightVolume(vec3 pos) { + vec4 lightVolume; + + #ifdef COMPOSITE + #undef ACL_CORNER_LEAK_FIX + #endif + + #ifdef ACL_CORNER_LEAK_FIX + float minMult = 1.5; + ivec3 posTX = ivec3(pos * voxelVolumeSize); + + ivec3[6] adjacentOffsets = ivec3[]( + ivec3( 1, 0, 0), + ivec3(-1, 0, 0), + ivec3( 0, 1, 0), + ivec3( 0,-1, 0), + ivec3( 0, 0, 1), + ivec3( 0, 0,-1) + ); + + int adjacentCount = 0; + for (int i = 0; i < 6; i++) { + int voxel = int(texelFetch(voxel_sampler, posTX + adjacentOffsets[i], 0).r); + if (voxel == 1 || voxel >= 200) adjacentCount++; + } + + if (int(texelFetch(voxel_sampler, posTX, 0).r) >= 200) adjacentCount = 6; + #endif + + if ((frameCounter & 1) == 0) { + lightVolume = texture(floodfill_sampler_copy, pos); + #ifdef ACL_CORNER_LEAK_FIX + if (adjacentCount >= 3) { + vec4 lightVolumeTX = texelFetch(floodfill_sampler_copy, posTX, 0); + if (dot(lightVolumeTX, lightVolumeTX) > 0.01) + lightVolume.rgb = min(lightVolume.rgb, lightVolumeTX.rgb * minMult); + } + #endif + } else { + lightVolume = texture(floodfill_sampler, pos); + #ifdef ACL_CORNER_LEAK_FIX + if (adjacentCount >= 3) { + vec4 lightVolumeTX = texelFetch(floodfill_sampler, posTX, 0); + if (dot(lightVolumeTX, lightVolumeTX) > 0.01) + lightVolume.rgb = min(lightVolume.rgb, lightVolumeTX.rgb * minMult); + } + #endif + } + + return lightVolume; + } + + int GetVoxelIDs(int mat) { + /* These return IDs must be consistent across the following files: + "voxelization.glsl", "blocklightColors.glsl", "item.properties" + The order of if-checks or block IDs don't matter. The returning IDs matter. */ + + #define ALWAYS_DO_IPBR_LIGHTS + + #if defined IPBR || defined ALWAYS_DO_IPBR_LIGHTS + #define DO_IPBR_LIGHTS + #endif + + if (mat < 10564) { + if (mat < 10356) { + if (mat < 10300) { + if (mat < 10228) { + if (mat == 10056) return 14; // Lava Cauldron + if (mat == 10068) return 13; // Lava + if (mat == 10072) return 5; // Fire + if (mat == 10076) return 27; // Soul Fire + #ifdef DO_IPBR_LIGHTS + if (mat == 10216) return 62; // Crimson Stem, Crimson Hyphae + if (mat == 10224) return 63; // Warped Stem, Warped Hyphae + #endif + } else { + if (mat == 10228) return 255; // Bedrock + #if defined GLOWING_ORE_ANCIENTDEBRIS && defined DO_IPBR_LIGHTS + if (mat == 10252) return 52; // Ancient Debris + #endif + #if defined GLOWING_ORE_IRON && defined DO_IPBR_LIGHTS + if (mat == 10272) return 43; // Iron Ore + if (mat == 10276) return 43; // Deepslate Iron Ore + #endif + #if defined GLOWING_ORE_COPPER && defined DO_IPBR_LIGHTS + if (mat == 10284) return 45; // Copper Ore + if (mat == 10288) return 45; // Deepslate Copper Ore + #endif + } + } else { + if (mat < 10332) { + #if defined GLOWING_ORE_GOLD && defined DO_IPBR_LIGHTS + if (mat == 10300) return 44; // Gold Ore + if (mat == 10304) return 44; // Deepslate Gold Ore + #endif + #if defined GLOWING_ORE_NETHERGOLD && defined DO_IPBR_LIGHTS + if (mat == 10308) return 50; // Nether Gold Ore + #endif + #if defined GLOWING_ORE_DIAMOND && defined DO_IPBR_LIGHTS + if (mat == 10320) return 48; // Diamond Ore + if (mat == 10324) return 48; // Deepslate Diamond Ore + #endif + } else { + if (mat == 10332) return 36; // Amethyst Cluster, Amethyst Buds + #if defined GLOWING_ORE_EMERALD && defined DO_IPBR_LIGHTS + if (mat == 10340) return 47; // Emerald Ore + if (mat == 10344) return 47; // Deepslate Emerald Ore + #endif + #if defined EMISSIVE_LAPIS_BLOCK && defined DO_IPBR_LIGHTS + if (mat == 10352) return 42; // Lapis Block + #endif + } + } + } else { + if (mat < 10496) { + if (mat < 10448) { + #if defined GLOWING_ORE_LAPIS && defined DO_IPBR_LIGHTS + if (mat == 10356) return 46; // Lapis Ore + if (mat == 10360) return 46; // Deepslate Lapis Ore + #endif + #if defined GLOWING_ORE_NETHERQUARTZ && defined DO_IPBR_LIGHTS + if (mat == 10368) return 49; // Nether Quartz Ore + #endif + if (mat == 10396) return 11; // Jack o'Lantern + if (mat == 10404) return 6; // Sea Pickle:Waterlogged + if (mat == 10412) return 10; // Glowstone + } else { + if (mat == 10448) return 18; // Sea Lantern + if (mat == 10452) return 37; // Magma Block + #ifdef DO_IPBR_LIGHTS + if (mat == 10456) return 60; // Command Block + #endif + if (mat == 10476) return 26; // Crying Obsidian + #if defined GLOWING_ORE_GILDEDBLACKSTONE && defined DO_IPBR_LIGHTS + if (mat == 10484) return 51; // Gilded Blackstone + #endif + } + } else { + if (mat < 10528) { + if (mat == 10496) return 2; // Torch + if (mat == 10500) return 3; // End Rod + #ifdef DO_IPBR_LIGHTS + if (mat == 10508) return 39; // Chorus Flower:Alive + if (mat == 10512) return 39; // Chorus Flower:Dead + #endif + if (mat == 10516) return 21; // Furnace:Lit + } else { + if (mat == 10528) return 28; // Soul Torch + if (mat == 10544) return 34; // Glow Lichen + if (mat == 10548) return 33; // Enchanting Table + if (mat == 10556) return 58; // End Portal Frame:Active + if (mat == 10560) return 12; // Lantern + } + } + } + } else { + if (mat < 10696) { + if (mat < 10620) { + if (mat < 10592) { + if (mat == 10564) return 29; // Soul Lantern + #ifdef DO_IPBR_LIGHTS + if (mat == 10572) return 38; // Dragon Egg + #endif + if (mat == 10576) return 22; // Smoker:Lit + if (mat == 10580) return 23; // Blast Furnace:Lit + } else { + if (mat == 10592) return 17; // Respawn Anchor:Lit + #ifdef DO_IPBR_LIGHTS + if (mat == 10596) return 66; // Redstone Wire:Lit + #endif + if (mat == 10604) return 35; // Redstone Torch + #if defined EMISSIVE_REDSTONE_BLOCK && defined DO_IPBR_LIGHTS + if (mat == 10608) return 41; // Redstone Block + #endif + #if defined GLOWING_ORE_REDSTONE && defined DO_IPBR_LIGHTS + if (mat == 10612) return 32; // Redstone Ore:Unlit + #endif + if (mat == 10616) return 31; // Redstone Ore:Lit + } + } else { + if (mat < 10648) { + #if defined GLOWING_ORE_REDSTONE && defined DO_IPBR_LIGHTS + if (mat == 10620) return 32; // Deepslate Redstone Ore:Unlit + #endif + if (mat == 10624) return 31; // Deepslate Redstone Ore:Lit + if (mat == 10632) return 20; // Cave Vines:With Glow Berries + if (mat == 10640) return 16; // Redstone Lamp:Lit + #ifdef DO_IPBR_LIGHTS + if (mat == 10644) return 67; // Repeater:Lit, Comparator:Lit + if (mat == 10646) return 66; // Comparator:Unlit:Subtract + #endif + } else { + if (mat == 10648) return 19; // Shroomlight + if (mat == 10652) return 15; // Campfire:Lit + if (mat == 10656) return 30; // Soul Campfire:Lit + if (mat == 10680) return 7; // Ochre Froglight + if (mat == 10684) return 8; // Verdant Froglight + if (mat == 10688) return 9; // Pearlescent Froglight + } + } + } else { + if (mat < 10868) { + if (mat < 10780) { + if (mat == 10696) return 57; // Sculk, Sculk Catalyst, Sculk Vein, Sculk Sensor:Unlit + if (mat == 10700) return 57; // Sculk Shrieker + if (mat == 10704) return 57; // Sculk Sensor:Lit + #ifdef DO_IPBR_LIGHTS + if (mat == 10708) return 53; // Spawner + if (mat == 10736) return 64; // Structure Block, Jigsaw Block, Test Block, Test Instance Block + if (mat == 10776) return 61; // Warped Fungus, Crimson Fungus + #endif + } else { + #ifdef DO_IPBR_LIGHTS + if (mat == 10780) return 61; // Potted Warped Fungus, Potted Crimson Fungus + #endif + if (mat == 10784) return 36; // Calibrated Sculk Sensor:Unlit + if (mat == 10788) return 36; // Calibrated Sculk Sensor:Lit + #ifdef DO_IPBR_LIGHTS + if (mat == 10836) return 40; // Brewing Stand + #endif + if (mat == 10852) return 55; // Copper Bulb:BrighterOnes:Lit + if (mat == 10856) return 56; // Copper Bulb:DimmerOnes:Lit + } + } else { + if (mat < 30020) { + if (mat == 10868) return 54; // Trial Spawner:NotOminous:Active, Vault:NotOminous:Active + if (mat == 10872) return 68; // Vault:Inactive + if (mat == 10876) return 69; // Trial Spawner:Ominous:Active, Vault:Ominous:Active + #ifdef DO_IPBR_LIGHTS + if (mat == 10884) return 65; // Weeping Vines Plant + #endif + #ifndef COLORED_CANDLE_LIGHT + if (mat >= 10900 && mat <= 10922) return 24; // Standard Candles:Lit + #else + if (mat == 10900) return 24; // Standard Candles:Lit + if (mat == 10902) return 70; // Red Candles:Lit + if (mat == 10904) return 71; // Orange Candles:Lit + if (mat == 10906) return 72; // Yellow Candles:Lit + if (mat == 10908) return 73; // Lime Candles:Lit + if (mat == 10910) return 74; // Green Candles:Lit + if (mat == 10912) return 75; // Cyan Candles:Lit + if (mat == 10914) return 76; // Light Blue Candles:Lit + if (mat == 10916) return 77; // Blue Candles:Lit + if (mat == 10918) return 78; // Purple Candles:Lit + if (mat == 10920) return 79; // Magenta Candles:Lit + if (mat == 10922) return 80; // Pink Candles:Lit + #endif + if (mat == 10948) return 82; // Creaking Heart: Active + if (mat == 10972) return 83; // Firefly Bush + if (mat == 10976) return 81; // Open Eyeblossom + if (mat == 10980) return 81; // Potted Open Eyeblossom + if (mat == 30008) return 254; // Tinted Glass + if (mat == 30012) return 213; // Slime Block + if (mat == 30016) return 201; // Honey Block + } else { + if (mat == 30020) return 25; // Nether Portal + if (mat >= 31000 && mat < 32000) return 200 + (mat - 31000) / 2; // Stained Glass+ + if (mat == 32004) return 216; // Ice + if (mat == 32008) return 217; // Glass + if (mat == 32012) return 218; // Glass Pane + if (mat == 32016) return 4; // Beacon + } + } + } + } + + return 1; // Standard Block + } + + #if defined SHADOW && defined VERTEX_SHADER + void UpdateVoxelMap(int mat) { + if (mat == 32000 // Water + || mat < 30000 && mat % 4 == 1 // Non-solid terrain + || mat < 10000 // Block entities or unknown blocks that we treat as non-solid + ) return; + + vec3 modelPos = gl_Vertex.xyz + at_midBlock / 64.0; + vec3 viewPos = transform(gl_ModelViewMatrix, modelPos); + vec3 scenePos = transform(shadowModelViewInverse, viewPos); + vec3 voxelPos = SceneToVoxel(scenePos); + + bool isEligible = any(equal(ivec4(renderStage), ivec4( + MC_RENDER_STAGE_TERRAIN_SOLID, + MC_RENDER_STAGE_TERRAIN_TRANSLUCENT, + MC_RENDER_STAGE_TERRAIN_CUTOUT, + MC_RENDER_STAGE_TERRAIN_CUTOUT_MIPPED))); + + if (isEligible && CheckInsideVoxelVolume(voxelPos)) { + int voxelData = GetVoxelIDs(mat); + + imageStore(voxel_img, ivec3(voxelPos), uvec4(voxelData, 0u, 0u, 0u)); + } + } + #endif + +#endif //INCLUDE_VOXELIZATION \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/worldOutline.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/worldOutline.glsl new file mode 100644 index 0000000..f7a3f45 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/misc/worldOutline.glsl @@ -0,0 +1,43 @@ +vec2 worldOutlineOffset[4] = vec2[4] ( + vec2(-1.0, 1.0), + vec2( 0, 1.0), + vec2( 1.0, 1.0), + vec2( 1.0, 0) +); + +void DoWorldOutline(inout vec3 color, float linearZ0) { + vec2 scale = vec2(1.0 / view); + + float outlines[2] = float[2] (0.0, 0.0); + float outlined = 1.0; + float z = linearZ0 * far; + float totalz = 0.0; + float maxz = 0.0; + float sampleza = 0.0; + float samplezb = 0.0; + + int sampleCount = WORLD_OUTLINE_THICKNESS * 4; + + for (int i = 0; i < sampleCount; i++) { + vec2 offset = (1.0 + floor(i / 4.0)) * scale * worldOutlineOffset[int(mod(float(i), 4))]; + float depthCheckP = GetLinearDepth(texture2D(depthtex0, texCoord + offset).r) * far; + float depthCheckN = GetLinearDepth(texture2D(depthtex0, texCoord - offset).r) * far; + + outlined *= clamp(1.0 - ((depthCheckP + depthCheckN) - z * 2.0) * 32.0 / z, 0.0, 1.0); + + if (i <= 4) maxz = max(maxz, max(depthCheckP, depthCheckN)); + totalz += depthCheckP + depthCheckN; + } + + float outlinea = 1.0 - clamp((z * 8.0 - totalz) * 64.0 / z, 0.0, 1.0) * clamp(1.0 - ((z * 8.0 - totalz) * 32.0 - 1.0) / z, 0.0, 1.0); + float outlineb = clamp(1.0 + 8.0 * (z - maxz) / z, 0.0, 1.0); + float outlinec = clamp(1.0 + 64.0 * (z - maxz) / z, 0.0, 1.0); + + float outline = (0.35 * (outlinea * outlineb) + 0.65) * (0.75 * (1.0 - outlined) * outlinec + 1.0); + outline -= 1.0; + + outline *= WORLD_OUTLINE_I / WORLD_OUTLINE_THICKNESS; + if (outline < 0.0) outline = -outline * 0.25; + + color += min(color * outline * 2.5, vec3(outline)); +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/pipelineSettings.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/pipelineSettings.glsl new file mode 100644 index 0000000..8707f23 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/pipelineSettings.glsl @@ -0,0 +1,31 @@ +/* +const int colortex0Format = R11F_G11F_B10F; //main color +const int colortex1Format = R32F; //previous depth +const int colortex2Format = RGB16F; //taa +const int colortex3Format = RGBA8; //(cloud/water map on deferred/gbuffer) | translucentMult & bloom & final color +const int colortex4Format = R8; //volumetric cloud linear depth & volumetric light factor +const int colortex5Format = RGBA8_SNORM; //normalM & scene image for water reflections +const int colortex6Format = RGBA8; //smoothnessD & materialMask & skyLightFactor +const int colortex7Format = RGBA16F; //(cloud/water map on gbuffer) | temporal filter +*/ + +const bool colortex0Clear = true; +const bool colortex1Clear = false; +const bool colortex2Clear = false; +const bool colortex3Clear = true; +const bool colortex4Clear = false; +const bool colortex5Clear = false; +const bool colortex6Clear = true; +const bool colortex7Clear = false; +// + +const int noiseTextureResolution = 128; + +const bool shadowHardwareFiltering = true; +const float shadowDistanceRenderMul = 1.0; +const float entityShadowDistanceMul = 0.125; // Iris feature + +const float drynessHalflife = 300.0; +const float wetnessHalflife = 300.0; + +const float ambientOcclusionLevel = 1.0; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_apple_acl.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_apple_acl.glsl new file mode 100644 index 0000000..2ae5873 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_apple_acl.glsl @@ -0,0 +1,53 @@ +color.rgb = mix(color.rgb, vec3(0.0), 0.65); + +beginTextM(8, vec2(6, 10)); + text.fgCol = vec4(1.0, 0.0, 0.0, 1.0); + printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r)); +endText(color.rgb); + +beginTextM(4, vec2(15, 36)); + printLine(); + text.fgCol = vec4(vec3(1.0), 1.0); + printString(( + _C, _o, _l, _o, _r, _e, _d, _space, _L, _i, _g, _h, _t, _i, _n, _g, _space, _i, _s, _space, + _n, _o, _t, _space + )); + printLine(); + printString(( + _s, _u, _p, _p, _o, _r, _t, _e, _d, _space, _o, _n, _space, _A, _p, _p, _l, _e, _space, _d, _e, _v, _i, _c, _e, _s, _dot + )); + printLine(); + printLine(); + printString(( + _D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _space, _u, _n, _d, _e, _r, _colon, _space + )); + printLine(); + printString(( + _E, _S, _C, _space, _gt, _space, _O, _p, _t, _i, _o, _n, _s, _space, _gt, _space, + _S, _h, _a, _d, _e, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s, + _space, _gt + )); + printLine(); + printString(( + _P, _e, _r, _f, _o, _r, _m, _a, _n, _c, _e, _space, _gt, _space, + _A, _d, _v, _a, _n, _c, _e, _d, _space, _C, _o, _l, _o, _r, _e, _d, _space, _L, _i, _g, _h, _t, _i, _n, _g + )); +endText(color.rgb); + +beginTextM(2, vec2(30, 175)); + printLine(); + text.fgCol = vec4(vec3(0.65), 1.0); + printString(( + _A, _p, _p, _l, _e, _space, _d, _r, _i, _v, _e, _r, _s, _space, + _d, _o, _space, _n, _o, _t, _space, _s, _u, _p, _p, _o, _r, _t, _space, _t, _h, _e, _space, + _f, _u, _n, _c, _t, _i, _o, _n, _a, _l, _i, _t, _y, _space, _t, _h, _a, _t, _space, + _C, _o, _m, _p, _l, _e, _m, _e, _n, _t, _a, _r, _y, _space + )); + printLine(); + printString(( + _u, _s, _e, _s, _space, _t, _o, _space, _p, _r, _o, _v, _i, _d, _e, _space, _y, _o, _u, _space, + _a, _space, _f, _u, _l, _l, _y, _space, _f, _l, _e, _d, _g, _e, _d, _space, + _c, _o, _l, _o, _r, _e, _d, _space, _l, _i, _g, _h, _t, _i, _n, _g, _space, + _e, _x, _p, _e, _r, _i, _e, _n, _c, _e, _dot + )); +endText(color.rgb); \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_coordinates_acl.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_coordinates_acl.glsl new file mode 100644 index 0000000..6ea8ef4 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_coordinates_acl.glsl @@ -0,0 +1,36 @@ +color.rgb = mix(color.rgb, vec3(0.0), 0.65); + +beginTextM(8, vec2(6, 10)); + text.fgCol = vec4(1.0, 0.0, 0.0, 1.0); + printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r)); +endText(color.rgb); + +beginTextM(4, vec2(15, 36)); + printLine(); + text.fgCol = vec4(vec3(1.0), 1.0); + printString(( + _C, _o, _l, _o, _r, _e, _d, _space, _L, _i, _g, _h, _t, _i, _n, _g, _space, _w, _i, _l, _l, + _space, _n, _o, _t, _space, _w, _o, _r, _k + )); + printLine(); + printString(( + _p, _r, _o, _p, _e, _r, _l, _y, _space, _a, _t, _space, _h, _i, _g, _h, + _space, _w, _o, _r, _l, _d, _space, _c, _o, _o, _r, _d, _i, _n, _a, _t, _e, _s, _dot + )); + printLine(); + printLine(); + printString(( + _D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _space, _u, _n, _d, _e, _r, _colon, _space + )); + printLine(); + printString(( + _E, _S, _C, _space, _gt, _space, _O, _p, _t, _i, _o, _n, _s, _space, _gt, _space, + _S, _h, _a, _d, _e, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s, + _space, _gt + )); + printLine(); + printString(( + _P, _e, _r, _f, _o, _r, _m, _a, _n, _c, _e, _space, _gt, _space, + _A, _d, _v, _a, _n, _c, _e, _d, _space, _C, _o, _l, _o, _r, _e, _d, _space, _L, _i, _g, _h, _t, _i, _n, _g + )); +endText(color.rgb); \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_optifine_acl.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_optifine_acl.glsl new file mode 100644 index 0000000..169be7a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_optifine_acl.glsl @@ -0,0 +1,78 @@ +color.rgb = mix(color.rgb, vec3(0.0), 0.65); + +beginTextM(8, vec2(6, 10)); + text.fgCol = vec4(1.0, 0.0, 0.0, 1.0); + printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r)); +endText(color.rgb); + +beginTextM(4, vec2(15, 36)); + printLine(); + text.fgCol = vec4(vec3(1.0), 1.0); + printString(( + _C, _o, _l, _o, _r, _e, _d, _space, _L, _i, _g, _h, _t, _i, _n, _g, _space, _i, _s, _space, + _n, _o, _t, _space + )); + printLine(); + printString(( + _s, _u, _p, _p, _o, _r, _t, _e, _d, _space, _o, _n, _space, _O, _p, _t, _i, _f, _i, _n, _e, + _dot, _space, _Y, _o, _u, _space, _n, _e, _e, _d + )); + printLine(); + printString(( + _t, _o, _space, _s, _w, _i, _t, _c, _h, _space, _t, _o, _space, _t, _h, _e, _space, + _quote, _I, _r, _i, _s, _quote, _space, _m, _o, _d, _dot + )); + printLine(); + printString(( + _D, _o, _w, _n, _l, _o, _a, _d, _colon, _space, + _w, _w, _w, _dot, _i, _r, _i, _s, _s, _h, _a, _d, _e, _r, _s, _dot, _d, _e, _v + )); +endText(color.rgb); + +beginTextM(2, vec2(30, 155)); + printLine(); + text.fgCol = vec4(vec3(0.65), 1.0); + printString(( + _O, _p, _t, _i, _f, _i, _n, _e, _space, + _d, _o, _e, _s, _space, _n, _o, _t, _space, _h, _a, _v, _e, _space, _t, _h, _e, _space, + _f, _u, _n, _c, _t, _i, _o, _n, _a, _l, _i, _t, _y, _space, _t, _h, _a, _t, _space, + _C, _o, _m, _p, _l, _e, _m, _e, _n, _t, _a, _r, _y, _space + )); + printLine(); + printString(( + _u, _s, _e, _s, _space, _t, _o, _space, _p, _r, _o, _v, _i, _d, _e, _space, _y, _o, _u, _space, + _a, _space, _f, _u, _l, _l, _y, _space, _f, _l, _e, _d, _g, _e, _d, _space, + _c, _o, _l, _o, _r, _e, _d, _space, _l, _i, _g, _h, _t, _i, _n, _g, _space, + _e, _x, _p, _e, _r, _i, _e, _n, _c, _e, _dot + )); + printLine(); + printString(( + _T, _h, _e, _space, _I, _r, _i, _s, _space, _m, _o, _d, _space, _i, _s, _space, _a, _space, + _m, _u, _c, _h, _space, _b, _e, _t, _t, _e, _r, _space, _a, _l, _t, _e, _r, _n, _a, _t, _i, _v, _e, + _space, _t, _h, _a, _t, _space, _p, _r, _o, _v, _i, _d, _e, _s, _space, _a, _space, + _l, _o, _t, _space, _o, _f + )); + printLine(); + printString(( + _a, _d, _d, _i, _t, _i, _o, _n, _a, _l, _space, _s, _h, _a, _d, _e, _r, _space, + _f, _e, _a, _t, _u, _r, _e, _s, _comma, _space, _l, _e, _s, _s, _space, _b, _u, _g, _s, + _comma, _space, _a, _n, _d, _space, _m, _o, _r, _e, _space, + _p, _e, _r, _f, _o, _r, _m, _a, _n, _c, _e, _dot + )); +endText(color.rgb); + +beginTextM(2, vec2(30, 200)); + printLine(); + text.fgCol = vec4(vec3(0.65), 1.0); + printString(( + _P, _l, _e, _a, _s, _e, _space, _n, _o, _t, _e, _space, _t, _h, _a, _t, _space, + _u, _s, _i, _n, _g, _space, _a, _n, _space, _o, _l, _d, _space, _I, _r, _i, _s, _space, + _v, _e, _r, _s, _i, _o, _n, _space, _w, _i, _l, _l, _space, _n, _o, _t, _space + )); + printLine(); + printString(( + _w, _o, _r, _k, _space, _a, _n, _d, _space, _m, _a, _y, _space, + _s, _t, _i, _l, _l, _space, _c, _a, _u, _s, _e, _space, _t, _h, _i, _s, _space, + _e, _r, _r, _o, _r, _space, _t, _o, _space, _a, _p, _p, _e, _a, _r, _dot + )); +endText(color.rgb); \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_optifine_af.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_optifine_af.glsl new file mode 100644 index 0000000..e846b18 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_optifine_af.glsl @@ -0,0 +1,55 @@ +color.rgb = mix(color.rgb, vec3(0.0), 0.65); + +beginTextM(8, vec2(6, 10)); + text.fgCol = vec4(1.0, 0.0, 0.0, 1.0); + printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r)); +endText(color.rgb); + +beginTextM(4, vec2(15, 36)); + printLine(); + text.fgCol = vec4(vec3(1.0), 1.0); + printString(( + _P, _l, _e, _a, _s, _e, _space, _g, _o, _space, _t, _o, _space, + _E, _S, _C, _space, _minus, _space, _O, _p, _t, _i, _o, _n, _s, _space, _minus + )); + printLine(); + printString(( + _V, _i, _d, _e, _o, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _minus, _space, + _Q, _u, _a, _l, _i, _t, _y, _space, _minus + )); + printLine(); + printString(( + _a, _n, _d, _space, _d, _i, _s, _a, _b, _l, _e, _space, + _A, _n, _i, _s, _o, _t, _r, _o, _p, _i, _c, _space, _F, _i, _l, _t, _e, _r, _i, _n, _g, _dot + )); +endText(color.rgb); + +beginTextM(2, vec2(30, 140)); + printLine(); + text.fgCol = vec4(vec3(0.65), 1.0); + printString(( + _O, _p, _t, _i, _f, _i, _n, _e, _s, _space, _a, _n, _i, _s, _o, _t, _r, _o, _p, _i, _c, _space, + _f, _i, _l, _t, _e, _r, _i, _n, _g, _space, _c, _h, _a, _n, _g, _e, _s, _space, _h, _o, _w, _space, + _t, _e, _x, _t, _u, _r, _e, _s, _space, _a, _r, _e, _space, _h, _a, _n, _d, _l, _e, _d + )); + printLine(); + printString(( + _i, _n, _space, _a, _space, _w, _a, _y, _space, _t, _h, _a, _t, _space, _c, _a, _u, _s, _e, _s, _space, + _a, _space, _l, _o, _t, _space, _o, _f, _space, _i, _s, _s, _u, _e, _s, _dot, _space, + _C, _o, _m, _p, _l, _e, _m, _e, _n, _t, _a, _r, _y, _space, _h, _a, _s, _space, _i, _t, _s, _space, + _o, _w, _n + )); + printLine(); + printString(( + _t, _e, _x, _t, _u, _r, _e, _space, _f, _i, _l, _t, _e, _r, _i, _n, _g, _space, + _a, _s, _space, _a, _n, _space, _o, _p, _t, _i, _o, _n, _space, _a, _n, _y, _w, _a, _y, _s, _dot, _space, + _Y, _o, _u, _space, _c, _a, _n, _space, _f, _i, _n, _d, _space, _t, _h, _a, _t, _space, _i, _n, _space + )); + printLine(); + printString(( + _S, _h, _a, _d, _e, _r, _space, _O, _p, _t, _i, _o, _n, _s, _space, _minus, _space, + _P, _e, _r, _f, _o, _r, _m, _a, _n, _c, _e, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, + _i, _f, _space, _y, _o, _u, _space, _w, _a, _n, _t, _space, _t, _e, _x, _t, _u, _r, _e, _space, + _f, _i, _l, _t, _e, _r, _i, _n, _g, _dot + )); +endText(color.rgb); \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_shadowdistance_acl.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_shadowdistance_acl.glsl new file mode 100644 index 0000000..555008f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/error_shadowdistance_acl.glsl @@ -0,0 +1,46 @@ +color.rgb = mix(color.rgb, vec3(0.0), 0.65); + +beginTextM(8, vec2(6, 10)); + text.fgCol = vec4(1.0, 0.0, 0.0, 1.0); + printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r)); +endText(color.rgb); + +beginTextM(4, vec2(15, 36)); + printLine(); + text.fgCol = vec4(vec3(1.0), 1.0); + printString(( + _T, _h, _e, _space, _quote, _A, _d, _v, _a, _n, _c, _e, _d, _space, _C, _o, _l, _o, _r, _e, _d, _space, + _L, _i, _g, _h, _t, _i, _n, _g, _quote + )); + printLine(); + printString(( + _s, _e, _t, _t, _i, _n, _g, _space, _m, _u, _s, _t, _space, _n, _o, _t, _space, _b, _e, _space, + _s, _e, _t, _space, _h, _i, _g, _h, _e, _r, _space, _t, _h, _a, _n + )); + printLine(); + printString(( + _t, _h, _e, _space, _quote, _S, _h, _a, _d, _o, _w, _space, _D, _i, _s, _t, _a, _n, _c, _e, _quote, _space, + _s, _e, _t, _t, _i, _n, _g, _dot + )); + printLine(); + printLine(); + printString(( + _G, _o, _space, _t, _o, _space, _E, _S, _C, _space, _gt, _space, _O, _p, _t, _i, _o, _n, _s, _space, _gt, _space, + _S, _h, _a, _d, _e, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s + )); + printLine(); + printString(( + _gt, _space, _P, _e, _r, _f, _o, _r, _m, _a, _n, _c, _e, _space, _gt, _space, + _a, _n, _d, _space, _e, _i, _t, _h, _e, _r, _space, _i, _n, _c, _r, _e, _a, _s, _e + )); + printLine(); + printString(( + _t, _h, _e, _space, _S, _h, _a, _d, _o, _w, _space, _D, _i, _s, _t, _a, _n, _c, _e, _space, + _s, _e, _t, _t, _i, _n, _g, _space, _o, _r, _space, _r, _e, _d, _u, _c, _e + )); + printLine(); + printString(( + _t, _h, _e, _space, _A, _d, _v, _a, _n, _c, _e, _d, _space, _C, _o, _l, _o, _r, _e, _d, _space, + _L, _i, _g, _h, _t, _i, _n, _g, _space, _s, _e, _t, _t, _i, _n, _g + )); +endText(color.rgb); \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/textRenderer.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/textRenderer.glsl new file mode 100644 index 0000000..327fbda --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textRendering/textRenderer.glsl @@ -0,0 +1,329 @@ +/* +-------------------------------------------------------------------------------- + + GLSL Debug Text Renderer by SixthSurge (updated 2023-04-08) + + Character set based on Monocraft by IdreesInc + https://github.com/IdreesInc/Monocraft + + With additional characters added by WoMspace + + Usage: + + // Call beginText to initialize the text renderer. You can scale the fragment position to adjust the size of the text + beginText(ivec2(gl_FragCoord.xy), ivec2(0, viewHeight)); + ^ fragment position ^ text box position (upper left corner) + + // You can print various data types + printBool(false); + printFloat(sqrt(-1.0)); // Prints "NaN" + printInt(42); + printVec3(skyColor); + + // ...or arbitrarily long strings + printString((_H, _e, _l, _l, _o, _comma, _space, _w, _o, _r, _l, _d)); + + // To start a new line, use + printLine(); + + // You can also configure the text color on the fly + text.fgCol = vec4(1.0, 0.0, 0.0, 1.0); + text.bgCol = vec4(0.0, 0.0, 0.0, 1.0); + + // ...as well as the number base and number of decimal places to print + text.base = 16; + text.fpPrecision = 4; + + // Finally, call endText to blend the current fragment color with the text + endText(fragColor); + + Important: any variables you display must be the same for all fragments, or + at least all of the fragments that the text covers. Otherwise, different + fragments will try to print different values, resulting in, well, a mess + +-------------------------------------------------------------------------------- +*/ + +#if !defined UTILITY_TEXTRENDERER_INCLUDED +#define UTILITY_TEXTRENDERER_INCLUDED + +// Characters + +const uint _A = 0x747f18c4u; +const uint _B = 0xf47d18f8u; +const uint _C = 0x746108b8u; +const uint _D = 0xf46318f8u; +const uint _E = 0xfc39087cu; +const uint _F = 0xfc390840u; +const uint _G = 0x7c2718b8u; +const uint _H = 0x8c7f18c4u; +const uint _I = 0x71084238u; +const uint _J = 0x084218b8u; +const uint _K = 0x8cb928c4u; +const uint _L = 0x8421087cu; +const uint _M = 0x8eeb18c4u; +const uint _N = 0x8e6b38c4u; +const uint _O = 0x746318b8u; +const uint _P = 0xf47d0840u; +const uint _Q = 0x74631934u; +const uint _R = 0xf47d18c4u; +const uint _S = 0x7c1c18b8u; +const uint _T = 0xf9084210u; +const uint _U = 0x8c6318b8u; +const uint _V = 0x8c62a510u; +const uint _W = 0x8c635dc4u; +const uint _X = 0x8a88a8c4u; +const uint _Y = 0x8a884210u; +const uint _Z = 0xf844447cu; +const uint _a = 0x0382f8bcu; +const uint _b = 0x85b318f8u; +const uint _c = 0x03a308b8u; +const uint _d = 0x0b6718bcu; +const uint _e = 0x03a3f83cu; +const uint _f = 0x323c8420u; +const uint _g = 0x03e2f0f8u; +const uint _h = 0x842d98c4u; +const uint _i = 0x40308418u; +const uint _j = 0x080218b8u; +const uint _k = 0x4254c524u; +const uint _l = 0x6108420cu; +const uint _m = 0x06ab5ac4u; +const uint _n = 0x07a318c4u; +const uint _o = 0x03a318b8u; +const uint _p = 0x05b31f40u; +const uint _q = 0x03671784u; +const uint _r = 0x05b30840u; +const uint _s = 0x03e0e0f8u; +const uint _t = 0x211c420cu; +const uint _u = 0x046318bcu; +const uint _v = 0x04631510u; +const uint _w = 0x04635abcu; +const uint _x = 0x04544544u; +const uint _y = 0x0462f0f8u; +const uint _z = 0x07c4447cu; +const uint _0 = 0x746b58b8u; +const uint _1 = 0x23084238u; +const uint _2 = 0x744c88fcu; +const uint _3 = 0x744c18b8u; +const uint _4 = 0x19531f84u; +const uint _5 = 0xfc3c18b8u; +const uint _6 = 0x3221e8b8u; +const uint _7 = 0xfc422210u; +const uint _8 = 0x745d18b8u; +const uint _9 = 0x745e1130u; +const uint _space = 0x0000000u; +const uint _dot = 0x000010u; +const uint _minus = 0x0000e000u; +const uint _comma = 0x00000220u; +const uint _colon = 0x02000020u; + +// Additional characters added by WoMspace <3 +const uint _under = 0x000007Cu; // _ +const uint _quote = 0x52800000u; // " +const uint _exclm = 0x21084010u; // ! +const uint _gt = 0x02082220u; // > +const uint _lt = 0x00888208u; // < +const uint _opsqr = 0x3908421Cu; // [ +const uint _clsqr = 0xE1084270u; // ] +const uint _opprn = 0x11084208u; // ( +const uint _clprn = 0x41084220u; // ) +const uint _block = 0xFFFFFFFCu; // █ +const uint _copyr = 0x03AB9AB8u; // ©️ + +const int charWidth = 5; +const int charHeight = 6; +const int charSpacing = 1; +const int lineSpacing = 1; + +const ivec2 charSize = ivec2(charWidth, charHeight); +const ivec2 spaceSize = charSize + ivec2(charSpacing, lineSpacing); + +// Text renderer + +struct Text { + vec4 result; // Output color from the text renderer + vec4 fgCol; // Text foreground color + vec4 bgCol; // Text background color + ivec2 fragPos; // The position of the fragment (can be scaled to adjust the size of the text) + ivec2 textPos; // The position of the top-left corner of the text + ivec2 charPos; // The position of the next character in the text + int base; // Number base + int fpPrecision; // Number of decimal places to print +} text; + +// Fills the global text object with default values +void beginText(ivec2 fragPos, ivec2 textPos) { + text.result = vec4(0.0); + text.fgCol = vec4(1.0); + text.bgCol = vec4(0.0, 0.0, 0.0, 0.6); + text.fragPos = fragPos; + text.textPos = textPos; + text.charPos = ivec2(0); + text.base = 10; + text.fpPrecision = 2; +} + +// Applies the rendered text to the fragment +void endText(inout vec3 fragColor) { + fragColor = mix(fragColor.rgb, text.result.rgb, text.result.a); +} + +void printChar(uint character) { + ivec2 pos = text.fragPos - text.textPos - spaceSize * text.charPos * ivec2(1, -1) + ivec2(0, spaceSize.y); + + uint index = uint(charWidth - pos.x + pos.y * charWidth + 1); // Edited + + // Draw background + if (clamp(pos, ivec2(0), spaceSize - 1) == pos) + text.result = mix(text.result, text.bgCol, text.bgCol.a); + + // Draw character + if (clamp(pos, ivec2(0), charSize - 1) == pos) + text.result = mix(text.result, text.fgCol, text.fgCol.a * float(character >> index & 1u)); + + // Advance to next character + text.charPos.x++; +} + +#define printString(string) { \ + uint[] characters = uint[] string; \ + for (int i = 0; i < characters.length(); ++i) printChar(characters[i]); \ +} + +void printUnsignedInt(uint value, int len) { + const uint[36] digits = uint[]( + _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, + _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, + _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, + _u, _v, _w, _x, _y, _z + ); + + // Advance to end of the number + text.charPos.x += len - 1; + + // Write number backwards + for (int i = 0; i < len; ++i) { + printChar(digits[int(value) % text.base]); // Edited + value /= uint(text.base); // Edited + text.charPos.x -= 2; + } + + // Return to end of the number + text.charPos.x += len + 1; +} + +void printUnsignedInt(uint value) { + float logValue = log(float(value)) + 1e-6; + float logBase = log(float(text.base)); + + int len = int(ceil(logValue / logBase)); + len = max(len, 1); + + printUnsignedInt(value, len); +} + +void printInt(int value) { + if (value < 0) printChar(_minus); + printUnsignedInt(uint(abs(value))); +} + +void printFloat(float value) { + if (value < 0.0) printChar(_minus); + + if (isnan(value)) { + printString((_N, _a, _N)); + } else if (isinf(value)) { + printString((_i, _n, _f)); + } else { + float v = abs(value) * pow(float(text.base), float(text.fpPrecision)); + float i, f = modf(floor(v + 0.5) / pow(float(text.base), float(text.fpPrecision)), i); + + uint integralPart = uint(i); + uint fractionalPart = uint(f * pow(float(text.base), float(text.fpPrecision)) + 0.5); + + printUnsignedInt(integralPart); + printChar(_dot); + printUnsignedInt(fractionalPart, text.fpPrecision); + } +} + +void printBool(bool value) { + if (value) { + printString((_t, _r, _u, _e)); + } else { + printString((_f, _a, _l, _s, _e)); + } +} + +void printVec2(vec2 value) { + printFloat(value.x); + printString((_comma, _space)); + printFloat(value.y); +} +void printVec3(vec3 value) { + printFloat(value.x); + printString((_comma, _space)); + printFloat(value.y); + printString((_comma, _space)); + printFloat(value.z); +} +void printVec4(vec4 value) { + printFloat(value.x); + printString((_comma, _space)); + printFloat(value.y); + printString((_comma, _space)); + printFloat(value.z); + printString((_comma, _space)); + printFloat(value.w); +} + +void printIvec2(ivec2 value) { + printInt(value.x); + printString((_comma, _space)); + printInt(value.y); +} +void printIvec3(ivec3 value) { + printInt(value.x); + printString((_comma, _space)); + printInt(value.y); + printString((_comma, _space)); + printInt(value.z); +} +void printIvec4(ivec4 value) { + printInt(value.x); + printString((_comma, _space)); + printInt(value.y); + printString((_comma, _space)); + printInt(value.z); + printString((_comma, _space)); + printInt(value.w); +} + +void printUvec2(uvec2 value) { + printUnsignedInt(value.x); + printString((_comma, _space)); + printUnsignedInt(value.y); +} +void printUvec3(uvec3 value) { + printUnsignedInt(value.x); + printString((_comma, _space)); + printUnsignedInt(value.y); + printString((_comma, _space)); + printUnsignedInt(value.z); +} +void printUvec4(uvec4 value) { + printUnsignedInt(value.x); + printString((_comma, _space)); + printUnsignedInt(value.y); + printString((_comma, _space)); + printUnsignedInt(value.z); + printString((_comma, _space)); + printUnsignedInt(value.w); +} + +void printLine() { + text.charPos.x = 0; + ++text.charPos.y; +} + +#endif // UTILITY_TEXTRENDERER_INCLUDED diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cloud-water.png b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cloud-water.png new file mode 100644 index 0000000..e40940d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cloud-water.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e03a26c2a265e0d39b8bed90124cf5dcaa788f8a2f3a1191a485460d7f05ffca +size 104834 diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cloud-water.png.mcmeta b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cloud-water.png.mcmeta new file mode 100644 index 0000000..33f3199 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cloud-water.png.mcmeta @@ -0,0 +1,7 @@ +{ + "texture": + { + "blur": true, + "clamp": false + } +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cucumber.png b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cucumber.png new file mode 100644 index 0000000..372f5be --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cucumber.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93ee6240e35a9749ea939788618b4028610a8b06c4d42d54e36dbf6468979a80 +size 2952 diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cucumber.png.mcmeta b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cucumber.png.mcmeta new file mode 100644 index 0000000..d909a4f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/cucumber.png.mcmeta @@ -0,0 +1,7 @@ +{ + "liminals": + { + "blur": false, + "clamp": false + } +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/noise.png b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/noise.png new file mode 100644 index 0000000..ada0f13 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/noise.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c810be7b1154640ec514f34f61cece2882514e6f5887101f20a1c57386cc15a1 +size 48135 diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/noise.png.mcmeta b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/noise.png.mcmeta new file mode 100644 index 0000000..33f3199 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/textures/noise.png.mcmeta @@ -0,0 +1,7 @@ +{ + "texture": + { + "blur": true, + "clamp": false + } +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/uniforms.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/uniforms.glsl new file mode 100644 index 0000000..7fd9e0d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/uniforms.glsl @@ -0,0 +1,161 @@ +/*---------------------------------------------------------------------------------------------- + _____ _____ + ( ___ ) ( ___ ) + | |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| | + | | ██╗ ██╗███╗ ██╗██╗███████╗ ██████╗ ██████╗ ███╗ ███╗███████╗ | | + | | ██║ ██║████╗ ██║██║██╔════╝██╔═══██╗██╔══██╗████╗ ████║██╔════╝ | | + | | ██║ ██║██╔██╗ ██║██║█████╗ ██║ ██║██████╔╝██╔████╔██║███████╗ | | + | | ██║ ██║██║╚██╗██║██║██╔══╝ ██║ ██║██╔══██╗██║╚██╔╝██║╚════██║ | | + | | ╚██████╔╝██║ ╚████║██║██║ ╚██████╔╝██║ ██║██║ ╚═╝ ██║███████║ | | + | | ╚═════╝ ╚═╝ ╚═══╝╚═╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ | | + |___|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|___| + (_____) (thanks to isuewo and SpacEagle17) (_____) + +---------------------------------------------------------------------------------------------*/ + +uniform int blockEntityId; +uniform int currentRenderedItemId; +uniform int entityId; +uniform int frameCounter; +uniform int heldBlockLightValue; +uniform int heldBlockLightValue2; +uniform int heldItemId; +uniform int heldItemId2; +uniform int isEyeInWater; +uniform int moonPhase; +uniform int worldTime; +uniform int worldDay; + +uniform float aspectRatio; +uniform float blindness; +uniform float darknessFactor; +uniform float darknessLightFactor; +uniform float maxBlindnessDarkness; +uniform float eyeAltitude; +uniform float frameTime; +uniform float frameTimeCounter; +uniform float far; +uniform float near; +uniform float nightVision; +uniform float rainStrength; +uniform float screenBrightness; +uniform float viewHeight; +uniform float viewWidth; +uniform float wetness; +uniform float sunAngle; +uniform float playerMood; + +uniform ivec2 atlasSize; +uniform ivec2 eyeBrightness; + +uniform vec3 cameraPosition; +uniform vec3 fogColor; +uniform vec3 previousCameraPosition; +uniform vec3 skyColor; +uniform vec3 relativeEyePosition; + +uniform vec4 entityColor; +uniform vec4 lightningBoltPosition; + +uniform mat4 gbufferModelView; +uniform mat4 gbufferModelViewInverse; +uniform mat4 gbufferPreviousModelView; +uniform mat4 gbufferPreviousProjection; +uniform mat4 shadowModelView; +uniform mat4 shadowModelViewInverse; +uniform mat4 shadowProjection; +uniform mat4 shadowProjectionInverse; + +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 depthtex0; +uniform sampler2D depthtex1; +uniform sampler2D depthtex2; +uniform sampler2D gaux1; +uniform sampler2D gaux2; +uniform sampler2D gaux4; +uniform sampler2D normals; +uniform sampler2D noisetex; +uniform sampler2D specular; +uniform sampler2D tex; + +uniform ivec3 cameraPositionInt; +uniform ivec3 previousCameraPositionInt; +uniform vec3 cameraPositionFract; +uniform vec3 previousCameraPositionFract; + +#ifdef IS_IRIS + uniform int renderStage; +#endif + +#if SHADOW_QUALITY > -1 || defined LIGHTSHAFTS_ACTIVE || defined FF_BLOCKLIGHT + uniform sampler2D shadowcolor0; + uniform sampler2D shadowcolor1; + + uniform sampler2DShadow shadowtex1; + + #ifdef COMPOSITE + uniform sampler2D shadowtex0; + #else + uniform sampler2DShadow shadowtex0; + #endif +#endif + +#if !defined DH_TERRAIN && !defined DH_WATER + uniform mat4 gbufferProjection; + uniform mat4 gbufferProjectionInverse; +#endif + +#ifdef DISTANT_HORIZONS + uniform int dhRenderDistance; + + uniform mat4 dhProjection; + uniform mat4 dhProjectionInverse; + + uniform sampler2D dhDepthTex; + uniform sampler2D dhDepthTex1; +#endif + +#if COLORED_LIGHTING_INTERNAL > 0 + uniform usampler3D voxel_sampler; + uniform sampler3D floodfill_sampler; + uniform sampler3D floodfill_sampler_copy; +#endif + +#ifdef PUDDLE_VOXELIZATION + uniform usampler2D puddle_sampler; +#endif + +/*----------------------------------------------------------------------------- + ___ _ _ ___ _____ ___ __ __ _ _ _ _ ___ ___ ___ ___ __ __ ___ + / __| | | / __|_ _/ _ \| \/ | | | | | \| |_ _| __/ _ \| _ \ \/ / __| +| (__| |_| \__ \ | || (_) | |\/| | | |_| | .` || || _| (_) | / |\/| \__ \ + \___|\___/|___/ |_| \___/|_| |_| \___/|_|\_|___|_| \___/|_|_\_| |_|___/ + +-----------------------------------------------------------------------------*/ + +uniform float framemod8; +uniform float isEyeInCave; +uniform float inDry; +uniform float inRainy; +uniform float inSnowy; +uniform float velocity; +uniform float starter; +uniform float frameTimeSmooth; +uniform float eyeBrightnessM; +uniform float eyeBrightnessM2; +uniform float rainFactor; +uniform float inBasaltDeltas; +uniform float inCrimsonForest; +uniform float inNetherWastes; +uniform float inSoulValley; +uniform float inWarpedForest; +uniform float inPaleGarden; \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/commonFunctions.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/commonFunctions.glsl new file mode 100644 index 0000000..3a49e4c --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/commonFunctions.glsl @@ -0,0 +1,259 @@ +#ifdef VERTEX_SHADER + vec2 GetLightMapCoordinates() { + vec2 lmCoord = (gl_TextureMatrix[1] * gl_MultiTexCoord1).xy; + return clamp((lmCoord - 0.03125) * 1.06667, 0.0, 1.0); + } + vec3 GetSunVector() { + const vec2 sunRotationData = vec2(cos(sunPathRotation * 0.01745329251994), -sin(sunPathRotation * 0.01745329251994)); + #ifdef OVERWORLD + float ang = fract(timeAngle - 0.25); + ang = (ang + (cos(ang * 3.14159265358979) * -0.5 + 0.5 - ang) / 3.0) * 6.28318530717959; + return normalize((gbufferModelView * vec4(vec3(-sin(ang), cos(ang) * sunRotationData) * 2000.0, 1.0)).xyz); + #elif defined END + float ang = 0.0; + return normalize((gbufferModelView * vec4(vec3(0.0, sunRotationData * 2000.0), 1.0)).xyz); + #else + return vec3(0.0); + #endif + } +#endif + +float GetLuminance(vec3 color) { + return dot(color, vec3(0.299, 0.587, 0.114)); +} + +vec3 DoLuminanceCorrection(vec3 color) { + return color / GetLuminance(color); +} + +float GetBiasFactor(float NdotLM) { + float NdotLM2 = NdotLM * NdotLM; + return 1.25 * (1.0 - NdotLM2 * NdotLM2) / NdotLM; +} + +float GetHorizonFactor(float XdotU) { + #ifdef SUN_MOON_HORIZON + float horizon = clamp((XdotU + 0.1) * 10.0, 0.0, 1.0); + horizon *= horizon; + return horizon * horizon * (3.0 - 2.0 * horizon); + #else + float horizon = min(XdotU + 1.0, 1.0); + horizon *= horizon; + horizon *= horizon; + return horizon * horizon; + #endif +} + +bool CheckForColor(vec3 albedo, vec3 check) { // Thanks to Builderb0y + vec3 dif = albedo - check * 0.003921568; + return dif == clamp(dif, vec3(-0.001), vec3(0.001)); +} + +bool CheckForStick(vec3 albedo) { + return CheckForColor(albedo, vec3(40, 30, 11)) || + CheckForColor(albedo, vec3(73, 54, 21)) || + CheckForColor(albedo, vec3(104, 78, 30)) || + CheckForColor(albedo, vec3(137, 103, 39)); +} + +float GetMaxColorDif(vec3 color) { + vec3 dif = abs(vec3(color.r - color.g, color.g - color.b, color.r - color.b)); + return max(dif.r, max(dif.g, dif.b)); +} + +int min1(int x) { + return min(x, 1); +} +float min1(float x) { + return min(x, 1.0); +} +int max0(int x) { + return max(x, 0); +} +float max0(float x) { + return max(x, 0.0); +} +int clamp01(int x) { + return clamp(x, 0, 1); +} +float clamp01(float x) { + return clamp(x, 0.0, 1.0); +} +vec2 clamp01(vec2 x) { + return clamp(x, vec2(0.0), vec2(1.0)); +} +vec3 clamp01(vec3 x) { + return clamp(x, vec3(0.0), vec3(1.0)); +} + +int pow2(int x) { + return x * x; +} +float pow2(float x) { + return x * x; +} +vec2 pow2(vec2 x) { + return x * x; +} +vec3 pow2(vec3 x) { + return x * x; +} +vec4 pow2(vec4 x) { + return x * x; +} + +int pow3(int x) { + return pow2(x) * x; +} +float pow3(float x) { + return pow2(x) * x; +} +vec2 pow3(vec2 x) { + return pow2(x) * x; +} +vec3 pow3(vec3 x) { + return pow2(x) * x; +} +vec4 pow3(vec4 x) { + return pow2(x) * x; +} + +float pow1_5(float x) { // Faster pow(x, 1.5) approximation (that isn't accurate at all) if x is between 0 and 1 + return x - x * pow2(1.0 - x); // Thanks to SixthSurge +} +vec2 pow1_5(vec2 x) { + return x - x * pow2(1.0 - x); +} +vec3 pow1_5(vec3 x) { + return x - x * pow2(1.0 - x); +} +vec4 pow1_5(vec4 x) { + return x - x * pow2(1.0 - x); +} + +float sqrt1(float x) { // Faster sqrt() approximation (that isn't accurate at all) if x is between 0 and 1 + return x * (2.0 - x); // Thanks to Builderb0y +} +vec2 sqrt1(vec2 x) { + return x * (2.0 - x); +} +vec3 sqrt1(vec3 x) { + return x * (2.0 - x); +} +vec4 sqrt1(vec4 x) { + return x * (2.0 - x); +} +float sqrt2(float x) { + x = 1.0 - x; + x *= x; + x *= x; + return 1.0 - x; +} +vec2 sqrt2(vec2 x) { + x = 1.0 - x; + x *= x; + x *= x; + return 1.0 - x; +} +vec3 sqrt2(vec3 x) { + x = 1.0 - x; + x *= x; + x *= x; + return 1.0 - x; +} +vec4 sqrt2(vec4 x) { + x = 1.0 - x; + x *= x; + x *= x; + return 1.0 - x; +} +float sqrt3(float x) { + x = 1.0 - x; + x *= x; + x *= x; + x *= x; + return 1.0 - x; +} +vec2 sqrt3(vec2 x) { + x = 1.0 - x; + x *= x; + x *= x; + x *= x; + return 1.0 - x; +} +vec3 sqrt3(vec3 x) { + x = 1.0 - x; + x *= x; + x *= x; + x *= x; + return 1.0 - x; +} +vec4 sqrt3(vec4 x) { + x = 1.0 - x; + x *= x; + x *= x; + x *= x; + return 1.0 - x; +} +float sqrt4(float x) { + x = 1.0 - x; + x *= x; + x *= x; + x *= x; + x *= x; + return 1.0 - x; +} +vec2 sqrt4(vec2 x) { + x = 1.0 - x; + x *= x; + x *= x; + x *= x; + x *= x; + return 1.0 - x; +} +vec3 sqrt4(vec3 x) { + x = 1.0 - x; + x *= x; + x *= x; + x *= x; + x *= x; + return 1.0 - x; +} +vec4 sqrt4(vec4 x) { + x = 1.0 - x; + x *= x; + x *= x; + x *= x; + x *= x; + return 1.0 - x; +} + +float smoothstep1(float x) { + return x * x * (3.0 - 2.0 * x); +} +vec2 smoothstep1(vec2 x) { + return x * x * (3.0 - 2.0 * x); +} +vec3 smoothstep1(vec3 x) { + return x * x * (3.0 - 2.0 * x); +} +vec4 smoothstep1(vec4 x) { + return x * x * (3.0 - 2.0 * x); +} + +vec3 rgb2hsv(vec3 c) +{ + vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g)); + vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r)); + + float d = q.x - min(q.w, q.y); + float e = 1.0e-10; + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); +} +vec3 hsv2rgb(vec3 c) +{ + vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); + return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/dFdxdFdy.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/dFdxdFdy.glsl new file mode 100644 index 0000000..0d4752f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/dFdxdFdy.glsl @@ -0,0 +1,6 @@ +#ifndef INCLUDE_DFDX_DFDY + #define INCLUDE_DFDX_DFDY + + vec2 dcdx = dFdx(texCoord.xy); + vec2 dcdy = dFdy(texCoord.xy); +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/dither.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/dither.glsl new file mode 100644 index 0000000..d3237e2 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/dither.glsl @@ -0,0 +1,13 @@ +#ifndef INCLUDE_DITHER + #define INCLUDE_DITHER + + // Thanks to Jessie for dithering + float Bayer2 (vec2 c) { c = 0.5 * floor(c); return fract(1.5 * fract(c.y) + c.x); } + float Bayer4 (vec2 c) { return 0.25 * Bayer2 (0.5 * c) + Bayer2(c); } + float Bayer8 (vec2 c) { return 0.25 * Bayer4 (0.5 * c) + Bayer2(c); } + float Bayer16 (vec2 c) { return 0.25 * Bayer8 (0.5 * c) + Bayer2(c); } + float Bayer32 (vec2 c) { return 0.25 * Bayer16 (0.5 * c) + Bayer2(c); } + float Bayer64 (vec2 c) { return 0.25 * Bayer32 (0.5 * c) + Bayer2(c); } + float Bayer128(vec2 c) { return 0.25 * Bayer64 (0.5 * c) + Bayer2(c); } + float Bayer256(vec2 c) { return 0.25 * Bayer128(0.5 * c) + Bayer2(c); } +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/miplevel.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/miplevel.glsl new file mode 100644 index 0000000..7845205 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/miplevel.glsl @@ -0,0 +1,15 @@ +vec2 midCoordPos = absMidCoordPos * signMidCoordPos; + +#include "/lib/util/dFdxdFdy.glsl" + +vec2 mipx = dcdx / absMidCoordPos * 8.0; +vec2 mipy = dcdy / absMidCoordPos * 8.0; + +float mipDelta = max(dot(mipx, mipx), dot(mipy, mipy)); +float miplevel = max(0.5 * log2(mipDelta), 0.0); + +#if !defined GBUFFERS_ENTITIES && !defined GBUFFERS_HAND + vec2 atlasSizeM = atlasSize; +#else + vec2 atlasSizeM = atlasSize.x + atlasSize.y > 0.5 ? atlasSize : textureSize(tex, 0); +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/spaceConversion.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/spaceConversion.glsl new file mode 100644 index 0000000..31639a9 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/lib/util/spaceConversion.glsl @@ -0,0 +1,28 @@ +#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) +#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) + +vec3 ScreenToView(vec3 pos) { + vec4 iProjDiag = vec4(gbufferProjectionInverse[0].x, + gbufferProjectionInverse[1].y, + gbufferProjectionInverse[2].zw); + vec3 p3 = pos * 2.0 - 1.0; + vec4 viewPos = iProjDiag * p3.xyzz + gbufferProjectionInverse[3]; + return viewPos.xyz / viewPos.w; +} + +vec3 ViewToPlayer(vec3 pos) { + return mat3(gbufferModelViewInverse) * pos + gbufferModelViewInverse[3].xyz; +} + +vec3 PlayerToShadow(vec3 pos) { + vec3 shadowpos = mat3(shadowModelView) * pos + shadowModelView[3].xyz; + return projMAD(shadowProjection, shadowpos); +} + +vec3 ShadowClipToShadowView(vec3 pos) { + return mat3(shadowProjectionInverse) * pos; +} + +vec3 ShadowViewToPlayer(vec3 pos) { + return mat3(shadowModelViewInverse) * pos; +} \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite.glsl new file mode 100644 index 0000000..07cec8b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite.glsl @@ -0,0 +1,275 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +noperspective in vec2 texCoord; + +flat in vec3 upVec, sunVec; + +#ifdef LIGHTSHAFTS_ACTIVE + flat in float vlFactor; +#endif + +//Pipeline Constants// + +//Common Variables// +float SdotU = dot(sunVec, upVec); +float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; +float sunVisibility2 = sunVisibility * sunVisibility; + +vec2 view = vec2(viewWidth, viewHeight); + +#ifdef OVERWORLD + vec3 lightVec = sunVec * ((timeAngle < 0.5325 || timeAngle > 0.9675) ? 1.0 : -1.0); +#else + vec3 lightVec = sunVec; +#endif + +#ifdef LIGHTSHAFTS_ACTIVE + float shadowTimeVar1 = abs(sunVisibility - 0.5) * 2.0; + float shadowTimeVar2 = shadowTimeVar1 * shadowTimeVar1; + float shadowTime = shadowTimeVar2 * shadowTimeVar2; + float vlTime = min(abs(SdotU) - 0.05, 0.15) / 0.15; +#endif + +//Common Functions// + +//Includes// +#include "/lib/atmospherics/fog/waterFog.glsl" +#include "/lib/atmospherics/fog/caveFactor.glsl" + +#ifdef BLOOM_FOG_COMPOSITE + #include "/lib/atmospherics/fog/bloomFog.glsl" +#endif + +#ifdef LIGHTSHAFTS_ACTIVE + #ifdef END + #include "/lib/atmospherics/enderBeams.glsl" + #endif + #include "/lib/atmospherics/volumetricLight.glsl" +#endif + +#if WATER_MAT_QUALITY >= 3 || defined NETHER_STORM || defined COLORED_LIGHT_FOG + #include "/lib/util/spaceConversion.glsl" +#endif + +#if WATER_MAT_QUALITY >= 3 + #include "/lib/materials/materialMethods/refraction.glsl" +#endif + +#ifdef NETHER_STORM + #include "/lib/atmospherics/netherStorm.glsl" +#endif + +#ifdef ATM_COLOR_MULTS + #include "/lib/colors/colorMultipliers.glsl" +#endif +#ifdef MOON_PHASE_INF_ATMOSPHERE + #include "/lib/colors/moonPhaseInfluence.glsl" +#endif + +#if RAINBOWS > 0 && defined OVERWORLD + #include "/lib/atmospherics/rainbow.glsl" +#endif + +#ifdef COLORED_LIGHT_FOG + #include "/lib/misc/voxelization.glsl" + #include "/lib/atmospherics/fog/coloredLightFog.glsl" +#endif + +//Program// +void main() { + vec3 color = texelFetch(colortex0, texelCoord, 0).rgb; + float z0 = texelFetch(depthtex0, texelCoord, 0).r; + float z1 = texelFetch(depthtex1, texelCoord, 0).r; + + vec4 screenPos = vec4(texCoord, z0, 1.0); + vec4 viewPos = gbufferProjectionInverse * (screenPos * 2.0 - 1.0); + viewPos /= viewPos.w; + float lViewPos = length(viewPos.xyz); + + #if defined DISTANT_HORIZONS && !defined OVERWORLD + float z0DH = texelFetch(dhDepthTex, texelCoord, 0).r; + vec4 screenPosDH = vec4(texCoord, z0DH, 1.0); + vec4 viewPosDH = dhProjectionInverse * (screenPosDH * 2.0 - 1.0); + viewPosDH /= viewPosDH.w; + lViewPos = min(lViewPos, length(viewPosDH.xyz)); + #endif + + float dither = texture2D(noisetex, texCoord * view / 128.0).b; + #ifdef TAA + dither = fract(dither + goldenRatio * mod(float(frameCounter), 3600.0)); + #endif + + /* TM5723: The "1.0 - translucentMult" trick is done because of the default color attachment + value being vec3(0.0). This makes it vec3(1.0) to avoid issues especially on improved glass */ + vec3 translucentMult = 1.0 - texelFetch(colortex3, texelCoord, 0).rgb; //TM5723 + vec4 volumetricEffect = vec4(0.0); + + #if WATER_MAT_QUALITY >= 3 + DoRefraction(color, z0, z1, viewPos.xyz, lViewPos); + #endif + + vec4 screenPos1 = vec4(texCoord, z1, 1.0); + vec4 viewPos1 = gbufferProjectionInverse * (screenPos1 * 2.0 - 1.0); + viewPos1 /= viewPos1.w; + float lViewPos1 = length(viewPos1.xyz); + + #if defined DISTANT_HORIZONS && !defined OVERWORLD + float z1DH = texelFetch(dhDepthTex1, texelCoord, 0).r; + vec4 screenPos1DH = vec4(texCoord, z1DH, 1.0); + vec4 viewPos1DH = dhProjectionInverse * (screenPos1DH * 2.0 - 1.0); + viewPos1DH /= viewPos1DH.w; + lViewPos1 = min(lViewPos1, length(viewPos1DH.xyz)); + #endif + + #if defined LIGHTSHAFTS_ACTIVE || RAINBOWS > 0 && defined OVERWORLD + vec3 nViewPos = normalize(viewPos1.xyz); + float VdotL = dot(nViewPos, lightVec); + #endif + + #if defined NETHER_STORM || defined COLORED_LIGHT_FOG + vec3 playerPos = ViewToPlayer(viewPos1.xyz); + vec3 nPlayerPos = normalize(playerPos); + #endif + + #if RAINBOWS > 0 && defined OVERWORLD + if (isEyeInWater == 0) color += GetRainbow(translucentMult, z0, z1, lViewPos, lViewPos1, VdotL, dither); + #endif + + #ifdef LIGHTSHAFTS_ACTIVE + float vlFactorM = vlFactor; + float VdotU = dot(nViewPos, upVec); + + volumetricEffect = GetVolumetricLight(color, vlFactorM, translucentMult, lViewPos, lViewPos1, nViewPos, VdotL, VdotU, texCoord, z0, z1, dither); + #endif + + #ifdef NETHER_STORM + volumetricEffect = GetNetherStorm(color, translucentMult, nPlayerPos, playerPos, lViewPos, lViewPos1, dither); + #endif + + #ifdef ATM_COLOR_MULTS + volumetricEffect.rgb *= GetAtmColorMult(); + #endif + #ifdef MOON_PHASE_INF_ATMOSPHERE + volumetricEffect.rgb *= moonPhaseInfluence; + #endif + + #ifdef NETHER_STORM + color = mix(color, volumetricEffect.rgb, volumetricEffect.a); + #endif + + #ifdef COLORED_LIGHT_FOG + vec3 lightFog = GetColoredLightFog(nPlayerPos, translucentMult, lViewPos, lViewPos1, dither); + float lightFogMult = COLORED_LIGHT_FOG_I; + //if (heldItemId == 40000 && heldItemId2 != 40000) lightFogMult = 0.0; // Hold spider eye to disable light fog + + #ifdef OVERWORLD + lightFogMult *= 0.2 + 0.6 * mix(1.0, 1.0 - sunFactor * invRainFactor, eyeBrightnessM); + #endif + #endif + + if (isEyeInWater == 1) { + if (z0 == 1.0) color.rgb = waterFogColor; + + vec3 underwaterMult = vec3(0.80, 0.87, 0.97); + color.rgb *= underwaterMult * 0.85; + volumetricEffect.rgb *= pow2(underwaterMult * 0.71); + + #ifdef COLORED_LIGHT_FOG + lightFog *= underwaterMult; + #endif + } else if (isEyeInWater == 2) { + if (z1 == 1.0) color.rgb = fogColor * 5.0; + + volumetricEffect.rgb *= 0.0; + #ifdef COLORED_LIGHT_FOG + lightFog *= 0.0; + #endif + } + + #ifdef COLORED_LIGHT_FOG + color /= 1.0 + pow2(GetLuminance(lightFog)) * lightFogMult * 2.0; + color += lightFog * lightFogMult * 0.5; + #endif + + color = pow(color, vec3(2.2)); + + #ifdef LIGHTSHAFTS_ACTIVE + #ifdef END + volumetricEffect.rgb *= volumetricEffect.rgb; + #endif + + color += volumetricEffect.rgb; + #endif + + #ifdef BLOOM_FOG_COMPOSITE + color *= GetBloomFog(lViewPos); // Reminder: Bloom Fog can move between composite1-2-3 + #endif + + /* DRAWBUFFERS:0 */ + gl_FragData[0] = vec4(color, 1.0); + + // supposed to be #if defined LIGHTSHAFTS_ACTIVE && (LIGHTSHAFT_BEHAVIOUR == 1 && SHADOW_QUALITY >= 1 || defined END) + #if LIGHTSHAFT_QUALI_DEFINE > 0 && LIGHTSHAFT_BEHAVIOUR == 1 && SHADOW_QUALITY >= 1 && defined OVERWORLD || defined END + #if LENSFLARE_MODE > 0 || defined ENTITY_TAA_NOISY_CLOUD_FIX + if (viewWidth + viewHeight - gl_FragCoord.x - gl_FragCoord.y > 1.5) + vlFactorM = texelFetch(colortex4, texelCoord, 0).r; + #endif + + /* DRAWBUFFERS:04 */ + gl_FragData[1] = vec4(vlFactorM, 0.0, 0.0, 1.0); + #endif +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +noperspective out vec2 texCoord; + +flat out vec3 upVec, sunVec; + +#ifdef LIGHTSHAFTS_ACTIVE + flat out float vlFactor; +#endif + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + + upVec = normalize(gbufferModelView[1].xyz); + sunVec = GetSunVector(); + + #ifdef LIGHTSHAFTS_ACTIVE + #if LIGHTSHAFT_BEHAVIOUR == 1 && SHADOW_QUALITY >= 1 || defined END + vlFactor = texelFetch(colortex4, ivec2(viewWidth-1, viewHeight-1), 0).r; + #else + #if LIGHTSHAFT_BEHAVIOUR == 2 + vlFactor = 0.0; + #elif LIGHTSHAFT_BEHAVIOUR == 3 + vlFactor = 1.0; + #endif + #endif + #endif +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite2.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite2.glsl new file mode 100644 index 0000000..adcb849 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite2.glsl @@ -0,0 +1,141 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +#ifdef MOTION_BLURRING + noperspective in vec2 texCoord; + + #ifdef BLOOM_FOG_COMPOSITE2 + flat in vec3 upVec, sunVec; + #endif +#endif + +//Pipeline Constants// + +//Common Variables// +#if defined MOTION_BLURRING && defined BLOOM_FOG_COMPOSITE2 + float SdotU = dot(sunVec, upVec); + float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +#endif + +//Common Functions// +#ifdef MOTION_BLURRING + vec3 MotionBlur(vec3 color, float z, float dither) { + if (z > 0.56) { + float mbwg = 0.0; + vec2 doublePixel = 2.0 / vec2(viewWidth, viewHeight); + vec3 mblur = vec3(0.0); + + vec4 currentPosition = vec4(texCoord, z, 1.0) * 2.0 - 1.0; + + vec4 viewPos = gbufferProjectionInverse * currentPosition; + viewPos = gbufferModelViewInverse * viewPos; + viewPos /= viewPos.w; + + vec3 cameraOffset = cameraPosition - previousCameraPosition; + + vec4 previousPosition = viewPos + vec4(cameraOffset, 0.0); + previousPosition = gbufferPreviousModelView * previousPosition; + previousPosition = gbufferPreviousProjection * previousPosition; + previousPosition /= previousPosition.w; + + vec2 velocity = (currentPosition - previousPosition).xy; + velocity = velocity / (1.0 + length(velocity)) * MOTION_BLURRING_STRENGTH * 0.02; + + vec2 coord = texCoord - velocity * (3.5 + dither); + for (int i = 0; i < 9; i++, coord += velocity) { + vec2 coordb = clamp(coord, doublePixel, 1.0 - doublePixel); + mblur += texture2DLod(colortex0, coordb, 0).rgb; + mbwg += 1.0; + } + mblur /= mbwg; + + return mblur; + } else return color; + } +#endif + +//Includes// +#ifdef MOTION_BLURRING + #include "/lib/util/dither.glsl" + + #ifdef BLOOM_FOG_COMPOSITE2 + #include "/lib/atmospherics/fog/bloomFog.glsl" + #endif +#endif + +//Program// +void main() { + vec3 color = texelFetch(colortex0, texelCoord, 0).rgb; + + #ifdef MOTION_BLURRING + float z = texture2D(depthtex1, texCoord).x; + float dither = Bayer64(gl_FragCoord.xy); + + color = MotionBlur(color, z, dither); + + #ifdef BLOOM_FOG_COMPOSITE2 + float z0 = texelFetch(depthtex0, texelCoord, 0).r; + vec4 screenPos = vec4(texCoord, z0, 1.0); + vec4 viewPos = gbufferProjectionInverse * (screenPos * 2.0 - 1.0); + viewPos /= viewPos.w; + float lViewPos = length(viewPos.xyz); + + #if defined DISTANT_HORIZONS && defined NETHER + float z0DH = texelFetch(dhDepthTex, texelCoord, 0).r; + vec4 screenPosDH = vec4(texCoord, z0DH, 1.0); + vec4 viewPosDH = dhProjectionInverse * (screenPosDH * 2.0 - 1.0); + viewPosDH /= viewPosDH.w; + lViewPos = min(lViewPos, length(viewPosDH.xyz)); + #endif + + color *= GetBloomFog(lViewPos); // Reminder: Bloom Fog can move between composite1-2-3 + #endif + #endif + + /* DRAWBUFFERS:0 */ + gl_FragData[0] = vec4(color, 1.0); +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +#ifdef MOTION_BLURRING + noperspective out vec2 texCoord; + + #ifdef BLOOM_FOG_COMPOSITE2 + flat out vec3 upVec, sunVec; + #endif +#endif + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + + #ifdef MOTION_BLURRING + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + + #ifdef BLOOM_FOG_COMPOSITE2 + upVec = normalize(gbufferModelView[1].xyz); + sunVec = GetSunVector(); + #endif + #endif +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite3.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite3.glsl new file mode 100644 index 0000000..5f57bd1 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite3.glsl @@ -0,0 +1,188 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +#if WORLD_BLUR > 0 + noperspective in vec2 texCoord; + + flat in vec3 upVec, sunVec; +#endif + +//Pipeline Constants// +#if WORLD_BLUR > 0 + const bool colortex0MipmapEnabled = true; +#endif + +//Common Variables// +#if WORLD_BLUR > 0 + #if WORLD_BLUR == 2 && WB_DOF_FOCUS >= 0 + #if WB_DOF_FOCUS == 0 + uniform float centerDepthSmooth; + #else + float centerDepthSmooth = (far * (WB_DOF_FOCUS - near)) / (WB_DOF_FOCUS * (far - near)); + #endif + #endif +#endif + +#if WORLD_BLUR > 0 + float SdotU = dot(sunVec, upVec); + float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; + + vec2 dofOffsets[18] = vec2[18]( + vec2( 0.0 , 0.25 ), + vec2(-0.2165 , 0.125 ), + vec2(-0.2165 , -0.125 ), + vec2( 0 , -0.25 ), + vec2( 0.2165 , -0.125 ), + vec2( 0.2165 , 0.125 ), + vec2( 0 , 0.5 ), + vec2(-0.25 , 0.433 ), + vec2(-0.433 , 0.25 ), + vec2(-0.5 , 0 ), + vec2(-0.433 , -0.25 ), + vec2(-0.25 , -0.433 ), + vec2( 0 , -0.5 ), + vec2( 0.25 , -0.433 ), + vec2( 0.433 , -0.2 ), + vec2( 0.5 , 0 ), + vec2( 0.433 , 0.25 ), + vec2( 0.25 , 0.433 ) + ); +#endif + +//Common Functions// +#if WORLD_BLUR > 0 + void DoWorldBlur(inout vec3 color, float z1, float lViewPos0) { + if (z1 < 0.56) return; + vec3 dof = vec3(0.0); + vec2 dofScale = vec2(1.0, aspectRatio); + + #if WORLD_BLUR == 1 // Distance Blur + #ifdef OVERWORLD + float dbMult; + if (isEyeInWater == 0) { + dbMult = mix(WB_DB_NIGHT_I, WB_DB_DAY_I, sunFactor * eyeBrightnessM); + dbMult = mix(dbMult, WB_DB_RAIN_I, rainFactor * eyeBrightnessM); + } else dbMult = WB_DB_WATER_I; + #elif defined NETHER + float dbMult = WB_DB_NETHER_I; + #elif defined END + float dbMult = WB_DB_END_I; + #endif + float coc = clamp(lViewPos0 * 0.001, 0.0, 0.1) * dbMult * 0.03; + #elif WORLD_BLUR == 2 // Depth Of Field + #if WB_DOF_FOCUS >= 0 + float coc = max(abs(z1 - centerDepthSmooth) * 0.125 * WB_DOF_I - 0.0001, 0.0); + #elif WB_DOF_FOCUS == -1 + float coc = clamp(abs(lViewPos0 * 0.005 - pow2(vsBrightness)), 0.0, 0.1) * WB_DOF_I * 0.03; + #endif + #endif + coc = coc / sqrt(coc * coc + 0.1); + + #ifdef WB_FOV_SCALED + coc *= gbufferProjection[1][1] * 0.8; + #endif + #ifdef WB_CHROMATIC + float midDistX = texCoord.x - 0.5; + float midDistY = texCoord.y - 0.5; + vec2 chromaticScale = vec2(midDistX, midDistY); + chromaticScale = sign(chromaticScale) * sqrt(abs(chromaticScale)); + chromaticScale *= vec2(1.0, viewHeight / viewWidth); + vec2 aberration = (15.0 / vec2(viewWidth, viewHeight)) * chromaticScale * coc; + #endif + #ifdef WB_ANAMORPHIC + dofScale *= vec2(0.5, 1.5); + #endif + + if (coc * 0.5 > 1.0 / max(viewWidth, viewHeight)) { + for (int i = 0; i < 18; i++) { + vec2 offset = dofOffsets[i] * coc * 0.0085 * dofScale; + float lod = log2(viewHeight * aspectRatio * coc * 0.75 / 320.0); + #ifndef WB_CHROMATIC + dof += texture2DLod(colortex0, texCoord + offset, lod).rgb; + #else + dof += vec3(texture2DLod(colortex0, texCoord + offset + aberration, lod).r, + texture2DLod(colortex0, texCoord + offset , lod).g, + texture2DLod(colortex0, texCoord + offset - aberration, lod).b); + #endif + } + dof /= 18.0; + color = dof; + } + } +#endif + +//Includes// +#if WORLD_BLUR > 0 && defined BLOOM_FOG_COMPOSITE3 + #include "/lib/atmospherics/fog/bloomFog.glsl" +#endif + +//Program// +void main() { + vec3 color = texelFetch(colortex0, texelCoord, 0).rgb; + + #if WORLD_BLUR > 0 + float z1 = texelFetch(depthtex1, texelCoord, 0).r; + float z0 = texelFetch(depthtex0, texelCoord, 0).r; + + vec4 screenPos = vec4(texCoord, z0, 1.0); + vec4 viewPos = gbufferProjectionInverse * (screenPos * 2.0 - 1.0); + viewPos /= viewPos.w; + float lViewPos = length(viewPos.xyz); + + #if defined DISTANT_HORIZONS && defined NETHER + float z0DH = texelFetch(dhDepthTex, texelCoord, 0).r; + vec4 screenPosDH = vec4(texCoord, z0DH, 1.0); + vec4 viewPosDH = dhProjectionInverse * (screenPosDH * 2.0 - 1.0); + viewPosDH /= viewPosDH.w; + lViewPos = min(lViewPos, length(viewPosDH.xyz)); + #endif + + DoWorldBlur(color, z1, lViewPos); + + #ifdef BLOOM_FOG_COMPOSITE3 + color *= GetBloomFog(lViewPos); // Reminder: Bloom Fog can move between composite1-2-3 + #endif + #endif + + /* DRAWBUFFERS:0 */ + gl_FragData[0] = vec4(color, 1.0); +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +#if WORLD_BLUR > 0 + noperspective out vec2 texCoord; + + flat out vec3 upVec, sunVec; +#endif + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + + #if WORLD_BLUR > 0 + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + upVec = normalize(gbufferModelView[1].xyz); + sunVec = GetSunVector(); + #endif +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite4.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite4.glsl new file mode 100644 index 0000000..f24ddf4 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite4.glsl @@ -0,0 +1,96 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//Varyings// +varying vec2 texCoord; + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +//Pipeline Constants// +const bool colortex0MipmapEnabled = true; + +//Common Variables// +float weight[7] = float[7](1.0, 6.0, 15.0, 20.0, 15.0, 6.0, 1.0); + +vec2 view = vec2(viewWidth, viewHeight); + +//Common Functions// +vec3 BloomTile(float lod, vec2 offset, vec2 scaledCoord) { + vec3 bloom = vec3(0.0); + float scale = exp2(lod); + vec2 coord = (scaledCoord - offset) * scale; + float padding = 0.5 + 0.005 * scale; + + if (abs(coord.x - 0.5) < padding && abs(coord.y - 0.5) < padding) { + for (int i = -3; i <= 3; i++) { + for (int j = -3; j <= 3; j++) { + float wg = weight[i + 3] * weight[j + 3]; + vec2 pixelOffset = vec2(i, j) / view; + vec2 bloomCoord = (scaledCoord - offset + pixelOffset) * scale; + bloom += texture2D(colortex0, bloomCoord).rgb * wg; + } + } + bloom /= 4096.0; + } + + return pow(bloom / 128.0, vec3(0.25)); +} + +//Includes// + +//Program// +void main() { + vec3 blur = vec3(0.0); + + #ifdef BLOOM + vec2 scaledCoord = texCoord * max(vec2(viewWidth, viewHeight) / vec2(1920.0, 1080.0), vec2(1.0)); + + #if defined OVERWORLD || defined END + blur += BloomTile(2.0, vec2(0.0 , 0.0 ), scaledCoord); + blur += BloomTile(3.0, vec2(0.0 , 0.26 ), scaledCoord); + blur += BloomTile(4.0, vec2(0.135 , 0.26 ), scaledCoord); + blur += BloomTile(5.0, vec2(0.2075 , 0.26 ), scaledCoord) * 0.8; + blur += BloomTile(6.0, vec2(0.135 , 0.3325), scaledCoord) * 0.8; + blur += BloomTile(7.0, vec2(0.160625 , 0.3325), scaledCoord) * 0.6; + blur += BloomTile(8.0, vec2(0.1784375, 0.3325), scaledCoord) * 0.4; + #else + blur += BloomTile(2.0, vec2(0.0 , 0.0 ), scaledCoord); + blur += BloomTile(3.0, vec2(0.0 , 0.26 ), scaledCoord); + blur += BloomTile(4.0, vec2(0.135 , 0.26 ), scaledCoord); + blur += BloomTile(5.0, vec2(0.2075 , 0.26 ), scaledCoord); + blur += BloomTile(6.0, vec2(0.135 , 0.3325), scaledCoord); + blur += BloomTile(7.0, vec2(0.160625 , 0.3325), scaledCoord); + blur += BloomTile(8.0, vec2(0.1784375, 0.3325), scaledCoord) * 0.6; + #endif + #endif + + /* DRAWBUFFERS:3 */ + gl_FragData[0] = vec4(blur, 1.0); +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + texCoord = gl_MultiTexCoord0.xy; + + gl_Position = ftransform(); +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite5.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite5.glsl new file mode 100644 index 0000000..f62408d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite5.glsl @@ -0,0 +1,216 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +noperspective in vec2 texCoord; + +#if defined BLOOM_FOG || LENSFLARE_MODE > 0 && defined OVERWORLD + flat in vec3 upVec, sunVec; +#endif + +//Pipeline Constants// + +//Common Variables// +float pw = 1.0 / viewWidth; +float ph = 1.0 / viewHeight; + +vec2 view = vec2(viewWidth, viewHeight); + +#if defined BLOOM_FOG || LENSFLARE_MODE > 0 && defined OVERWORLD + float SdotU = dot(sunVec, upVec); + float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +#endif + +//Common Functions// +void DoBSLTonemap(inout vec3 color) { + color = T_EXPOSURE * color; + color = color / pow(pow(color, vec3(TM_WHITE_CURVE)) + 1.0, vec3(1.0 / TM_WHITE_CURVE)); + color = pow(color, mix(vec3(T_LOWER_CURVE), vec3(T_UPPER_CURVE), sqrt(color))); + + color = pow(color, vec3(1.0 / 2.2)); +} + +void DoBSLColorSaturation(inout vec3 color) { + float grayVibrance = (color.r + color.g + color.b) / 3.0; + float graySaturation = grayVibrance; + if (T_SATURATION < 1.00) graySaturation = dot(color, vec3(0.299, 0.587, 0.114)); + + float mn = min(color.r, min(color.g, color.b)); + float mx = max(color.r, max(color.g, color.b)); + float sat = (1.0 - (mx - mn)) * (1.0 - mx) * grayVibrance * 5.0; + vec3 lightness = vec3((mn + mx) * 0.5); + + color = mix(color, mix(color, lightness, 1.0 - T_VIBRANCE), sat); + color = mix(color, lightness, (1.0 - lightness) * (2.0 - T_VIBRANCE) / 2.0 * abs(T_VIBRANCE - 1.0)); + color = color * T_SATURATION - graySaturation * (T_SATURATION - 1.0); +} + +#ifdef BLOOM + vec2 rescale = max(vec2(viewWidth, viewHeight) / vec2(1920.0, 1080.0), vec2(1.0)); + vec3 GetBloomTile(float lod, vec2 coord, vec2 offset) { + float scale = exp2(lod); + vec2 bloomCoord = coord / scale + offset; + bloomCoord = clamp(bloomCoord, offset, 1.0 / scale + offset); + + vec3 bloom = texture2D(colortex3, bloomCoord / rescale).rgb; + bloom *= bloom; + bloom *= bloom; + return bloom * 128.0; + } + + void DoBloom(inout vec3 color, vec2 coord, float dither, float lViewPos) { + vec3 blur1 = GetBloomTile(2.0, coord, vec2(0.0 , 0.0 )); + vec3 blur2 = GetBloomTile(3.0, coord, vec2(0.0 , 0.26 )); + vec3 blur3 = GetBloomTile(4.0, coord, vec2(0.135 , 0.26 )); + vec3 blur4 = GetBloomTile(5.0, coord, vec2(0.2075 , 0.26 )); + vec3 blur5 = GetBloomTile(6.0, coord, vec2(0.135 , 0.3325)); + vec3 blur6 = GetBloomTile(7.0, coord, vec2(0.160625 , 0.3325)); + vec3 blur7 = GetBloomTile(8.0, coord, vec2(0.1784375, 0.3325)); + + vec3 blur = (blur1 + blur2 + blur3 + blur4 + blur5 + blur6 + blur7) * 0.14; + + float bloomStrength = BLOOM_STRENGTH + 0.2 * darknessFactor; + + #if defined BLOOM_FOG && defined NETHER && defined BORDER_FOG + float farM = min(renderDistance, NETHER_VIEW_LIMIT); // consistency9023HFUE85JG + float netherBloom = lViewPos / clamp(farM, 96.0, 256.0); + netherBloom *= netherBloom; + netherBloom *= netherBloom; + netherBloom = 1.0 - exp(-8.0 * netherBloom); + netherBloom *= 1.0 - maxBlindnessDarkness; + bloomStrength = mix(bloomStrength * 0.7, bloomStrength * 1.8, netherBloom); + #endif + + color = mix(color, blur, bloomStrength); + //color += blur * bloomStrength * (ditherFactor.x + ditherFactor.y); + } +#endif + +//Includes// +#ifdef BLOOM_FOG + #include "/lib/atmospherics/fog/bloomFog.glsl" +#endif + +#ifdef BLOOM + #include "/lib/util/dither.glsl" +#endif + +#if LENSFLARE_MODE > 0 && defined OVERWORLD + #include "/lib/misc/lensFlare.glsl" +#endif + +//Program// +void main() { + vec3 color = texture2D(colortex0, texCoord).rgb; + + #if defined BLOOM_FOG || LENSFLARE_MODE > 0 && defined OVERWORLD + float z0 = texture2D(depthtex0, texCoord).r; + + vec4 screenPos = vec4(texCoord, z0, 1.0); + vec4 viewPos = gbufferProjectionInverse * (screenPos * 2.0 - 1.0); + viewPos /= viewPos.w; + float lViewPos = length(viewPos.xyz); + + #if defined DISTANT_HORIZONS && defined NETHER + float z0DH = texelFetch(dhDepthTex, texelCoord, 0).r; + vec4 screenPosDH = vec4(texCoord, z0DH, 1.0); + vec4 viewPosDH = dhProjectionInverse * (screenPosDH * 2.0 - 1.0); + viewPosDH /= viewPosDH.w; + lViewPos = min(lViewPos, length(viewPosDH.xyz)); + #endif + #else + float lViewPos = 0.0; + #endif + + float dither = texture2D(noisetex, texCoord * view / 128.0).b; + #ifdef TAA + dither = fract(dither + goldenRatio * mod(float(frameCounter), 3600.0)); + #endif + + #ifdef BLOOM_FOG + color /= GetBloomFog(lViewPos); + #endif + + #ifdef BLOOM + DoBloom(color, texCoord, dither, lViewPos); + #endif + + #ifdef COLORGRADING + color = + pow(color.r, GR_RC) * vec3(GR_RR, GR_RG, GR_RB) + + pow(color.g, GR_GC) * vec3(GR_GR, GR_GG, GR_GB) + + pow(color.b, GR_BC) * vec3(GR_BR, GR_BG, GR_BB); + color *= 0.01; + #endif + + DoBSLTonemap(color); + + #if defined GREEN_SCREEN_LIME || SELECT_OUTLINE == 4 + int materialMaskInt = int(texelFetch(colortex6, texelCoord, 0).g * 255.1); + #endif + + #ifdef GREEN_SCREEN_LIME + if (materialMaskInt == 240) { // Green Screen Lime Blocks + color = vec3(0.0, 1.0, 0.0); + } + #endif + + #if SELECT_OUTLINE == 4 + if (materialMaskInt == 252) { // Versatile Selection Outline + float colorMF = 1.0 - dot(color, vec3(0.25, 0.45, 0.1)); + colorMF = smoothstep1(smoothstep1(smoothstep1(smoothstep1(smoothstep1(colorMF))))); + color = mix(color, 3.0 * (color + 0.2) * vec3(colorMF * SELECT_OUTLINE_I), 0.3); + } + #endif + + #if LENSFLARE_MODE > 0 && defined OVERWORLD + DoLensFlare(color, viewPos.xyz, dither); + #endif + + DoBSLColorSaturation(color); + + float filmGrain = dither; + color += vec3((filmGrain - 0.25) / 128.0); + + /* DRAWBUFFERS:3 */ + gl_FragData[0] = vec4(color, 1.0); +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +noperspective out vec2 texCoord; + +#if defined BLOOM_FOG || LENSFLARE_MODE > 0 && defined OVERWORLD + flat out vec3 upVec, sunVec; +#endif + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + + #if defined BLOOM_FOG || LENSFLARE_MODE > 0 && defined OVERWORLD + upVec = normalize(gbufferModelView[1].xyz); + sunVec = GetSunVector(); + #endif +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite6.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite6.glsl new file mode 100644 index 0000000..c374d8d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite6.glsl @@ -0,0 +1,79 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +noperspective in vec2 texCoord; + +//Pipeline Constants// +#include "/lib/pipelineSettings.glsl" + +const bool colortex3MipmapEnabled = true; + +//Common Variables// +vec2 view = vec2(viewWidth, viewHeight); + +//Common Functions// +float GetLinearDepth(float depth) { + return (2.0 * near) / (far + near - depth * (far - near)); +} + +//Includes// +#ifdef TAA + #include "/lib/antialiasing/taa.glsl" +#endif + +//Program// +void main() { + vec3 color = texelFetch(colortex3, texelCoord, 0).rgb; + + vec3 temp = vec3(0.0); + float z1 = 0.0; + + #if defined TAA || defined TEMPORAL_FILTER + z1 = texelFetch(depthtex1, texelCoord, 0).r; + #endif + + #ifdef TAA + DoTAA(color, temp, z1); + #endif + + /* DRAWBUFFERS:32 */ + gl_FragData[0] = vec4(color, 1.0); + gl_FragData[1] = vec4(temp, 1.0); + + // Supposed to be #ifdef TEMPORAL_FILTER but Optifine bad + #if BLOCK_REFLECT_QUALITY >= 3 && RP_MODE >= 1 + /* DRAWBUFFERS:321 */ + gl_FragData[2] = vec4(z1, 1.0, 1.0, 1.0); + #endif +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +noperspective out vec2 texCoord; + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite7.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite7.glsl new file mode 100644 index 0000000..26edd8e --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/composite7.glsl @@ -0,0 +1,61 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +noperspective in vec2 texCoord; + +//Pipeline Constants// + +//Common Variables// + +//Common Functions// +float GetLinearDepth(float depth) { + return (2.0 * near) / (far + near - depth * (far - near)); +} + +//Includes// +#if FXAA_DEFINE == 1 + #include "/lib/antialiasing/fxaa.glsl" +#endif + +//Program// +void main() { + vec3 color = texelFetch(colortex3, texelCoord, 0).rgb; + + #if FXAA_DEFINE == 1 + FXAA311(color); + #endif + + /* DRAWBUFFERS:3 */ + gl_FragData[0] = vec4(color, 1.0); +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +noperspective out vec2 texCoord; + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/deferred1.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/deferred1.glsl new file mode 100644 index 0000000..1ec84a5 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/deferred1.glsl @@ -0,0 +1,552 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +noperspective in vec2 texCoord; + +flat in vec3 upVec, sunVec; + +#if defined LIGHTSHAFTS_ACTIVE && (LIGHTSHAFT_BEHAVIOUR == 1 && SHADOW_QUALITY >= 1 || defined END) + flat in float vlFactor; +#endif + +//Pipeline Constants// +const bool colortex0MipmapEnabled = true; + +//Common Variables// +float SdotU = dot(sunVec, upVec); +float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; +float sunVisibility2 = sunVisibility * sunVisibility; +float shadowTimeVar1 = abs(sunVisibility - 0.5) * 2.0; +float shadowTimeVar2 = shadowTimeVar1 * shadowTimeVar1; +float shadowTime = shadowTimeVar2 * shadowTimeVar2; +float farMinusNear = far - near; + +vec2 view = vec2(viewWidth, viewHeight); + +#ifdef OVERWORLD + vec3 lightVec = sunVec * ((timeAngle < 0.5325 || timeAngle > 0.9675) ? 1.0 : -1.0); +#else + vec3 lightVec = sunVec; +#endif + +#if defined LIGHTSHAFTS_ACTIVE && (LIGHTSHAFT_BEHAVIOUR == 1 && SHADOW_QUALITY >= 1 || defined END) +#else + float vlFactor = 0.0; +#endif + +//Common Functions// +float GetLinearDepth(float depth) { + return (2.0 * near) / (far + near - depth * farMinusNear); +} + +#if SSAO_QUALI > 0 + vec2 OffsetDist(float x, int s) { + float n = fract(x * 1.414) * 3.1415; + return pow2(vec2(cos(n), sin(n)) * x / s); + } + + float DoAmbientOcclusion(float z0, float linearZ0, float dither) { + if (z0 < 0.56) return 1.0; + float ao = 0.0; + + #if SSAO_QUALI == 2 + int samples = 4; + float scm = 0.4; + #elif SSAO_QUALI == 3 + int samples = 12; + float scm = 0.6; + #endif + + #define SSAO_I_FACTOR 0.004 + + float sampleDepth = 0.0, angle = 0.0, dist = 0.0; + float fovScale = gbufferProjection[1][1]; + float distScale = max(farMinusNear * linearZ0 + near, 3.0); + vec2 scale = vec2(scm / aspectRatio, scm) * fovScale / distScale; + + for (int i = 1; i <= samples; i++) { + vec2 offset = OffsetDist(i + dither, samples) * scale; + if (i % 2 == 0) offset.y = -offset.y; + + vec2 coord1 = texCoord + offset; + vec2 coord2 = texCoord - offset; + + sampleDepth = GetLinearDepth(texture2D(depthtex0, coord1).r); + float aosample = farMinusNear * (linearZ0 - sampleDepth) * 2.0; + angle = clamp(0.5 - aosample, 0.0, 1.0); + dist = clamp(0.5 * aosample - 1.0, 0.0, 1.0); + + sampleDepth = GetLinearDepth(texture2D(depthtex0, coord2).r); + aosample = farMinusNear * (linearZ0 - sampleDepth) * 2.0; + angle += clamp(0.5 - aosample, 0.0, 1.0); + dist += clamp(0.5 * aosample - 1.0, 0.0, 1.0); + + ao += clamp(angle + dist, 0.0, 1.0); + } + ao /= samples; + + #define SSAO_IM SSAO_I * SSAO_I_FACTOR + return pow(ao, SSAO_IM); + } +#endif + +#ifdef TEMPORAL_FILTER + float GetApproxDistance(float depth) { + return near * far / (far - depth * far); + } + + // Previous frame reprojection from Chocapic13 + vec2 Reprojection(vec3 pos, vec3 cameraOffset) { + pos = pos * 2.0 - 1.0; + + vec4 viewPosPrev = gbufferProjectionInverse * vec4(pos, 1.0); + viewPosPrev /= viewPosPrev.w; + viewPosPrev = gbufferModelViewInverse * viewPosPrev; + + vec4 previousPosition = viewPosPrev + vec4(cameraOffset, 0.0); + previousPosition = gbufferPreviousModelView * previousPosition; + previousPosition = gbufferPreviousProjection * previousPosition; + return previousPosition.xy / previousPosition.w * 0.5 + 0.5; + } + + vec3 FHalfReprojection(vec3 pos) { + pos = pos * 2.0 - 1.0; + + vec4 viewPosPrev = gbufferProjectionInverse * vec4(pos, 1.0); + viewPosPrev /= viewPosPrev.w; + viewPosPrev = gbufferModelViewInverse * viewPosPrev; + + return viewPosPrev.xyz; + } + + vec2 SHalfReprojection(vec3 playerPos, vec3 cameraOffset) { + vec4 proPos = vec4(playerPos + cameraOffset, 1.0); + vec4 previousPosition = gbufferPreviousModelView * proPos; + previousPosition = gbufferPreviousProjection * previousPosition; + return previousPosition.xy / previousPosition.w * 0.5 + 0.5; + } +#endif + +//Includes// +#include "/lib/util/spaceConversion.glsl" +#include "/lib/util/dither.glsl" +#include "/lib/atmospherics/fog/mainFog.glsl" +#include "/lib/colors/skyColors.glsl" + +#if AURORA_STYLE > 0 + #include "/lib/atmospherics/auroraBorealis.glsl" +#endif + +#ifdef NIGHT_NEBULA + #include "/lib/atmospherics/nightNebula.glsl" +#endif + +#ifdef VL_CLOUDS_ACTIVE + #include "/lib/atmospherics/clouds/mainClouds.glsl" +#endif + +#ifdef PBR_REFLECTIONS + #include "/lib/materials/materialMethods/reflections.glsl" +#endif + +#ifdef END + #include "/lib/atmospherics/enderStars.glsl" +#endif + +#ifdef WORLD_OUTLINE + #include "/lib/misc/worldOutline.glsl" +#endif + +#ifdef DARK_OUTLINE + #include "/lib/misc/darkOutline.glsl" +#endif + +#ifdef ATM_COLOR_MULTS + #include "/lib/colors/colorMultipliers.glsl" +#endif +#ifdef MOON_PHASE_INF_ATMOSPHERE + #include "/lib/colors/moonPhaseInfluence.glsl" +#endif + +#ifdef DISTANT_LIGHT_BOKEH + #include "/lib/misc/distantLightBokeh.glsl" +#endif + +//Program// +void main() { + vec3 color = texelFetch(colortex0, texelCoord, 0).rgb; + float z0 = texelFetch(depthtex0, texelCoord, 0).r; + + vec4 screenPos = vec4(texCoord, z0, 1.0); + vec4 viewPos = gbufferProjectionInverse * (screenPos * 2.0 - 1.0); + viewPos /= viewPos.w; + float lViewPos = length(viewPos); + vec3 nViewPos = normalize(viewPos.xyz); + vec3 playerPos = ViewToPlayer(viewPos.xyz); + + float dither = texture2D(noisetex, texCoord * vec2(viewWidth, viewHeight) / 128.0).b; + #if defined TAA || defined TEMPORAL_FILTER + dither = fract(dither + goldenRatio * mod(float(frameCounter), 3600.0)); + #endif + + #ifdef ATM_COLOR_MULTS + atmColorMult = GetAtmColorMult(); + sqrtAtmColorMult = sqrt(atmColorMult); + #endif + + float VdotU = dot(nViewPos, upVec); + float VdotS = dot(nViewPos, sunVec); + float skyFade = 0.0; + vec3 waterRefColor = vec3(0.0); + vec3 auroraBorealis = vec3(0.0); + vec3 nightNebula = vec3(0.0); + + #ifdef TEMPORAL_FILTER + vec4 refToWrite = vec4(0.0); + #endif + + if (z0 < 1.0) { + #ifdef DISTANT_LIGHT_BOKEH + int dlbo = 1; + vec3 dlbColor = color; + dlbColor += texelFetch(colortex0, texelCoord + ivec2( 0, dlbo), 0).rgb; + dlbColor += texelFetch(colortex0, texelCoord + ivec2( 0,-dlbo), 0).rgb; + dlbColor += texelFetch(colortex0, texelCoord + ivec2( dlbo, 0), 0).rgb; + dlbColor += texelFetch(colortex0, texelCoord + ivec2(-dlbo, 0), 0).rgb; + dlbColor = max(color, dlbColor * 0.2); + float dlbMix = GetDistantLightBokehMix(lViewPos); + color = mix(color, dlbColor, dlbMix); + #endif + + #if SSAO_QUALI > 0 || defined WORLD_OUTLINE || defined TEMPORAL_FILTER + float linearZ0 = GetLinearDepth(z0); + #endif + + #if SSAO_QUALI > 0 + float ssao = DoAmbientOcclusion(z0, linearZ0, dither); + #else + float ssao = 1.0; + #endif + + vec3 texture6 = texelFetch(colortex6, texelCoord, 0).rgb; + bool entityOrHand = z0 < 0.56; + int materialMaskInt = int(texture6.g * 255.1); + float intenseFresnel = 0.0; + float smoothnessD = texture6.r; + vec3 reflectColor = vec3(1.0); + + if (materialMaskInt <= 240) { + #ifdef IPBR + #include "/lib/materials/materialHandling/deferredMaterials.glsl" + #elif defined CUSTOM_PBR + #if RP_MODE == 2 // seuspbr + float metalness = materialMaskInt / 240.0; + + intenseFresnel = metalness; + #elif RP_MODE == 3 // labPBR + float metalness = float(materialMaskInt >= 230); + + intenseFresnel = materialMaskInt / 240.0; + #endif + reflectColor = mix(reflectColor, color.rgb / max(color.r + 0.00001, max(color.g, color.b)), metalness); + #endif + } else { + if (materialMaskInt == 254) { // No SSAO, No TAA + ssao = 1.0; + entityOrHand = true; + } + } + + color.rgb *= ssao; + + #ifdef PBR_REFLECTIONS + float skyLightFactor = texture6.b; + vec3 texture5 = texelFetch(colortex5, texelCoord, 0).rgb; + vec3 normalM = mat3(gbufferModelView) * texture5; + + float fresnel = clamp(1.0 + dot(normalM, nViewPos), 0.0, 1.0); + + float fresnelFactor = (1.0 - smoothnessD) * 0.7; + float fresnelM = max(fresnel - fresnelFactor, 0.0) / (1.0 - fresnelFactor); + #ifdef IPBR + fresnelM = mix(pow2(fresnelM), fresnelM * 0.75 + 0.25, intenseFresnel); + #else + fresnelM = mix(pow2(fresnelM), fresnelM * 0.5 + 0.5, intenseFresnel); + #endif + fresnelM = fresnelM * sqrt1(smoothnessD) - dither * 0.001; + + if (fresnelM > 0.0) { + #ifdef TAA + float noiseMult = 0.3; + #else + float noiseMult = 0.1; + #endif + #ifdef TEMPORAL_FILTER + float blendFactor = 1.0; + float writeFactor = 1.0; + #endif + #if defined CUSTOM_PBR || defined IPBR && defined IS_IRIS + if (entityOrHand) { + noiseMult *= 0.1; + #ifdef TEMPORAL_FILTER + blendFactor = 0.0; + writeFactor = 0.0; + #endif + } + #endif + noiseMult *= pow2(1.0 - smoothnessD); + + vec2 roughCoord = gl_FragCoord.xy / 128.0; + vec3 roughNoise = vec3( + texture2D(noisetex, roughCoord).r, + texture2D(noisetex, roughCoord + 0.09375).r, + texture2D(noisetex, roughCoord + 0.1875).r + ); + roughNoise = fract(roughNoise + vec3(dither, dither * goldenRatio, dither * pow2(goldenRatio))); + roughNoise = noiseMult * (roughNoise - vec3(0.5)); + + normalM += roughNoise; + + vec4 reflection = GetReflection(normalM, viewPos.xyz, nViewPos, playerPos, lViewPos, z0, + depthtex0, dither, skyLightFactor, fresnel, + smoothnessD, vec3(0.0), vec3(0.0), vec3(0.0), 0.0); + + vec3 colorAdd = reflection.rgb * reflectColor; + //float colorMultInv = (0.75 - intenseFresnel * 0.5) * max(reflection.a, skyLightFactor); + //float colorMultInv = max(reflection.a, skyLightFactor); + float colorMultInv = 1.0; + + vec3 colorP = color; + + #ifdef TEMPORAL_FILTER + vec3 cameraOffset = cameraPosition - previousCameraPosition; + vec2 prvCoord = SHalfReprojection(playerPos, cameraOffset); + #if defined IPBR && !defined GENERATED_NORMALS + vec2 prvRefCoord = Reprojection(vec3(texCoord, max(refPos.z, z0)), cameraOffset); + vec4 oldRef = texture2D(colortex7, prvRefCoord); + #else + vec2 prvRefCoord = Reprojection(vec3(texCoord, z0), cameraOffset); + vec2 prvRefCoord2 = Reprojection(vec3(texCoord, max(refPos.z, z0)), cameraOffset); + vec4 oldRef1 = texture2D(colortex7, prvRefCoord); + vec4 oldRef2 = texture2D(colortex7, prvRefCoord2); + vec3 dif1 = colorAdd - oldRef1.rgb; + vec3 dif2 = colorAdd - oldRef2.rgb; + float dotDif1 = dot(dif1, dif1); + float dotDif2 = dot(dif2, dif2); + + float oldRefMixer = clamp01((dotDif1 - dotDif2) * 500.0); + vec4 oldRef = mix(oldRef1, oldRef2, oldRefMixer); + #endif + + vec4 newRef = vec4(colorAdd, colorMultInv); + vec2 oppositePreCoord = texCoord - 2.0 * (prvCoord - texCoord); + + // Reduce blending at speed + blendFactor *= float(prvCoord.x > 0.0 && prvCoord.x < 1.0 && prvCoord.y > 0.0 && prvCoord.y < 1.0); + float velocity = length(cameraOffset) * max(16.0 - lViewPos / gbufferProjection[1][1], 3.0); + blendFactor *= mix(1.0, exp(-velocity) * 0.5 + 0.5, smoothnessD); + + // Reduce blending if depth changed + float linearZDif = abs(GetLinearDepth(texture2D(colortex1, oppositePreCoord).r) - linearZ0) * far; + blendFactor *= max0(2.0 - linearZDif) * 0.5; + //color = mix(vec3(1,1,0), color, max0(2.0 - linearZDif) * 0.5); + + // Reduce blending if normal changed + vec3 texture5P = texture2D(colortex5, oppositePreCoord, 0).rgb; + vec3 texture5Dif = abs(texture5 - texture5P); + if (texture5Dif != clamp(texture5Dif, vec3(-0.004), vec3(0.004))) { + blendFactor = 0.0; + //color.rgb = vec3(1,0,1); + } + + blendFactor = max0(blendFactor); // Prevent first frame NaN + newRef = max(newRef, vec4(0.0)); // Prevent random NaNs from persisting + refToWrite = mix(newRef, oldRef, blendFactor * 0.95); + refToWrite = mix(max(refToWrite, newRef), refToWrite, pow2(pow2(pow2(refToWrite.a)))); + + color.rgb *= 1.0 - refToWrite.a * fresnelM; + color.rgb += refToWrite.rgb * fresnelM; + refToWrite *= writeFactor; + #else + color *= 1.0 - colorMultInv * fresnelM; + color += colorAdd * fresnelM; + #endif + + color = max(colorP, color); // Prevents reflections from making a surface darker + + //if (gl_FragCoord.x > 960) color = vec3(5.25,0,5.25); + } + #endif + + #ifdef WORLD_OUTLINE + #ifndef WORLD_OUTLINE_ON_ENTITIES + if (!entityOrHand) + #endif + DoWorldOutline(color, linearZ0); + #endif + + #ifndef SKY_EFFECT_REFLECTION + waterRefColor = sqrt(color) - 1.0; + #else + waterRefColor = color; + #endif + + DoFog(color, skyFade, lViewPos, playerPos, VdotU, VdotS, dither); + } else { // Sky + #ifdef DISTANT_HORIZONS + float z0DH = texelFetch(dhDepthTex, texelCoord, 0).r; + if (z0DH < 1.0) { // Distant Horizons Chunks + vec4 screenPosDH = vec4(texCoord, z0DH, 1.0); + vec4 viewPosDH = dhProjectionInverse * (screenPosDH * 2.0 - 1.0); + viewPosDH /= viewPosDH.w; + lViewPos = length(viewPosDH.xyz); + playerPos = ViewToPlayer(viewPosDH.xyz); + + #ifndef SKY_EFFECT_REFLECTION + waterRefColor = sqrt(color) - 1.0; + #else + waterRefColor = color; + #endif + + DoFog(color.rgb, skyFade, lViewPos, playerPos, VdotU, VdotS, dither); + } else { // Start of Actual Sky + #endif + + skyFade = 1.0; + + #ifdef OVERWORLD + #if AURORA_STYLE > 0 + auroraBorealis = GetAuroraBorealis(viewPos.xyz, VdotU, dither); + color.rgb += auroraBorealis; + #endif + #ifdef NIGHT_NEBULA + nightNebula += GetNightNebula(viewPos.xyz, VdotU, VdotS); + color.rgb += nightNebula; + #endif + #endif + #ifdef NETHER + color.rgb = netherColor * (1.0 - maxBlindnessDarkness); + + #ifdef ATM_COLOR_MULTS + color.rgb *= atmColorMult; + #endif + #endif + #ifdef END + color.rgb = endSkyColor; + color.rgb += GetEnderStars(viewPos.xyz, VdotU); + color.rgb *= 1.0 - maxBlindnessDarkness; + + #ifdef ATM_COLOR_MULTS + color.rgb *= atmColorMult; + #endif + #endif + + #ifdef DISTANT_HORIZONS + } // End of Actual Sky + #endif + } + + float cloudLinearDepth = 1.0; + vec4 clouds = vec4(0.0); + + #ifdef VL_CLOUDS_ACTIVE + float cloudZCheck = 0.56; + + if (z0 > cloudZCheck) { + clouds = GetClouds(cloudLinearDepth, skyFade, cameraPosition, playerPos, + lViewPos, VdotS, VdotU, dither, auroraBorealis, nightNebula); + + color = mix(color, clouds.rgb, clouds.a); + } + #endif + + #ifdef SKY_EFFECT_REFLECTION + waterRefColor = mix(waterRefColor, clouds.rgb, clouds.a); + waterRefColor = sqrt(waterRefColor) - 1.0; + #endif + + #if defined LIGHTSHAFTS_ACTIVE && (LIGHTSHAFT_BEHAVIOUR == 1 && SHADOW_QUALITY >= 1 || defined END) + if (viewWidth + viewHeight - gl_FragCoord.x - gl_FragCoord.y < 1.5) + cloudLinearDepth = vlFactor; + #endif + + #if defined OVERWORLD && defined ATMOSPHERIC_FOG && (defined SPECIAL_BIOME_WEATHER || RAIN_STYLE == 2) + float altitudeFactorRaw = GetAtmFogAltitudeFactor(playerPos.y + cameraPosition.y); + vec3 atmFogColor = GetAtmFogColor(altitudeFactorRaw, VdotS); + + #if RAIN_STYLE == 2 + float factor = 1.0; + #else + float factor = max(inSnowy, inDry); + #endif + + color = mix(color, atmFogColor, 0.5 * rainFactor * factor * sqrt1(skyFade)); + #endif + + #ifdef DARK_OUTLINE + if (clouds.a < 0.5) DoDarkOutline(color, skyFade, z0, dither); + #endif + + /*DRAWBUFFERS:054*/ + gl_FragData[0] = vec4(color, 1.0); + gl_FragData[1] = vec4(waterRefColor, 1.0 - skyFade); + gl_FragData[2] = vec4(cloudLinearDepth, 0.0, 0.0, 1.0); + #ifdef TEMPORAL_FILTER + /*DRAWBUFFERS:0547*/ + gl_FragData[3] = refToWrite; + #endif +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +noperspective out vec2 texCoord; + +flat out vec3 upVec, sunVec; + +#if defined LIGHTSHAFTS_ACTIVE && (LIGHTSHAFT_BEHAVIOUR == 1 && SHADOW_QUALITY >= 1 || defined END) + flat out float vlFactor; +#endif + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + + upVec = normalize(gbufferModelView[1].xyz); + sunVec = GetSunVector(); + + #if defined LIGHTSHAFTS_ACTIVE && (LIGHTSHAFT_BEHAVIOUR == 1 && SHADOW_QUALITY >= 1 || defined END) + vlFactor = texelFetch(colortex4, ivec2(viewWidth-1, viewHeight-1), 0).r; + + #ifdef END + if (frameCounter % int(0.06666 / frameTimeSmooth + 0.5) == 0) { // Change speed is not too different above 10 fps + vec2 absCamPosXZ = abs(cameraPosition.xz); + float maxCamPosXZ = max(absCamPosXZ.x, absCamPosXZ.y); + + if (gl_Fog.start / far > 0.5 || maxCamPosXZ > 350.0) vlFactor = max(vlFactor - OSIEBCA*2, 0.0); + else vlFactor = min(vlFactor + OSIEBCA*2, 1.0); + } + #endif + #endif +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/dh_terrain.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/dh_terrain.glsl new file mode 100644 index 0000000..97b866b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/dh_terrain.glsl @@ -0,0 +1,188 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +flat in int mat; + +in vec2 lmCoord; + +flat in vec3 upVec, sunVec, northVec, eastVec; +in vec3 normal; +in vec3 playerPos; + +in vec4 glColor; + +//Pipeline Constants// + +//Common Variables// +float NdotU = dot(normal, upVec); +float NdotUmax0 = max(NdotU, 0.0); +float SdotU = dot(sunVec, upVec); +float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; +float sunVisibility2 = sunVisibility * sunVisibility; +float shadowTimeVar1 = abs(sunVisibility - 0.5) * 2.0; +float shadowTimeVar2 = shadowTimeVar1 * shadowTimeVar1; +float shadowTime = shadowTimeVar2 * shadowTimeVar2; + +vec2 lmCoordM = lmCoord; + +mat4 gbufferProjection = dhProjection; +mat4 gbufferProjectionInverse = dhProjectionInverse; + +#ifdef OVERWORLD + vec3 lightVec = sunVec * ((timeAngle < 0.5325 || timeAngle > 0.9675) ? 1.0 : -1.0); +#else + vec3 lightVec = sunVec; +#endif + +//Common Functions// +float Noise3D(vec3 p) { + p.z = fract(p.z) * 128.0; + float iz = floor(p.z); + float fz = fract(p.z); + vec2 a_off = vec2(23.0, 29.0) * (iz) / 128.0; + vec2 b_off = vec2(23.0, 29.0) * (iz + 1.0) / 128.0; + float a = texture2D(noisetex, p.xy + a_off).r; + float b = texture2D(noisetex, p.xy + b_off).r; + return mix(a, b, fz); +} + +//Includes// +#include "/lib/util/spaceConversion.glsl" +#include "/lib/util/dither.glsl" + +#ifdef ATM_COLOR_MULTS + #include "/lib/colors/colorMultipliers.glsl" +#endif + +#ifdef TAA + #include "/lib/antialiasing/jitter.glsl" +#endif + +#define GBUFFERS_TERRAIN + #include "/lib/lighting/mainLighting.glsl" +#undef GBUFFERS_TERRAIN + +#ifdef SNOWY_WORLD + #include "/lib/materials/materialMethods/snowyWorld.glsl" +#endif + +//Program// +void main() { + vec4 color = vec4(glColor.rgb, 1.0); + + vec3 screenPos = vec3(gl_FragCoord.xy / vec2(viewWidth, viewHeight), gl_FragCoord.z); + #ifdef TAA + vec3 viewPos = ScreenToView(vec3(TAAJitter(screenPos.xy, -0.5), screenPos.z)); + #else + vec3 viewPos = ScreenToView(screenPos); + #endif + float lViewPos = length(playerPos); + vec3 nViewPos = normalize(viewPos); + float VdotU = dot(nViewPos, upVec); + float VdotS = dot(nViewPos, sunVec); + + float dither = Bayer64(gl_FragCoord.xy); + #ifdef TAA + dither = fract(dither + goldenRatio * mod(float(frameCounter), 3600.0)); + #endif + + #ifdef ATM_COLOR_MULTS + atmColorMult = GetAtmColorMult(); + #endif + + bool noSmoothLighting = false, noDirectionalShading = false, noVanillaAO = false, centerShadowBias = false; + int subsurfaceMode = 0; + float smoothnessG = 0.0, smoothnessD = 0.0, highlightMult = 1.0, emission = 0.0, snowFactor = 1.0, snowMinNdotU = 0.0; + vec3 normalM = normal, geoNormal = normal, shadowMult = vec3(1.0); + vec3 worldGeoNormal = normalize(ViewToPlayer(geoNormal * 10000.0)); + + if (mat == DH_BLOCK_LEAVES) { + #include "/lib/materials/specificMaterials/terrain/leaves.glsl" + } else if (mat == DH_BLOCK_GRASS) { + smoothnessG = pow2(color.g) * 0.85; + } else if (mat == DH_BLOCK_ILLUMINATED) { + emission = 2.5; + } else if (mat == DH_BLOCK_LAVA) { + emission = 1.5; + } + + #ifdef SNOWY_WORLD + DoSnowyWorld(color, smoothnessG, highlightMult, smoothnessD, emission, + playerPos, lmCoord, snowFactor, snowMinNdotU, NdotU, subsurfaceMode); + #endif + + vec3 playerPosAlt = ViewToPlayer(viewPos); // AMD has problems with vertex playerPos and DH + float lengthCylinder = max(length(playerPosAlt.xz), abs(playerPosAlt.y)); + highlightMult *= 0.5 + 0.5 * pow2(1.0 - smoothstep(far, far * 1.5, lengthCylinder)); + color.a *= smoothstep(far * 0.5, far * 0.7, lengthCylinder); + if (color.a < min(dither, 1.0)) discard; + + vec3 noisePos = floor((playerPos + cameraPosition) * 4.0 + 0.001) / 32.0; + float noiseTexture = Noise3D(noisePos) + 0.5; + float noiseFactor = max0(1.0 - 0.3 * dot(color.rgb, color.rgb)); + color.rgb *= pow(noiseTexture, 0.6 * noiseFactor); + + DoLighting(color, shadowMult, playerPos, viewPos, lViewPos, geoNormal, normalM, 0.5, + worldGeoNormal, lmCoordM, noSmoothLighting, noDirectionalShading, noVanillaAO, + centerShadowBias, subsurfaceMode, smoothnessG, highlightMult, emission); + /* DRAWBUFFERS:0 */ + gl_FragData[0] = color; +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +flat out int mat; + +out vec2 lmCoord; + +flat out vec3 upVec, sunVec, northVec, eastVec; +out vec3 normal; +out vec3 playerPos; + +out vec4 glColor; + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// +#ifdef TAA + #include "/lib/antialiasing/jitter.glsl" +#endif + +//Program// +void main() { + gl_Position = ftransform(); + #ifdef TAA + gl_Position.xy = TAAJitter(gl_Position.xy, gl_Position.w); + #endif + + mat = dhMaterialId; + + lmCoord = GetLightMapCoordinates(); + + normal = normalize(gl_NormalMatrix * gl_Normal); + upVec = normalize(gbufferModelView[1].xyz); + eastVec = normalize(gbufferModelView[0].xyz); + northVec = normalize(gbufferModelView[2].xyz); + sunVec = GetSunVector(); + + playerPos = (gbufferModelViewInverse * gl_ModelViewMatrix * gl_Vertex).xyz; + + glColor = gl_Color; +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/dh_water.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/dh_water.glsl new file mode 100644 index 0000000..a1c675f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/dh_water.glsl @@ -0,0 +1,239 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +flat in int mat; + +in vec2 lmCoord; + +flat in vec3 upVec, sunVec, northVec, eastVec; +in vec3 normal; +in vec3 playerPos; +in vec3 viewVector; + +in vec4 glColor; + +//Pipeline Constants// + +//Common Variables// +float NdotU = dot(normal, upVec); +float NdotUmax0 = max(NdotU, 0.0); +float SdotU = dot(sunVec, upVec); +float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; +float sunVisibility2 = sunVisibility * sunVisibility; +float shadowTimeVar1 = abs(sunVisibility - 0.5) * 2.0; +float shadowTimeVar2 = shadowTimeVar1 * shadowTimeVar1; +float shadowTime = shadowTimeVar2 * shadowTimeVar2; + +vec2 lmCoordM = lmCoord; + +mat4 gbufferProjection = dhProjection; +mat4 gbufferProjectionInverse = dhProjectionInverse; + +#ifdef OVERWORLD + vec3 lightVec = sunVec * ((timeAngle < 0.5325 || timeAngle > 0.9675) ? 1.0 : -1.0); +#else + vec3 lightVec = sunVec; +#endif + +#if WATER_STYLE >= 2 || RAIN_PUDDLES >= 1 && WATER_STYLE == 1 && WATER_MAT_QUALITY >= 2 || defined GENERATED_NORMALS || defined CUSTOM_PBR + mat3 tbnMatrix = mat3( + eastVec.x, northVec.x, normal.x, + eastVec.y, northVec.y, normal.y, + eastVec.z, northVec.z, normal.z + ); +#endif + +//Common Functions// + +//Includes// +#include "/lib/util/dither.glsl" +#include "/lib/util/spaceConversion.glsl" +#include "/lib/lighting/mainLighting.glsl" +#include "/lib/atmospherics/fog/mainFog.glsl" + +#ifdef TAA + #include "/lib/antialiasing/jitter.glsl" +#endif + +#ifdef OVERWORLD + #include "/lib/atmospherics/sky.glsl" +#endif + +#if WATER_REFLECT_QUALITY >= 0 + #if defined SKY_EFFECT_REFLECTION && defined OVERWORLD + #if AURORA_STYLE > 0 + #include "/lib/atmospherics/auroraBorealis.glsl" + #endif + + #ifdef NIGHT_NEBULA + #include "/lib/atmospherics/nightNebula.glsl" + #else + #include "/lib/atmospherics/stars.glsl" + #endif + + #ifdef VL_CLOUDS_ACTIVE + #include "/lib/atmospherics/clouds/mainClouds.glsl" + #endif + #endif + + #include "/lib/materials/materialMethods/reflections.glsl" +#endif + +#ifdef ATM_COLOR_MULTS + #include "/lib/colors/colorMultipliers.glsl" +#endif +#ifdef MOON_PHASE_INF_ATMOSPHERE + #include "/lib/colors/moonPhaseInfluence.glsl" +#endif + +//Program// +void main() { + vec4 colorP = vec4(vec3(0.85), glColor.a); + vec4 color = glColor; + + vec3 screenPos = vec3(gl_FragCoord.xy / vec2(viewWidth, viewHeight), gl_FragCoord.z); + if (texture2D(depthtex1, screenPos.xy).r < 1.0) discard; + float lViewPos = length(playerPos); + + float dither = Bayer64(gl_FragCoord.xy); + #ifdef TAA + dither = fract(dither + goldenRatio * mod(float(frameCounter), 3600.0)); + #endif + + #ifdef ATM_COLOR_MULTS + atmColorMult = GetAtmColorMult(); + sqrtAtmColorMult = sqrt(atmColorMult); + #endif + + #ifdef VL_CLOUDS_ACTIVE + float cloudLinearDepth = texelFetch(gaux1, texelCoord, 0).r; + + if (pow2(cloudLinearDepth + OSIEBCA * dither) * renderDistance < min(lViewPos, renderDistance)) discard; + #endif + + #ifdef TAA + vec3 viewPos = ScreenToView(vec3(TAAJitter(screenPos.xy, -0.5), screenPos.z)); + #else + vec3 viewPos = ScreenToView(screenPos); + #endif + vec3 nViewPos = normalize(viewPos); + float VdotU = dot(nViewPos, upVec); + float VdotS = dot(nViewPos, sunVec); + + bool noSmoothLighting = false, noDirectionalShading = false, noVanillaAO = false, centerShadowBias = false; + int subsurfaceMode = 0; + float smoothnessG = 0.0, highlightMult = 0.0, emission = 0.0, materialMask = 0.0, reflectMult = 0.0; + vec3 normalM = normal, geoNormal = normal, shadowMult = vec3(1.0); + vec3 worldGeoNormal = normalize(ViewToPlayer(geoNormal * 10000.0)); + float fresnel = clamp(1.0 + dot(normalM, nViewPos), 0.0, 1.0); + + if (mat == DH_BLOCK_WATER) { + #include "/lib/materials/specificMaterials/translucents/water.glsl" + } + + float lengthCylinder = max(length(playerPos.xz), abs(playerPos.y) * 2.0); + color.a *= smoothstep(far * 0.5, far * 0.7, lengthCylinder); + + DoLighting(color, shadowMult, playerPos, viewPos, lViewPos, geoNormal, normalM, 0.5, + worldGeoNormal, lmCoordM, noSmoothLighting, noDirectionalShading, noVanillaAO, + centerShadowBias, subsurfaceMode, smoothnessG, highlightMult, emission); + + // Reflections + #if WATER_REFLECT_QUALITY >= 0 + #ifdef LIGHT_COLOR_MULTS + highlightColor *= lightColorMult; + #endif + #ifdef MOON_PHASE_INF_REFLECTION + highlightColor *= pow2(moonPhaseInfluence); + #endif + + float fresnelM = (pow3(fresnel) * 0.85 + 0.15) * reflectMult; + + float skyLightFactor = pow2(max(lmCoordM.y - 0.7, 0.0) * 3.33333); + #if SHADOW_QUALITY > -1 && WATER_REFLECT_QUALITY >= 2 && WATER_MAT_QUALITY >= 2 + skyLightFactor = max(skyLightFactor, min1(dot(shadowMult, shadowMult))); + #endif + + vec4 reflection = GetReflection(normalM, viewPos.xyz, nViewPos, playerPos, lViewPos, -1.0, + depthtex1, dither, skyLightFactor, fresnel, + smoothnessG, geoNormal, color.rgb, shadowMult, highlightMult); + + color.rgb = mix(color.rgb, reflection.rgb, fresnelM); + #endif + //// + + float sky = 0.0; + DoFog(color.rgb, sky, lViewPos, playerPos, VdotU, VdotS, dither); + color.a *= 1.0 - sky; + + /* DRAWBUFFERS:0 */ + gl_FragData[0] = color; +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +flat out int mat; + +out vec2 lmCoord; + +flat out vec3 upVec, sunVec, northVec, eastVec; +out vec3 normal; +out vec3 playerPos; +out vec3 viewVector; + +out vec4 glColor; + +//Attributes// +attribute vec4 at_tangent; + +//Common Variables// + +//Common Functions// + +//Includes// +#ifdef TAA + #include "/lib/antialiasing/jitter.glsl" +#endif + +//Program// +void main() { + gl_Position = ftransform(); + #ifdef TAA + gl_Position.xy = TAAJitter(gl_Position.xy, gl_Position.w); + #endif + + mat = dhMaterialId; + + lmCoord = GetLightMapCoordinates(); + + normal = normalize(gl_NormalMatrix * gl_Normal); + upVec = normalize(gbufferModelView[1].xyz); + eastVec = normalize(gbufferModelView[0].xyz); + northVec = normalize(gbufferModelView[2].xyz); + sunVec = GetSunVector(); + + playerPos = (gbufferModelViewInverse * gl_ModelViewMatrix * gl_Vertex).xyz; + + mat3 tbnMatrix = mat3( + eastVec.x, northVec.x, normal.x, + eastVec.y, northVec.y, normal.y, + eastVec.z, northVec.z, normal.z + ); + + viewVector = tbnMatrix * (gl_ModelViewMatrix * gl_Vertex).xyz; + + glColor = gl_Color; +} + +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/final.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/final.glsl new file mode 100644 index 0000000..1196624 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/final.glsl @@ -0,0 +1,162 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +noperspective in vec2 texCoord; + +//Pipeline Constants// +#include "/lib/pipelineSettings.glsl" + +//Common Variables// +#if defined MC_ANISOTROPIC_FILTERING || COLORED_LIGHTING > 0 + #define ANY_ERROR_MESSAGE +#endif + +#ifdef MC_ANISOTROPIC_FILTERING + #define OPTIFINE_AF_ERROR +#endif + +#if COLORED_LIGHTING > 0 && !defined IS_IRIS + #define OPTIFINE_ACL_ERROR +#endif + +#if COLORED_LIGHTING > 0 && defined MC_OS_MAC + #define APPLE_ACL_ERROR +#endif + +#if COLORED_LIGHTING > 0 + #define COORDINATES_ACL_ERROR + #define SHADOWDISTANCE_ACL_ERROR +#endif + +//Common Functions// +#if IMAGE_SHARPENING > 0 + vec2 viewD = 1.0 / vec2(viewWidth, viewHeight); + + vec2 sharpenOffsets[4] = vec2[4]( + vec2( viewD.x, 0.0), + vec2( 0.0, viewD.x), + vec2(-viewD.x, 0.0), + vec2( 0.0, -viewD.x) + ); + + void SharpenImage(inout vec3 color, vec2 texCoordM) { + #ifdef TAA + float sharpenMult = IMAGE_SHARPENING; + #else + float sharpenMult = IMAGE_SHARPENING * 0.5; + #endif + float mult = 0.0125 * sharpenMult; + color *= 1.0 + 0.05 * sharpenMult; + + for (int i = 0; i < 4; i++) { + color -= texture2D(colortex3, texCoordM + sharpenOffsets[i]).rgb * mult; + } + } +#endif + +//Includes// +#ifdef ANY_ERROR_MESSAGE + #include "/lib/textRendering/textRenderer.glsl" + + void beginTextM(int textSize, vec2 offset) { + float scale = 860; + beginText(ivec2(vec2(scale * viewWidth / viewHeight, scale) * texCoord) / textSize, ivec2(0 + offset.x, scale / textSize - offset.y)); + text.bgCol = vec4(0.0); + } +#endif + +//Program// +void main() { + vec2 texCoordM = texCoord; + + #ifdef UNDERWATER_DISTORTION + if (isEyeInWater == 1) + texCoordM += WATER_REFRACTION_INTENSITY * 0.00035 * sin((texCoord.x + texCoord.y) * 25.0 + frameTimeCounter * 3.0); + #endif + + vec3 color = texture2D(colortex3, texCoordM).rgb; + + #if CHROMA_ABERRATION > 0 + vec2 scale = vec2(1.0, viewHeight / viewWidth); + vec2 aberration = (texCoordM - 0.5) * (2.0 / vec2(viewWidth, viewHeight)) * scale * CHROMA_ABERRATION; + color.rb = vec2(texture2D(colortex3, texCoordM + aberration).r, texture2D(colortex3, texCoordM - aberration).b); + #endif + + #if IMAGE_SHARPENING > 0 + SharpenImage(color, texCoordM); + #endif + + /*ivec2 boxOffsets[8] = ivec2[8]( + ivec2( 1, 0), + ivec2( 0, 1), + ivec2(-1, 0), + ivec2( 0,-1), + ivec2( 1, 1), + ivec2( 1,-1), + ivec2(-1, 1), + ivec2(-1,-1) + ); + + for (int i = 0; i < 8; i++) { + color = max(color, texelFetch(colortex3, texelCoord + boxOffsets[i], 0).rgb); + }*/ + + #ifdef OPTIFINE_AF_ERROR + #include "/lib/textRendering/error_optifine_af.glsl" + #elif defined OPTIFINE_ACL_ERROR + #include "/lib/textRendering/error_optifine_acl.glsl" + #elif defined APPLE_ACL_ERROR + #include "/lib/textRendering/error_apple_acl.glsl" + #else + #ifdef COORDINATES_ACL_ERROR + ivec2 absCameraPositionIntXZ = abs(cameraPositionInt.xz); + if (max(absCameraPositionIntXZ.x, absCameraPositionIntXZ.y) > 8388550) { + #include "/lib/textRendering/error_coordinates_acl.glsl" + } + #endif + #ifdef SHADOWDISTANCE_ACL_ERROR + if (COLORED_LIGHTING_INTERNAL > shadowDistance*2) { + #include "/lib/textRendering/error_shadowdistance_acl.glsl" + } + #endif + #endif + + #ifdef VIGNETTE_R + vec2 texCoordMin = texCoordM.xy - 0.5; + float vignette = 1.0 - dot(texCoordMin, texCoordMin) * (1.0 - GetLuminance(color)); + color *= vignette; + #endif + + /* DRAWBUFFERS:0 */ + gl_FragData[0] = vec4(color, 1.0); +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +noperspective out vec2 texCoord; + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_armor_glint.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_armor_glint.glsl new file mode 100644 index 0000000..e83bfa2 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_armor_glint.glsl @@ -0,0 +1,73 @@ +////////////////////////////////// +// Complementary Base by EminGT // +////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +in vec2 texCoord; + +flat in vec4 glColor; + +//Pipeline Constants// + +//Common Variables// + +//Common Functions// + +//Includes// +#ifdef COLOR_CODED_PROGRAMS + #include "/lib/misc/colorCodedPrograms.glsl" +#endif + +//Program// +void main() { + vec4 color = texture2D(tex, texCoord); + color *= glColor; + + color.rgb *= glColor.a; // Needed for Minecraft's "Glint Strength" apparently + + #ifdef COLOR_CODED_PROGRAMS + ColorCodeProgram(color, -1); + #endif + + /* DRAWBUFFERS:0 */ + gl_FragData[0] = color; +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +out vec2 texCoord; + +flat out vec4 glColor; + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + + glColor = gl_Color; + + #if HAND_SWAYING > 0 + if (gl_ProjectionMatrix[2][2] > -0.5) { + #include "/lib/misc/handSway.glsl" + } + #endif +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_basic.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_basic.glsl new file mode 100644 index 0000000..8f3f8dc --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_basic.glsl @@ -0,0 +1,178 @@ +////////////////////////////////// +// Complementary Base by EminGT // +////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +flat in vec2 lmCoord; + +flat in vec3 upVec, sunVec, northVec, eastVec; +in vec3 normal; + +flat in vec4 glColor; + +//Pipeline Constants// + +//Common Variables// +float NdotU = dot(normal, upVec); +float NdotUmax0 = max(NdotU, 0.0); +float SdotU = dot(sunVec, upVec); +float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; +float sunVisibility2 = sunVisibility * sunVisibility; +float shadowTimeVar1 = abs(sunVisibility - 0.5) * 2.0; +float shadowTimeVar2 = shadowTimeVar1 * shadowTimeVar1; +float shadowTime = shadowTimeVar2 * shadowTimeVar2; + +#ifdef OVERWORLD + vec3 lightVec = sunVec * ((timeAngle < 0.5325 || timeAngle > 0.9675) ? 1.0 : -1.0); +#else + vec3 lightVec = sunVec; +#endif + +//Common Functions// + +//Includes// +#include "/lib/util/spaceConversion.glsl" +#include "/lib/lighting/mainLighting.glsl" + +#ifdef TAA + #include "/lib/antialiasing/jitter.glsl" +#endif + +#ifdef COLOR_CODED_PROGRAMS + #include "/lib/misc/colorCodedPrograms.glsl" +#endif + +//Program// +void main() { + vec4 color = glColor; + + vec3 screenPos = vec3(gl_FragCoord.xy / vec2(viewWidth, viewHeight), gl_FragCoord.z); + #ifdef TAA + vec3 viewPos = ScreenToView(vec3(TAAJitter(screenPos.xy, -0.5), screenPos.z)); + #else + vec3 viewPos = ScreenToView(screenPos); + #endif + float lViewPos = length(viewPos); + vec3 playerPos = ViewToPlayer(viewPos); + + float materialMask = 0.0; + vec3 normalM = normal, geoNormal = normal, shadowMult = vec3(1.0); + vec3 worldGeoNormal = normalize(ViewToPlayer(geoNormal * 10000.0)); + + #ifndef GBUFFERS_LINE + DoLighting(color, shadowMult, playerPos, viewPos, lViewPos, geoNormal, normalM, 0.5, + worldGeoNormal, lmCoord, false, false, false, + false, 0, 0.0, 0.0, 0.0); + #endif + + #if SELECT_OUTLINE != 1 || defined SELECT_OUTLINE_AUTO_HIDE + if (abs(color.a - 0.4) + dot(color.rgb, color.rgb) < 0.01) { + #if SELECT_OUTLINE == 0 + discard; + #elif SELECT_OUTLINE == 2 // Rainbow + float posFactor = playerPos.x + playerPos.y + playerPos.z + cameraPosition.x + cameraPosition.y + cameraPosition.z; + color.rgb = clamp(abs(mod(fract(frameTimeCounter*0.25 + posFactor*0.2) * 6.0 + vec3(0.0,4.0,2.0), 6.0) - 3.0) - 1.0, + 0.0, 1.0) * vec3(3.0, 2.0, 3.0) * SELECT_OUTLINE_I; + #elif SELECT_OUTLINE == 3 // Select Color + color.rgb = vec3(SELECT_OUTLINE_R, SELECT_OUTLINE_G, SELECT_OUTLINE_B) * SELECT_OUTLINE_I; + #elif SELECT_OUTLINE == 4 // Versatile + color.a = 0.1; + materialMask = OSIEBCA * 252.0; // Versatile Selection Outline + #endif + + #ifdef SELECT_OUTLINE_AUTO_HIDE + if (heldItemId == 40008 && ( + heldItemId2 == 40008 || + heldItemId2 == 45060 || + heldItemId2 == 45108 || + heldItemId2 >= 44000 && + heldItemId2 < 45000)) { + // Both hands hold nothing or only a light/totem/shield in off-hand + discard; + } + #endif + } + #endif + + #ifdef COLOR_CODED_PROGRAMS + ColorCodeProgram(color, -1); + #endif + + #if COLORED_LIGHTING_INTERNAL > 0 && defined NETHER + if (gl_FragCoord.x < 0.0) + color = shadow2D(shadowtex0, vec3(0.5)); // To Activate Shadowmap in Nether + #endif + + /* DRAWBUFFERS:06 */ + gl_FragData[0] = color; + gl_FragData[1] = vec4(0.0, materialMask, 0.0, 1.0); +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +flat out vec2 lmCoord; + +flat out vec3 upVec, sunVec, northVec, eastVec; +out vec3 normal; + +flat out vec4 glColor; + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// +#ifdef TAA + #include "/lib/antialiasing/jitter.glsl" +#endif + +//Program// +void main() { + #ifndef GBUFFERS_LINE + gl_Position = ftransform(); + #else + float lineWidth = 2.0; + vec2 screenSize = vec2(viewWidth, viewHeight); + const mat4 VIEW_SCALE = mat4(mat3(1.0 - (1.0 / 256.0))); + vec4 linePosStart = projectionMatrix * VIEW_SCALE * modelViewMatrix * vec4(vaPosition, 1.0); + vec4 linePosEnd = projectionMatrix * VIEW_SCALE * modelViewMatrix * (vec4(vaPosition + vaNormal, 1.0)); + vec3 ndc1 = linePosStart.xyz / linePosStart.w; + vec3 ndc2 = linePosEnd.xyz / linePosEnd.w; + vec2 lineScreenDirection = normalize((ndc2.xy - ndc1.xy) * screenSize); + vec2 lineOffset = vec2(-lineScreenDirection.y, lineScreenDirection.x) * lineWidth / screenSize; + if (lineOffset.x < 0.0) + lineOffset *= -1.0; + if (gl_VertexID % 2 == 0) + gl_Position = vec4((ndc1 + vec3(lineOffset, 0.0)) * linePosStart.w, linePosStart.w); + else + gl_Position = vec4((ndc1 - vec3(lineOffset, 0.0)) * linePosStart.w, linePosStart.w); + #endif + + #ifdef TAA + gl_Position.xy = TAAJitter(gl_Position.xy, gl_Position.w); + #endif + + lmCoord = GetLightMapCoordinates(); + + glColor = gl_Color; + + normal = normalize(gl_NormalMatrix * gl_Normal); + + upVec = normalize(gbufferModelView[1].xyz); + eastVec = normalize(gbufferModelView[0].xyz); + northVec = normalize(gbufferModelView[2].xyz); + sunVec = GetSunVector(); +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_beaconbeam.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_beaconbeam.glsl new file mode 100644 index 0000000..d560048 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_beaconbeam.glsl @@ -0,0 +1,140 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +in vec2 texCoord; + +flat in vec3 upVec, sunVec; + +in vec4 glColor; + +//Pipeline Constants// + +//Common Variables// +float SdotU = dot(sunVec, upVec); +float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; +float sunVisibility2 = sunVisibility * sunVisibility; +float shadowTimeVar1 = abs(sunVisibility - 0.5) * 2.0; +float shadowTimeVar2 = shadowTimeVar1 * shadowTimeVar1; +float shadowTime = shadowTimeVar2 * shadowTimeVar2; + +//Common Functions// + +//Includes// +#include "/lib/util/spaceConversion.glsl" +#include "/lib/util/dither.glsl" +#include "/lib/atmospherics/fog/mainFog.glsl" + +#ifdef TAA + #include "/lib/antialiasing/jitter.glsl" +#endif + +#ifdef COLOR_CODED_PROGRAMS + #include "/lib/misc/colorCodedPrograms.glsl" +#endif + +//Program// +void main() { + vec4 color = texture2D(tex, texCoord); + vec3 colorP = color.rgb; + color *= glColor; + + vec3 screenPos = vec3(gl_FragCoord.xy / vec2(viewWidth, viewHeight), gl_FragCoord.z); + #ifdef TAA + vec3 viewPos = ScreenToView(vec3(TAAJitter(screenPos.xy, -0.5), screenPos.z)); + #else + vec3 viewPos = ScreenToView(screenPos); + #endif + float lViewPos = length(viewPos); + vec3 nViewPos = normalize(viewPos); + vec3 playerPos = ViewToPlayer(viewPos); + float VdotU = dot(nViewPos, upVec); + float VdotS = dot(nViewPos, sunVec); + + float dither = Bayer64(gl_FragCoord.xy); + #ifdef TAA + dither = fract(dither + goldenRatio * mod(float(frameCounter), 3600.0)); + #endif + + #ifdef ATM_COLOR_MULTS + atmColorMult = GetAtmColorMult(); + #endif + + #ifdef IPBR + float emission = dot(colorP, colorP); + + if (0.5 > color.a && color.a > 0.01) { + color.a = 0.101; + emission = pow2(pow2(emission)) * 0.1; + } + + color.rgb *= color.rgb * emission * 1.75; + color.rgb += emission * 0.05; + #else + color.rgb *= color.rgb * 4.0; + #endif + + color.rgb *= 0.5 + 0.5 * exp(-lViewPos * 0.04); + + #ifdef COLOR_CODED_PROGRAMS + ColorCodeProgram(color, -1); + #endif + + // We do border fog here as well because the outer layer of the beam has broken depth in later programs + float sky = 0.0; + if (playerPos.y > 0.0) { + playerPos.y = pow(playerPos.y / renderDistance, 0.15) * renderDistance; + } + DoFog(color.rgb, sky, lViewPos, playerPos, VdotU, VdotS, dither); + color.a *= 1.0 - sky; + + /* DRAWBUFFERS:06 */ + gl_FragData[0] = color; + gl_FragData[1] = vec4(0.0, 0.0, 0.0, 1.0); +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +out vec2 texCoord; + +flat out vec3 upVec, sunVec; + +out vec4 glColor; + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// +#ifdef TAA + #include "/lib/antialiasing/jitter.glsl" +#endif + +//Program// +void main() { + gl_Position = ftransform(); + #ifdef TAA + gl_Position.xy = TAAJitter(gl_Position.xy, gl_Position.w); + #endif + + upVec = normalize(gbufferModelView[1].xyz); + sunVec = GetSunVector(); + + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + + glColor = gl_Color; +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_block.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_block.glsl new file mode 100644 index 0000000..e0653ef --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_block.glsl @@ -0,0 +1,288 @@ +////////////////////////////////// +// Complementary Base by EminGT // +////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +in vec2 texCoord; +in vec2 lmCoord; + +flat in vec3 upVec, sunVec, northVec, eastVec; +in vec3 normal; + +in vec4 glColor; + +#if defined GENERATED_NORMALS || defined COATED_TEXTURES || defined POM + in vec2 signMidCoordPos; + flat in vec2 absMidCoordPos; +#endif + +#if defined GENERATED_NORMALS || defined CUSTOM_PBR + flat in vec3 binormal, tangent; +#endif + +#ifdef POM + in vec3 viewVector; + + in vec4 vTexCoordAM; +#endif + +//Pipeline Constants// + +//Common Variables// +float NdotU = dot(normal, upVec); +float NdotUmax0 = max(NdotU, 0.0); +float SdotU = dot(sunVec, upVec); +float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; +float sunVisibility2 = sunVisibility * sunVisibility; +float shadowTimeVar1 = abs(sunVisibility - 0.5) * 2.0; +float shadowTimeVar2 = shadowTimeVar1 * shadowTimeVar1; +float shadowTime = shadowTimeVar2 * shadowTimeVar2; + +#ifdef OVERWORLD + vec3 lightVec = sunVec * ((timeAngle < 0.5325 || timeAngle > 0.9675) ? 1.0 : -1.0); +#else + vec3 lightVec = sunVec; +#endif + +#if defined GENERATED_NORMALS || defined CUSTOM_PBR + mat3 tbnMatrix = mat3( + tangent.x, binormal.x, normal.x, + tangent.y, binormal.y, normal.y, + tangent.z, binormal.z, normal.z + ); +#endif + +//Common Functions// + +//Includes// +#include "/lib/util/spaceConversion.glsl" +#include "/lib/util/dither.glsl" +#include "/lib/lighting/mainLighting.glsl" + +#ifdef TAA + #include "/lib/antialiasing/jitter.glsl" +#endif + +#if defined GENERATED_NORMALS || defined COATED_TEXTURES + #include "/lib/util/miplevel.glsl" +#endif + +#ifdef GENERATED_NORMALS + #include "/lib/materials/materialMethods/generatedNormals.glsl" +#endif + +#ifdef COATED_TEXTURES + #include "/lib/materials/materialMethods/coatedTextures.glsl" +#endif + +#if IPBR_EMISSIVE_MODE != 1 + #include "/lib/materials/materialMethods/customEmission.glsl" +#endif + +#ifdef CUSTOM_PBR + #include "/lib/materials/materialHandling/customMaterials.glsl" +#endif + +#ifdef COLOR_CODED_PROGRAMS + #include "/lib/misc/colorCodedPrograms.glsl" +#endif + +#ifdef PORTAL_EDGE_EFFECT + #include "/lib/misc/voxelization.glsl" +#endif + +//Program// +void main() { + vec4 color = texture2D(tex, texCoord); + #ifdef GENERATED_NORMALS + vec3 colorP = color.rgb; + #endif + color *= glColor; + + vec3 screenPos = vec3(gl_FragCoord.xy / vec2(viewWidth, viewHeight), gl_FragCoord.z); + #ifdef TAA + vec3 viewPos = ScreenToView(vec3(TAAJitter(screenPos.xy, -0.5), screenPos.z)); + #else + vec3 viewPos = ScreenToView(screenPos); + #endif + float lViewPos = length(viewPos); + vec3 playerPos = ViewToPlayer(viewPos); + + bool noSmoothLighting = false, noDirectionalShading = false; + float smoothnessD = 0.0, skyLightFactor = 0.0, materialMask = 0.0; + float smoothnessG = 0.0, highlightMult = 1.0, emission = 0.0, noiseFactor = 1.0; + vec2 lmCoordM = lmCoord; + vec3 normalM = normal, geoNormal = normal, shadowMult = vec3(1.0); + vec3 worldGeoNormal = normalize(ViewToPlayer(geoNormal * 10000.0)); + + #ifdef IPBR + #include "/lib/materials/materialHandling/blockEntityMaterials.glsl" + + #if IPBR_EMISSIVE_MODE != 1 + emission = GetCustomEmissionForIPBR(color, emission); + #endif + #else + #ifdef CUSTOM_PBR + GetCustomMaterials(color, normalM, lmCoordM, NdotU, shadowMult, smoothnessG, smoothnessD, highlightMult, emission, materialMask, viewPos, lViewPos); + #endif + + if (blockEntityId == 5025) { // End Portal, End Gateway + #ifdef SPECIAL_PORTAL_EFFECTS + #include "/lib/materials/specificMaterials/others/endPortalEffect.glsl" + #endif + } else if (blockEntityId == 5004) { // Signs + noSmoothLighting = true; + if (glColor.r + glColor.g + glColor.b <= 2.99 || lmCoord.x > 0.999) { // Sign Text + #include "/lib/materials/specificMaterials/others/signText.glsl" + } + } else { + noSmoothLighting = true; + } + #endif + + #ifdef GENERATED_NORMALS + GenerateNormals(normalM, colorP); + #endif + + #ifdef COATED_TEXTURES + CoatTextures(color.rgb, noiseFactor, playerPos, false); + #endif + + DoLighting(color, shadowMult, playerPos, viewPos, lViewPos, geoNormal, normalM, 0.5, + worldGeoNormal, lmCoordM, noSmoothLighting, noDirectionalShading, false, + false, 0, smoothnessG, highlightMult, emission); + + #ifdef PBR_REFLECTIONS + #ifdef OVERWORLD + skyLightFactor = pow2(max(lmCoord.y - 0.7, 0.0) * 3.33333); + #else + skyLightFactor = dot(shadowMult, shadowMult) / 3.0; + #endif + #endif + + #ifdef COLOR_CODED_PROGRAMS + ColorCodeProgram(color, blockEntityId); + #endif + + /* DRAWBUFFERS:06 */ + gl_FragData[0] = color; + gl_FragData[1] = vec4(smoothnessD, materialMask, skyLightFactor, 1.0); + + #if BLOCK_REFLECT_QUALITY >= 2 && RP_MODE != 0 + /* DRAWBUFFERS:065 */ + gl_FragData[2] = vec4(mat3(gbufferModelViewInverse) * normalM, 1.0); + #endif +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +out vec2 texCoord; +out vec2 lmCoord; + +flat out vec3 upVec, sunVec, northVec, eastVec; +out vec3 normal; + +out vec4 glColor; + +#if defined GENERATED_NORMALS || defined COATED_TEXTURES || defined POM + out vec2 signMidCoordPos; + flat out vec2 absMidCoordPos; +#endif + +#if defined GENERATED_NORMALS || defined CUSTOM_PBR + flat out vec3 binormal, tangent; +#endif + +#ifdef POM + out vec3 viewVector; + + out vec4 vTexCoordAM; +#endif + +//Attributes// +#if defined GENERATED_NORMALS || defined COATED_TEXTURES || defined POM + attribute vec4 mc_midTexCoord; +#endif + +#if defined GENERATED_NORMALS || defined CUSTOM_PBR + attribute vec4 at_tangent; +#endif + +//Common Variables// + +//Common Functions// + +//Includes// +#ifdef TAA + #include "/lib/antialiasing/jitter.glsl" +#endif + +//Program// +void main() { + gl_Position = ftransform(); + #ifdef TAA + gl_Position.xy = TAAJitter(gl_Position.xy, gl_Position.w); + #endif + + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + + lmCoord = GetLightMapCoordinates(); + + glColor = gl_Color; + + normal = normalize(gl_NormalMatrix * gl_Normal); + + upVec = normalize(gbufferModelView[1].xyz); + eastVec = normalize(gbufferModelView[0].xyz); + northVec = normalize(gbufferModelView[2].xyz); + sunVec = GetSunVector(); + + if (normal != normal) normal = -upVec; // Mod Fix: Fixes Better Nether Fireflies + + #ifdef IPBR + /*if (blockEntityId == 5024) { // End Portal, End Gateway + gl_Position.z -= 0.002; + }*/ + #endif + + #if defined GENERATED_NORMALS || defined COATED_TEXTURES || defined POM + if (blockEntityId == 5008) { // Chest + float fractWorldPosY = fract((gbufferModelViewInverse * gl_ModelViewMatrix * gl_Vertex).y + cameraPosition.y); + if (fractWorldPosY > 0.56 && 0.57 > fractWorldPosY) gl_Position.z -= 0.0001; + } + + vec2 midCoord = (gl_TextureMatrix[0] * mc_midTexCoord).st; + vec2 texMinMidCoord = texCoord - midCoord; + signMidCoordPos = sign(texMinMidCoord); + absMidCoordPos = abs(texMinMidCoord); + #endif + + #if defined GENERATED_NORMALS || defined CUSTOM_PBR + binormal = normalize(gl_NormalMatrix * cross(at_tangent.xyz, gl_Normal.xyz) * at_tangent.w); + tangent = normalize(gl_NormalMatrix * at_tangent.xyz); + #endif + + #ifdef POM + mat3 tbnMatrix = mat3( + tangent.x, binormal.x, normal.x, + tangent.y, binormal.y, normal.y, + tangent.z, binormal.z, normal.z + ); + + viewVector = tbnMatrix * (gl_ModelViewMatrix * gl_Vertex).xyz; + + vTexCoordAM.zw = abs(texMinMidCoord) * 2; + vTexCoordAM.xy = min(texCoord, midCoord - texMinMidCoord); + #endif +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_clouds.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_clouds.glsl new file mode 100644 index 0000000..6f0f739 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_clouds.glsl @@ -0,0 +1,150 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +#if CLOUD_STYLE_DEFINE == 50 +// We use CLOUD_STYLE_DEFINE instead of CLOUD_STYLE in this file because Optifine can't use generated defines for pipeline stuff + in vec2 texCoord; + + flat in vec3 upVec, sunVec; + + in vec4 glColor; +#endif + +//Pipeline Constants// + +//Common Variables// +#if CLOUD_STYLE_DEFINE == 50 + float SdotU = dot(sunVec, upVec); + float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; + float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; + float sunVisibility2 = sunVisibility * sunVisibility; +#endif + +//Common Functions// + +//Includes// +#if CLOUD_STYLE_DEFINE == 50 + #include "/lib/colors/skyColors.glsl" + #include "/lib/util/spaceConversion.glsl" + + #if defined TAA && defined BORDER_FOG + #include "/lib/antialiasing/jitter.glsl" + #endif + + #ifdef ATM_COLOR_MULTS + #include "/lib/colors/colorMultipliers.glsl" + #endif + #ifdef MOON_PHASE_INF_ATMOSPHERE + #include "/lib/colors/moonPhaseInfluence.glsl" + #endif + + #ifdef COLOR_CODED_PROGRAMS + #include "/lib/misc/colorCodedPrograms.glsl" + #endif +#endif + +//Program// +void main() { + #if CLOUD_STYLE_DEFINE != 50 + discard; + #else + vec4 color = texture2D(tex, texCoord) * glColor; + + vec4 translucentMult = vec4(mix(vec3(0.666), color.rgb * (1.0 - pow2(pow2(color.a))), color.a), 1.0); + + #ifdef OVERWORLD + vec3 cloudLight = mix(vec3(0.8, 1.6, 1.5) * sqrt1(nightFactor), mix(dayDownSkyColor, dayMiddleSkyColor, 0.1), sunFactor); + color.rgb *= sqrt(cloudLight) * (1.2 + 0.4 * noonFactor * invRainFactor); + + #if CLOUD_R != 100 || CLOUD_G != 100 || CLOUD_B != 100 + color.rgb *= vec3(CLOUD_R, CLOUD_G, CLOUD_B) * 0.01; + #endif + #ifdef ATM_COLOR_MULTS + color.rgb *= sqrt(GetAtmColorMult()); // C72380KD - Reduced atmColorMult impact on things + #endif + #ifdef MOON_PHASE_INF_ATMOSPHERE + color.rgb *= moonPhaseInfluence; + #endif + #endif + + #if defined BORDER_FOG && !defined DREAM_TWEAKED_BORDERFOG + vec3 screenPos = vec3(gl_FragCoord.xy / vec2(viewWidth, viewHeight), gl_FragCoord.z); + #ifdef TAA + vec3 viewPos = ScreenToView(vec3(TAAJitter(screenPos.xy, -0.5), screenPos.z)); + #else + vec3 viewPos = ScreenToView(screenPos); + #endif + vec3 playerPos = ViewToPlayer(viewPos); + + float xzMaxDistance = max(abs(playerPos.x), abs(playerPos.z)); + float cloudDistance = 375.0; + cloudDistance = clamp((cloudDistance - xzMaxDistance) / cloudDistance, 0.0, 1.0); + color.a *= clamp01(cloudDistance * 3.0); + #endif + + #ifdef COLOR_CODED_PROGRAMS + ColorCodeProgram(color, -1); + #endif + + /* DRAWBUFFERS:063 */ + gl_FragData[0] = color; + gl_FragData[1] = vec4(0.0, 0.0, 0.0, 1.0); + gl_FragData[2] = vec4(1.0 - translucentMult.rgb, translucentMult.a); + #endif +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +#if CLOUD_STYLE_DEFINE == 50 + out vec2 texCoord; + + flat out vec3 upVec, sunVec; + + out vec4 glColor; +#endif + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// +#if CLOUD_STYLE_DEFINE == 50 + #ifdef TAA + #include "/lib/antialiasing/jitter.glsl" + #endif +#endif + +//Program// +void main() { + #if CLOUD_STYLE_DEFINE != 50 + gl_Position = vec4(-1.0); + #else + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + + glColor = gl_Color; + + upVec = normalize(gbufferModelView[1].xyz); + sunVec = GetSunVector(); + + vec4 position = gbufferModelViewInverse * gl_ModelViewMatrix * gl_Vertex; + gl_Position = gl_ProjectionMatrix * gbufferModelView * position; + + #ifdef TAA + gl_Position.xy = TAAJitter(gl_Position.xy, gl_Position.w); + #endif + #endif +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_damagedblock.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_damagedblock.glsl new file mode 100644 index 0000000..af896b8 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_damagedblock.glsl @@ -0,0 +1,63 @@ +////////////////////////////////// +// Complementary Base by EminGT // +////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +in vec2 texCoord; + +flat in vec4 glColor; + +//Pipeline Constants// + +//Common Variables// + +//Common Functions// + +//Includes// +#ifdef COLOR_CODED_PROGRAMS + #include "/lib/misc/colorCodedPrograms.glsl" +#endif + +//Program// +void main() { + vec4 color = texture2D(tex, texCoord); + color.rgb *= glColor.rgb; + + #ifdef COLOR_CODED_PROGRAMS + ColorCodeProgram(color, -1); + #endif + + /* DRAWBUFFERS:0 */ + gl_FragData[0] = color; +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +out vec2 texCoord; + +flat out vec4 glColor; + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + glColor = gl_Color; +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_entities.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_entities.glsl new file mode 100644 index 0000000..2519efd --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_entities.glsl @@ -0,0 +1,309 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +in vec2 texCoord; +in vec2 lmCoord; + +flat in vec3 upVec, sunVec, northVec, eastVec; +in vec3 normal; + +in vec4 glColor; + +#if defined GENERATED_NORMALS || defined COATED_TEXTURES || defined POM || defined IPBR && defined IS_IRIS + in vec2 signMidCoordPos; + flat in vec2 absMidCoordPos; + flat in vec2 midCoord; +#endif + +#if defined GENERATED_NORMALS || defined CUSTOM_PBR + flat in vec3 binormal, tangent; +#endif + +#ifdef POM + in vec3 viewVector; + + in vec4 vTexCoordAM; +#endif + +//Pipeline Constants// + +//Common Variables// +float NdotU = dot(normal, upVec); +float NdotUmax0 = max(NdotU, 0.0); +float SdotU = dot(sunVec, upVec); +float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; +float sunVisibility2 = sunVisibility * sunVisibility; +float shadowTimeVar1 = abs(sunVisibility - 0.5) * 2.0; +float shadowTimeVar2 = shadowTimeVar1 * shadowTimeVar1; +float shadowTime = shadowTimeVar2 * shadowTimeVar2; + +#ifdef OVERWORLD + vec3 lightVec = sunVec * ((timeAngle < 0.5325 || timeAngle > 0.9675) ? 1.0 : -1.0); +#else + vec3 lightVec = sunVec; +#endif + +#if defined GENERATED_NORMALS || defined CUSTOM_PBR + mat3 tbnMatrix = mat3( + tangent.x, binormal.x, normal.x, + tangent.y, binormal.y, normal.y, + tangent.z, binormal.z, normal.z + ); +#endif + +//Common Functions// + +//Includes// +#include "/lib/util/dither.glsl" +#include "/lib/util/spaceConversion.glsl" +#include "/lib/lighting/mainLighting.glsl" + +#if defined GENERATED_NORMALS || defined COATED_TEXTURES + #include "/lib/util/miplevel.glsl" +#endif + +#ifdef GENERATED_NORMALS + #include "/lib/materials/materialMethods/generatedNormals.glsl" +#endif + +#ifdef COATED_TEXTURES + #include "/lib/materials/materialMethods/coatedTextures.glsl" +#endif + +#if IPBR_EMISSIVE_MODE != 1 + #include "/lib/materials/materialMethods/customEmission.glsl" +#endif + +#ifdef CUSTOM_PBR + #include "/lib/materials/materialHandling/customMaterials.glsl" +#endif + +#ifdef COLOR_CODED_PROGRAMS + #include "/lib/misc/colorCodedPrograms.glsl" +#endif + +//Program// +void main() { + vec4 color = texture2D(tex, texCoord); + #ifdef GENERATED_NORMALS + vec3 colorP = color.rgb; + #endif + color *= glColor; + + float smoothnessD = 0.0, skyLightFactor = 0.0, materialMask = OSIEBCA * 254.0; // No SSAO, No TAA + vec3 normalM = normal; + + float alphaCheck = color.a; + #ifdef DO_PIXELATION_EFFECTS + // Fixes artifacts on fragment edges with non-nvidia gpus + alphaCheck = max(fwidth(color.a), alphaCheck); + #endif + + if (alphaCheck > 0.001) { + vec3 screenPos = vec3(gl_FragCoord.xy / vec2(viewWidth, viewHeight), gl_FragCoord.z); + vec3 viewPos = ScreenToView(screenPos); + vec3 nViewPos = normalize(viewPos); + vec3 playerPos = ViewToPlayer(viewPos); + float lViewPos = length(viewPos); + + bool noSmoothLighting = atlasSize.x < 600.0; // To fix fire looking too dim + bool noGeneratedNormals = false, noDirectionalShading = false, noVanillaAO = false; + float smoothnessG = 0.0, highlightMult = 0.0, emission = 0.0, noiseFactor = 0.75; + vec2 lmCoordM = lmCoord; + vec3 shadowMult = vec3(1.0); + #ifdef IPBR + #include "/lib/materials/materialHandling/entityMaterials.glsl" + + #ifdef IS_IRIS + vec3 maRecolor = vec3(0.0); + #include "/lib/materials/materialHandling/irisMaterials.glsl" + #endif + + if (materialMask != OSIEBCA * 254.0) materialMask += OSIEBCA * 100.0; // Entity Reflection Handling + + #ifdef GENERATED_NORMALS + if (!noGeneratedNormals) GenerateNormals(normalM, colorP); + #endif + + #ifdef COATED_TEXTURES + CoatTextures(color.rgb, noiseFactor, playerPos, false); + #endif + + #if IPBR_EMISSIVE_MODE != 1 + emission = GetCustomEmissionForIPBR(color, emission); + #endif + #else + #ifdef CUSTOM_PBR + GetCustomMaterials(color, normalM, lmCoordM, NdotU, shadowMult, smoothnessG, smoothnessD, highlightMult, emission, materialMask, viewPos, lViewPos); + #endif + + if (entityId == 50004) { // Lightning Bolt + #include "/lib/materials/specificMaterials/entities/lightningBolt.glsl" + } else if (entityId == 50008) { // Item Frame, Glow Item Frame + noSmoothLighting = true; + } else if (entityId == 50076) { // Boats + playerPos.y += 0.38; // consistentBOAT2176 + } + #endif + + color.rgb = mix(color.rgb, entityColor.rgb, entityColor.a); + + normalM = gl_FrontFacing ? normalM : -normalM; // Inverted Normal Workaround + vec3 geoNormal = normalM; + vec3 worldGeoNormal = normalize(ViewToPlayer(geoNormal * 10000.0)); + + DoLighting(color, shadowMult, playerPos, viewPos, lViewPos, geoNormal, normalM, 0.5, + worldGeoNormal, lmCoordM, noSmoothLighting, noDirectionalShading, noVanillaAO, + true, 0, smoothnessG, highlightMult, emission); + + #if defined IPBR && defined IS_IRIS + color.rgb += maRecolor; + #endif + + #ifdef PBR_REFLECTIONS + #ifdef OVERWORLD + skyLightFactor = pow2(max(lmCoord.y - 0.7, 0.0) * 3.33333); + #else + skyLightFactor = dot(shadowMult, shadowMult) / 3.0; + #endif + #endif + } + + #ifdef COLOR_CODED_PROGRAMS + ColorCodeProgram(color, -1); + #endif + + /* DRAWBUFFERS:06 */ + gl_FragData[0] = color; + gl_FragData[1] = vec4(smoothnessD, materialMask, skyLightFactor, 1.0); + + #if BLOCK_REFLECT_QUALITY >= 2 && RP_MODE >= 1 + /* DRAWBUFFERS:065 */ + gl_FragData[2] = vec4(mat3(gbufferModelViewInverse) * normalM, 1.0); + #endif +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +out vec2 texCoord; +out vec2 lmCoord; + +flat out vec3 upVec, sunVec, northVec, eastVec; +out vec3 normal; + +out vec4 glColor; + +#if defined GENERATED_NORMALS || defined COATED_TEXTURES || defined POM || defined IPBR && defined IS_IRIS + out vec2 signMidCoordPos; + flat out vec2 absMidCoordPos; + flat out vec2 midCoord; +#endif + +#if defined GENERATED_NORMALS || defined CUSTOM_PBR + flat out vec3 binormal, tangent; +#endif + +#ifdef POM + out vec3 viewVector; + + out vec4 vTexCoordAM; +#endif + +//Attributes// +#if defined GENERATED_NORMALS || defined COATED_TEXTURES || defined POM || defined IPBR && defined IS_IRIS + attribute vec4 mc_midTexCoord; +#endif + +#if defined GENERATED_NORMALS || defined CUSTOM_PBR + attribute vec4 at_tangent; +#endif + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + lmCoord = GetLightMapCoordinates(); + + lmCoord.x = min(lmCoord.x, 0.9); + //Fixes some servers/mods making entities insanely bright, while also slightly reducing the max blocklight on a normal entity + + glColor = gl_Color; + + normal = normalize(gl_NormalMatrix * gl_Normal); + + upVec = normalize(gbufferModelView[1].xyz); + eastVec = normalize(gbufferModelView[0].xyz); + northVec = normalize(gbufferModelView[2].xyz); + sunVec = GetSunVector(); + + #if defined GENERATED_NORMALS || defined COATED_TEXTURES || defined POM || defined IPBR && defined IS_IRIS + midCoord = (gl_TextureMatrix[0] * mc_midTexCoord).st; + vec2 texMinMidCoord = texCoord - midCoord; + signMidCoordPos = sign(texMinMidCoord); + absMidCoordPos = abs(texMinMidCoord); + #endif + + #if defined GENERATED_NORMALS || defined CUSTOM_PBR + binormal = normalize(gl_NormalMatrix * cross(at_tangent.xyz, gl_Normal.xyz) * at_tangent.w); + tangent = normalize(gl_NormalMatrix * at_tangent.xyz); + #endif + + #ifdef POM + mat3 tbnMatrix = mat3( + tangent.x, binormal.x, normal.x, + tangent.y, binormal.y, normal.y, + tangent.z, binormal.z, normal.z + ); + + viewVector = tbnMatrix * (gl_ModelViewMatrix * gl_Vertex).xyz; + + vTexCoordAM.zw = abs(texMinMidCoord) * 2; + vTexCoordAM.xy = min(texCoord, midCoord - texMinMidCoord); + #endif + + #ifdef GBUFFERS_ENTITIES_GLOWING + if (glColor.a > 0.99) gl_Position.z *= 0.01; + #endif + + #ifdef FLICKERING_FIX + if (entityId == 50008 || entityId == 50012) { // Item Frame, Glow Item Frame + if (dot(normal, upVec) > 0.99) { + vec4 position = gbufferModelViewInverse * gl_ModelViewMatrix * gl_Vertex; + vec3 comPos = fract(position.xyz + cameraPosition); + comPos = abs(comPos - vec3(0.5)); + if ((comPos.y > 0.437 && comPos.y < 0.438) || (comPos.y > 0.468 && comPos.y < 0.469)) { + gl_Position.z += 0.0001; + } + } + if (gl_Normal.y == 1.0) { // Maps + normal = upVec * 2.0; + } + } else if (entityId == 50084) { // Slime, Chicken + gl_Position.z -= 0.00015; + } + + #if SHADOW_QUALITY == -1 + if (glColor.a < 0.5) gl_Position.z += 0.0005; + #endif + #endif +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_hand.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_hand.glsl new file mode 100644 index 0000000..3ba37ca --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_hand.glsl @@ -0,0 +1,270 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +in vec2 texCoord; +in vec2 lmCoord; + +flat in vec3 upVec, sunVec, northVec, eastVec; +in vec3 normal; + +in vec4 glColor; + +#if defined GENERATED_NORMALS || defined COATED_TEXTURES || defined POM || defined IPBR && defined IS_IRIS + in vec2 signMidCoordPos; + flat in vec2 absMidCoordPos; + flat in vec2 midCoord; +#endif + +#if defined GENERATED_NORMALS || defined CUSTOM_PBR + flat in vec3 binormal, tangent; +#endif + +#ifdef POM + in vec3 viewVector; + + in vec4 vTexCoordAM; +#endif + +//Pipeline Constants// + +//Common Variables// +float NdotU = dot(normal, vec3(0.0, 1.0, 0.0)); // NdotU is different here to improve held map visibility +float NdotUmax0 = max(NdotU, 0.0); +float SdotU = dot(sunVec, upVec); +float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; +float sunVisibility2 = sunVisibility * sunVisibility; +float shadowTimeVar1 = abs(sunVisibility - 0.5) * 2.0; +float shadowTimeVar2 = shadowTimeVar1 * shadowTimeVar1; +float shadowTime = shadowTimeVar2 * shadowTimeVar2; + +#ifdef OVERWORLD + vec3 lightVec = sunVec * ((timeAngle < 0.5325 || timeAngle > 0.9675) ? 1.0 : -1.0); +#else + vec3 lightVec = sunVec; +#endif + +#if defined GENERATED_NORMALS || defined CUSTOM_PBR + mat3 tbnMatrix = mat3( + tangent.x, binormal.x, normal.x, + tangent.y, binormal.y, normal.y, + tangent.z, binormal.z, normal.z + ); +#endif + +//Common Functions// + +//Includes// +#include "/lib/util/spaceConversion.glsl" +#include "/lib/lighting/mainLighting.glsl" + +#if defined GENERATED_NORMALS || defined COATED_TEXTURES + #include "/lib/util/miplevel.glsl" +#endif + +#ifdef GENERATED_NORMALS + #include "/lib/materials/materialMethods/generatedNormals.glsl" +#endif + +#ifdef COATED_TEXTURES + #include "/lib/materials/materialMethods/coatedTextures.glsl" +#endif + +#if IPBR_EMISSIVE_MODE != 1 + #include "/lib/materials/materialMethods/customEmission.glsl" +#endif + +#ifdef CUSTOM_PBR + #include "/lib/materials/materialHandling/customMaterials.glsl" +#endif + +#ifdef COLOR_CODED_PROGRAMS + #include "/lib/misc/colorCodedPrograms.glsl" +#endif + +//Program// +void main() { + vec4 color = texture2D(tex, texCoord); + + float smoothnessD = 0.0, skyLightFactor = 0.0, materialMask = OSIEBCA * 254.0; // No SSAO, No TAA + vec3 normalM = normal; + + float alphaCheck = color.a; + #ifdef DO_PIXELATION_EFFECTS + // Fixes artifacts on fragment edges with non-nvidia gpus + alphaCheck = max(fwidth(color.a), alphaCheck); + #endif + + if (alphaCheck > 0.001) { + #ifdef GENERATED_NORMALS + vec3 colorP = color.rgb; + #endif + color *= glColor; + + vec3 screenPos = vec3(gl_FragCoord.xy / vec2(viewWidth, viewHeight), gl_FragCoord.z + 0.38); + vec3 viewPos = ScreenToView(screenPos); + vec3 playerPos = ViewToPlayer(viewPos); + + if (color.a < 0.75) materialMask = 0.0; + + bool noSmoothLighting = true, noGeneratedNormals = false, noDirectionalShading = false, noVanillaAO = false; + float smoothnessG = 0.0, highlightMult = 1.0, emission = 0.0, noiseFactor = 0.6; + vec2 lmCoordM = lmCoord; + vec3 geoNormal = normalM; + vec3 worldGeoNormal = normalize(ViewToPlayer(geoNormal * 10000.0)); + vec3 shadowMult = vec3(0.4); + #ifdef IPBR + #ifdef IS_IRIS + vec3 maRecolor = vec3(0.0); + #include "/lib/materials/materialHandling/irisMaterials.glsl" + + if (materialMask != OSIEBCA * 254.0) materialMask += OSIEBCA * 100.0; // Entity Reflection Handling + #endif + + #ifdef GENERATED_NORMALS + if (!noGeneratedNormals) GenerateNormals(normalM, colorP); + #endif + + #ifdef COATED_TEXTURES + CoatTextures(color.rgb, noiseFactor, playerPos, false); + #endif + + #if IPBR_EMISSIVE_MODE != 1 + emission = GetCustomEmissionForIPBR(color, emission); + #endif + #else + #ifdef CUSTOM_PBR + GetCustomMaterials(color, normalM, lmCoordM, NdotU, shadowMult, smoothnessG, smoothnessD, highlightMult, emission, materialMask, viewPos, 0.0); + #endif + #endif + + DoLighting(color, shadowMult, playerPos, viewPos, 0.0, geoNormal, normalM, 0.5, + worldGeoNormal, lmCoordM, noSmoothLighting, noDirectionalShading, noVanillaAO, + false, 0, smoothnessG, highlightMult, emission); + + #if defined IPBR && defined IS_IRIS + color.rgb += maRecolor; + #endif + + #if (defined CUSTOM_PBR || defined IPBR && defined IS_IRIS) && defined PBR_REFLECTIONS + #ifdef OVERWORLD + skyLightFactor = pow2(max(lmCoord.y - 0.7, 0.0) * 3.33333); + #else + skyLightFactor = dot(shadowMult, shadowMult) / 3.0; + #endif + #endif + } + + #ifdef COLOR_CODED_PROGRAMS + ColorCodeProgram(color, -1); + #endif + + /* DRAWBUFFERS:06 */ + gl_FragData[0] = color; + gl_FragData[1] = vec4(smoothnessD, materialMask, skyLightFactor, 1.0); + + #if BLOCK_REFLECT_QUALITY >= 2 && (RP_MODE >= 2 || defined IS_IRIS) + /* DRAWBUFFERS:065 */ + gl_FragData[2] = vec4(mat3(gbufferModelViewInverse) * normalM, 1.0); + #endif +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +out vec2 texCoord; +out vec2 lmCoord; + +flat out vec3 upVec, sunVec, northVec, eastVec; +out vec3 normal; + +out vec4 glColor; + +#if defined GENERATED_NORMALS || defined COATED_TEXTURES || defined POM || defined IPBR && defined IS_IRIS + out vec2 signMidCoordPos; + flat out vec2 absMidCoordPos; + flat out vec2 midCoord; +#endif + +#if defined GENERATED_NORMALS || defined CUSTOM_PBR + flat out vec3 binormal, tangent; +#endif + +#ifdef POM + out vec3 viewVector; + + out vec4 vTexCoordAM; +#endif + +//Attributes// +#if defined GENERATED_NORMALS || defined COATED_TEXTURES || defined POM || defined IPBR && defined IS_IRIS + attribute vec4 mc_midTexCoord; +#endif + +#if defined GENERATED_NORMALS || defined CUSTOM_PBR + attribute vec4 at_tangent; +#endif + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + + lmCoord = GetLightMapCoordinates(); + + glColor = gl_Color; + + normal = normalize(gl_NormalMatrix * gl_Normal); + + upVec = normalize(gbufferModelView[1].xyz); + eastVec = normalize(gbufferModelView[0].xyz); + northVec = normalize(gbufferModelView[2].xyz); + sunVec = GetSunVector(); + + #if defined GENERATED_NORMALS || defined COATED_TEXTURES || defined POM || defined IPBR && defined IS_IRIS + midCoord = (gl_TextureMatrix[0] * mc_midTexCoord).st; + vec2 texMinMidCoord = texCoord - midCoord; + signMidCoordPos = sign(texMinMidCoord); + absMidCoordPos = abs(texMinMidCoord); + #endif + + #if defined GENERATED_NORMALS || defined CUSTOM_PBR + binormal = normalize(gl_NormalMatrix * cross(at_tangent.xyz, gl_Normal.xyz) * at_tangent.w); + tangent = normalize(gl_NormalMatrix * at_tangent.xyz); + #endif + + #ifdef POM + mat3 tbnMatrix = mat3( + tangent.x, binormal.x, normal.x, + tangent.y, binormal.y, normal.y, + tangent.z, binormal.z, normal.z + ); + + viewVector = tbnMatrix * (gl_ModelViewMatrix * gl_Vertex).xyz; + + vTexCoordAM.zw = abs(texMinMidCoord) * 2; + vTexCoordAM.xy = min(texCoord, midCoord - texMinMidCoord); + #endif + + #if HAND_SWAYING > 0 + #include "/lib/misc/handSway.glsl" + #endif +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_skybasic.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_skybasic.glsl new file mode 100644 index 0000000..dd0dae0 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_skybasic.glsl @@ -0,0 +1,214 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +flat in vec3 upVec, sunVec; + +flat in vec4 glColor; + +#ifdef OVERWORLD + flat in float vanillaStars; +#endif + +//Pipeline Constants// + +//Common Variables// +float SdotU = dot(sunVec, upVec); +float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; +float sunVisibility2 = sunVisibility * sunVisibility; +float shadowTimeVar1 = abs(sunVisibility - 0.5) * 2.0; +float shadowTimeVar2 = shadowTimeVar1 * shadowTimeVar1; +float shadowTime = shadowTimeVar2 * shadowTimeVar2; + +//Common Functions// + +//Includes// +#include "/lib/util/dither.glsl" + +#ifdef OVERWORLD + #include "/lib/atmospherics/sky.glsl" + #include "/lib/atmospherics/stars.glsl" +#endif + +#ifdef CAVE_FOG + #include "/lib/atmospherics/fog/caveFactor.glsl" +#endif + +#ifdef ATM_COLOR_MULTS + #include "/lib/colors/colorMultipliers.glsl" +#endif +#ifdef MOON_PHASE_INF_ATMOSPHERE + #include "/lib/colors/moonPhaseInfluence.glsl" +#endif + +#ifdef COLOR_CODED_PROGRAMS + #include "/lib/misc/colorCodedPrograms.glsl" +#endif + +#if SUN_MOON_STYLE >= 2 + #include "/lib/util/spaceConversion.glsl" +#endif + +//Program// +void main() { + vec4 color = vec4(glColor.rgb, 1.0); + + #ifdef OVERWORLD + if (vanillaStars > 0.5) { + discard; + } + + #if IRIS_VERSION >= 10800 && IRIS_VERSION < 10805 + if (renderStage == MC_RENDER_STAGE_MOON) { + discard; // Fixes the vanilla sky gradient causing the sun to disappear + } + #endif + + vec4 screenPos = vec4(gl_FragCoord.xy / vec2(viewWidth, viewHeight), gl_FragCoord.z, 1.0); + vec4 viewPos = gbufferProjectionInverse * (screenPos * 2.0 - 1.0); + viewPos /= viewPos.w; + vec3 nViewPos = normalize(viewPos.xyz); + + float VdotU = dot(nViewPos, upVec); + float VdotS = dot(nViewPos, sunVec); + float dither = Bayer8(gl_FragCoord.xy); + + color.rgb = GetSky(VdotU, VdotS, dither, true, false); + + #ifdef ATM_COLOR_MULTS + color.rgb *= GetAtmColorMult(); + #endif + #ifdef MOON_PHASE_INF_ATMOSPHERE + color.rgb *= moonPhaseInfluence; + #endif + + vec2 starCoord = GetStarCoord(viewPos.xyz, 0.5); + color.rgb += GetStars(starCoord, VdotU, VdotS); + + #if SUN_MOON_STYLE >= 2 + float absVdotS = abs(VdotS); + #if SUN_MOON_STYLE == 2 + float sunSizeFactor1 = 0.9975; + float sunSizeFactor2 = 400.0; + float moonCrescentOffset = 0.0055; + float moonPhaseFactor1 = 2.45; + float moonPhaseFactor2 = 750.0; + #else + float sunSizeFactor1 = 0.9983; + float sunSizeFactor2 = 588.235; + float moonCrescentOffset = 0.0042; + float moonPhaseFactor1 = 2.2; + float moonPhaseFactor2 = 1000.0; + #endif + if (absVdotS > sunSizeFactor1) { + float sunMoonMixer = sqrt1(sunSizeFactor2 * (absVdotS - sunSizeFactor1)); + + #ifdef SUN_MOON_DURING_RAIN + sunMoonMixer *= 1.0 - 0.4 * rainFactor2; + #else + sunMoonMixer *= 1.0 - rainFactor2; + #endif + + if (VdotS > 0.0) { + sunMoonMixer = pow2(sunMoonMixer) * GetHorizonFactor(SdotU); + + #ifdef CAVE_FOG + sunMoonMixer *= 1.0 - 0.65 * GetCaveFactor(); + #endif + + color.rgb = mix(color.rgb, vec3(0.9, 0.5, 0.3) * 10.0, sunMoonMixer); + } else { + float horizonFactor = GetHorizonFactor(-SdotU); + sunMoonMixer = max0(sunMoonMixer - 0.25) * 1.33333 * horizonFactor; + + starCoord = GetStarCoord(viewPos.xyz, 1.0) * 0.5 + 0.617; + float moonNoise = texture2D(noisetex, starCoord).g + + texture2D(noisetex, starCoord * 2.5).g * 0.7 + + texture2D(noisetex, starCoord * 5.0).g * 0.5; + moonNoise = max0(moonNoise - 0.75) * 1.7; + vec3 moonColor = vec3(0.38, 0.4, 0.5) * (1.2 - (0.2 + 0.2 * sqrt1(nightFactor)) * moonNoise); + + if (moonPhase >= 1) { + float moonPhaseOffset = 0.0; + if (moonPhase != 4) { + moonPhaseOffset = moonCrescentOffset; + moonColor *= 8.5; + } else moonColor *= 10.0; + if (moonPhase > 4) { + moonPhaseOffset = -moonPhaseOffset; + } + + float ang = fract(timeAngle - (0.25 + moonPhaseOffset)); + ang = (ang + (cos(ang * 3.14159265358979) * -0.5 + 0.5 - ang) / 3.0) * 6.28318530717959; + vec2 sunRotationData2 = vec2(cos(sunPathRotation * 0.01745329251994), -sin(sunPathRotation * 0.01745329251994)); + vec3 rawSunVec2 = (gbufferModelView * vec4(vec3(-sin(ang), cos(ang) * sunRotationData2) * 2000.0, 1.0)).xyz; + + float moonPhaseVdosS = dot(nViewPos, normalize(rawSunVec2.xyz)); + + sunMoonMixer *= pow2(1.0 - min1(pow(abs(moonPhaseVdosS), moonPhaseFactor2) * moonPhaseFactor1)); + } else moonColor *= 4.0; + + #ifdef CAVE_FOG + sunMoonMixer *= 1.0 - 0.5 * GetCaveFactor(); + #endif + + color.rgb = mix(color.rgb, moonColor, sunMoonMixer); + } + } + #endif + #endif + + color.rgb *= 1.0 - maxBlindnessDarkness; + + #ifdef COLOR_CODED_PROGRAMS + ColorCodeProgram(color, -1); + #endif + + /* DRAWBUFFERS:0 */ + gl_FragData[0] = color; +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +flat out vec3 upVec, sunVec; + +flat out vec4 glColor; + +#ifdef OVERWORLD + flat out float vanillaStars; +#endif + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + + glColor = gl_Color; + + upVec = normalize(gbufferModelView[1].xyz); + sunVec = GetSunVector(); + + #ifdef OVERWORLD + //Vanilla Star Dedection by Builderb0y + vanillaStars = float(glColor.r == glColor.g && glColor.g == glColor.b && glColor.r > 0.0 && glColor.r < 0.51); + #endif +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_skytextured.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_skytextured.glsl new file mode 100644 index 0000000..501fb21 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_skytextured.glsl @@ -0,0 +1,153 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +in vec2 texCoord; + +flat in vec4 glColor; + +#ifdef OVERWORLD + flat in vec3 upVec, sunVec; +#endif + +//Pipeline Constants// + +//Common Variables// +#ifdef OVERWORLD + float SdotU = dot(sunVec, upVec); + float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; + float sunVisibility2 = sunVisibility * sunVisibility; +#endif + +//Common Functions// + +//Includes// +#include "/lib/colors/lightAndAmbientColors.glsl" + +#ifdef CAVE_FOG + #include "/lib/atmospherics/fog/caveFactor.glsl" +#endif + +#ifdef COLOR_CODED_PROGRAMS + #include "/lib/misc/colorCodedPrograms.glsl" +#endif + +//Program// +void main() { + #ifdef OVERWORLD + vec2 tSize = textureSize(tex, 0); + vec4 color = texture2D(tex, texCoord); + color.rgb *= glColor.rgb; + + vec4 screenPos = vec4(gl_FragCoord.xy / vec2(viewWidth, viewHeight), gl_FragCoord.z, 1.0); + vec4 viewPos = gbufferProjectionInverse * (screenPos * 2.0 - 1.0); + viewPos /= viewPos.w; + vec3 nViewPos = normalize(viewPos.xyz); + + float VdotS = dot(nViewPos, sunVec); + float VdotU = dot(nViewPos, upVec); + + #ifdef IS_IRIS + bool isSun = renderStage == MC_RENDER_STAGE_SUN; + bool isMoon = renderStage == MC_RENDER_STAGE_MOON; + #else + bool tSizeCheck = abs(tSize.y - 264.0) < 248.5; //tSize.y must range from 16 to 512 + bool sunSideCheck = VdotS > 0.0; + bool isSun = tSizeCheck && sunSideCheck; + bool isMoon = tSizeCheck && !sunSideCheck; + #endif + + if (isSun || isMoon) { + #if SUN_MOON_STYLE >= 2 + discard; + #endif + + if (isSun) { + color.rgb *= dot(color.rgb, color.rgb) * normalize(lightColor) * 3.2; + color.rgb *= 0.25 + (0.75 - 0.25 * rainFactor) * sunVisibility2; + } + + if (isMoon) { + color.rgb *= smoothstep1(min1(length(color.rgb))) * 1.3; + } + + color.rgb *= GetHorizonFactor(VdotU); + + #ifdef CAVE_FOG + color.rgb *= 1.0 - 0.75 * GetCaveFactor(); + #endif + } else { // Custom Sky + #if MC_VERSION >= 11300 + color.rgb *= color.rgb * smoothstep1(sqrt1(max0(VdotU))); + #else + discard; + // Old mc custom skyboxes are weirdly broken, so we discard. + #endif + } + + if (isEyeInWater == 1) color.rgb *= 0.25; + + #ifdef SUN_MOON_DURING_RAIN + color.a *= 1.0 - 0.8 * rainFactor; + #else + color.a *= 1.0 - rainFactor; + #endif + #endif + + #ifdef NETHER + vec4 color = vec4(0.0); + #endif + + #ifdef END + vec4 color = vec4(endSkyColor, 1.0); + #endif + + #ifdef COLOR_CODED_PROGRAMS + ColorCodeProgram(color, -1); + #endif + + /* DRAWBUFFERS:0 */ + gl_FragData[0] = color; +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +out vec2 texCoord; + +flat out vec4 glColor; + +#ifdef OVERWORLD + flat out vec3 upVec, sunVec; +#endif + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + + glColor = gl_Color; + + #ifdef OVERWORLD + upVec = normalize(gbufferModelView[1].xyz); + sunVec = GetSunVector(); + #endif +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_spidereyes.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_spidereyes.glsl new file mode 100644 index 0000000..d506550 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_spidereyes.glsl @@ -0,0 +1,75 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +in vec2 texCoord; + +in vec4 glColor; + +//Pipeline Constants// + +//Common Variables// + +//Common Functions// + +//Includes// +#ifdef COLOR_CODED_PROGRAMS + #include "/lib/misc/colorCodedPrograms.glsl" +#endif + +//Program// +void main() { + vec4 color = texture2D(tex, texCoord) * glColor; + + #ifdef IPBR + if (CheckForColor(color.rgb, vec3(224, 121, 250))) { // Enderman Eye Edges + color.rgb = vec3(0.8, 0.25, 0.8); + } + #endif + + color.rgb *= 1.0 - 0.6 * pow2(pow2(min1(GetLuminance(color.rgb) * 1.2))); // Fixes ultra bright Breeze + + color.rgb = pow1_5(color.rgb); + color.rgb *= pow2(1.0 + color.b + 0.5 * color.g) * 1.5; + + #ifdef COLOR_CODED_PROGRAMS + ColorCodeProgram(color, -1); + #endif + + /* DRAWBUFFERS:0 */ + gl_FragData[0] = color; +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +out vec2 texCoord; + +out vec4 glColor; + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + + glColor = gl_Color; +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_terrain.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_terrain.glsl new file mode 100644 index 0000000..3f5a285 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_terrain.glsl @@ -0,0 +1,485 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +flat in int mat; + +in vec2 texCoord; +in vec2 lmCoord; +in vec2 signMidCoordPos; +flat in vec2 absMidCoordPos; +flat in vec2 midCoord; + +flat in vec3 upVec, sunVec, northVec, eastVec; +in vec3 normal; +in vec3 vertexPos; + +in vec4 glColorRaw; + +#if RAIN_PUDDLES >= 1 || defined GENERATED_NORMALS || defined CUSTOM_PBR + flat in vec3 binormal, tangent; +#endif + +#ifdef POM + in vec3 viewVector; + + in vec4 vTexCoordAM; +#endif + +#if ANISOTROPIC_FILTER > 0 + in vec4 spriteBounds; +#endif + +//Pipeline Constants// +#if COLORED_LIGHTING_INTERNAL > 0 + const float voxelDistance = 32.0; +#endif + +//Common Variables// +float NdotU = dot(normal, upVec); +float NdotUmax0 = max(NdotU, 0.0); +float SdotU = dot(sunVec, upVec); +float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; +float sunVisibility2 = sunVisibility * sunVisibility; +float shadowTimeVar1 = abs(sunVisibility - 0.5) * 2.0; +float shadowTimeVar2 = shadowTimeVar1 * shadowTimeVar1; +float shadowTime = shadowTimeVar2 * shadowTimeVar2; + +vec4 glColor = glColorRaw; + +#ifdef OVERWORLD + vec3 lightVec = sunVec * ((timeAngle < 0.5325 || timeAngle > 0.9675) ? 1.0 : -1.0); +#else + vec3 lightVec = sunVec; +#endif + +#if RAIN_PUDDLES >= 1 || defined GENERATED_NORMALS || defined CUSTOM_PBR + mat3 tbnMatrix = mat3( + tangent.x, binormal.x, normal.x, + tangent.y, binormal.y, normal.y, + tangent.z, binormal.z, normal.z + ); +#endif + +//Common Functions// +void DoFoliageColorTweaks(inout vec3 color, inout vec3 shadowMult, inout float snowMinNdotU, vec3 viewPos, vec3 nViewPos, float lViewPos, float dither) { + #ifdef DREAM_TWEAKED_LIGHTING + return; + #endif + float factor = max(80.0 - lViewPos, 0.0); + shadowMult *= 1.0 + 0.004 * noonFactor * factor; + + #if defined IPBR && !defined IPBR_COMPATIBILITY_MODE + if (signMidCoordPos.x < 0.0) color.rgb *= 1.08; + else color.rgb *= 0.93; + #endif + + #ifdef FOLIAGE_ALT_SUBSURFACE + float edgeSize = 0.12; + float edgeEffectFactor = 0.75; + + edgeEffectFactor *= (sqrt1(abs(dot(nViewPos, normal))) - 0.1) * 1.111; + + vec2 texCoordM = texCoord; + texCoordM.y -= edgeSize * pow2(dither) * absMidCoordPos.y; + texCoordM.y = max(texCoordM.y, midCoord.y - absMidCoordPos.y); + vec4 colorSample = texture2DLod(tex, texCoordM, 0); + + if (colorSample.a < 0.5) { + float edgeFactor = dot(nViewPos, lightVec); + shadowMult *= 1.0 + edgeEffectFactor * (1.0 + edgeFactor); + } + + shadowMult *= 1.0 + 0.2333 * edgeEffectFactor * (dot(normal, lightVec) - 1.0); + #endif + + #ifdef SNOWY_WORLD + if (glColor.g - glColor.b > 0.01) + snowMinNdotU = min(pow2(pow2(max0(color.g * 2.0 - color.r - color.b))) * 5.0, 0.1); + else + snowMinNdotU = min(pow2(pow2(max0(color.g * 2.0 - color.r - color.b))) * 3.0, 0.1) * 0.25; + + #ifdef DISTANT_HORIZONS + // DH chunks don't have foliage. The border looks too noticeable without this tweak + snowMinNdotU = mix(snowMinNdotU, 0.09, smoothstep(far * 0.5, far, lViewPos)); + #endif + #endif +} + +void DoBrightBlockTweaks(vec3 color, float minLight, inout vec3 shadowMult, inout float highlightMult) { + float factor = mix(minLight, 1.0, pow2(pow2(color.r))); + shadowMult = vec3(factor); + highlightMult /= factor; +} + +void DoOceanBlockTweaks(inout float smoothnessD) { + smoothnessD *= max0(lmCoord.y - 0.95) * 20.0; +} + +//Includes// +#include "/lib/util/spaceConversion.glsl" +#include "/lib/lighting/mainLighting.glsl" +#include "/lib/util/dither.glsl" + +#ifdef TAA + #include "/lib/antialiasing/jitter.glsl" +#endif + +#if defined GENERATED_NORMALS || defined COATED_TEXTURES || ANISOTROPIC_FILTER > 0 || defined DISTANT_LIGHT_BOKEH + #include "/lib/util/miplevel.glsl" +#endif + +#ifdef GENERATED_NORMALS + #include "/lib/materials/materialMethods/generatedNormals.glsl" +#endif + +#ifdef COATED_TEXTURES + #include "/lib/materials/materialMethods/coatedTextures.glsl" +#endif + +#if IPBR_EMISSIVE_MODE != 1 + #include "/lib/materials/materialMethods/customEmission.glsl" +#endif + +#ifdef CUSTOM_PBR + #include "/lib/materials/materialHandling/customMaterials.glsl" +#endif + +#ifdef COLOR_CODED_PROGRAMS + #include "/lib/misc/colorCodedPrograms.glsl" +#endif + +#if ANISOTROPIC_FILTER > 0 + #include "/lib/materials/materialMethods/anisotropicFiltering.glsl" +#endif + +#ifdef PUDDLE_VOXELIZATION + #include "/lib/misc/puddleVoxelization.glsl" +#endif + +#ifdef SNOWY_WORLD + #include "/lib/materials/materialMethods/snowyWorld.glsl" +#endif + +#ifdef DISTANT_LIGHT_BOKEH + #include "/lib/misc/distantLightBokeh.glsl" +#endif + +//Program// +void main() { + #if ANISOTROPIC_FILTER == 0 + vec4 color = texture2D(tex, texCoord); + #else + vec4 color = textureAF(tex, texCoord); + #endif + + float smoothnessD = 0.0, materialMask = 0.0, skyLightFactor = 0.0; + + #if !defined POM || !defined POM_ALLOW_CUTOUT + if (color.a <= 0.00001) discard; // 6WIR4HT23 + #endif + + vec3 colorP = color.rgb; + color.rgb *= glColor.rgb; + + vec3 screenPos = vec3(gl_FragCoord.xy / vec2(viewWidth, viewHeight), gl_FragCoord.z); + #ifdef TAA + vec3 viewPos = ScreenToView(vec3(TAAJitter(screenPos.xy, -0.5), screenPos.z)); + #else + vec3 viewPos = ScreenToView(screenPos); + #endif + float lViewPos = length(viewPos); + vec3 nViewPos = normalize(viewPos); + vec3 playerPos = vertexPos; + + float dither = Bayer64(gl_FragCoord.xy); + #ifdef TAA + dither = fract(dither + goldenRatio * mod(float(frameCounter), 3600.0)); + #endif + + int subsurfaceMode = 0; + bool noSmoothLighting = false, noDirectionalShading = false, noVanillaAO = false, centerShadowBias = false, noGeneratedNormals = false, doTileRandomisation = true; + float smoothnessG = 0.0, highlightMult = 1.0, emission = 0.0, noiseFactor = 1.0, snowFactor = 1.0, snowMinNdotU = 0.0, noPuddles = 0.0; + vec2 lmCoordM = lmCoord; + vec3 normalM = normal, geoNormal = normal, shadowMult = vec3(1.0); + vec3 worldGeoNormal = normalize(ViewToPlayer(geoNormal * 10000.0)); + + #ifdef IPBR + vec3 maRecolor = vec3(0.0); + #include "/lib/materials/materialHandling/terrainMaterials.glsl" + + #ifdef GENERATED_NORMALS + if (!noGeneratedNormals) GenerateNormals(normalM, colorP); + #endif + + #ifdef COATED_TEXTURES + CoatTextures(color.rgb, noiseFactor, playerPos, doTileRandomisation); + #endif + + #if IPBR_EMISSIVE_MODE != 1 + emission = GetCustomEmissionForIPBR(color, emission); + #endif + #else + #ifdef CUSTOM_PBR + GetCustomMaterials(color, normalM, lmCoordM, NdotU, shadowMult, smoothnessG, smoothnessD, highlightMult, emission, materialMask, viewPos, lViewPos); + #endif + + if (mat == 10001) { // No directional shading + noDirectionalShading = true; + } else if (mat == 10005) { // Grounded Waving Foliage + subsurfaceMode = 1, noSmoothLighting = true, noDirectionalShading = true; + DoFoliageColorTweaks(color.rgb, shadowMult, snowMinNdotU, viewPos, nViewPos, lViewPos, dither); + } else if (mat == 10009) { // Leaves + #include "/lib/materials/specificMaterials/terrain/leaves.glsl" + } else if (mat == 10013) { // Vine + subsurfaceMode = 3, centerShadowBias = true; noSmoothLighting = true; + } else if (mat == 10017) { // Non-waving Foliage + subsurfaceMode = 1, noSmoothLighting = true, noDirectionalShading = true; + } else if (mat == 10021) { // Upper Waving Foliage + subsurfaceMode = 1, noSmoothLighting = true, noDirectionalShading = true; + DoFoliageColorTweaks(color.rgb, shadowMult, snowMinNdotU, viewPos, nViewPos, lViewPos, dither); + } else if (mat == 10028) { // Modded Light Sources + noSmoothLighting = true; noDirectionalShading = true; + emission = GetLuminance(color.rgb) * 2.5; + } + + #ifdef SNOWY_WORLD + else if (mat == 10132) { // Grass Block:Normal + if (glColor.b < 0.999) { // Grass Block:Normal:Grass Part + snowMinNdotU = min(pow2(pow2(color.g)) * 1.9, 0.1); + color.rgb = color.rgb * 0.5 + 0.5 * (color.rgb / glColor.rgb); + } + } + #endif + + else if (lmCoord.x > 0.99999) lmCoordM.x = 0.95; + #endif + + #ifdef SNOWY_WORLD + DoSnowyWorld(color, smoothnessG, highlightMult, smoothnessD, emission, + playerPos, lmCoord, snowFactor, snowMinNdotU, NdotU, subsurfaceMode); + #endif + + #if RAIN_PUDDLES >= 1 + float puddleLightFactor = max0(lmCoord.y * 32.0 - 31.0) * clamp((1.0 - 1.15 * lmCoord.x) * 10.0, 0.0, 1.0); + float puddleNormalFactor = pow2(max0(NdotUmax0 - 0.5) * 2.0); + float puddleMixer = puddleLightFactor * inRainy * puddleNormalFactor; + #if RAIN_PUDDLES < 3 + float wetnessM = wetness; + #else + float wetnessM = 1.0; + #endif + #ifdef PUDDLE_VOXELIZATION + vec3 voxelPos = SceneToPuddleVoxel(playerPos); + vec3 voxel_sample_pos = clamp01(voxelPos / vec3(puddle_voxelVolumeSize)); + if (CheckInsidePuddleVoxelVolume(voxelPos)) { + noPuddles += texture2D(puddle_sampler, voxel_sample_pos.xz).r; + } + #endif + if (pow2(pow2(wetnessM)) * puddleMixer - noPuddles > 0.00001) { + vec2 worldPosXZ = playerPos.xz + cameraPosition.xz; + vec2 puddleWind = vec2(frameTimeCounter) * 0.03; + #if WATER_STYLE == 1 + vec2 puddlePosNormal = floor(worldPosXZ * 16.0) * 0.0625; + #else + vec2 puddlePosNormal = worldPosXZ; + #endif + + puddlePosNormal *= 0.1; + vec2 pNormalCoord1 = puddlePosNormal + vec2(puddleWind.x, puddleWind.y); + vec2 pNormalCoord2 = puddlePosNormal + vec2(puddleWind.x * -1.5, puddleWind.y * -1.0); + vec3 pNormalNoise1 = texture2D(noisetex, pNormalCoord1).rgb; + vec3 pNormalNoise2 = texture2D(noisetex, pNormalCoord2).rgb; + float pNormalMult = 0.03; + + vec3 puddleNormal = vec3((pNormalNoise1.xy + pNormalNoise2.xy - vec2(1.0)) * pNormalMult, 1.0); + puddleNormal = clamp(normalize(puddleNormal * tbnMatrix), vec3(-1.0), vec3(1.0)); + + #if RAIN_PUDDLES == 1 || RAIN_PUDDLES == 3 + vec2 puddlePosForm = puddlePosNormal * 0.05; + float pFormNoise = texture2D(noisetex, puddlePosForm).b * 3.0; + pFormNoise += texture2D(noisetex, puddlePosForm * 0.5).b * 5.0; + pFormNoise += texture2D(noisetex, puddlePosForm * 0.25).b * 8.0; + pFormNoise *= sqrt1(wetnessM) * 0.5625 + 0.4375; + pFormNoise = clamp(pFormNoise - 7.0, 0.0, 1.0); + #else + float pFormNoise = wetnessM; + #endif + puddleMixer *= pFormNoise; + + float puddleSmoothnessG = 0.7 - rainFactor * 0.3; + float puddleHighlight = (1.5 - subsurfaceMode * 0.6 * invNoonFactor); + smoothnessG = mix(smoothnessG, puddleSmoothnessG, puddleMixer); + highlightMult = mix(highlightMult, puddleHighlight, puddleMixer); + smoothnessD = mix(smoothnessD, 1.0, sqrt1(puddleMixer)); + normalM = mix(normalM, puddleNormal, puddleMixer * rainFactor); + } + #endif + + #if SHOW_LIGHT_LEVEL > 0 + #include "/lib/misc/showLightLevels.glsl" + #endif + + DoLighting(color, shadowMult, playerPos, viewPos, lViewPos, geoNormal, normalM, dither, + worldGeoNormal, lmCoordM, noSmoothLighting, noDirectionalShading, noVanillaAO, + centerShadowBias, subsurfaceMode, smoothnessG, highlightMult, emission); + + #ifdef IPBR + color.rgb += maRecolor; + #endif + + #ifdef PBR_REFLECTIONS + #ifdef OVERWORLD + skyLightFactor = pow2(max(lmCoord.y - 0.7, 0.0) * 3.33333); + #else + skyLightFactor = dot(shadowMult, shadowMult) / 3.0; + #endif + #endif + + #ifdef COLOR_CODED_PROGRAMS + ColorCodeProgram(color, mat); + #endif + + /* DRAWBUFFERS:06 */ + gl_FragData[0] = color; + gl_FragData[1] = vec4(smoothnessD, materialMask, skyLightFactor, 1.0); + + #if BLOCK_REFLECT_QUALITY >= 2 && RP_MODE != 0 + /* DRAWBUFFERS:065 */ + gl_FragData[2] = vec4(mat3(gbufferModelViewInverse) * normalM, 1.0); + #endif +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +flat out int mat; + +out vec2 texCoord; +out vec2 lmCoord; +out vec2 signMidCoordPos; +flat out vec2 absMidCoordPos; +flat out vec2 midCoord; + +flat out vec3 upVec, sunVec, northVec, eastVec; +out vec3 normal; +out vec3 vertexPos; + +out vec4 glColorRaw; + +#if RAIN_PUDDLES >= 1 || defined GENERATED_NORMALS || defined CUSTOM_PBR + flat out vec3 binormal, tangent; +#endif + +#ifdef POM + out vec3 viewVector; + + out vec4 vTexCoordAM; +#endif + +#if ANISOTROPIC_FILTER > 0 + out vec4 spriteBounds; +#endif + +//Attributes// +attribute vec4 mc_Entity; +attribute vec4 mc_midTexCoord; + +#if RAIN_PUDDLES >= 1 || defined GENERATED_NORMALS || defined CUSTOM_PBR + attribute vec4 at_tangent; +#endif + +//Common Variables// +vec4 glColor = vec4(1.0); + +//Common Functions// + +//Includes// +#ifdef TAA + #include "/lib/antialiasing/jitter.glsl" +#endif + +#ifdef WAVING_ANYTHING_TERRAIN + #include "/lib/materials/materialMethods/wavingBlocks.glsl" +#endif + +//Program// +void main() { + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + lmCoord = GetLightMapCoordinates(); + + glColorRaw = gl_Color; + if (glColorRaw.a < 0.1) glColorRaw.a = 1.0; + glColor = glColorRaw; + + normal = normalize(gl_NormalMatrix * gl_Normal); + upVec = normalize(gbufferModelView[1].xyz); + eastVec = normalize(gbufferModelView[0].xyz); + northVec = normalize(gbufferModelView[2].xyz); + sunVec = GetSunVector(); + + midCoord = (gl_TextureMatrix[0] * mc_midTexCoord).st; + vec2 texMinMidCoord = texCoord - midCoord; + signMidCoordPos = sign(texMinMidCoord); + absMidCoordPos = abs(texMinMidCoord); + + mat = int(mc_Entity.x + 0.5); + + #if ANISOTROPIC_FILTER > 0 + if (mc_Entity.y > 0.5 && dot(normal, upVec) < 0.999) absMidCoordPos = vec2(0.0); // Fix257062 + #endif + + vec4 position = gbufferModelViewInverse * gl_ModelViewMatrix * gl_Vertex; + vertexPos = position.xyz; + + #ifdef WAVING_ANYTHING_TERRAIN + DoWave(position.xyz, mat); + #endif + + gl_Position = gl_ProjectionMatrix * gbufferModelView * position; + + + #ifdef FLICKERING_FIX + if (mat == 10257) gl_Position.z -= 0.00001; // Iron Bars + #endif + + #ifdef TAA + gl_Position.xy = TAAJitter(gl_Position.xy, gl_Position.w); + #endif + + #if RAIN_PUDDLES >= 1 || defined GENERATED_NORMALS || defined CUSTOM_PBR + binormal = normalize(gl_NormalMatrix * cross(at_tangent.xyz, gl_Normal.xyz) * at_tangent.w); + tangent = normalize(gl_NormalMatrix * at_tangent.xyz); + #endif + + #ifdef POM + mat3 tbnMatrix = mat3( + tangent.x, binormal.x, normal.x, + tangent.y, binormal.y, normal.y, + tangent.z, binormal.z, normal.z + ); + + viewVector = tbnMatrix * (gl_ModelViewMatrix * gl_Vertex).xyz; + + vTexCoordAM.zw = abs(texMinMidCoord) * 2; + vTexCoordAM.xy = min(texCoord, midCoord - texMinMidCoord); + #endif + + #if ANISOTROPIC_FILTER > 0 + vec2 spriteRadius = abs(texCoord - mc_midTexCoord.xy); + vec2 bottomLeft = mc_midTexCoord.xy - spriteRadius; + vec2 topRight = mc_midTexCoord.xy + spriteRadius; + spriteBounds = vec4(bottomLeft, topRight); + #endif +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_textured.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_textured.glsl new file mode 100644 index 0000000..cb98269 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_textured.glsl @@ -0,0 +1,241 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +in vec2 texCoord; +in vec2 lmCoord; + +flat in vec3 upVec, sunVec; +in vec3 normal; + +flat in vec4 glColor; + +#ifdef CLOUD_SHADOWS + flat in vec3 eastVec; + + #if SUN_ANGLE != 0 + flat in vec3 northVec; + #endif +#endif + +//Pipeline Constants// + +//Common Variables// +float NdotU = dot(normal, upVec); +float NdotUmax0 = max(NdotU, 0.0); +float SdotU = dot(sunVec, upVec); +float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; +float sunVisibility2 = sunVisibility * sunVisibility; +float shadowTimeVar1 = abs(sunVisibility - 0.5) * 2.0; +float shadowTimeVar2 = shadowTimeVar1 * shadowTimeVar1; +float shadowTime = shadowTimeVar2 * shadowTimeVar2; + +#ifdef OVERWORLD + vec3 lightVec = sunVec * ((timeAngle < 0.5325 || timeAngle > 0.9675) ? 1.0 : -1.0); +#else + vec3 lightVec = sunVec; +#endif + +//Common Functions// + +//Includes// +#include "/lib/util/spaceConversion.glsl" +#include "/lib/lighting/mainLighting.glsl" +#include "/lib/util/dither.glsl" + +#if MC_VERSION >= 11500 + #include "/lib/atmospherics/fog/mainFog.glsl" +#endif + +#ifdef ATM_COLOR_MULTS + #include "/lib/colors/colorMultipliers.glsl" +#endif + +#ifdef COLOR_CODED_PROGRAMS + #include "/lib/misc/colorCodedPrograms.glsl" +#endif + +//Program// +void main() { + vec4 color = texture2D(tex, texCoord); + vec4 colorP = color; + color *= glColor; + + vec3 screenPos = vec3(gl_FragCoord.xy / vec2(viewWidth, viewHeight), gl_FragCoord.z); + vec3 viewPos = ScreenToView(screenPos); + float lViewPos = length(viewPos); + vec3 playerPos = ViewToPlayer(viewPos); + + float dither = texture2D(noisetex, gl_FragCoord.xy / 128.0).b; + #ifdef TAA + dither = fract(dither + goldenRatio * mod(float(frameCounter), 3600.0)); + #endif + + #ifdef ATM_COLOR_MULTS + atmColorMult = GetAtmColorMult(); + #endif + + #ifdef VL_CLOUDS_ACTIVE + float cloudLinearDepth = texelFetch(gaux1, texelCoord, 0).r; + + if (cloudLinearDepth > 0.0) // Because Iris changes the pipeline position of opaque particles + if (pow2(cloudLinearDepth + OSIEBCA * dither) * renderDistance < min(lViewPos, renderDistance)) discard; + #endif + + float emission = 0.0, materialMask = OSIEBCA * 254.0; // No SSAO, No TAA + vec2 lmCoordM = lmCoord; + vec3 normalM = normal, geoNormal = normal, shadowMult = vec3(1.0); + vec3 worldGeoNormal = normalize(ViewToPlayer(geoNormal * 10000.0)); + #if defined IPBR && defined IPBR_PARTICLE_FEATURES + // We don't want to detect particles from the block atlas + #if MC_VERSION >= 12000 + float atlasCheck = 1100.0; // I think texture atlas got bigger in newer mc + #else + float atlasCheck = 900.0; + #endif + + if (atlasSize.x < atlasCheck) { + if (color.b > 1.15 * (color.r + color.g) && color.g > color.r * 1.25 && color.g < 0.425 && color.b > 0.75) { // Water Particle + materialMask = 0.0; + color.rgb = sqrt3(color.rgb); + color.rgb *= 0.7; + if (dither > 0.4) discard; + #ifdef OVERWORLD + } else if (color.b > 0.7 && color.r < 0.28 && color.g < 0.425 && color.g > color.r * 1.4){ // physics mod rain + if (color.a < 0.1 || isEyeInWater == 3) discard; + color.a *= rainTexOpacity; + color.rgb = sqrt2(color.rgb) * (blocklightCol * 2.0 * lmCoord.x + ambientColor * lmCoord.y * (0.7 + 0.35 * sunFactor)); + } else if (color.rgb == vec3(1.0) && color.a < 0.765 && color.a > 0.605) { // physics mod snow (default snow opacity only) + if (color.a < 0.1 || isEyeInWater == 3) discard; + color.a *= snowTexOpacity; + color.rgb = sqrt2(color.rgb) * (blocklightCol * 2.0 * lmCoord.x + lmCoord.y * (0.7 + 0.35 * sunFactor) + ambientColor * 0.2); + #endif + } else if (color.r == color.g && color.r - 0.5 * color.b < 0.06) { // Underwater Particle + if (isEyeInWater == 1) { + color.rgb = sqrt2(color.rgb) * 0.35; + if (fract(playerPos.y + cameraPosition.y) > 0.25) discard; + } + } else if (color.a < 0.99 && dot(color.rgb, color.rgb) < 1.0) { // Campfire Smoke + color.a *= 0.5; + materialMask = 0.0; + } else if (max(abs(colorP.r - colorP.b), abs(colorP.b - colorP.g)) < 0.001) { // Grayscale Particles + float dotColor = dot(color.rgb, color.rgb); + if (dotColor > 0.25 && color.g < 0.5 && (color.b > color.r * 1.1 && color.r > 0.3 || color.r > (color.g + color.b) * 3.0)) { + // Ender Particle, Crying Obsidian Particle, Redstone Particle + emission = clamp(color.r * 8.0, 1.6, 5.0); + color.rgb = pow1_5(color.rgb); + lmCoordM = vec2(0.0); + } else if (color.r > 0.83 && color.g > 0.23 && color.b < 0.4) { + // Lava Particles + emission = 2.0; + color.b *= 0.5; + color.r *= 1.2; + } + } + } + bool noSmoothLighting = false; + #else + bool noSmoothLighting = true; + #endif + + #ifdef REDUCE_CLOSE_PARTICLES + if (lViewPos - 1.0 < dither) discard; + #endif + + #ifdef GLOWING_COLORED_PARTICLES + if (atlasSize.x < 900.0) { + if (dot(glColor.rgb, vec3(1.0)) < 2.99) { + emission = 5.0; + } + } + #endif + + DoLighting(color, shadowMult, playerPos, viewPos, lViewPos, geoNormal, normalM, dither, + worldGeoNormal, lmCoordM, noSmoothLighting, false, true, + false, 0, 0.0, 1.0, emission); + + #if MC_VERSION >= 11500 + vec3 nViewPos = normalize(viewPos); + + float VdotU = dot(nViewPos, upVec); + float VdotS = dot(nViewPos, sunVec); + float sky = 0.0; + + DoFog(color.rgb, sky, lViewPos, playerPos, VdotU, VdotS, dither); + #endif + + vec3 translucentMult = mix(vec3(0.666), color.rgb * (1.0 - pow2(pow2(color.a))), color.a); + + #ifdef COLOR_CODED_PROGRAMS + ColorCodeProgram(color, -1); + #endif + + /* DRAWBUFFERS:063 */ + gl_FragData[0] = color; + gl_FragData[1] = vec4(0.0, materialMask, 0.0, 1.0); + gl_FragData[2] = vec4(1.0 - translucentMult, 1.0); +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +out vec2 texCoord; +out vec2 lmCoord; + +flat out vec3 upVec, sunVec; +out vec3 normal; + +flat out vec4 glColor; + +#ifdef CLOUD_SHADOWS + flat out vec3 eastVec; + + #if SUN_ANGLE != 0 + flat out vec3 northVec; + #endif +#endif + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + gl_Position = ftransform(); + + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + lmCoord = GetLightMapCoordinates(); + + glColor = gl_Color; + + normal = normalize(gl_NormalMatrix * gl_Normal); + upVec = normalize(gbufferModelView[1].xyz); + sunVec = GetSunVector(); + + #ifdef FLICKERING_FIX + gl_Position.z -= 0.000002; + #endif + + #ifdef CLOUD_SHADOWS + eastVec = normalize(gbufferModelView[0].xyz); + + #if SUN_ANGLE != 0 + northVec = normalize(gbufferModelView[2].xyz); + #endif + #endif +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_water.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_water.glsl new file mode 100644 index 0000000..612db58 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_water.glsl @@ -0,0 +1,373 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +flat in int mat; + +in vec2 texCoord; +in vec2 lmCoord; +in vec2 signMidCoordPos; +flat in vec2 absMidCoordPos; + +flat in vec3 upVec, sunVec, northVec, eastVec; +in vec3 playerPos; +in vec3 normal; +in vec3 viewVector; + +in vec4 glColor; + +#if WATER_STYLE >= 2 || RAIN_PUDDLES >= 1 && WATER_STYLE == 1 && WATER_MAT_QUALITY >= 2 || defined GENERATED_NORMALS || defined CUSTOM_PBR + flat in vec3 binormal, tangent; +#endif + +#ifdef POM + in vec4 vTexCoordAM; +#endif + +//Pipeline Constants// + +//Common Variables// +float NdotU = dot(normal, upVec); +float NdotUmax0 = max(NdotU, 0.0); +float SdotU = dot(sunVec, upVec); +float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; +float sunVisibility2 = sunVisibility * sunVisibility; +float shadowTimeVar1 = abs(sunVisibility - 0.5) * 2.0; +float shadowTimeVar2 = shadowTimeVar1 * shadowTimeVar1; +float shadowTime = shadowTimeVar2 * shadowTimeVar2; + +#ifdef OVERWORLD + vec3 lightVec = sunVec * ((timeAngle < 0.5325 || timeAngle > 0.9675) ? 1.0 : -1.0); +#else + vec3 lightVec = sunVec; +#endif + +#if WATER_STYLE >= 2 || RAIN_PUDDLES >= 1 && WATER_STYLE == 1 && WATER_MAT_QUALITY >= 2 || defined GENERATED_NORMALS || defined CUSTOM_PBR + mat3 tbnMatrix = mat3( + tangent.x, binormal.x, normal.x, + tangent.y, binormal.y, normal.y, + tangent.z, binormal.z, normal.z + ); +#endif + +//Common Functions// +float GetLinearDepth(float depth) { + return (2.0 * near) / (far + near - depth * (far - near)); +} + +//Includes// +#include "/lib/util/dither.glsl" +#include "/lib/util/spaceConversion.glsl" +#include "/lib/lighting/mainLighting.glsl" +#include "/lib/atmospherics/fog/mainFog.glsl" + +#ifdef OVERWORLD + #include "/lib/atmospherics/sky.glsl" +#endif + +#if WATER_REFLECT_QUALITY >= 0 + #if defined SKY_EFFECT_REFLECTION && defined OVERWORLD + #if AURORA_STYLE > 0 + #include "/lib/atmospherics/auroraBorealis.glsl" + #endif + + #ifdef NIGHT_NEBULA + #include "/lib/atmospherics/nightNebula.glsl" + #else + #include "/lib/atmospherics/stars.glsl" + #endif + + #ifdef VL_CLOUDS_ACTIVE + #include "/lib/atmospherics/clouds/mainClouds.glsl" + #endif + #endif + + #include "/lib/materials/materialMethods/reflections.glsl" +#endif + +#ifdef TAA + #include "/lib/antialiasing/jitter.glsl" +#endif + +#if defined GENERATED_NORMALS || defined COATED_TEXTURES || WATER_STYLE >= 2 + #include "/lib/util/miplevel.glsl" +#endif + +#ifdef GENERATED_NORMALS + #include "/lib/materials/materialMethods/generatedNormals.glsl" +#endif + +#if IPBR_EMISSIVE_MODE != 1 + #include "/lib/materials/materialMethods/customEmission.glsl" +#endif + +#ifdef CUSTOM_PBR + #include "/lib/materials/materialHandling/customMaterials.glsl" +#endif + +#ifdef ATM_COLOR_MULTS + #include "/lib/colors/colorMultipliers.glsl" +#endif +#ifdef MOON_PHASE_INF_ATMOSPHERE + #include "/lib/colors/moonPhaseInfluence.glsl" +#endif + +#ifdef COLOR_CODED_PROGRAMS + #include "/lib/misc/colorCodedPrograms.glsl" +#endif + +#ifdef PORTAL_EDGE_EFFECT + #include "/lib/misc/voxelization.glsl" +#endif + +#ifdef CONNECTED_GLASS_EFFECT + #include "/lib/materials/materialMethods/connectedGlass.glsl" +#endif + +//Program// +void main() { + vec4 colorP = texture2D(tex, texCoord); + vec4 color = colorP * vec4(glColor.rgb, 1.0); + + vec3 screenPos = vec3(gl_FragCoord.xy / vec2(viewWidth, viewHeight), gl_FragCoord.z); + #ifdef TAA + vec3 viewPos = ScreenToView(vec3(TAAJitter(screenPos.xy, -0.5), screenPos.z)); + #else + vec3 viewPos = ScreenToView(screenPos); + #endif + float lViewPos = length(viewPos); + + float dither = Bayer64(gl_FragCoord.xy); + #ifdef TAA + dither = fract(dither + goldenRatio * mod(float(frameCounter), 3600.0)); + #endif + + #ifdef LIGHT_COLOR_MULTS + lightColorMult = GetLightColorMult(); + #endif + #ifdef ATM_COLOR_MULTS + atmColorMult = GetAtmColorMult(); + sqrtAtmColorMult = sqrt(atmColorMult); + #endif + + #ifdef VL_CLOUDS_ACTIVE + float cloudLinearDepth = texelFetch(gaux1, texelCoord, 0).r; + + if (pow2(cloudLinearDepth + OSIEBCA * dither) * renderDistance < min(lViewPos, renderDistance)) discard; + #endif + + #if WATER_MAT_QUALITY >= 3 + float materialMask = 0.0; + #endif + + vec3 nViewPos = normalize(viewPos); + float VdotU = dot(nViewPos, upVec); + float VdotS = dot(nViewPos, sunVec); + float VdotN = dot(nViewPos, normal); + + // Materials + vec4 translucentMult = vec4(1.0); + bool noSmoothLighting = false, noDirectionalShading = false, translucentMultCalculated = false, noGeneratedNormals = false; + int subsurfaceMode = 0; + float smoothnessG = 0.0, highlightMult = 1.0, reflectMult = 0.0, emission = 0.0; + vec2 lmCoordM = lmCoord; + vec3 normalM = VdotN > 0.0 ? -normal : normal; // Inverted Iris Water Normal Workaround + vec3 geoNormal = normalM; + vec3 worldGeoNormal = normalize(ViewToPlayer(geoNormal * 10000.0)); + vec3 shadowMult = vec3(1.0); + float fresnel = clamp(1.0 + dot(normalM, nViewPos), 0.0, 1.0); + #ifdef IPBR + #include "/lib/materials/materialHandling/translucentMaterials.glsl" + + #ifdef GENERATED_NORMALS + if (!noGeneratedNormals) GenerateNormals(normalM, colorP.rgb * colorP.a * 1.5); + #endif + + #if IPBR_EMISSIVE_MODE != 1 + emission = GetCustomEmissionForIPBR(color, emission); + #endif + #else + #ifdef CUSTOM_PBR + float smoothnessD, materialMaskPh; + GetCustomMaterials(color, normalM, lmCoordM, NdotU, shadowMult, smoothnessG, smoothnessD, highlightMult, emission, materialMaskPh, viewPos, lViewPos); + reflectMult = smoothnessD; + #endif + + if (mat == 32000) { // Water + #include "/lib/materials/specificMaterials/translucents/water.glsl" + } else if (mat == 30020) { // Nether Portal + #ifdef SPECIAL_PORTAL_EFFECTS + #include "/lib/materials/specificMaterials/translucents/netherPortal.glsl" + #endif + } + #endif + + #if WATER_MAT_QUALITY >= 3 && SELECT_OUTLINE == 4 + int materialMaskInt = int(texelFetch(colortex6, texelCoord, 0).g * 255.1); + if (materialMaskInt == 252) { + materialMask = OSIEBCA * 252.0; // Versatile Selection Outline + } + #endif + + // Blending + if (!translucentMultCalculated) + translucentMult = vec4(mix(vec3(0.666), color.rgb * (1.0 - pow2(pow2(color.a))), color.a), 1.0); + + translucentMult.rgb = mix(translucentMult.rgb, vec3(1.0), min1(pow2(pow2(lViewPos / far)))); + + // Lighting + DoLighting(color, shadowMult, playerPos, viewPos, lViewPos, geoNormal, normalM, dither, + worldGeoNormal, lmCoordM, noSmoothLighting, noDirectionalShading, false, + false, subsurfaceMode, smoothnessG, highlightMult, emission); + + // Reflections + #if WATER_REFLECT_QUALITY >= 0 + #ifdef LIGHT_COLOR_MULTS + highlightColor *= lightColorMult; + #endif + #ifdef MOON_PHASE_INF_REFLECTION + highlightColor *= pow2(moonPhaseInfluence); + #endif + + float fresnelM = (pow3(fresnel) * 0.85 + 0.15) * reflectMult; + + float skyLightFactor = pow2(max(lmCoordM.y - 0.7, 0.0) * 3.33333); + #if SHADOW_QUALITY > -1 && WATER_REFLECT_QUALITY >= 2 && WATER_MAT_QUALITY >= 2 + skyLightFactor = max(skyLightFactor, min1(dot(shadowMult, shadowMult))); + #endif + + vec4 reflection = GetReflection(normalM, viewPos.xyz, nViewPos, playerPos, lViewPos, -1.0, + depthtex1, dither, skyLightFactor, fresnel, + smoothnessG, geoNormal, color.rgb, shadowMult, highlightMult); + + color.rgb = mix(color.rgb, reflection.rgb, fresnelM); + #endif + //// + + #ifdef COLOR_CODED_PROGRAMS + ColorCodeProgram(color, mat); + #endif + + float sky = 0.0; + DoFog(color.rgb, sky, lViewPos, playerPos, VdotU, VdotS, dither); + color.a *= 1.0 - sky; + + /* DRAWBUFFERS:03 */ + gl_FragData[0] = color; + gl_FragData[1] = vec4(1.0 - translucentMult.rgb, translucentMult.a); + + // supposed to be #if WATER_MAT_QUALITY >= 3 but optifine bad + #if DETAIL_QUALITY >= 3 + /* DRAWBUFFERS:036 */ + gl_FragData[2] = vec4(0.0, materialMask, 0.0, 1.0); + #endif +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +flat out int mat; + +out vec2 texCoord; +out vec2 lmCoord; +out vec2 signMidCoordPos; +flat out vec2 absMidCoordPos; + +flat out vec3 upVec, sunVec, northVec, eastVec; +out vec3 playerPos; +out vec3 normal; +out vec3 viewVector; + +out vec4 glColor; + +#if WATER_STYLE >= 2 || RAIN_PUDDLES >= 1 && WATER_STYLE == 1 && WATER_MAT_QUALITY >= 2 || defined GENERATED_NORMALS || defined CUSTOM_PBR + flat out vec3 binormal, tangent; +#endif + +#ifdef POM + out vec4 vTexCoordAM; +#endif + +//Attributes// +attribute vec4 mc_Entity; +attribute vec4 mc_midTexCoord; +attribute vec4 at_tangent; + +//Common Variables// +#if WATER_STYLE >= 2 || RAIN_PUDDLES >= 1 && WATER_STYLE == 1 && WATER_MAT_QUALITY >= 2 || defined GENERATED_NORMALS || defined CUSTOM_PBR +#else + vec3 binormal; + vec3 tangent; +#endif + +//Common Functions// + +//Includes// +#ifdef TAA + #include "/lib/antialiasing/jitter.glsl" +#endif + +#ifdef WAVING_WATER_VERTEX + #include "/lib/materials/materialMethods/wavingBlocks.glsl" +#endif + +//Program// +void main() { + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + lmCoord = GetLightMapCoordinates(); + + glColor = gl_Color; + + mat = int(mc_Entity.x + 0.5); + + normal = normalize(gl_NormalMatrix * gl_Normal); + upVec = normalize(gbufferModelView[1].xyz); + eastVec = normalize(gbufferModelView[0].xyz); + northVec = normalize(gbufferModelView[2].xyz); + sunVec = GetSunVector(); + + binormal = normalize(gl_NormalMatrix * cross(at_tangent.xyz, gl_Normal.xyz) * at_tangent.w); + tangent = normalize(gl_NormalMatrix * at_tangent.xyz); + + mat3 tbnMatrix = mat3( + tangent.x, binormal.x, normal.x, + tangent.y, binormal.y, normal.y, + tangent.z, binormal.z, normal.z + ); + + viewVector = tbnMatrix * (gl_ModelViewMatrix * gl_Vertex).xyz; + + vec2 midCoord = (gl_TextureMatrix[0] * mc_midTexCoord).st; + vec2 texMinMidCoord = texCoord - midCoord; + signMidCoordPos = sign(texMinMidCoord); + absMidCoordPos = abs(texMinMidCoord); + + #ifdef POM + vTexCoordAM.zw = abs(texMinMidCoord) * 2; + vTexCoordAM.xy = min(texCoord, midCoord - texMinMidCoord); + #endif + + vec4 position = gbufferModelViewInverse * gl_ModelViewMatrix * gl_Vertex; + playerPos = position.xyz; + + #ifdef WAVING_WATER_VERTEX + DoWave(position.xyz, mat); + #endif + + gl_Position = gl_ProjectionMatrix * gbufferModelView * position; + + #ifdef TAA + gl_Position.xy = TAAJitter(gl_Position.xy, gl_Position.w); + #endif +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_weather.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_weather.glsl new file mode 100644 index 0000000..601dc60 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/gbuffers_weather.glsl @@ -0,0 +1,95 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +flat in vec2 lmCoord; +in vec2 texCoord; + +flat in vec3 upVec, sunVec; + +flat in vec4 glColor; + +//Pipeline Constants// + +//Common Variables// +float SdotU = dot(sunVec, upVec); +float sunFactor = SdotU < 0.0 ? clamp(SdotU + 0.375, 0.0, 0.75) / 0.75 : clamp(SdotU + 0.03125, 0.0, 0.0625) / 0.0625; +float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; +float sunVisibility2 = sunVisibility * sunVisibility; + +//Common Functions// + +//Includes// +#include "/lib/colors/lightAndAmbientColors.glsl" + +#ifdef COLOR_CODED_PROGRAMS + #include "/lib/misc/colorCodedPrograms.glsl" +#endif + +//Program// +void main() { + vec4 color = texture2D(tex, texCoord); + color *= glColor; + + if (color.a < 0.1 || isEyeInWater == 3) discard; + + if (color.r + color.g < 1.5) color.a *= rainTexOpacity; + else color.a *= snowTexOpacity; + + color.rgb = sqrt3(color.rgb) * (blocklightCol * 2.0 * lmCoord.x + (ambientColor + 0.2 * lightColor) * lmCoord.y * (0.6 + 0.3 * sunFactor)); + + #ifdef COLOR_CODED_PROGRAMS + ColorCodeProgram(color, -1); + #endif + + /* DRAWBUFFERS:0 */ + gl_FragData[0] = color; +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +flat out vec2 lmCoord; +out vec2 texCoord; + +flat out vec3 upVec, sunVec; + +flat out vec4 glColor; + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + vec4 position = gbufferModelViewInverse * gl_ModelViewMatrix * gl_Vertex; + glColor = gl_Color; + + #ifdef WAVING_RAIN + float rainWavingFactor = eyeBrightnessM2; // Prevents clipping inside interiors + position.xz += rainWavingFactor * (0.4 * position.y + 0.2) * vec2(sin(frameTimeCounter * 0.3) + 0.5, sin(frameTimeCounter * 0.5) * 0.5); + position.xz *= 1.0 - 0.08 * position.y * rainWavingFactor; + #endif + + gl_Position = gl_ProjectionMatrix * gbufferModelView * position; + + texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; + lmCoord = GetLightMapCoordinates(); + + upVec = normalize(gbufferModelView[1].xyz); + sunVec = GetSunVector(); +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/shadow.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/shadow.glsl new file mode 100644 index 0000000..c0d1a44 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/shadow.glsl @@ -0,0 +1,317 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +flat in int mat; + +in vec2 texCoord; + +flat in vec3 sunVec, upVec; + +in vec4 position; +flat in vec4 glColor; + +#ifdef CONNECTED_GLASS_EFFECT + in vec2 signMidCoordPos; + flat in vec2 absMidCoordPos; +#endif + +//Pipeline Constants// + +//Common Variables// +float SdotU = dot(sunVec, upVec); +float sunVisibility = clamp(SdotU + 0.0625, 0.0, 0.125) / 0.125; + +//Common Functions// +void DoNaturalShadowCalculation(inout vec4 color1, inout vec4 color2) { + color1.rgb *= glColor.rgb; + color1.rgb = mix(vec3(1.0), color1.rgb, pow(color1.a, (1.0 - color1.a) * 0.5) * 1.05); + color1.rgb *= 1.0 - pow(color1.a, 64.0); + color1.rgb *= 0.2; // Natural Strength + + color2.rgb = normalize(color1.rgb) * 0.5; +} + +//Includes// +#ifdef CONNECTED_GLASS_EFFECT + #include "/lib/materials/materialMethods/connectedGlass.glsl" +#endif + +//Program// +void main() { + vec4 color1 = texture2DLod(tex, texCoord, 0); // Shadow Color + + #if SHADOW_QUALITY >= 1 + vec4 color2 = color1; // Light Shaft Color + + color2.rgb *= 0.25; // Natural Strength + + #if defined LIGHTSHAFTS_ACTIVE && LIGHTSHAFT_BEHAVIOUR == 1 && defined OVERWORLD + float positionYM = position.y; + #endif + + if (mat < 32008) { + if (mat < 32000) { + #ifdef CONNECTED_GLASS_EFFECT + if (mat == 30008) { // Tinted Glass + DoSimpleConnectedGlass(color1); + + #if defined LIGHTSHAFTS_ACTIVE && LIGHTSHAFT_BEHAVIOUR == 1 && defined OVERWORLD + positionYM = 0.0; // 86AHGA: For scene-aware light shafts to be less prone to get extreme under large glass planes + #endif + } + if (mat >= 31000) { // Stained Glass, Stained Glass Pane + DoSimpleConnectedGlass(color1); + + #if defined LIGHTSHAFTS_ACTIVE && LIGHTSHAFT_BEHAVIOUR == 1 && defined OVERWORLD + positionYM = 0.0; // 86AHGA + #endif + } + #endif + DoNaturalShadowCalculation(color1, color2); + } else { + if (mat == 32000) { // Water + vec3 worldPos = position.xyz + cameraPosition; + + #if defined LIGHTSHAFTS_ACTIVE && LIGHTSHAFT_BEHAVIOUR == 1 && defined OVERWORLD + // For scene-aware light shafts to be more prone to get extreme near water + positionYM += 3.5; + #endif + + // Water Caustics + #if WATER_CAUSTIC_STYLE < 3 + #if MC_VERSION >= 11300 + float wcl = GetLuminance(color1.rgb); + color1.rgb = color1.rgb * pow2(wcl) * 1.2; + #else + color1.rgb = mix(color1.rgb, vec3(GetLuminance(color1.rgb)), 0.88); + color1.rgb = pow2(color1.rgb) * vec3(2.5, 3.0, 3.0) * 0.96; + #endif + #else + #define WATER_SPEED_MULT_M WATER_SPEED_MULT * 0.035 + vec2 causticWind = vec2(frameTimeCounter * WATER_SPEED_MULT_M, 0.0); + vec2 cPos1 = worldPos.xz * 0.10 - causticWind; + vec2 cPos2 = worldPos.xz * 0.05 + causticWind; + + float cMult = 14.0; + float offset = 0.001; + + float caustic = 0.0; + caustic += dot(texture2D(gaux4, cPos1 + vec2(offset, 0.0)).rg, vec2(cMult)) + - dot(texture2D(gaux4, cPos1 - vec2(offset, 0.0)).rg, vec2(cMult)); + caustic += dot(texture2D(gaux4, cPos2 + vec2(0.0, offset)).rg, vec2(cMult)) + - dot(texture2D(gaux4, cPos2 - vec2(0.0, offset)).rg, vec2(cMult)); + color1.rgb = vec3(max0(min1(caustic * 0.8 + 0.35)) * 0.65 + 0.35); + + #if MC_VERSION < 11300 + color1.rgb *= vec3(0.3, 0.45, 0.9); + #endif + #endif + + #if MC_VERSION >= 11300 + #if WATERCOLOR_MODE >= 2 + color1.rgb *= glColor.rgb; + #else + color1.rgb *= vec3(0.3, 0.45, 0.9); + #endif + #endif + color1.rgb *= vec3(0.6, 0.8, 1.1); + //// + + // Underwater Light Shafts + vec3 worldPosM = worldPos; + + #if WATER_FOG_MULT > 100 + #define WATER_FOG_MULT_M WATER_FOG_MULT * 0.01; + worldPosM *= WATER_FOG_MULT_M; + #endif + + vec2 waterWind = vec2(syncedTime * 0.01, 0.0); + float waterNoise = texture2D(noisetex, worldPosM.xz * 0.012 - waterWind).g; + waterNoise += texture2D(noisetex, worldPosM.xz * 0.05 + waterWind).g; + + float factor = max(2.5 - 0.025 * length(position.xz), 0.8333) * 1.3; + waterNoise = pow(waterNoise * 0.5, factor) * factor * 1.3; + + #if MC_VERSION >= 11300 && WATERCOLOR_MODE >= 2 + color2.rgb = normalize(sqrt1(glColor.rgb)) * vec3(0.24, 0.22, 0.26); + #else + color2.rgb = vec3(0.08, 0.12, 0.195); + #endif + color2.rgb *= waterNoise * (1.0 + sunVisibility - rainFactor); + //// + + #ifdef UNDERWATERCOLOR_CHANGED + color1.rgb *= vec3(UNDERWATERCOLOR_RM, UNDERWATERCOLOR_GM, UNDERWATERCOLOR_BM); + color2.rgb *= vec3(UNDERWATERCOLOR_RM, UNDERWATERCOLOR_GM, UNDERWATERCOLOR_BM); + #endif + } else /*if (mat == 32004)*/ { // Ice + color1.rgb *= color1.rgb; + color1.rgb *= color1.rgb; + color1.rgb = mix(vec3(1.0), color1.rgb, pow(color1.a, (1.0 - color1.a) * 0.5) * 1.05); + color1.rgb *= 1.0 - pow(color1.a, 64.0); + color1.rgb *= 0.28; + + color2.rgb = normalize(pow(color1.rgb, vec3(0.25))) * 0.5; + } + } + } else { + if (mat < 32020) { // Glass, Glass Pane, Beacon (32008, 32012, 32016) + #ifdef CONNECTED_GLASS_EFFECT + if (mat == 32008) { // Glass + DoSimpleConnectedGlass(color1); + } + if (mat == 32012) { // Glass Pane + DoSimpleConnectedGlass(color1); + } + #endif + if (color1.a > 0.5) color1 = vec4(0.0, 0.0, 0.0, 1.0); + else color1 = vec4(vec3(0.2 * (1.0 - GLASS_OPACITY)), 1.0); + color2.rgb = vec3(0.3); + + #if defined LIGHTSHAFTS_ACTIVE && LIGHTSHAFT_BEHAVIOUR == 1 && defined OVERWORLD + positionYM = 0.0; // 86AHGA + #endif + } else { + DoNaturalShadowCalculation(color1, color2); + } + } + #endif + + gl_FragData[0] = color1; // Shadow Color + + #if SHADOW_QUALITY >= 1 + #if defined LIGHTSHAFTS_ACTIVE && LIGHTSHAFT_BEHAVIOUR == 1 && defined OVERWORLD + color2.a = 0.25 + max0(positionYM * 0.05); // consistencyMEJHRI7DG + #endif + + gl_FragData[1] = color2; // Light Shaft Color + #endif +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +flat out int mat; + +out vec2 texCoord; + +flat out vec3 sunVec, upVec; + +out vec4 position; +flat out vec4 glColor; + +#ifdef CONNECTED_GLASS_EFFECT + out vec2 signMidCoordPos; + flat out vec2 absMidCoordPos; +#endif + +//Pipeline Constants// +#if COLORED_LIGHTING_INTERNAL > 0 + #extension GL_ARB_shader_image_load_store : enable +#endif + +//Attributes// +attribute vec4 mc_Entity; + +#if defined PERPENDICULAR_TWEAKS || defined WAVING_ANYTHING_TERRAIN || defined WAVING_WATER_VERTEX || defined CONNECTED_GLASS_EFFECT + attribute vec4 mc_midTexCoord; +#endif + +#if COLORED_LIGHTING_INTERNAL > 0 + attribute vec3 at_midBlock; +#endif + +//Common Variables// +vec2 lmCoord; + +#if COLORED_LIGHTING_INTERNAL > 0 + writeonly uniform uimage3D voxel_img; + + #ifdef PUDDLE_VOXELIZATION + writeonly uniform uimage2D puddle_img; + #endif +#endif + +//Common Functions// + +//Includes// +#include "/lib/util/spaceConversion.glsl" + +#if defined WAVING_ANYTHING_TERRAIN || defined WAVING_WATER_VERTEX + #include "/lib/materials/materialMethods/wavingBlocks.glsl" +#endif + +#if COLORED_LIGHTING_INTERNAL > 0 + #include "/lib/misc/voxelization.glsl" + + #ifdef PUDDLE_VOXELIZATION + #include "/lib/misc/puddleVoxelization.glsl" + #endif +#endif + +//Program// +void main() { + texCoord = gl_MultiTexCoord0.xy; + lmCoord = GetLightMapCoordinates(); + glColor = gl_Color; + sunVec = GetSunVector(); + upVec = normalize(gbufferModelView[1].xyz); + mat = int(mc_Entity.x + 0.5); + + position = shadowModelViewInverse * shadowProjectionInverse * ftransform(); + + #if defined WAVING_ANYTHING_TERRAIN || defined WAVING_WATER_VERTEX + DoWave(position.xyz, mat); + #endif + + #ifdef CONNECTED_GLASS_EFFECT + vec2 midCoord = (gl_TextureMatrix[0] * mc_midTexCoord).st; + vec2 texMinMidCoord = texCoord - midCoord; + signMidCoordPos = sign(texMinMidCoord); + absMidCoordPos = abs(texMinMidCoord); + #endif + + #ifdef PERPENDICULAR_TWEAKS + if (mat == 10005 || mat == 10017) { // Foliage + #ifndef CONNECTED_GLASS_EFFECT + vec2 midCoord = (gl_TextureMatrix[0] * mc_midTexCoord).st; + vec2 texMinMidCoord = texCoord - midCoord; + #endif + if (texMinMidCoord.y < 0.0) { + vec3 normal = gl_NormalMatrix * gl_Normal; + position.xyz += normal * 0.35; + } + } + #endif + + if (mat == 32000) { // Water + position.y += 0.015 * max0(length(position.xyz) - 50.0); + } + + #if COLORED_LIGHTING_INTERNAL > 0 + if (gl_VertexID % 4 == 0) { + UpdateVoxelMap(mat); + #ifdef PUDDLE_VOXELIZATION + UpdatePuddleVoxelMap(mat); + #endif + } + #endif + + gl_Position = shadowProjection * shadowModelView * position; + + float lVertexPos = sqrt(gl_Position.x * gl_Position.x + gl_Position.y * gl_Position.y); + float distortFactor = lVertexPos * shadowMapBias + (1.0 - shadowMapBias); + gl_Position.xy *= 1.0 / distortFactor; + gl_Position.z = gl_Position.z * 0.2; +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/shadowcomp.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/shadowcomp.glsl new file mode 100644 index 0000000..0262185 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/shadowcomp.glsl @@ -0,0 +1,137 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Shadowcomp 1//////////Shadowcomp 1//////////Shadowcomp 1////////// +#ifdef SHADOWCOMP + +#define OPTIMIZATION_ACL_HALF_RATE_UPDATES +#define OPTIMIZATION_ACL_BEHIND_PLAYER + +layout (local_size_x = 8, local_size_y = 8, local_size_z = 8) in; +#if COLORED_LIGHTING_INTERNAL == 128 + const ivec3 workGroups = ivec3(16, 8, 16); +#elif COLORED_LIGHTING_INTERNAL == 192 + const ivec3 workGroups = ivec3(24, 12, 24); +#elif COLORED_LIGHTING_INTERNAL == 256 + const ivec3 workGroups = ivec3(32, 16, 32); +#elif COLORED_LIGHTING_INTERNAL == 384 + const ivec3 workGroups = ivec3(48, 24, 48); +#elif COLORED_LIGHTING_INTERNAL == 512 + const ivec3 workGroups = ivec3(64, 32, 64); +#elif COLORED_LIGHTING_INTERNAL == 768 + const ivec3 workGroups = ivec3(96, 32, 96); +#elif COLORED_LIGHTING_INTERNAL == 1024 + const ivec3 workGroups = ivec3(128, 32, 128); +#endif + +//Common Variables// +ivec3[6] face_offsets = ivec3[6]( + ivec3( 1, 0, 0), + ivec3( 0, 1, 0), + ivec3( 0, 0, 1), + ivec3(-1, 0, 0), + ivec3( 0, -1, 0), + ivec3( 0, 0, -1) +); + +writeonly uniform image3D floodfill_img; +writeonly uniform image3D floodfill_img_copy; + +//Common Functions// +vec4 GetLightSample(sampler3D lightSampler, ivec3 pos) { + return texelFetch(lightSampler, pos, 0); +} + +vec4 GetLightAverage(sampler3D lightSampler, ivec3 pos, ivec3 voxelVolumeSize) { + vec4 light_old = GetLightSample(lightSampler, pos); + vec4 light_px = GetLightSample(lightSampler, clamp(pos + face_offsets[0], ivec3(0), voxelVolumeSize - 1)); + vec4 light_py = GetLightSample(lightSampler, clamp(pos + face_offsets[1], ivec3(0), voxelVolumeSize - 1)); + vec4 light_pz = GetLightSample(lightSampler, clamp(pos + face_offsets[2], ivec3(0), voxelVolumeSize - 1)); + vec4 light_nx = GetLightSample(lightSampler, clamp(pos + face_offsets[3], ivec3(0), voxelVolumeSize - 1)); + vec4 light_ny = GetLightSample(lightSampler, clamp(pos + face_offsets[4], ivec3(0), voxelVolumeSize - 1)); + vec4 light_nz = GetLightSample(lightSampler, clamp(pos + face_offsets[5], ivec3(0), voxelVolumeSize - 1)); + + vec4 light = light_old + light_px + light_py + light_pz + light_nx + light_ny + light_nz; + return light / 7.2; // Slightly higher than 7 to prevent the light from travelling too far +} + +//Includes// +#include "/lib/misc/voxelization.glsl" + +//Program// +void main() { + ivec3 pos = ivec3(gl_GlobalInvocationID); + vec3 posM = vec3(pos) / vec3(voxelVolumeSize); + vec3 posOffset = floor(previousCameraPosition) - floor(cameraPosition); + ivec3 previousPos = ivec3(vec3(pos) - posOffset); + + ivec3 absPosFromCenter = abs(pos - voxelVolumeSize / 2); + if (absPosFromCenter.x + absPosFromCenter.y + absPosFromCenter.z > 16) { + #ifdef OPTIMIZATION_ACL_BEHIND_PLAYER + vec4 viewPos = gbufferProjectionInverse * vec4(0.0, 0.0, 1.0, 1.0); + viewPos /= viewPos.w; + vec3 nPlayerPos = normalize(mat3(gbufferModelViewInverse) * viewPos.xyz); + if (dot(normalize(posM - 0.5), nPlayerPos) < 0.0) { + #ifdef COLORED_LIGHT_FOG + if ((frameCounter & 1) == 0) { + imageStore(floodfill_img_copy, pos, GetLightSample(floodfill_sampler, previousPos)); + } else { + imageStore(floodfill_img, pos, GetLightSample(floodfill_sampler_copy, previousPos)); + } + #endif + return; + } + #endif + } + + vec4 light = vec4(0.0); + uint voxel = texelFetch(voxel_sampler, pos, 0).x; + + if ((frameCounter & 1) == 0) { + if (voxel == 1u) { + imageStore(floodfill_img_copy, pos, vec4(0.0)); + return; + } + #ifdef OPTIMIZATION_ACL_HALF_RATE_UPDATES + if (posM.x < 0.5) { + imageStore(floodfill_img_copy, pos, GetLightSample(floodfill_sampler, previousPos)); + return; + } + #endif + light = GetLightAverage(floodfill_sampler, previousPos, voxelVolumeSize); + } else { + if (voxel == 1u) { + imageStore(floodfill_img, pos, vec4(0.0)); + return; + } + #ifdef OPTIMIZATION_ACL_HALF_RATE_UPDATES + if (posM.x > 0.5) { + imageStore(floodfill_img, pos, GetLightSample(floodfill_sampler_copy, previousPos)); + return; + } + #endif + light = GetLightAverage(floodfill_sampler_copy, previousPos, voxelVolumeSize); + } + + if (voxel == 0u || voxel >= 200u) { + if (voxel >= 200u) { + vec3 tint = specialTintColor[min(voxel - 200u, specialTintColor.length() - 1u)]; + light.rgb *= tint; + } + } else { + vec4 color = GetSpecialBlocklightColor(int(voxel)); + light = max(light, vec4(pow2(color.rgb), color.a)); + } + + if ((frameCounter & 1) == 0) { + imageStore(floodfill_img_copy, pos, light); + } else { + imageStore(floodfill_img, pos, light); + } +} + +#endif \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/template.glsl b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/template.glsl new file mode 100644 index 0000000..ee3be62 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/program/template.glsl @@ -0,0 +1,42 @@ +///////////////////////////////////// +// Complementary Shaders by EminGT // +///////////////////////////////////// + +//Common// +#include "/lib/common.glsl" + +//////////Fragment Shader//////////Fragment Shader//////////Fragment Shader////////// +#ifdef FRAGMENT_SHADER + +//Pipeline Constants// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + +} + +#endif + +//////////Vertex Shader//////////Vertex Shader//////////Vertex Shader////////// +#ifdef VERTEX_SHADER + +//Attributes// + +//Common Variables// + +//Common Functions// + +//Includes// + +//Program// +void main() { + +} + +#endif diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/shaders.properties b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/shaders.properties new file mode 100644 index 0000000..d25cf17 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/shaders.properties @@ -0,0 +1,209 @@ +# Profiles + profile.POTATO = SHADOW_QUALITY=-1 shadowDistance=64.0 ENTITY_SHADOWS_DEFINE=-1 WATER_REFLECT_QUALITY=1 BLOCK_REFLECT_QUALITY=0 LIGHTSHAFT_QUALI_DEFINE=0 SSAO_QUALI_DEFINE=2 FXAA_DEFINE=-1 DETAIL_QUALITY=0 CLOUD_QUALITY=1 ANISOTROPIC_FILTER=0 COLORED_LIGHTING=0 + profile.VERYLOW = SHADOW_QUALITY=0 shadowDistance=64.0 ENTITY_SHADOWS_DEFINE=-1 WATER_REFLECT_QUALITY=1 BLOCK_REFLECT_QUALITY=0 LIGHTSHAFT_QUALI_DEFINE=0 SSAO_QUALI_DEFINE=2 FXAA_DEFINE=-1 DETAIL_QUALITY=0 CLOUD_QUALITY=1 ANISOTROPIC_FILTER=0 COLORED_LIGHTING=0 + profile.LOW = SHADOW_QUALITY=0 shadowDistance=96.0 ENTITY_SHADOWS_DEFINE=-1 WATER_REFLECT_QUALITY=2 BLOCK_REFLECT_QUALITY=1 LIGHTSHAFT_QUALI_DEFINE=0 SSAO_QUALI_DEFINE=2 FXAA_DEFINE=-1 DETAIL_QUALITY=2 CLOUD_QUALITY=2 ANISOTROPIC_FILTER=0 COLORED_LIGHTING=0 + profile.MEDIUM = SHADOW_QUALITY=1 shadowDistance=128.0 ENTITY_SHADOWS_DEFINE=-1 WATER_REFLECT_QUALITY=2 BLOCK_REFLECT_QUALITY=1 LIGHTSHAFT_QUALI_DEFINE=1 SSAO_QUALI_DEFINE=2 FXAA_DEFINE=1 DETAIL_QUALITY=2 CLOUD_QUALITY=2 ANISOTROPIC_FILTER=0 COLORED_LIGHTING=0 + profile.HIGH = SHADOW_QUALITY=2 shadowDistance=192.0 ENTITY_SHADOWS_DEFINE=-1 WATER_REFLECT_QUALITY=2 BLOCK_REFLECT_QUALITY=3 LIGHTSHAFT_QUALI_DEFINE=2 SSAO_QUALI_DEFINE=2 FXAA_DEFINE=1 DETAIL_QUALITY=2 CLOUD_QUALITY=2 ANISOTROPIC_FILTER=0 COLORED_LIGHTING=0 + profile.VERYHIGH = SHADOW_QUALITY=3 shadowDistance=224.0 ENTITY_SHADOWS_DEFINE=-1 WATER_REFLECT_QUALITY=2 BLOCK_REFLECT_QUALITY=3 LIGHTSHAFT_QUALI_DEFINE=2 SSAO_QUALI_DEFINE=2 FXAA_DEFINE=1 DETAIL_QUALITY=3 CLOUD_QUALITY=3 ANISOTROPIC_FILTER=8 COLORED_LIGHTING=256 + profile.ULTRA = SHADOW_QUALITY=4 shadowDistance=256.0 ENTITY_SHADOWS_DEFINE=-1 WATER_REFLECT_QUALITY=2 BLOCK_REFLECT_QUALITY=3 LIGHTSHAFT_QUALI_DEFINE=3 SSAO_QUALI_DEFINE=2 FXAA_DEFINE=1 DETAIL_QUALITY=3 CLOUD_QUALITY=3 ANISOTROPIC_FILTER=8 COLORED_LIGHTING=512 + +# Screen Setup + screen= [INFORMATION] SHADER_STYLE RP_MODE [PERFORMANCE_SETTINGS] [CAMERA_SETTINGS] [LIGHTING_SETTINGS] [ATMOSPHERE_SETTINGS] [MATERIAL_SETTINGS] [OTHER_SETTINGS] + + screen.INFORMATION= info0 info1 info2 info3 info4 info5 info8 info9 info10 + + screen.PERFORMANCE_SETTINGS= SHADOW_QUALITY shadowDistance LIGHTSHAFT_QUALI_DEFINE ENTITY_SHADOWS_DEFINE DETAIL_QUALITY CLOUD_QUALITY WATER_REFLECT_QUALITY BLOCK_REFLECT_QUALITY FXAA_DEFINE SSAO_QUALI_DEFINE COLORED_LIGHTING ANISOTROPIC_FILTER + + screen.MATERIAL_SETTINGS= [IPBR_SETTINGS] [CUSTOM_PBR_SETTINGS] [WATER_SETTINGS] RAIN_PUDDLES [WAVING_SETTINGS] SPECIAL_PORTAL_EFFECTS + screen.IPBR_SETTINGS= GENERATED_NORMALS COATED_TEXTURES GENERATED_NORMAL_MULT COATED_TEXTURE_MULT ENTITY_GN_AND_CT [GLOWING_ORE_SETTINGS] [GLOWING_STUFF_SETTINGS] [OTHER_IPBR_SETTINGS] + screen.GLOWING_ORE_SETTINGS= GLOWING_ORE_MASTER GLOWING_ORE_MULT GLOWING_ORE_IRON GLOWING_ORE_GOLD GLOWING_ORE_COPPER GLOWING_ORE_REDSTONE GLOWING_ORE_LAPIS GLOWING_ORE_EMERALD GLOWING_ORE_DIAMOND GLOWING_ORE_NETHERQUARTZ GLOWING_ORE_NETHERGOLD GLOWING_ORE_GILDEDBLACKSTONE GLOWING_ORE_ANCIENTDEBRIS GLOWING_ORE_MODDED + screen.GLOWING_STUFF_SETTINGS= GLOWING_AMETHYST GLOWING_LICHEN EMISSIVE_REDSTONE_BLOCK EMISSIVE_LAPIS_BLOCK GLOWING_ARMOR_TRIM + screen.OTHER_IPBR_SETTINGS= IPBR_EMISSIVE_MODE IPBR_PARTICLE_FEATURES IPBR_COMPATIBILITY_MODE FANCY_GLASS GREEN_SCREEN_LIME + screen.CUSTOM_PBR_SETTINGS= NORMAL_MAP_STRENGTH CUSTOM_EMISSION_INTENSITY POM POM_DEPTH POM_QUALITY POM_DISTANCE POM_LIGHTING_MODE POM_ALLOW_CUTOUT DIRECTIONAL_BLOCKLIGHT + screen.WATER_SETTINGS= WATER_STYLE_DEFINE WATER_CAUSTIC_STYLE_DEFINE [WATER_COLOR_SETTINGS] [UNDERWATER_COLOR_SETTINGS] WATERCOLOR_MODE BRIGHT_CAVE_WATER WATER_ALPHA_MULT WATER_FOG_MULT WATER_FOAM_I WATER_REFRACTION_INTENSITY WAVING_WATER_VERTEX [WATER_WAVE_SETTINGS] + screen.WATER_COLOR_SETTINGS= WATERCOLOR_R WATERCOLOR_G WATERCOLOR_B + screen.UNDERWATER_COLOR_SETTINGS= UNDERWATERCOLOR_R UNDERWATERCOLOR_G UNDERWATERCOLOR_B + screen.WATER_WAVE_SETTINGS= WATER_BUMPINESS WATER_BUMP_SMALL WATER_BUMP_MED WATER_BUMP_BIG WATER_SPEED_MULT WATER_SIZE_MULT + screen.WAVING_SETTINGS= WAVING_FOLIAGE WAVING_LEAVES WAVING_WATER_VERTEX WAVING_LAVA WAVING_LILY_PAD WAVING_RAIN WAVING_SPEED WAVING_I NO_WAVING_INDOORS WAVING_I_RAIN_MULT + screen.CAMERA_SETTINGS= [TONEMAP_SETTINGS] [WORLD_BLUR_SETTINGS] BLOOM BLOOM_STRENGTH VIGNETTE_R IMAGE_SHARPENING UNDERWATER_DISTORTION CHROMA_ABERRATION MOTION_BLURRING MOTION_BLURRING_STRENGTH LENSFLARE_MODE LENSFLARE_I TAA_MODE DISTANT_LIGHT_BOKEH + screen.TONEMAP_SETTINGS= T_EXPOSURE TM_WHITE_CURVE T_UPPER_CURVE T_LOWER_CURVE T_SATURATION T_VIBRANCE [COLORGRADING_SETTINGS] + screen.COLORGRADING_SETTINGS= COLORGRADING GR_RR GR_GR GR_RG GR_GG GR_RB GR_GB GR_BR GR_RC GR_BG GR_GC GR_BB GR_BC + screen.WORLD_BLUR_SETTINGS= WORLD_BLUR WB_FOV_SCALED WB_CHROMATIC WB_ANAMORPHIC WB_DOF_I WB_DOF_FOCUS WB_DB_DAY_I WB_DB_NIGHT_I WB_DB_RAIN_I WB_DB_WATER_I WB_DB_NETHER_I WB_DB_END_I + screen.ATMOSPHERE_SETTINGS= [ATM_COLOR_SETTINGS] [CLOUD_SETTINGS] [FOG_SETTINGS] [SUN_MOON_SETTINGS] [NETHER_SETTINGS] [WEATHER_SETTINGS] AURORA_STYLE_DEFINE AURORA_CONDITION NIGHT_NEBULA NIGHT_NEBULA_I NIGHT_STAR_AMOUNT RAINBOWS + screen.CLOUD_SETTINGS= CLOUD_STYLE_DEFINE CLOUD_ALT1 CLOUD_SPEED_MULT CLOUD_CLOSED_AREA_CHECK CLOUD_SHADOWS [CLOUD_COLOR_SETTINGS] [CLOUD_UNBOUND_SETTINGS] [CLOUD_REIMAGINED_SETTINGS] + screen.CLOUD_COLOR_SETTINGS= CLOUD_R CLOUD_G CLOUD_B + screen.CLOUD_UNBOUND_SETTINGS= CLOUD_UNBOUND_AMOUNT CLOUD_UNBOUND_SIZE_MULT CLOUD_UNBOUND_RAIN_ADD + screen.CLOUD_REIMAGINED_SETTINGS= DOUBLE_REIM_CLOUDS CLOUD_ALT2 + screen.FOG_SETTINGS= BORDER_FOG CAVE_FOG ATM_FOG_MULT ATM_FOG_DISTANCE ATM_FOG_ALTITUDE LIGHTSHAFT_BEHAVIOUR SPECIAL_PALE_GARDEN_LIGHTSHAFTS LIGHTSHAFT_SMOKE LIGHTSHAFT_DAY_I LIGHTSHAFT_NIGHT_I LIGHTSHAFT_RAIN_I + screen.SUN_MOON_SETTINGS= SUN_MOON_STYLE_DEFINE SUN_ANGLE SUN_MOON_HORIZON SUN_MOON_DURING_RAIN + screen.NETHER_SETTINGS= NETHER_VIEW_LIMIT NETHER_COLOR_MODE NETHER_STORM NETHER_STORM_I NETHER_STORM_LOWER_ALT NETHER_STORM_HEIGHT + screen.WEATHER_SETTINGS= RAIN_STYLE SPECIAL_BIOME_WEATHER WEATHER_TEX_OPACITY SUN_MOON_DURING_RAIN + screen.ATM_COLOR_SETTINGS= ATM_COLOR_MULTS [MORNING_ATM_MULTS] [NOON_ATM_MULTS] [NIGHT_ATM_MULTS] [RAIN_ATM_MULTS] [NETHER_ATM_MULTS] [END_ATM_MULTS] + screen.MORNING_ATM_MULTS= ATM_MORNING_R ATM_MORNING_G ATM_MORNING_B ATM_MORNING_I + screen.NOON_ATM_MULTS= ATM_NOON_R ATM_NOON_G ATM_NOON_B ATM_NOON_I + screen.NIGHT_ATM_MULTS= ATM_NIGHT_R ATM_NIGHT_G ATM_NIGHT_B ATM_NIGHT_I + screen.RAIN_ATM_MULTS= ATM_RAIN_R ATM_RAIN_G ATM_RAIN_B ATM_RAIN_I + screen.NETHER_ATM_MULTS= ATM_NETHER_R ATM_NETHER_G ATM_NETHER_B ATM_NETHER_I + screen.END_ATM_MULTS= ATM_END_R ATM_END_G ATM_END_B ATM_END_I + screen.LIGHTING_SETTINGS= [LIGHT_COLOR_SETTINGS] AMBIENT_MULT [BLOCKLIGHT_COLOR_SETTINGS] SHADOW_SMOOTHING [PIXELATED_LIGHTING_SETTINGS] CAVE_LIGHTING HELD_LIGHTING_MODE BLOCKLIGHT_FLICKERING SSAO_I VANILLAAO_I PLAYER_SHADOW + screen.LIGHT_COLOR_SETTINGS= LIGHT_COLOR_MULTS [MORNING_LIGHT_MULTS] [NOON_LIGHT_MULTS] [NIGHT_LIGHT_MULTS] [RAIN_LIGHT_MULTS] [NETHER_LIGHT_MULTS] [END_LIGHT_MULTS] + screen.MORNING_LIGHT_MULTS= LIGHT_MORNING_R LIGHT_MORNING_G LIGHT_MORNING_B LIGHT_MORNING_I + screen.NOON_LIGHT_MULTS= LIGHT_NOON_R LIGHT_NOON_G LIGHT_NOON_B LIGHT_NOON_I + screen.NIGHT_LIGHT_MULTS= LIGHT_NIGHT_R LIGHT_NIGHT_G LIGHT_NIGHT_B LIGHT_NIGHT_I + screen.RAIN_LIGHT_MULTS= LIGHT_RAIN_R LIGHT_RAIN_G LIGHT_RAIN_B LIGHT_RAIN_I + screen.NETHER_LIGHT_MULTS= LIGHT_NETHER_R LIGHT_NETHER_G LIGHT_NETHER_B LIGHT_NETHER_I + screen.END_LIGHT_MULTS= LIGHT_END_R LIGHT_END_G LIGHT_END_B LIGHT_END_I + screen.BLOCKLIGHT_COLOR_SETTINGS= XLIGHT_R XLIGHT_G XLIGHT_B XLIGHT_I + screen.PIXELATED_LIGHTING_SETTINGS= PIXELATED_SHADOWS PIXELATED_BLOCKLIGHT PIXELATED_AO PIXEL_SCALE + screen.OTHER_SETTINGS= [SELECT_OUTLINE_SETTINGS] [WORLD_OUTLINE_SETTINGS] [MOON_PHASE_INF_SETTINGS] [ACL_FEATURES_SETTINGS] SHOW_LIGHT_LEVEL REDUCE_CLOSE_PARTICLES LESS_LAVA_FOG SNOWY_WORLD HAND_SWAYING COLOR_CODED_PROGRAMS GLOWING_COLORED_PARTICLES + screen.SELECT_OUTLINE_SETTINGS= SELECT_OUTLINE SELECT_OUTLINE_I SELECT_OUTLINE_R SELECT_OUTLINE_G SELECT_OUTLINE_B SELECT_OUTLINE_AUTO_HIDE + screen.WORLD_OUTLINE_SETTINGS= WORLD_OUTLINE WORLD_OUTLINE_THICKNESS WORLD_OUTLINE_I WORLD_OUTLINE_ON_ENTITIES DARK_OUTLINE DARK_OUTLINE_THICKNESS + screen.MOON_PHASE_INF_SETTINGS= MOON_PHASE_INF_LIGHT MOON_PHASE_INF_ATMOSPHERE MOON_PHASE_INF_REFLECTION MOON_PHASE_FULL MOON_PHASE_PARTIAL MOON_PHASE_DARK + screen.ACL_FEATURES_SETTINGS= COLORED_LIGHT_SATURATION COLORED_LIGHT_FOG COLORED_LIGHT_FOG_I CONNECTED_GLASS_EFFECT PORTAL_EDGE_EFFECT PUDDLE_VOXELIZATION COLORED_CANDLE_LIGHT + +# Set Sliders + sliders=shadowDistance BLOOM_STRENGTH CLOUD_ALT1 CLOUD_ALT2 T_EXPOSURE TM_WHITE_CURVE T_LOWER_CURVE T_UPPER_CURVE T_SATURATION T_VIBRANCE MOTION_BLURRING_STRENGTH NORMAL_MAP_STRENGTH CUSTOM_EMISSION_INTENSITY IMAGE_SHARPENING SUN_ANGLE ATM_FOG_MULT ATM_FOG_DISTANCE ATM_FOG_ALTITUDE CAVE_LIGHTING GR_RR GR_RG GR_RB GR_RC GR_GR GR_GG GR_GB GR_GC GR_BR GR_BG GR_BB GR_BC POM_DEPTH POM_QUALITY POM_DISTANCE WATER_BUMPINESS WATER_BUMP_SMALL WATER_BUMP_MED WATER_BUMP_BIG WATER_SPEED_MULT WATER_SIZE_MULT WATER_REFRACTION_INTENSITY SELECT_OUTLINE_I SELECT_OUTLINE_R SELECT_OUTLINE_G SELECT_OUTLINE_B LIGHT_NOON_R LIGHT_NOON_G LIGHT_NOON_B LIGHT_NOON_I ATM_NOON_R ATM_NOON_G ATM_NOON_B ATM_NOON_I LIGHT_MORNING_R LIGHT_MORNING_G LIGHT_MORNING_B LIGHT_MORNING_I ATM_MORNING_R ATM_MORNING_G ATM_MORNING_B ATM_MORNING_I LIGHT_NIGHT_R LIGHT_NIGHT_G LIGHT_NIGHT_B LIGHT_NIGHT_I ATM_NIGHT_R ATM_NIGHT_G ATM_NIGHT_B ATM_NIGHT_I LIGHT_RAIN_R LIGHT_RAIN_G LIGHT_RAIN_B LIGHT_RAIN_I ATM_RAIN_R ATM_RAIN_G ATM_RAIN_B ATM_RAIN_I LIGHT_NETHER_R LIGHT_NETHER_G LIGHT_NETHER_B LIGHT_NETHER_I ATM_NETHER_R ATM_NETHER_G ATM_NETHER_B ATM_NETHER_I LIGHT_END_R LIGHT_END_G LIGHT_END_B LIGHT_END_I ATM_END_R ATM_END_G ATM_END_B ATM_END_I WORLD_OUTLINE_I AMBIENT_MULT GENERATED_NORMAL_MULT COATED_TEXTURE_MULT LIGHTSHAFT_DAY_I LIGHTSHAFT_NIGHT_I LIGHTSHAFT_RAIN_I WATERCOLOR_R WATERCOLOR_G WATERCOLOR_B WATER_FOAM_I WATER_ALPHA_MULT WATER_FOG_MULT UNDERWATERCOLOR_R UNDERWATERCOLOR_G UNDERWATERCOLOR_B GLOWING_ORE_MULT SSAO_I VANILLAAO_I CHROMA_ABERRATION XLIGHT_R XLIGHT_G XLIGHT_B NIGHT_NEBULA_I WEATHER_TEX_OPACITY NETHER_STORM_LOWER_ALT NETHER_STORM_HEIGHT NETHER_STORM_I CLOUD_UNBOUND_AMOUNT CLOUD_UNBOUND_SIZE_MULT CLOUD_UNBOUND_RAIN_ADD CLOUD_SPEED_MULT WB_DOF_I WB_DOF_FOCUS WB_DB_DAY_I WB_DB_NIGHT_I WB_DB_RAIN_I WB_DB_WATER_I WB_DB_NETHER_I WB_DB_END_I WAVING_SPEED WAVING_I MOON_PHASE_FULL MOON_PHASE_PARTIAL MOON_PHASE_DARK LENSFLARE_I SHADOW_SMOOTHING BLOCKLIGHT_FLICKERING NETHER_VIEW_LIMIT CLOUD_R CLOUD_G CLOUD_B WAVING_I_RAIN_MULT COLORED_LIGHT_FOG_I XLIGHT_I COLORED_LIGHT_SATURATION PIXEL_SCALE + +# Special Define Handling + # Needed to disable colored lighting related code in shaders.properties + #ifdef MC_OS_MAC + #define COLORED_LIGHTING 0 + #endif + +# Pipeline Settings + oldHandLight = false + oldLighting = false + separateAo = true + underwaterOverlay = false + vignette = false + beacon.beam.depth = true + rain.depth = false + particles.ordering = mixed + +# Program Settings + alphaTest.gbuffers_weather=GREATER 0.0001 + alphaTest.gbuffers_skytextured=GREATER 0.0001 + alphaTest.gbuffers_skybasic=GREATER 0.0001 + alphaTest.gbuffers_water=GREATER 0.0001 + alphaTest.gbuffers_beaconbeam=GREATER 0.0001 + alphaTest.gbuffers_damagedblock=GREATER 0.004 + alphaTest.gbuffers_spidereyes=GREATER 0.0001 + alphaTest.gbuffers_clouds=GREATER 0.0001 + +# Link Programs to Options + # Note: Old Optifine seems to always treat "#if INT_DEFINE == X" checks as "#if 0 == X" so treat 0 as the default behaviour + # This quirk doesn't apply to "enabled=DEFINE" checks. Those work fine as long as the define is a boolean. + program.world0/composite2.enabled=MOTION_BLURRING + program.world-1/composite2.enabled=MOTION_BLURRING + program.world1/composite2.enabled=MOTION_BLURRING + program.world0/composite4.enabled=BLOOM + program.world-1/composite4.enabled=BLOOM + program.world1/composite4.enabled=BLOOM + #if SHADOW_QUALITY == -1 + program.world0/shadow.enabled=false + program.world-1/shadow.enabled=false + program.world1/shadow.enabled=false + #endif + #if FXAA_DEFINE == -1 + program.world0/composite7.enabled=FXAA + program.world-1/composite7.enabled=FXAA + program.world1/composite7.enabled=FXAA + #endif + #if COLORED_LIGHTING == 0 + program.world0/shadowcomp.enabled=false + program.world-1/shadowcomp.enabled=false + program.world1/shadowcomp.enabled=false + #endif + +# Miscellaneous + #if ENTITY_SHADOWS_DEFINE == -1 + shadowEntities = false + shadowBlockEntities = false + #if PLAYER_SHADOW == 1 + shadowPlayer = true + #endif + #endif + #if PLAYER_SHADOW == -1 + shadowPlayer = false + #endif + #ifdef DISTANT_HORIZONS + blend.dh_water=SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ONE_MINUS_SRC_ALPHA + blend.gbuffers_water=SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ONE_MINUS_SRC_ALPHA + dhShadow.enabled = false + dhClouds = off + #endif + #if COLORED_LIGHTING > 0 + iris.features.optional = CUSTOM_IMAGES + #endif + #if COLORED_LIGHTING > 0 + shadow.culling = reversed + voxelizeLightBlocks = false + #if COLORED_LIGHTING == 128 + image.voxel_img = voxel_sampler red_integer r8ui unsigned_int true false 128 64 128 + image.floodfill_img = floodfill_sampler rgba rgba16f half_float false false 128 64 128 + image.floodfill_img_copy = floodfill_sampler_copy rgba rgba16f half_float false false 128 64 128 + #elif COLORED_LIGHTING == 192 + image.voxel_img = voxel_sampler red_integer r8ui unsigned_int true false 192 96 192 + image.floodfill_img = floodfill_sampler rgba rgba16f half_float false false 192 96 192 + image.floodfill_img_copy = floodfill_sampler_copy rgba rgba16f half_float false false 192 96 192 + #elif COLORED_LIGHTING == 256 + image.voxel_img = voxel_sampler red_integer r8ui unsigned_int true false 256 128 256 + image.floodfill_img = floodfill_sampler rgba rgba16f half_float false false 256 128 256 + image.floodfill_img_copy = floodfill_sampler_copy rgba rgba16f half_float false false 256 128 256 + #elif COLORED_LIGHTING == 384 + image.voxel_img = voxel_sampler red_integer r8ui unsigned_int true false 384 192 384 + image.floodfill_img = floodfill_sampler rgba rgba16f half_float false false 384 192 384 + image.floodfill_img_copy = floodfill_sampler_copy rgba rgba16f half_float false false 384 192 384 + #elif COLORED_LIGHTING == 512 + image.voxel_img = voxel_sampler red_integer r8ui unsigned_int true false 512 256 512 + image.floodfill_img = floodfill_sampler rgba rgba16f half_float false false 512 256 512 + image.floodfill_img_copy = floodfill_sampler_copy rgba rgba16f half_float false false 512 256 512 + #elif COLORED_LIGHTING == 768 + image.voxel_img = voxel_sampler red_integer r8ui unsigned_int true false 768 256 768 + image.floodfill_img = floodfill_sampler rgba rgba16f half_float false false 768 256 768 + image.floodfill_img_copy = floodfill_sampler_copy rgba rgba16f half_float false false 768 256 768 + #elif COLORED_LIGHTING == 1024 + image.voxel_img = voxel_sampler red_integer r8ui unsigned_int true false 1024 256 1024 + image.floodfill_img = floodfill_sampler rgba rgba16f half_float false false 1024 256 1024 + image.floodfill_img_copy = floodfill_sampler_copy rgba rgba16f half_float false false 1024 256 1024 + #endif + + #if RAIN_PUDDLES > 0 + image.puddle_img = puddle_sampler red_integer r8ui unsigned_int true false 128 128 + #endif + #endif +# Custom Noise + texture.noise=lib/textures/noise.png + texture.deferred.colortex3=lib/textures/cloud-water.png + texture.gbuffers.gaux4=lib/textures/cloud-water.png + +# Custom Uniforms + uniform.float.framemod8 = frameCounter % 8 + uniform.float.isEyeInCave = if(isEyeInWater == 0, 1.0 - smooth(202, if(eyeAltitude < 5.0, eyeBrightness.y / 240.0, 1.0), 6, 12), 0.0) + + uniform.float.inDry = smooth(101, if(in(biome_precipitation, 0), 1, 0), 20, 10) + uniform.float.inRainy = smooth(102, if(in(biome_precipitation, 1), 1, 0), 20, 10) + uniform.float.inSnowy = smooth(103, if(in(biome_precipitation, 2), 1, 0), 20, 10) + + variable.float.difX = cameraPosition.x - previousCameraPosition.x + variable.float.difY = cameraPosition.y - previousCameraPosition.y + variable.float.difZ = cameraPosition.z - previousCameraPosition.z + variable.float.difSum = abs(difX) + abs(difY) + abs(difZ) + variable.float.moving = if(difSum > 0.0 && difSum < 1.0, 1, 0) + variable.float.moved = smooth(2, moving, 0, 31536000) + uniform.float.starter = smooth(3, moved, 20, 20) + + uniform.float.frameTimeSmooth = smooth(5, frameTime, 5, 5) + uniform.float.eyeBrightnessM = smooth(4, eyeBrightness.y / 240.0, 5, 5) + uniform.float.eyeBrightnessM2 = smooth(4, if(eyeBrightness.y > 239.0, 1, 0), 2, 2) + uniform.float.rainFactor = smooth(1, rainStrength, 3, 3) + + uniform.float.inNetherWastes=smooth(50, if(in(biome, BIOME_NETHER_WASTES), 1, 0), 15, 15) + uniform.float.inCrimsonForest=smooth(51, if(in(biome, BIOME_CRIMSON_FOREST), 1, 0), 15, 15) + uniform.float.inWarpedForest=smooth(52, if(in(biome, BIOME_WARPED_FOREST), 1, 0), 15, 15) + uniform.float.inBasaltDeltas=smooth(53, if(in(biome, BIOME_BASALT_DELTAS), 1, 0), 15, 15) + uniform.float.inSoulValley=smooth(54, if(in(biome, BIOME_SOUL_SAND_VALLEY), 1, 0), 15, 15) + + uniform.float.inPaleGarden=smooth(54, if(in(biome, BIOME_PALE_GARDEN), 1, 0), 15, 15) + + uniform.float.maxBlindnessDarkness=max(blindness, darknessFactor) \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite.fsh new file mode 100644 index 0000000..fae1789 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define COMPOSITE + +#include "/program/composite.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite.vsh new file mode 100644 index 0000000..7bb5141 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define COMPOSITE + +#include "/program/composite.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite2.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite2.fsh new file mode 100644 index 0000000..6cc08b6 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite2.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define COMPOSITE2 + +#include "/program/composite2.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite2.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite2.vsh new file mode 100644 index 0000000..1a44979 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite2.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define COMPOSITE2 + +#include "/program/composite2.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite3.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite3.fsh new file mode 100644 index 0000000..41aaea1 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite3.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define COMPOSITE3 + +#include "/program/composite3.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite3.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite3.vsh new file mode 100644 index 0000000..8f2e1ef --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite3.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define COMPOSITE3 + +#include "/program/composite3.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite4.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite4.fsh new file mode 100644 index 0000000..710be00 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite4.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define COMPOSITE4 + +#include "/program/composite4.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite4.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite4.vsh new file mode 100644 index 0000000..a606d30 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite4.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define COMPOSITE4 + +#include "/program/composite4.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite5.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite5.fsh new file mode 100644 index 0000000..f198bc1 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite5.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define COMPOSITE5 + +#include "/program/composite5.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite5.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite5.vsh new file mode 100644 index 0000000..d137c1e --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite5.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define COMPOSITE5 + +#include "/program/composite5.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite6.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite6.fsh new file mode 100644 index 0000000..c9845a3 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite6.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define COMPOSITE6 + +#include "/program/composite6.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite6.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite6.vsh new file mode 100644 index 0000000..f5a3ec0 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite6.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define COMPOSITE6 + +#include "/program/composite6.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite7.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite7.fsh new file mode 100644 index 0000000..a3b40be --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite7.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define COMPOSITE7 + +#include "/program/composite7.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite7.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite7.vsh new file mode 100644 index 0000000..3d9380f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/composite7.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define COMPOSITE7 + +#include "/program/composite7.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/deferred1.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/deferred1.fsh new file mode 100644 index 0000000..766a657 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/deferred1.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define DEFERRED1 + +#include "/program/deferred1.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/deferred1.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/deferred1.vsh new file mode 100644 index 0000000..4fb36af --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/deferred1.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define DEFERRED1 + +#include "/program/deferred1.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_terrain.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_terrain.fsh new file mode 100644 index 0000000..8763ca3 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_terrain.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define DH_TERRAIN + +#include "/program/dh_terrain.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_terrain.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_terrain.vsh new file mode 100644 index 0000000..606fd56 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_terrain.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define DH_TERRAIN + +#include "/program/dh_terrain.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_water.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_water.fsh new file mode 100644 index 0000000..d2d1483 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_water.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define DH_WATER + +#include "/program/dh_water.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_water.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_water.vsh new file mode 100644 index 0000000..267f96f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/dh_water.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define DH_WATER + +#include "/program/dh_water.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/final.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/final.fsh new file mode 100644 index 0000000..9daf520 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/final.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define FINAL + +#include "/program/final.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/final.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/final.vsh new file mode 100644 index 0000000..12a4f42 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/final.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define FINAL + +#include "/program/final.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_armor_glint.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_armor_glint.fsh new file mode 100644 index 0000000..0f81aa4 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_armor_glint.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_ARMOR_GLINT + +#include "/program/gbuffers_armor_glint.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_armor_glint.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_armor_glint.vsh new file mode 100644 index 0000000..5136882 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_armor_glint.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_ARMOR_GLINT + +#include "/program/gbuffers_armor_glint.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_basic.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_basic.fsh new file mode 100644 index 0000000..64a508e --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_basic.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_BASIC + +#include "/program/gbuffers_basic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_basic.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_basic.vsh new file mode 100644 index 0000000..177aee4 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_basic.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_BASIC + +#include "/program/gbuffers_basic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_beaconbeam.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_beaconbeam.fsh new file mode 100644 index 0000000..2943ecd --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_beaconbeam.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_BEACONBEAM + +#include "/program/gbuffers_beaconbeam.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_beaconbeam.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_beaconbeam.vsh new file mode 100644 index 0000000..a6b10e9 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_beaconbeam.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_BEACONBEAM + +#include "/program/gbuffers_beaconbeam.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_block.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_block.fsh new file mode 100644 index 0000000..c32e321 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_block.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_BLOCK + +#include "/program/gbuffers_block.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_block.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_block.vsh new file mode 100644 index 0000000..0983b02 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_block.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_BLOCK + +#include "/program/gbuffers_block.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_clouds.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_clouds.fsh new file mode 100644 index 0000000..6fbcd1a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_clouds.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_CLOUDS + +#include "/program/gbuffers_clouds.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_clouds.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_clouds.vsh new file mode 100644 index 0000000..a34eccf --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_clouds.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_CLOUDS + +#include "/program/gbuffers_clouds.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_damagedblock.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_damagedblock.fsh new file mode 100644 index 0000000..37c5fb2 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_damagedblock.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_DAMAGEDBLOCK + +#include "/program/gbuffers_damagedblock.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_damagedblock.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_damagedblock.vsh new file mode 100644 index 0000000..960ded3 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_damagedblock.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_DAMAGEDBLOCK + +#include "/program/gbuffers_damagedblock.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities.fsh new file mode 100644 index 0000000..c9a8f80 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_ENTITIES + +#include "/program/gbuffers_entities.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities.vsh new file mode 100644 index 0000000..889a031 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_ENTITIES + +#include "/program/gbuffers_entities.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities_glowing.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities_glowing.fsh new file mode 100644 index 0000000..d564fad --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities_glowing.fsh @@ -0,0 +1,8 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_ENTITIES +#define GBUFFERS_ENTITIES_GLOWING + +#include "/program/gbuffers_entities.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities_glowing.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities_glowing.vsh new file mode 100644 index 0000000..dd4a249 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_entities_glowing.vsh @@ -0,0 +1,8 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_ENTITIES +#define GBUFFERS_ENTITIES_GLOWING + +#include "/program/gbuffers_entities.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_hand.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_hand.fsh new file mode 100644 index 0000000..0624efb --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_hand.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_HAND + +#include "/program/gbuffers_hand.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_hand.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_hand.vsh new file mode 100644 index 0000000..5409d8d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_hand.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_HAND + +#include "/program/gbuffers_hand.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_line.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_line.fsh new file mode 100644 index 0000000..58c261d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_line.fsh @@ -0,0 +1,8 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_BASIC +#define GBUFFERS_LINE + +#include "/program/gbuffers_basic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_line.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_line.vsh new file mode 100644 index 0000000..4e8be3d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_line.vsh @@ -0,0 +1,8 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_BASIC +#define GBUFFERS_LINE + +#include "/program/gbuffers_basic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skybasic.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skybasic.fsh new file mode 100644 index 0000000..08bf8d8 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skybasic.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_SKYBASIC + +#include "/program/gbuffers_skybasic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skybasic.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skybasic.vsh new file mode 100644 index 0000000..e58e620 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skybasic.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_SKYBASIC + +#include "/program/gbuffers_skybasic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skytextured.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skytextured.fsh new file mode 100644 index 0000000..3ffd34a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skytextured.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_SKYTEXTURED + +#include "/program/gbuffers_skytextured.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skytextured.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skytextured.vsh new file mode 100644 index 0000000..f792149 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_skytextured.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_SKYTEXTURED + +#include "/program/gbuffers_skytextured.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_spidereyes.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_spidereyes.fsh new file mode 100644 index 0000000..a778796 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_spidereyes.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_SPIDEREYES + +#include "/program/gbuffers_spidereyes.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_spidereyes.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_spidereyes.vsh new file mode 100644 index 0000000..8ae1682 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_spidereyes.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_SPIDEREYES + +#include "/program/gbuffers_spidereyes.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_terrain.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_terrain.fsh new file mode 100644 index 0000000..2ceb55b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_terrain.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_TERRAIN + +#include "/program/gbuffers_terrain.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_terrain.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_terrain.vsh new file mode 100644 index 0000000..8dab530 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_terrain.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_TERRAIN + +#include "/program/gbuffers_terrain.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_textured.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_textured.fsh new file mode 100644 index 0000000..5df967d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_textured.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_TEXTURED + +#include "/program/gbuffers_textured.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_textured.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_textured.vsh new file mode 100644 index 0000000..99ae96a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_textured.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_TEXTURED + +#include "/program/gbuffers_textured.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_water.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_water.fsh new file mode 100644 index 0000000..aae07af --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_water.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_WATER + +#include "/program/gbuffers_water.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_water.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_water.vsh new file mode 100644 index 0000000..1d7a022 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_water.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_WATER + +#include "/program/gbuffers_water.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_weather.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_weather.fsh new file mode 100644 index 0000000..9eafe4a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_weather.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define GBUFFERS_WEATHER + +#include "/program/gbuffers_weather.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_weather.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_weather.vsh new file mode 100644 index 0000000..06f8576 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/gbuffers_weather.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define GBUFFERS_WEATHER + +#include "/program/gbuffers_weather.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/shadow.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/shadow.fsh new file mode 100644 index 0000000..92cfee1 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/shadow.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define NETHER +#define SHADOW + +#include "/program/shadow.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/shadow.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/shadow.vsh new file mode 100644 index 0000000..9f5e031 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/shadow.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define NETHER +#define SHADOW + +#include "/program/shadow.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/shadowcomp.csh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/shadowcomp.csh new file mode 100644 index 0000000..3c1d2b0 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world-1/shadowcomp.csh @@ -0,0 +1,7 @@ +#version 430 compatibility + +#define COMPUTE_SHADER +#define NETHER +#define SHADOWCOMP + +#include "/program/shadowcomp.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite.fsh new file mode 100644 index 0000000..dad90a8 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define COMPOSITE + +#include "/program/composite.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite.vsh new file mode 100644 index 0000000..0f78245 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define COMPOSITE + +#include "/program/composite.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite2.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite2.fsh new file mode 100644 index 0000000..f1f7e1a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite2.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define COMPOSITE2 + +#include "/program/composite2.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite2.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite2.vsh new file mode 100644 index 0000000..f903444 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite2.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define COMPOSITE2 + +#include "/program/composite2.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite3.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite3.fsh new file mode 100644 index 0000000..e84ba3e --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite3.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define COMPOSITE3 + +#include "/program/composite3.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite3.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite3.vsh new file mode 100644 index 0000000..62cda7a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite3.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define COMPOSITE3 + +#include "/program/composite3.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite4.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite4.fsh new file mode 100644 index 0000000..fa3387b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite4.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define COMPOSITE4 + +#include "/program/composite4.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite4.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite4.vsh new file mode 100644 index 0000000..bf8857c --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite4.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define COMPOSITE4 + +#include "/program/composite4.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite5.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite5.fsh new file mode 100644 index 0000000..4fa6319 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite5.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define COMPOSITE5 + +#include "/program/composite5.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite5.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite5.vsh new file mode 100644 index 0000000..d6d7b0a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite5.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define COMPOSITE5 + +#include "/program/composite5.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite6.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite6.fsh new file mode 100644 index 0000000..8822b30 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite6.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define COMPOSITE6 + +#include "/program/composite6.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite6.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite6.vsh new file mode 100644 index 0000000..2583e20 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite6.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define COMPOSITE6 + +#include "/program/composite6.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite7.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite7.fsh new file mode 100644 index 0000000..6c29473 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite7.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define COMPOSITE7 + +#include "/program/composite7.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite7.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite7.vsh new file mode 100644 index 0000000..8e57b6b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/composite7.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define COMPOSITE7 + +#include "/program/composite7.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/deferred1.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/deferred1.fsh new file mode 100644 index 0000000..6098b13 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/deferred1.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define DEFERRED1 + +#include "/program/deferred1.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/deferred1.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/deferred1.vsh new file mode 100644 index 0000000..fad016d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/deferred1.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define DEFERRED1 + +#include "/program/deferred1.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_terrain.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_terrain.fsh new file mode 100644 index 0000000..93f0c95 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_terrain.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define DH_TERRAIN + +#include "/program/dh_terrain.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_terrain.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_terrain.vsh new file mode 100644 index 0000000..ef77607 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_terrain.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define DH_TERRAIN + +#include "/program/dh_terrain.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_water.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_water.fsh new file mode 100644 index 0000000..db7563c --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_water.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define DH_WATER + +#include "/program/dh_water.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_water.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_water.vsh new file mode 100644 index 0000000..f4581b0 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/dh_water.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define DH_WATER + +#include "/program/dh_water.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/final.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/final.fsh new file mode 100644 index 0000000..929fab7 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/final.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define FINAL + +#include "/program/final.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/final.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/final.vsh new file mode 100644 index 0000000..8c2e575 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/final.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define FINAL + +#include "/program/final.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_armor_glint.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_armor_glint.fsh new file mode 100644 index 0000000..58fe3b8 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_armor_glint.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_ARMOR_GLINT + +#include "/program/gbuffers_armor_glint.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_armor_glint.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_armor_glint.vsh new file mode 100644 index 0000000..a2b2ac5 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_armor_glint.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_ARMOR_GLINT + +#include "/program/gbuffers_armor_glint.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_basic.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_basic.fsh new file mode 100644 index 0000000..f13d648 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_basic.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_BASIC + +#include "/program/gbuffers_basic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_basic.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_basic.vsh new file mode 100644 index 0000000..cdee473 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_basic.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_BASIC + +#include "/program/gbuffers_basic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_beaconbeam.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_beaconbeam.fsh new file mode 100644 index 0000000..271c7fa --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_beaconbeam.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_BEACONBEAM + +#include "/program/gbuffers_beaconbeam.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_beaconbeam.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_beaconbeam.vsh new file mode 100644 index 0000000..46cd4ef --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_beaconbeam.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_BEACONBEAM + +#include "/program/gbuffers_beaconbeam.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_block.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_block.fsh new file mode 100644 index 0000000..479fe43 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_block.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_BLOCK + +#include "/program/gbuffers_block.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_block.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_block.vsh new file mode 100644 index 0000000..497e2e9 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_block.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_BLOCK + +#include "/program/gbuffers_block.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_clouds.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_clouds.fsh new file mode 100644 index 0000000..030c0ed --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_clouds.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_CLOUDS + +#include "/program/gbuffers_clouds.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_clouds.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_clouds.vsh new file mode 100644 index 0000000..1e29c7f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_clouds.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_CLOUDS + +#include "/program/gbuffers_clouds.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_damagedblock.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_damagedblock.fsh new file mode 100644 index 0000000..c27e992 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_damagedblock.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_DAMAGEDBLOCK + +#include "/program/gbuffers_damagedblock.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_damagedblock.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_damagedblock.vsh new file mode 100644 index 0000000..6eba41a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_damagedblock.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_DAMAGEDBLOCK + +#include "/program/gbuffers_damagedblock.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities.fsh new file mode 100644 index 0000000..ed4cba5 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_ENTITIES + +#include "/program/gbuffers_entities.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities.vsh new file mode 100644 index 0000000..09b502e --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_ENTITIES + +#include "/program/gbuffers_entities.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities_glowing.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities_glowing.fsh new file mode 100644 index 0000000..d76a61f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities_glowing.fsh @@ -0,0 +1,8 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_ENTITIES +#define GBUFFERS_ENTITIES_GLOWING + +#include "/program/gbuffers_entities.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities_glowing.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities_glowing.vsh new file mode 100644 index 0000000..abb6aa5 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_entities_glowing.vsh @@ -0,0 +1,8 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_ENTITIES +#define GBUFFERS_ENTITIES_GLOWING + +#include "/program/gbuffers_entities.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_hand.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_hand.fsh new file mode 100644 index 0000000..922d299 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_hand.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_HAND + +#include "/program/gbuffers_hand.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_hand.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_hand.vsh new file mode 100644 index 0000000..76fd7c1 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_hand.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_HAND + +#include "/program/gbuffers_hand.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_line.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_line.fsh new file mode 100644 index 0000000..f1c68c1 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_line.fsh @@ -0,0 +1,8 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_BASIC +#define GBUFFERS_LINE + +#include "/program/gbuffers_basic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_line.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_line.vsh new file mode 100644 index 0000000..4df1974 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_line.vsh @@ -0,0 +1,8 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_BASIC +#define GBUFFERS_LINE + +#include "/program/gbuffers_basic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skybasic.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skybasic.fsh new file mode 100644 index 0000000..c8624c2 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skybasic.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_SKYBASIC + +#include "/program/gbuffers_skybasic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skybasic.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skybasic.vsh new file mode 100644 index 0000000..0fbc252 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skybasic.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_SKYBASIC + +#include "/program/gbuffers_skybasic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skytextured.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skytextured.fsh new file mode 100644 index 0000000..116db5e --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skytextured.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_SKYTEXTURED + +#include "/program/gbuffers_skytextured.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skytextured.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skytextured.vsh new file mode 100644 index 0000000..5e793ca --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_skytextured.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_SKYTEXTURED + +#include "/program/gbuffers_skytextured.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_spidereyes.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_spidereyes.fsh new file mode 100644 index 0000000..3dace05 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_spidereyes.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_SPIDEREYES + +#include "/program/gbuffers_spidereyes.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_spidereyes.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_spidereyes.vsh new file mode 100644 index 0000000..1350630 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_spidereyes.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_SPIDEREYES + +#include "/program/gbuffers_spidereyes.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_terrain.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_terrain.fsh new file mode 100644 index 0000000..79df238 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_terrain.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_TERRAIN + +#include "/program/gbuffers_terrain.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_terrain.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_terrain.vsh new file mode 100644 index 0000000..0abbcf9 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_terrain.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_TERRAIN + +#include "/program/gbuffers_terrain.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_textured.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_textured.fsh new file mode 100644 index 0000000..e498e40 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_textured.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_TEXTURED + +#include "/program/gbuffers_textured.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_textured.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_textured.vsh new file mode 100644 index 0000000..2e296e6 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_textured.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_TEXTURED + +#include "/program/gbuffers_textured.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_water.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_water.fsh new file mode 100644 index 0000000..0059b60 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_water.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_WATER + +#include "/program/gbuffers_water.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_water.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_water.vsh new file mode 100644 index 0000000..b6fd22b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_water.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_WATER + +#include "/program/gbuffers_water.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_weather.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_weather.fsh new file mode 100644 index 0000000..1f9c579 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_weather.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define GBUFFERS_WEATHER + +#include "/program/gbuffers_weather.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_weather.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_weather.vsh new file mode 100644 index 0000000..4f9d4ec --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/gbuffers_weather.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define GBUFFERS_WEATHER + +#include "/program/gbuffers_weather.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/shadow.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/shadow.fsh new file mode 100644 index 0000000..5926def --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/shadow.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define OVERWORLD +#define SHADOW + +#include "/program/shadow.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/shadow.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/shadow.vsh new file mode 100644 index 0000000..7e3546b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/shadow.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define OVERWORLD +#define SHADOW + +#include "/program/shadow.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/shadowcomp.csh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/shadowcomp.csh new file mode 100644 index 0000000..bcf2c31 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world0/shadowcomp.csh @@ -0,0 +1,7 @@ +#version 430 compatibility + +#define COMPUTE_SHADER +#define OVERWORLD +#define SHADOWCOMP + +#include "/program/shadowcomp.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite.fsh new file mode 100644 index 0000000..2595a61 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define COMPOSITE + +#include "/program/composite.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite.vsh new file mode 100644 index 0000000..610f285 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define COMPOSITE + +#include "/program/composite.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite2.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite2.fsh new file mode 100644 index 0000000..829c5a3 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite2.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define COMPOSITE2 + +#include "/program/composite2.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite2.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite2.vsh new file mode 100644 index 0000000..cca9727 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite2.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define COMPOSITE2 + +#include "/program/composite2.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite3.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite3.fsh new file mode 100644 index 0000000..171cf29 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite3.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define COMPOSITE3 + +#include "/program/composite3.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite3.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite3.vsh new file mode 100644 index 0000000..afe746f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite3.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define COMPOSITE3 + +#include "/program/composite3.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite4.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite4.fsh new file mode 100644 index 0000000..0153d35 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite4.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define COMPOSITE4 + +#include "/program/composite4.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite4.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite4.vsh new file mode 100644 index 0000000..e6b0fff --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite4.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define COMPOSITE4 + +#include "/program/composite4.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite5.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite5.fsh new file mode 100644 index 0000000..b322d2e --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite5.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define COMPOSITE5 + +#include "/program/composite5.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite5.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite5.vsh new file mode 100644 index 0000000..75de49a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite5.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define COMPOSITE5 + +#include "/program/composite5.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite6.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite6.fsh new file mode 100644 index 0000000..c94f04d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite6.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define COMPOSITE6 + +#include "/program/composite6.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite6.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite6.vsh new file mode 100644 index 0000000..c803ba7 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite6.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define COMPOSITE6 + +#include "/program/composite6.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite7.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite7.fsh new file mode 100644 index 0000000..8563949 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite7.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define COMPOSITE7 + +#include "/program/composite7.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite7.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite7.vsh new file mode 100644 index 0000000..28acd20 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/composite7.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define COMPOSITE7 + +#include "/program/composite7.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/deferred1.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/deferred1.fsh new file mode 100644 index 0000000..84534e3 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/deferred1.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define DEFERRED1 + +#include "/program/deferred1.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/deferred1.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/deferred1.vsh new file mode 100644 index 0000000..2a219a2 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/deferred1.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define DEFERRED1 + +#include "/program/deferred1.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_terrain.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_terrain.fsh new file mode 100644 index 0000000..6050936 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_terrain.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define DH_TERRAIN + +#include "/program/dh_terrain.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_terrain.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_terrain.vsh new file mode 100644 index 0000000..db291b0 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_terrain.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define DH_TERRAIN + +#include "/program/dh_terrain.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_water.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_water.fsh new file mode 100644 index 0000000..5d89c56 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_water.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define DH_WATER + +#include "/program/dh_water.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_water.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_water.vsh new file mode 100644 index 0000000..98c1626 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/dh_water.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define DH_WATER + +#include "/program/dh_water.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/final.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/final.fsh new file mode 100644 index 0000000..55c2234 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/final.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define FINAL + +#include "/program/final.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/final.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/final.vsh new file mode 100644 index 0000000..d1f0594 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/final.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define FINAL + +#include "/program/final.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_armor_glint.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_armor_glint.fsh new file mode 100644 index 0000000..e78df41 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_armor_glint.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_ARMOR_GLINT + +#include "/program/gbuffers_armor_glint.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_armor_glint.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_armor_glint.vsh new file mode 100644 index 0000000..7777023 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_armor_glint.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_ARMOR_GLINT + +#include "/program/gbuffers_armor_glint.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_basic.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_basic.fsh new file mode 100644 index 0000000..ae83ebd --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_basic.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_BASIC + +#include "/program/gbuffers_basic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_basic.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_basic.vsh new file mode 100644 index 0000000..6c7a181 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_basic.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_BASIC + +#include "/program/gbuffers_basic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_beaconbeam.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_beaconbeam.fsh new file mode 100644 index 0000000..747b947 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_beaconbeam.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_BEACONBEAM + +#include "/program/gbuffers_beaconbeam.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_beaconbeam.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_beaconbeam.vsh new file mode 100644 index 0000000..20de7ac --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_beaconbeam.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_BEACONBEAM + +#include "/program/gbuffers_beaconbeam.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_block.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_block.fsh new file mode 100644 index 0000000..5771e1d --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_block.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_BLOCK + +#include "/program/gbuffers_block.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_block.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_block.vsh new file mode 100644 index 0000000..4541d62 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_block.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_BLOCK + +#include "/program/gbuffers_block.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_clouds.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_clouds.fsh new file mode 100644 index 0000000..a2f62a2 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_clouds.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_CLOUDS + +#include "/program/gbuffers_clouds.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_clouds.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_clouds.vsh new file mode 100644 index 0000000..90673b3 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_clouds.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_CLOUDS + +#include "/program/gbuffers_clouds.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_damagedblock.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_damagedblock.fsh new file mode 100644 index 0000000..88eabd7 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_damagedblock.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_DAMAGEDBLOCK + +#include "/program/gbuffers_damagedblock.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_damagedblock.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_damagedblock.vsh new file mode 100644 index 0000000..fb19727 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_damagedblock.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_DAMAGEDBLOCK + +#include "/program/gbuffers_damagedblock.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities.fsh new file mode 100644 index 0000000..79660d9 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_ENTITIES + +#include "/program/gbuffers_entities.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities.vsh new file mode 100644 index 0000000..69f2e9f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_ENTITIES + +#include "/program/gbuffers_entities.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities_glowing.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities_glowing.fsh new file mode 100644 index 0000000..030727c --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities_glowing.fsh @@ -0,0 +1,8 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_ENTITIES +#define GBUFFERS_ENTITIES_GLOWING + +#include "/program/gbuffers_entities.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities_glowing.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities_glowing.vsh new file mode 100644 index 0000000..6f76621 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_entities_glowing.vsh @@ -0,0 +1,8 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_ENTITIES +#define GBUFFERS_ENTITIES_GLOWING + +#include "/program/gbuffers_entities.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_hand.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_hand.fsh new file mode 100644 index 0000000..1cc9097 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_hand.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_HAND + +#include "/program/gbuffers_hand.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_hand.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_hand.vsh new file mode 100644 index 0000000..5988429 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_hand.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_HAND + +#include "/program/gbuffers_hand.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_line.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_line.fsh new file mode 100644 index 0000000..f979206 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_line.fsh @@ -0,0 +1,8 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_BASIC +#define GBUFFERS_LINE + +#include "/program/gbuffers_basic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_line.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_line.vsh new file mode 100644 index 0000000..bd68a35 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_line.vsh @@ -0,0 +1,8 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_BASIC +#define GBUFFERS_LINE + +#include "/program/gbuffers_basic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skybasic.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skybasic.fsh new file mode 100644 index 0000000..042a02c --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skybasic.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_SKYBASIC + +#include "/program/gbuffers_skybasic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skybasic.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skybasic.vsh new file mode 100644 index 0000000..a415dd7 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skybasic.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_SKYBASIC + +#include "/program/gbuffers_skybasic.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skytextured.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skytextured.fsh new file mode 100644 index 0000000..45ca756 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skytextured.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_SKYTEXTURED + +#include "/program/gbuffers_skytextured.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skytextured.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skytextured.vsh new file mode 100644 index 0000000..4325a57 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_skytextured.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_SKYTEXTURED + +#include "/program/gbuffers_skytextured.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_spidereyes.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_spidereyes.fsh new file mode 100644 index 0000000..3704d64 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_spidereyes.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_SPIDEREYES + +#include "/program/gbuffers_spidereyes.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_spidereyes.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_spidereyes.vsh new file mode 100644 index 0000000..5e13fae --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_spidereyes.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_SPIDEREYES + +#include "/program/gbuffers_spidereyes.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_terrain.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_terrain.fsh new file mode 100644 index 0000000..5fc09bf --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_terrain.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_TERRAIN + +#include "/program/gbuffers_terrain.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_terrain.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_terrain.vsh new file mode 100644 index 0000000..7e8ceeb --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_terrain.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_TERRAIN + +#include "/program/gbuffers_terrain.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_textured.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_textured.fsh new file mode 100644 index 0000000..af8149a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_textured.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_TEXTURED + +#include "/program/gbuffers_textured.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_textured.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_textured.vsh new file mode 100644 index 0000000..b79fbac --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_textured.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_TEXTURED + +#include "/program/gbuffers_textured.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_water.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_water.fsh new file mode 100644 index 0000000..468355f --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_water.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_WATER + +#include "/program/gbuffers_water.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_water.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_water.vsh new file mode 100644 index 0000000..6056a6b --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_water.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_WATER + +#include "/program/gbuffers_water.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_weather.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_weather.fsh new file mode 100644 index 0000000..24bb38a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_weather.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define GBUFFERS_WEATHER + +#include "/program/gbuffers_weather.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_weather.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_weather.vsh new file mode 100644 index 0000000..5c798a7 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/gbuffers_weather.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define GBUFFERS_WEATHER + +#include "/program/gbuffers_weather.glsl" \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/shadow.fsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/shadow.fsh new file mode 100644 index 0000000..5023327 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/shadow.fsh @@ -0,0 +1,7 @@ +#version 130 + +#define FRAGMENT_SHADER +#define END +#define SHADOW + +#include "/program/shadow.glsl" diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/shadow.vsh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/shadow.vsh new file mode 100644 index 0000000..c874834 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/shadow.vsh @@ -0,0 +1,7 @@ +#version 130 + +#define VERTEX_SHADER +#define END +#define SHADOW + +#include "/program/shadow.glsl" diff --git a/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/shadowcomp.csh b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/shadowcomp.csh new file mode 100644 index 0000000..da7a532 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/shaderpacks/ComplementaryUnbound_r5.5.1test/shaders/world1/shadowcomp.csh @@ -0,0 +1,7 @@ +#version 430 compatibility + +#define COMPUTE_SHADER +#define END +#define SHADOWCOMP + +#include "/program/shadowcomp.glsl" \ No newline at end of file