├── shaders ├── textures │ ├── clouds.png │ ├── noise.png │ ├── noise.png.mcmeta │ ├── title.png │ ├── clouds.png.mcmeta │ ├── sponsor0.png │ ├── sponsor1.png │ └── thumbCF.png ├── world-1 │ ├── final.vsh │ ├── final.fsh │ ├── deferred.vsh │ ├── deferred1.vsh │ ├── shadow.vsh │ ├── composite.fsh │ ├── composite.vsh │ ├── composite1.vsh │ ├── composite2.vsh │ ├── composite3.vsh │ ├── composite4.vsh │ ├── composite5.vsh │ ├── composite6.vsh │ ├── composite7.vsh │ ├── deferred.fsh │ ├── deferred1.fsh │ ├── shadow.fsh │ ├── composite1.fsh │ ├── composite2.fsh │ ├── composite3.fsh │ ├── composite4.fsh │ ├── composite5.fsh │ ├── composite6.fsh │ ├── composite7.fsh │ ├── gbuffers_line.vsh │ ├── dh_water.vsh │ ├── gbuffers_line.fsh │ ├── shadow_block.vsh │ ├── shadow_solid.vsh │ ├── shadow_water.vsh │ ├── dh_generic.vsh │ ├── dh_terrain.vsh │ ├── dh_water.fsh │ ├── gbuffers_hand.vsh │ ├── shadow_block.fsh │ ├── shadow_cutout.vsh │ ├── shadow_solid.fsh │ ├── shadow_water.fsh │ ├── dh_generic.fsh │ ├── dh_terrain.fsh │ ├── gbuffers_basic.vsh │ ├── gbuffers_block.vsh │ ├── gbuffers_clouds.vsh │ ├── gbuffers_hand.fsh │ ├── gbuffers_water.vsh │ ├── shadow_cutout.fsh │ ├── shadow_entities.vsh │ ├── gbuffers_basic.fsh │ ├── gbuffers_block.fsh │ ├── gbuffers_clouds.fsh │ ├── gbuffers_terrain.vsh │ ├── gbuffers_water.fsh │ ├── gbuffers_weather.vsh │ ├── physics_ocean.fsh │ ├── physics_ocean.vsh │ ├── shadow_entities.fsh │ ├── shadow_lightning.fsh │ ├── shadow_lightning.vsh │ ├── gbuffers_entities.fsh │ ├── gbuffers_entities.vsh │ ├── gbuffers_particles.vsh │ ├── gbuffers_skybasic.vsh │ ├── gbuffers_terrain.fsh │ ├── gbuffers_textured.fsh │ ├── gbuffers_textured.vsh │ ├── gbuffers_weather.fsh │ ├── gbuffers_armor_glint.vsh │ ├── gbuffers_beaconbeam.vsh │ ├── gbuffers_lightning.fsh │ ├── gbuffers_lightning.vsh │ ├── gbuffers_particles.fsh │ ├── gbuffers_skybasic.fsh │ ├── gbuffers_spidereyes.vsh │ ├── physics_ocean_shadow.vsh │ ├── gbuffers_armor_glint.fsh │ ├── gbuffers_beaconbeam.fsh │ ├── gbuffers_damagedblock.vsh │ ├── gbuffers_skytextured.fsh │ ├── gbuffers_skytextured.vsh │ ├── gbuffers_spidereyes.fsh │ ├── physics_ocean_shadow.fsh │ └── gbuffers_damagedblock.fsh ├── world0 │ ├── final.vsh │ ├── final.fsh │ ├── composite.vsh │ ├── deferred.vsh │ ├── deferred1.vsh │ ├── shadow.vsh │ ├── composite.fsh │ ├── composite1.vsh │ ├── composite2.vsh │ ├── composite3.vsh │ ├── composite4.vsh │ ├── composite5.vsh │ ├── composite6.vsh │ ├── composite7.vsh │ ├── deferred.fsh │ ├── deferred1.fsh │ ├── shadow.fsh │ ├── composite1.fsh │ ├── composite2.fsh │ ├── composite3.fsh │ ├── composite4.fsh │ ├── composite5.fsh │ ├── composite6.fsh │ ├── composite7.fsh │ ├── gbuffers_line.vsh │ ├── dh_water.vsh │ ├── gbuffers_line.fsh │ ├── shadow_block.vsh │ ├── shadow_solid.vsh │ ├── shadow_water.vsh │ ├── dh_generic.vsh │ ├── dh_terrain.vsh │ ├── dh_water.fsh │ ├── gbuffers_hand.vsh │ ├── shadow_block.fsh │ ├── shadow_cutout.fsh │ ├── shadow_cutout.vsh │ ├── shadow_solid.fsh │ ├── shadow_water.fsh │ ├── dh_generic.fsh │ ├── dh_terrain.fsh │ ├── gbuffers_basic.fsh │ ├── gbuffers_basic.vsh │ ├── gbuffers_block.fsh │ ├── gbuffers_block.vsh │ ├── gbuffers_clouds.vsh │ ├── gbuffers_hand.fsh │ ├── gbuffers_water.fsh │ ├── gbuffers_water.vsh │ ├── physics_ocean.vsh │ ├── shadow_entities.vsh │ ├── shadow_lightning.vsh │ ├── gbuffers_clouds.fsh │ ├── gbuffers_entities.vsh │ ├── gbuffers_terrain.vsh │ ├── gbuffers_textured.vsh │ ├── gbuffers_weather.vsh │ ├── physics_ocean.fsh │ ├── shadow_entities.fsh │ ├── shadow_lightning.fsh │ ├── gbuffers_entities.fsh │ ├── gbuffers_lightning.vsh │ ├── gbuffers_particles.vsh │ ├── gbuffers_skybasic.fsh │ ├── gbuffers_skybasic.vsh │ ├── gbuffers_terrain.fsh │ ├── gbuffers_textured.fsh │ ├── gbuffers_weather.fsh │ ├── gbuffers_armor_glint.vsh │ ├── gbuffers_beaconbeam.vsh │ ├── gbuffers_lightning.fsh │ ├── gbuffers_particles.fsh │ ├── gbuffers_skytextured.vsh │ ├── gbuffers_spidereyes.vsh │ ├── physics_ocean_shadow.vsh │ ├── gbuffers_armor_glint.fsh │ ├── gbuffers_beaconbeam.fsh │ ├── gbuffers_damagedblock.vsh │ ├── gbuffers_skytextured.fsh │ ├── gbuffers_spidereyes.fsh │ ├── physics_ocean_shadow.fsh │ └── gbuffers_damagedblock.fsh ├── world1 │ ├── final.vsh │ ├── final.fsh │ ├── composite.vsh │ ├── deferred.vsh │ ├── deferred1.vsh │ ├── shadow.vsh │ ├── composite.fsh │ ├── composite1.vsh │ ├── composite2.vsh │ ├── composite3.vsh │ ├── composite4.vsh │ ├── composite5.vsh │ ├── composite6.vsh │ ├── composite7.vsh │ ├── deferred.fsh │ ├── deferred1.fsh │ ├── shadow.fsh │ ├── composite1.fsh │ ├── composite2.fsh │ ├── composite3.fsh │ ├── composite4.fsh │ ├── composite5.fsh │ ├── composite6.fsh │ ├── composite7.fsh │ ├── gbuffers_line.vsh │ ├── dh_water.vsh │ ├── gbuffers_line.fsh │ ├── shadow_block.vsh │ ├── shadow_solid.vsh │ ├── shadow_water.vsh │ ├── dh_generic.vsh │ ├── dh_terrain.vsh │ ├── dh_water.fsh │ ├── gbuffers_hand.vsh │ ├── shadow_block.fsh │ ├── shadow_cutout.fsh │ ├── shadow_cutout.vsh │ ├── shadow_solid.fsh │ ├── shadow_water.fsh │ ├── dh_generic.fsh │ ├── dh_terrain.fsh │ ├── gbuffers_basic.fsh │ ├── gbuffers_basic.vsh │ ├── gbuffers_block.fsh │ ├── gbuffers_block.vsh │ ├── gbuffers_clouds.vsh │ ├── gbuffers_hand.fsh │ ├── gbuffers_water.fsh │ ├── gbuffers_water.vsh │ ├── physics_ocean.vsh │ ├── shadow_entities.vsh │ ├── shadow_lightning.vsh │ ├── gbuffers_clouds.fsh │ ├── gbuffers_entities.vsh │ ├── gbuffers_terrain.vsh │ ├── gbuffers_textured.vsh │ ├── gbuffers_weather.vsh │ ├── physics_ocean.fsh │ ├── shadow_entities.fsh │ ├── shadow_lightning.fsh │ ├── gbuffers_entities.fsh │ ├── gbuffers_lightning.vsh │ ├── gbuffers_particles.vsh │ ├── gbuffers_skybasic.fsh │ ├── gbuffers_skybasic.vsh │ ├── gbuffers_terrain.fsh │ ├── gbuffers_textured.fsh │ ├── gbuffers_weather.fsh │ ├── gbuffers_armor_glint.vsh │ ├── gbuffers_beaconbeam.vsh │ ├── gbuffers_lightning.fsh │ ├── gbuffers_particles.fsh │ ├── gbuffers_skytextured.vsh │ ├── gbuffers_spidereyes.vsh │ ├── physics_ocean_shadow.vsh │ ├── gbuffers_armor_glint.fsh │ ├── gbuffers_beaconbeam.fsh │ ├── gbuffers_damagedblock.vsh │ ├── gbuffers_skytextured.fsh │ ├── gbuffers_spidereyes.fsh │ ├── physics_ocean_shadow.fsh │ └── gbuffers_damagedblock.fsh ├── lib │ ├── surface │ │ ├── lava.glsl │ │ └── water.glsl │ ├── vertex │ │ ├── weatherWave.glsl │ │ ├── waveWater.glsl │ │ └── waveTerrain.glsl │ ├── utility │ │ ├── noiseFunctions.glsl │ │ ├── taaJitter.glsl │ │ ├── depthTex.glsl │ │ ├── prevProjectionFunctions.glsl │ │ ├── projectionFunctions.glsl │ │ └── celestialFunctions.glsl │ ├── post │ │ ├── motionBlur.glsl │ │ ├── outline.glsl │ │ ├── tonemap.glsl │ │ └── lensFlare.glsl │ ├── PBR │ │ ├── dataStructs.glsl │ │ └── enviroPBR.glsl │ ├── antialiasing │ │ └── taa.glsl │ ├── lighting │ │ ├── SSAO.glsl │ │ ├── basicShadingForward.glsl │ │ ├── shdMapping.glsl │ │ └── complexShadingDeferred.glsl │ ├── atmospherics │ │ └── fogRender.glsl │ ├── rayTracing │ │ ├── rayTracer.glsl │ │ ├── volumetricClouds.glsl │ │ └── volumetricLight.glsl │ └── modded │ │ ├── distantHorizons │ │ └── complexShadingLOD.glsl │ │ └── physicsMod │ │ └── physicsModVertex.glsl ├── dimension.properties ├── main │ ├── shadow │ │ └── shadow_lightning.glsl │ ├── gbuffers │ │ ├── gbuffers_skybasic.glsl │ │ ├── gbuffers_lightning.glsl │ │ ├── gbuffers_damagedblock.glsl │ │ ├── gbuffers_clouds.glsl │ │ ├── gbuffers_line.glsl │ │ ├── gbuffers_beaconbeam.glsl │ │ ├── gbuffers_armor_glint.glsl │ │ ├── gbuffers_skytextured.glsl │ │ ├── gbuffers_spidereyes.glsl │ │ └── gbuffers_textured.glsl │ ├── composite7.glsl │ ├── composite5.glsl │ ├── composite2.glsl │ ├── composite1.glsl │ ├── composite4.glsl │ ├── deferred.glsl │ └── modded │ │ └── dh_generic.glsl └── entity.properties ├── CONTRIBUTORS.md ├── TRANSLATORS.md ├── .github └── ISSUE_TEMPLATE │ ├── suggestion.md │ ├── bug.md │ └── mod-compatibility.md ├── CONTRIBUTION.md └── LICENSE /shaders/textures/clouds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eldeston/Super-Duper-Vanilla/HEAD/shaders/textures/clouds.png -------------------------------------------------------------------------------- /shaders/textures/noise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eldeston/Super-Duper-Vanilla/HEAD/shaders/textures/noise.png -------------------------------------------------------------------------------- /shaders/textures/noise.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "texture": 3 | { 4 | "blur": true, 5 | "clamp": false 6 | } 7 | } -------------------------------------------------------------------------------- /shaders/textures/title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eldeston/Super-Duper-Vanilla/HEAD/shaders/textures/title.png -------------------------------------------------------------------------------- /shaders/textures/clouds.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "texture": 3 | { 4 | "blur": false, 5 | "clamp": false 6 | } 7 | } -------------------------------------------------------------------------------- /shaders/textures/sponsor0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eldeston/Super-Duper-Vanilla/HEAD/shaders/textures/sponsor0.png -------------------------------------------------------------------------------- /shaders/textures/sponsor1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eldeston/Super-Duper-Vanilla/HEAD/shaders/textures/sponsor1.png -------------------------------------------------------------------------------- /shaders/textures/thumbCF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eldeston/Super-Duper-Vanilla/HEAD/shaders/textures/thumbCF.png -------------------------------------------------------------------------------- /shaders/world-1/final.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define FINAL 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/final.glsl" -------------------------------------------------------------------------------- /shaders/world0/final.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define FINAL 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/final.glsl" -------------------------------------------------------------------------------- /shaders/world1/final.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define FINAL 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/final.glsl" -------------------------------------------------------------------------------- /shaders/world-1/final.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define FINAL 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/final.glsl" -------------------------------------------------------------------------------- /shaders/world0/final.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define FINAL 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/final.glsl" -------------------------------------------------------------------------------- /shaders/world1/final.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define FINAL 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/final.glsl" -------------------------------------------------------------------------------- /shaders/world-1/deferred.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define DEFERRED0 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/deferred.glsl" -------------------------------------------------------------------------------- /shaders/world-1/deferred1.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define DEFERRED1 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/deferred1.glsl" -------------------------------------------------------------------------------- /shaders/world-1/shadow.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/shadow/shadow.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE0 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite.glsl" -------------------------------------------------------------------------------- /shaders/world0/deferred.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define DEFERRED0 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/deferred.glsl" -------------------------------------------------------------------------------- /shaders/world0/deferred1.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define DEFERRED1 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/deferred1.glsl" -------------------------------------------------------------------------------- /shaders/world0/shadow.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/shadow/shadow.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE0 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite.glsl" -------------------------------------------------------------------------------- /shaders/world1/deferred.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define DEFERRED0 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/deferred.glsl" -------------------------------------------------------------------------------- /shaders/world1/deferred1.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define DEFERRED1 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/deferred1.glsl" -------------------------------------------------------------------------------- /shaders/world1/shadow.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/shadow/shadow.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE0 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE0 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite1.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE1 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite1.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite2.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE2 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite2.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite3.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE3 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite3.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite4.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE4 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite4.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite5.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE5 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite5.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite6.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE6 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite6.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite7.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE7 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite7.glsl" -------------------------------------------------------------------------------- /shaders/world-1/deferred.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define DEFERRED0 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/deferred.glsl" -------------------------------------------------------------------------------- /shaders/world-1/deferred1.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define DEFERRED1 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/deferred1.glsl" -------------------------------------------------------------------------------- /shaders/world-1/shadow.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/shadow/shadow.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE0 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite1.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE1 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite1.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite2.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE2 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite2.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite3.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE3 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite3.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite4.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE4 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite4.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite5.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE5 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite5.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite6.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE6 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite6.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite7.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE7 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite7.glsl" -------------------------------------------------------------------------------- /shaders/world0/deferred.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define DEFERRED0 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/deferred.glsl" -------------------------------------------------------------------------------- /shaders/world0/deferred1.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define DEFERRED1 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/deferred1.glsl" -------------------------------------------------------------------------------- /shaders/world0/shadow.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/shadow/shadow.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE0 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite1.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE1 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite1.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite2.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE2 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite2.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite3.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE3 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite3.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite4.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE4 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite4.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite5.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE5 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite5.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite6.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE6 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite6.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite7.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE7 5 | #define VERTEX 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite7.glsl" -------------------------------------------------------------------------------- /shaders/world1/deferred.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define DEFERRED0 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/deferred.glsl" -------------------------------------------------------------------------------- /shaders/world1/deferred1.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define DEFERRED1 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/deferred1.glsl" -------------------------------------------------------------------------------- /shaders/world1/shadow.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/shadow/shadow.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite1.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE1 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite1.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite2.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE2 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite2.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite3.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE3 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite3.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite4.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE4 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite4.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite5.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE5 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite5.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite6.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE6 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite6.glsl" -------------------------------------------------------------------------------- /shaders/world-1/composite7.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE7 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite7.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite1.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE1 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite1.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite2.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE2 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite2.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite3.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE3 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite3.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite4.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE4 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite4.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite5.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE5 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite5.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite6.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE6 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite6.glsl" -------------------------------------------------------------------------------- /shaders/world0/composite7.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE7 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite7.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite1.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE1 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite1.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite2.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE2 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite2.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite3.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE3 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite3.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite4.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE4 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite4.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite5.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE5 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite5.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite6.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE6 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite6.glsl" -------------------------------------------------------------------------------- /shaders/world1/composite7.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define COMPOSITE7 5 | #define FRAGMENT 6 | 7 | #include "/lib/settings.glsl" 8 | #include "/lib/utility/common.glsl" 9 | 10 | #include "world.glsl" 11 | #include "/main/composite7.glsl" -------------------------------------------------------------------------------- /CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | ## Contributors 2 | Contributors are listed from first to last. Please keep the list format in order. You may link your name to your Github profile. 3 | * [@Eldeston](https://github.com/Eldeston) 4 | * [@null511](https://github.com/null511) 5 | * [@steb-git](https://github.com/steb-git) -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_line.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 core 3 | 4 | #define GBUFFERS 5 | #define LINE 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_line.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_line.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 core 3 | 4 | #define GBUFFERS 5 | #define LINE 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_line.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_line.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 core 3 | 4 | #define GBUFFERS 5 | #define LINE 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_line.glsl" -------------------------------------------------------------------------------- /shaders/world-1/dh_water.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_WATER 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_water.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_line.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 core 3 | 4 | #define GBUFFERS 5 | #define LINE 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_line.glsl" -------------------------------------------------------------------------------- /shaders/world-1/shadow_block.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define BLOCK 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_block.glsl" -------------------------------------------------------------------------------- /shaders/world-1/shadow_solid.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define SOLID 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_solid.glsl" -------------------------------------------------------------------------------- /shaders/world-1/shadow_water.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define WATER 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_water.glsl" -------------------------------------------------------------------------------- /shaders/world0/dh_water.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_WATER 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_water.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_line.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 core 3 | 4 | #define GBUFFERS 5 | #define LINE 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_line.glsl" -------------------------------------------------------------------------------- /shaders/world0/shadow_block.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define BLOCK 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_block.glsl" -------------------------------------------------------------------------------- /shaders/world0/shadow_solid.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define SOLID 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_solid.glsl" -------------------------------------------------------------------------------- /shaders/world0/shadow_water.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define WATER 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_water.glsl" -------------------------------------------------------------------------------- /shaders/world1/dh_water.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_WATER 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_water.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_line.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 core 3 | 4 | #define GBUFFERS 5 | #define LINE 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_line.glsl" -------------------------------------------------------------------------------- /shaders/world1/shadow_block.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define BLOCK 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_block.glsl" -------------------------------------------------------------------------------- /shaders/world1/shadow_solid.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define SOLID 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_solid.glsl" -------------------------------------------------------------------------------- /shaders/world1/shadow_water.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define WATER 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_water.glsl" -------------------------------------------------------------------------------- /shaders/world-1/dh_generic.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_GENERIC 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_generic.glsl" -------------------------------------------------------------------------------- /shaders/world-1/dh_terrain.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_TERRAIN 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_terrain.glsl" -------------------------------------------------------------------------------- /shaders/world-1/dh_water.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_WATER 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_water.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_hand.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define HAND 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_hand.glsl" -------------------------------------------------------------------------------- /shaders/world-1/shadow_block.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define BLOCK 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_block.glsl" -------------------------------------------------------------------------------- /shaders/world-1/shadow_cutout.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define CUTOUT 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_cutout.glsl" -------------------------------------------------------------------------------- /shaders/world-1/shadow_solid.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define SOLID 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_solid.glsl" -------------------------------------------------------------------------------- /shaders/world-1/shadow_water.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define WATER 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_water.glsl" -------------------------------------------------------------------------------- /shaders/world0/dh_generic.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_GENERIC 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_generic.glsl" -------------------------------------------------------------------------------- /shaders/world0/dh_terrain.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_TERRAIN 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_terrain.glsl" -------------------------------------------------------------------------------- /shaders/world0/dh_water.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_WATER 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_water.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_hand.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define HAND 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_hand.glsl" -------------------------------------------------------------------------------- /shaders/world0/shadow_block.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define BLOCK 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_block.glsl" -------------------------------------------------------------------------------- /shaders/world0/shadow_cutout.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define CUTOUT 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_cutout.glsl" -------------------------------------------------------------------------------- /shaders/world0/shadow_cutout.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define CUTOUT 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_cutout.glsl" -------------------------------------------------------------------------------- /shaders/world0/shadow_solid.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define SOLID 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_solid.glsl" -------------------------------------------------------------------------------- /shaders/world0/shadow_water.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define WATER 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_water.glsl" -------------------------------------------------------------------------------- /shaders/world1/dh_generic.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_GENERIC 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_generic.glsl" -------------------------------------------------------------------------------- /shaders/world1/dh_terrain.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_TERRAIN 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_terrain.glsl" -------------------------------------------------------------------------------- /shaders/world1/dh_water.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_WATER 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_water.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_hand.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define HAND 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_hand.glsl" -------------------------------------------------------------------------------- /shaders/world1/shadow_block.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define BLOCK 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_block.glsl" -------------------------------------------------------------------------------- /shaders/world1/shadow_cutout.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define CUTOUT 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_cutout.glsl" -------------------------------------------------------------------------------- /shaders/world1/shadow_cutout.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define CUTOUT 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_cutout.glsl" -------------------------------------------------------------------------------- /shaders/world1/shadow_solid.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define SOLID 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_solid.glsl" -------------------------------------------------------------------------------- /shaders/world1/shadow_water.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define WATER 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_water.glsl" -------------------------------------------------------------------------------- /shaders/world-1/dh_generic.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_GENERIC 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_generic.glsl" -------------------------------------------------------------------------------- /shaders/world-1/dh_terrain.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_TERRAIN 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_terrain.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_basic.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BASIC 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_basic.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_block.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BLOCK 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_block.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_clouds.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define CLOUDS 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_clouds.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_hand.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define HAND 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_hand.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_water.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define WATER 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_water.glsl" -------------------------------------------------------------------------------- /shaders/world-1/shadow_cutout.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define CUTOUT 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_cutout.glsl" -------------------------------------------------------------------------------- /shaders/world-1/shadow_entities.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define ENTITIES 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_entities.glsl" -------------------------------------------------------------------------------- /shaders/world0/dh_generic.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_GENERIC 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_generic.glsl" -------------------------------------------------------------------------------- /shaders/world0/dh_terrain.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_TERRAIN 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_terrain.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_basic.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BASIC 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_basic.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_basic.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BASIC 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_basic.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_block.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BLOCK 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_block.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_block.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BLOCK 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_block.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_clouds.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define CLOUDS 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_clouds.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_hand.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define HAND 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_hand.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_water.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define WATER 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_water.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_water.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define WATER 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_water.glsl" -------------------------------------------------------------------------------- /shaders/world0/physics_ocean.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define PHYSICS_GBUFFERS 5 | #define OCEAN 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/physics_ocean.glsl" -------------------------------------------------------------------------------- /shaders/world0/shadow_entities.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define ENTITIES 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_entities.glsl" -------------------------------------------------------------------------------- /shaders/world0/shadow_lightning.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define LIGHTNING 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_lightning.glsl" -------------------------------------------------------------------------------- /shaders/world1/dh_generic.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_GENERIC 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_generic.glsl" -------------------------------------------------------------------------------- /shaders/world1/dh_terrain.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define DH_GBUFFERS 5 | #define DH_TERRAIN 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/dh_terrain.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_basic.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BASIC 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_basic.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_basic.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BASIC 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_basic.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_block.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BLOCK 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_block.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_block.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BLOCK 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_block.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_clouds.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define CLOUDS 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_clouds.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_hand.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define HAND 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_hand.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_water.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define WATER 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_water.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_water.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define WATER 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_water.glsl" -------------------------------------------------------------------------------- /shaders/world1/physics_ocean.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define PHYSICS_GBUFFERS 5 | #define OCEAN 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/physics_ocean.glsl" -------------------------------------------------------------------------------- /shaders/world1/shadow_entities.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define ENTITIES 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_entities.glsl" -------------------------------------------------------------------------------- /shaders/world1/shadow_lightning.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define LIGHTNING 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_lightning.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_basic.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BASIC 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_basic.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_block.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BLOCK 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_block.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_clouds.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define CLOUDS 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_clouds.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_terrain.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define TERRAIN 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_terrain.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_water.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define WATER 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_water.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_weather.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define WEATHER 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_weather.glsl" -------------------------------------------------------------------------------- /shaders/world-1/physics_ocean.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define PHYSICS_GBUFFERS 5 | #define OCEAN 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/physics_ocean.glsl" -------------------------------------------------------------------------------- /shaders/world-1/physics_ocean.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define PHYSICS_GBUFFERS 5 | #define OCEAN 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/physics_ocean.glsl" -------------------------------------------------------------------------------- /shaders/world-1/shadow_entities.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define ENTITIES 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_entities.glsl" -------------------------------------------------------------------------------- /shaders/world-1/shadow_lightning.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define LIGHTNING 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_lightning.glsl" -------------------------------------------------------------------------------- /shaders/world-1/shadow_lightning.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define LIGHTNING 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_lightning.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_clouds.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define CLOUDS 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_clouds.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_entities.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define ENTITIES 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_entities.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_terrain.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define TERRAIN 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_terrain.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_textured.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define TEXTURED 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_textured.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_weather.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define WEATHER 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_weather.glsl" -------------------------------------------------------------------------------- /shaders/world0/physics_ocean.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define PHYSICS_GBUFFERS 5 | #define OCEAN 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/physics_ocean.glsl" -------------------------------------------------------------------------------- /shaders/world0/shadow_entities.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define ENTITIES 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_entities.glsl" -------------------------------------------------------------------------------- /shaders/world0/shadow_lightning.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define LIGHTNING 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_lightning.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_clouds.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define CLOUDS 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_clouds.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_entities.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define ENTITIES 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_entities.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_terrain.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define TERRAIN 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_terrain.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_textured.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define TEXTURED 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_textured.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_weather.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define WEATHER 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_weather.glsl" -------------------------------------------------------------------------------- /shaders/world1/physics_ocean.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define PHYSICS_GBUFFERS 5 | #define OCEAN 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/physics_ocean.glsl" -------------------------------------------------------------------------------- /shaders/world1/shadow_entities.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define ENTITIES 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_entities.glsl" -------------------------------------------------------------------------------- /shaders/world1/shadow_lightning.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define SHADOW 5 | #define LIGHTNING 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/shadow/shadow_lightning.glsl" -------------------------------------------------------------------------------- /shaders/lib/surface/lava.glsl: -------------------------------------------------------------------------------- 1 | float getLavaNoise(in vec2 uv){ 2 | const float currentSpeed = CURRENT_SPEED * 0.015625; 3 | float animateTime = fragmentFrameTime * currentSpeed; 4 | return (1.0 - textureLod(noisetex, uv * 0.5 + animateTime, 0).z) * 0.7 + textureLod(noisetex, (animateTime - uv) * 2.0, 0).z * 0.3; 5 | } -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_entities.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define ENTITIES 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_entities.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_entities.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define ENTITIES 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_entities.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_particles.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define PARTICLES 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_particles.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_skybasic.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SKY_BASIC 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_skybasic.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_terrain.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define TERRAIN 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_terrain.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_textured.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define TEXTURED 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_textured.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_textured.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define TEXTURED 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_textured.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_weather.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define WEATHER 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_weather.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_entities.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define ENTITIES 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_entities.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_lightning.vsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define LIGHTNING 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_lightning.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_particles.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define PARTICLES 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_particles.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_skybasic.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SKY_BASIC 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_skybasic.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_skybasic.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SKY_BASIC 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_skybasic.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_terrain.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define TERRAIN 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_terrain.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_textured.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define TEXTURED 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_textured.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_weather.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define WEATHER 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_weather.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_entities.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define ENTITIES 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_entities.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_lightning.vsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define LIGHTNING 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_lightning.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_particles.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define PARTICLES 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_particles.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_skybasic.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SKY_BASIC 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_skybasic.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_skybasic.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SKY_BASIC 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_skybasic.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_terrain.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define TERRAIN 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_terrain.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_textured.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define TEXTURED 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_textured.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_weather.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define WEATHER 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_weather.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_armor_glint.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define ARMOR_GLINT 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_armor_glint.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_beaconbeam.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BEACON_BEAM 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_beaconbeam.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_lightning.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define LIGHTNING 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_lightning.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_lightning.vsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define LIGHTNING 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_lightning.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_particles.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define PARTICLES 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_particles.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_skybasic.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SKY_BASIC 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_skybasic.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_spidereyes.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SPIDER_EYES 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_spidereyes.glsl" -------------------------------------------------------------------------------- /shaders/world-1/physics_ocean_shadow.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define PHYSICS_SHADOW 5 | #define OCEAN 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/physics_ocean_shadow.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_armor_glint.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define ARMOR_GLINT 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_armor_glint.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_beaconbeam.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BEACON_BEAM 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_beaconbeam.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_lightning.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define LIGHTNING 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_lightning.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_particles.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define PARTICLES 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_particles.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_skytextured.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SKY_TEXTURED 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_skytextured.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_spidereyes.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SPIDER_EYES 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_spidereyes.glsl" -------------------------------------------------------------------------------- /shaders/world0/physics_ocean_shadow.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define PHYSICS_SHADOW 5 | #define OCEAN 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/physics_ocean_shadow.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_armor_glint.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define ARMOR_GLINT 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_armor_glint.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_beaconbeam.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BEACON_BEAM 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_beaconbeam.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_lightning.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define LIGHTNING 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_lightning.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_particles.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define PARTICLES 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_particles.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_skytextured.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SKY_TEXTURED 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_skytextured.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_spidereyes.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SPIDER_EYES 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_spidereyes.glsl" -------------------------------------------------------------------------------- /shaders/world1/physics_ocean_shadow.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define PHYSICS_SHADOW 5 | #define OCEAN 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/physics_ocean_shadow.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_armor_glint.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define ARMOR_GLINT 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_armor_glint.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_beaconbeam.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BEACON_BEAM 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_beaconbeam.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_damagedblock.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define DAMAGED_BLOCK 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_damagedblock.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_skytextured.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SKY_TEXTURED 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_skytextured.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_skytextured.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SKY_TEXTURED 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_skytextured.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_spidereyes.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SPIDER_EYES 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_spidereyes.glsl" -------------------------------------------------------------------------------- /shaders/world-1/physics_ocean_shadow.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define PHYSICS_SHADOW 5 | #define OCEAN 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/physics_ocean_shadow.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_armor_glint.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define ARMOR_GLINT 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_armor_glint.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_beaconbeam.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BEACON_BEAM 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_beaconbeam.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_damagedblock.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define DAMAGED_BLOCK 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_damagedblock.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_skytextured.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SKY_TEXTURED 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_skytextured.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_spidereyes.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SPIDER_EYES 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_spidereyes.glsl" -------------------------------------------------------------------------------- /shaders/world0/physics_ocean_shadow.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define PHYSICS_SHADOW 5 | #define OCEAN 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/physics_ocean_shadow.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_armor_glint.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define ARMOR_GLINT 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_armor_glint.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_beaconbeam.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define BEACON_BEAM 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_beaconbeam.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_damagedblock.vsh: -------------------------------------------------------------------------------- 1 | // Vertex GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define DAMAGED_BLOCK 6 | #define VERTEX 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_damagedblock.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_skytextured.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SKY_TEXTURED 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_skytextured.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_spidereyes.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define SPIDER_EYES 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_spidereyes.glsl" -------------------------------------------------------------------------------- /shaders/world1/physics_ocean_shadow.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define PHYSICS_SHADOW 5 | #define OCEAN 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/modded/physics_ocean_shadow.glsl" -------------------------------------------------------------------------------- /shaders/world-1/gbuffers_damagedblock.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define DAMAGED_BLOCK 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_damagedblock.glsl" -------------------------------------------------------------------------------- /shaders/world0/gbuffers_damagedblock.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define DAMAGED_BLOCK 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_damagedblock.glsl" -------------------------------------------------------------------------------- /shaders/world1/gbuffers_damagedblock.fsh: -------------------------------------------------------------------------------- 1 | // Fragment GL version 2 | #version 330 compatibility 3 | 4 | #define GBUFFERS 5 | #define DAMAGED_BLOCK 6 | #define FRAGMENT 7 | 8 | #include "/lib/settings.glsl" 9 | #include "/lib/utility/common.glsl" 10 | 11 | #include "world.glsl" 12 | #include "/main/gbuffers/gbuffers_damagedblock.glsl" -------------------------------------------------------------------------------- /shaders/lib/vertex/weatherWave.glsl: -------------------------------------------------------------------------------- 1 | vec2 getWeatherWave(in vec3 vertexEyePlayerPos, in vec2 vertexWorldPosXZ){ 2 | // Get wave coord 3 | float windStrength = sin(-sumOf(vertexWorldPosXZ) * WIND_FREQUENCY * 0.5 + vertexFrameTime * WIND_SPEED); 4 | // Apply wave animation 5 | return vertexEyePlayerPos.xz + vertexEyePlayerPos.y * windStrength * 0.25; 6 | } -------------------------------------------------------------------------------- /shaders/lib/utility/noiseFunctions.glsl: -------------------------------------------------------------------------------- 1 | // Default noise resolution 2 | const int noiseTextureResolution = 256; 3 | 4 | // Noise sample, r for blue noise, g for white noise, and b for cell noise 5 | uniform sampler2D noisetex; 6 | 7 | vec3 getRng3(in ivec2 iuv){ 8 | return vec3(texelFetch(noisetex, iuv, 0).x, texelFetch(noisetex, ivec2(255 - iuv.x, iuv.y), 0).x, texelFetch(noisetex, ivec2(iuv.x, 255 - iuv.y), 0).x); 9 | } -------------------------------------------------------------------------------- /TRANSLATORS.md: -------------------------------------------------------------------------------- 1 | ## Translators 2 | Translators are listed from first to last. Please keep the list format in order. You may link your name to your Github profile. 3 | * [@Eldeston](https://github.com/Eldeston) (English) 4 | * [@Felix14_v2](https://github.com/Felix14-v2) (Russian) 5 | * [@ItIsNotAPlayer](https://github.com/ItIsNotAPlayer) (Simplified Chinese) 6 | * [@Chocotoneg](https://github.com/chocotoneg) (Brazillian Portuguese) 7 | -------------------------------------------------------------------------------- /shaders/lib/utility/taaJitter.glsl: -------------------------------------------------------------------------------- 1 | // Jitter offset from Chocapic13 2 | const vec2 offSetsTAA[8] = vec2[8]( 3 | vec2(0.125,-0.375), 4 | vec2(-0.125, 0.375), 5 | vec2(0.625, 0.125), 6 | vec2(0.375,-0.625), 7 | vec2(-0.625, 0.625), 8 | vec2(-0.875,-0.125), 9 | vec2(0.375,-0.875), 10 | vec2(0.875, 0.875) 11 | ); 12 | 13 | vec2 jitterPos(in float posW){ 14 | return offSetsTAA[frameMod] * vec2(pixelWidth, pixelHeight) * posW; 15 | } -------------------------------------------------------------------------------- /shaders/lib/post/motionBlur.glsl: -------------------------------------------------------------------------------- 1 | vec3 motionBlur(in vec3 currColor, in float depth, in float dither){ 2 | vec2 prevPosition = (texCoord.xy - getPrevScreenCoord(texCoord, depth)) * MOTION_BLUR_STRENGTH * 0.2; 3 | 4 | // Apply dithering 5 | vec2 currScreenPos = texCoord + prevPosition * dither; 6 | 7 | for(uint i = 0u; i < 4u; i++){ 8 | currScreenPos += prevPosition; 9 | currColor += textureLod(colortex4, currScreenPos, 0).rgb; 10 | } 11 | 12 | return currColor * 0.2; 13 | } -------------------------------------------------------------------------------- /shaders/lib/PBR/dataStructs.glsl: -------------------------------------------------------------------------------- 1 | // Material PBR data struct 2 | struct dataPBR{ 3 | // Albedo texture 4 | vec4 albedo; 5 | // Normal map 6 | vec3 normal; 7 | // Metalic map 8 | float metallic; 9 | // Emissive map 10 | float emissive; 11 | // Smoothness map 12 | float smoothness; 13 | // Ambient map 14 | float ambient; 15 | // Porosity 16 | float porosity; 17 | // Subsurface scattering 18 | float ss; 19 | // POM self shadows 20 | float parallaxShd; 21 | }; -------------------------------------------------------------------------------- /shaders/dimension.properties: -------------------------------------------------------------------------------- 1 | ## Default dimension shaders 2 | ## There only 3 main dimension shaders: 3 | ## - The Overworld used for all dimensions by default 4 | ## - The Nether where it is devoid of sunlight 5 | ## - The End where it involves a black hole 6 | 7 | ## For the most part, modded dimensions use either the first 2 and rarely the latter depending on the theme of the dimension 8 | 9 | # The Overworld 10 | dimension.world0 = * 11 | # The Nether 12 | dimension.world-1 = minecraft:the_nether minecraft:nether \ 13 | undergarden:undergarden 14 | # The End 15 | dimension.world1 = minecraft:the_end minecraft:end -------------------------------------------------------------------------------- /shaders/lib/vertex/waveWater.glsl: -------------------------------------------------------------------------------- 1 | // Wave animation movements for shadow 2 | vec3 getWaterWave(in vec3 vertexEyePlayerPos, in vec2 vertexWorldPosXZ, in float id, in float currTime){ 3 | // Current affected blocks 4 | if(CURRENT_SPEED > 0){ 5 | // Calculate current strength 6 | float currentStrength = cos(-sumOf(vertexWorldPosXZ) * CURRENT_FREQUENCY + currTime * CURRENT_SPEED); 7 | 8 | // Water 9 | if(id >= 11100 && id <= 11199){ 10 | vertexEyePlayerPos.y += currentStrength * 0.05; 11 | 12 | return vertexEyePlayerPos; 13 | } 14 | } 15 | 16 | return vertexEyePlayerPos; 17 | } -------------------------------------------------------------------------------- /shaders/lib/utility/depthTex.glsl: -------------------------------------------------------------------------------- 1 | float getDepthTex(in ivec2 screenTexelCoord){ 2 | #ifdef DISTANT_HORIZONS 3 | float mainDepth = texelFetch(depthtex0, screenTexelCoord, 0).x; 4 | 5 | return mainDepth == 1 ? texelFetch(dhDepthTex0, screenTexelCoord, 0).x : mainDepth; 6 | #else 7 | return texelFetch(depthtex0, screenTexelCoord, 0).x; 8 | #endif 9 | } 10 | 11 | float getDepthTex(in vec2 screenCoord){ 12 | #ifdef DISTANT_HORIZONS 13 | float mainDepth = textureLod(depthtex0, screenCoord, 0).x; 14 | 15 | return mainDepth == 1 ? textureLod(dhDepthTex0, screenCoord, 0).x : mainDepth; 16 | #else 17 | return textureLod(depthtex0, screenCoord, 0).x; 18 | #endif 19 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/suggestion.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Suggestion 3 | about: Suggest an idea for this project. 4 | title: "[Suggestion] Issue Title" 5 | labels: suggestion 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /shaders/lib/PBR/enviroPBR.glsl: -------------------------------------------------------------------------------- 1 | // Environment PBR calculation 2 | void enviroPBR(inout dataPBR material, in vec3 normal){ 3 | if(normal.y < 0.005) return; 4 | 5 | float skyLightDelta = lmCoord.y - 0.8; 6 | 7 | if(skyLightDelta < 0) return; 8 | 9 | float rainMatFact = (1.0 - material.porosity) * skyLightDelta * isPrecipitationRain * normal.y * 5.0; 10 | 11 | rainMatFact *= saturate(sumOf(textureLod(noisetex, vertexWorldPos.xz * 0.001953125, 0).xy) - 0.5); 12 | 13 | material.normal = mix(material.normal, normal, rainMatFact); 14 | material.metallic = max(0.02 * rainMatFact, material.metallic); 15 | material.smoothness = mix(material.smoothness, 0.96, rainMatFact); 16 | material.albedo.rgb *= 1.0 - rainMatFact * 0.5; 17 | } -------------------------------------------------------------------------------- /shaders/lib/utility/prevProjectionFunctions.glsl: -------------------------------------------------------------------------------- 1 | // Fast previous frame reprojection based from Chocapic13's previous frame reprojection and Jessie's fast space conversions for all your TAA and motion blur needs 2 | vec2 getPrevScreenCoord(in vec2 currScreenPos, in float screenDepth){ 3 | vec3 currViewPos = getViewPos(gbufferProjectionInverse, vec3(currScreenPos, screenDepth)); 4 | vec3 currFeetPlayerPos = mat3(gbufferModelViewInverse) * currViewPos + gbufferModelViewInverse[3].xyz; 5 | 6 | if(screenDepth > 0.56) currFeetPlayerPos += camPosDelta; 7 | 8 | vec3 prevViewPos = mat3(gbufferPreviousModelView) * currFeetPlayerPos + gbufferPreviousModelView[3].xyz; 9 | return getScreenCoord(gbufferPreviousProjection, prevViewPos); 10 | } 11 | 12 | vec2 getPrevScreenCoord(in vec2 currScreenPos){ 13 | return getPrevScreenCoord(currScreenPos, textureLod(depthtex0, currScreenPos, 0).x); 14 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug 3 | about: Create a bug report to help us improve. 4 | title: "[Bug] Issue Title" 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - GPU [e.g. AMD, Intel, NVidia] 28 | - Shader loader [e.g. Iris 1.5.1, OptiFine 1.19.2_HD_U_I1] 29 | - Shader version [e.g. 22] 30 | 31 | **Additional context** 32 | Add any other context about the problem here. 33 | -------------------------------------------------------------------------------- /shaders/main/shadow/shadow_lightning.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Completely disable this program 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | void main(){ 20 | gl_Position = vec4(-10); 21 | } 22 | #endif 23 | 24 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 25 | 26 | #ifdef FRAGMENT 27 | void main(){ 28 | discard; return; 29 | } 30 | #endif -------------------------------------------------------------------------------- /shaders/main/gbuffers/gbuffers_skybasic.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Completely disable this program 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | void main(){ 20 | gl_Position = vec4(-10); 21 | } 22 | #endif 23 | 24 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 25 | 26 | #ifdef FRAGMENT 27 | void main(){ 28 | discard; return; 29 | } 30 | #endif -------------------------------------------------------------------------------- /shaders/lib/surface/water.glsl: -------------------------------------------------------------------------------- 1 | float getCellNoise(in vec2 uv, in float animateTime){ 2 | return textureLod(noisetex, uv + animateTime, 0).z + textureLod(noisetex, animateTime - uv, 0).z; 3 | } 4 | 5 | float getCellNoise(in vec2 uv){ 6 | const float currentSpeed = CURRENT_SPEED * 0.0625; 7 | float animateTime = fragmentFrameTime * currentSpeed; 8 | return getCellNoise(uv, animateTime); 9 | } 10 | 11 | // Convert height map of water to a normal map 12 | vec4 H2NWater(in vec2 uv){ 13 | const float currentSpeed = CURRENT_SPEED * 0.0625; 14 | const float waterPixel = WATER_BLUR_SIZE * 0.00390625; 15 | const float waterDepth = WATER_BLUR_SIZE * WATER_DEPTH_SIZE; 16 | 17 | float animateTime = fragmentFrameTime * currentSpeed; 18 | 19 | float d0 = getCellNoise(uv, animateTime); 20 | float d1 = getCellNoise(vec2(uv.x + waterPixel, uv.y), animateTime); 21 | float d2 = getCellNoise(vec2(uv.x, uv.y + waterPixel), animateTime); 22 | 23 | return vec4(d0 - d1, d0 - d2, waterDepth, d0); 24 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/mod-compatibility.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Mod compatibility 3 | about: Create a compatibility report to help us improve. 4 | title: "[Mod compatibility] Issue Title" 5 | labels: compatibility 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the compatibility issue** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - GPU [e.g. AMD, Intel, NVidia] 28 | - Shader loader [e.g. Iris 1.5.1, OptiFine 1.19.2_HD_U_I1] 29 | - Shader version [e.g. 22] 30 | - Mod/modpack [e.g. Twilight mod, Create mod] 31 | 32 | **Additional context** 33 | Add any other context about the problem here. 34 | -------------------------------------------------------------------------------- /shaders/entity.properties: -------------------------------------------------------------------------------- 1 | ## Default basic entities 0-15 (their materials will always be on) 2 | ## Lightning bolt (for lightning bolt fix) 3 | entity.10129 = minecraft:lightning_bolt 4 | 5 | ## Basic whole entity emission 6 | entity.10130 = minecraft:experience_orb minecraft:experience_bottle \ 7 | minecraft:fireball minecraft:dragon_fireball minecraft:wither_skull \ 8 | minecraft:vex minecraft:allay minecraft:glow_squid \ 9 | minecraft:magma_cube minecraft:blaze minecraft:wither \ 10 | minecraft:glow_item_frame 11 | 12 | ## End crystal 13 | entity.10131 = minecraft:end_crystal 14 | 15 | ## Charged creeper 16 | entity.10132 = minecraft:creeper 17 | 18 | ## Boat 19 | entity.10133 = 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 20 | 21 | entity.10138 = minecraft:endermite 22 | entity.10139 = minecraft:witch 23 | entity.10141 = minecraft:drowned 24 | entity.10142 = minecraft:stray 25 | entity.10143 = minecraft:ghast -------------------------------------------------------------------------------- /shaders/lib/antialiasing/taa.glsl: -------------------------------------------------------------------------------- 1 | // https://sugulee.wordpress.com/2021/06/21/temporal-anti-aliasingtaa-tutorial/ 2 | vec3 textureTAA(in ivec2 screenTexelCoord){ 3 | // Current color 4 | vec3 currColor = texelFetch(colortex4, screenTexelCoord, 0).rgb; 5 | // Previous color 6 | vec3 prevColor = textureLod(colortex5, getPrevScreenCoord(texCoord, texelFetch(depthtex0, screenTexelCoord, 0).x), 0).rgb; 7 | 8 | // Apply clamping on the history color. 9 | vec3 nearCol0 = texelFetch(colortex4, ivec2(screenTexelCoord.x - 1, screenTexelCoord.y), 0).rgb; 10 | vec3 nearCol1 = texelFetch(colortex4, ivec2(screenTexelCoord.x, screenTexelCoord.y - 1), 0).rgb; 11 | vec3 nearCol2 = texelFetch(colortex4, ivec2(screenTexelCoord.x + 1, screenTexelCoord.y), 0).rgb; 12 | vec3 nearCol3 = texelFetch(colortex4, ivec2(screenTexelCoord.x, screenTexelCoord.y + 1), 0).rgb; 13 | 14 | vec3 boxMin = min(currColor, min(nearCol0, min(nearCol1, min(nearCol2, nearCol3)))); 15 | vec3 boxMax = max(currColor, max(nearCol0, max(nearCol1, max(nearCol2, nearCol3))));; 16 | 17 | // Required to add the "sum color" of the remaining VL 18 | prevColor = clamp(prevColor, boxMin, boxMax); 19 | 20 | // Return temporal color 21 | return currColor * 0.1 + prevColor * 0.9; 22 | } -------------------------------------------------------------------------------- /shaders/lib/lighting/SSAO.glsl: -------------------------------------------------------------------------------- 1 | float getSSAO(in vec3 screenPos, in vec3 viewNormal){ 2 | #if ANTI_ALIASING >= 2 3 | vec3 dither = fract(getRng3(ivec2(gl_FragCoord.xy) & 255) + frameFract); 4 | #else 5 | vec3 dither = getRng3(ivec2(gl_FragCoord.xy) & 255); 6 | #endif 7 | 8 | float occlusion = 0.25; 9 | 10 | // Instead of iterating by adding stepSize and using fract every time, we swizzle + one fract instead for pleasant and optimized results 11 | vec3 baseDither = dither.xyz * 0.5 - 0.25; 12 | vec3 ditherSwizzle[4] = vec3[4]( 13 | baseDither.xyz, 14 | baseDither.zxy, 15 | baseDither.yzx, 16 | fract(dither.zyx + GOLDEN_RATIO) * 0.5 - 0.25 17 | ); 18 | 19 | float depthOrigin = near / (1.0 - screenPos.z); 20 | 21 | // Pre calculate base position 22 | vec3 basePos = getViewPos(gbufferProjectionInverse, screenPos) + viewNormal * 0.5; 23 | 24 | for(uint i = 0u; i < 4u; i++){ 25 | // Add new offsets to origin 26 | vec3 samplePos = getScreenPos(gbufferProjection, basePos + ditherSwizzle[i]); 27 | // Sample new depth and linearize 28 | float sampleDepth = textureLod(depthtex0, samplePos.xy, 0).x; 29 | 30 | // Check if the offset points are inside geometry or if the point is occluded 31 | if(samplePos.z > sampleDepth) occlusion -= 0.0625 / max(depthOrigin - near / (1.0 - sampleDepth), 1.0); 32 | } 33 | 34 | // Remap results and return 35 | return occlusion; 36 | } -------------------------------------------------------------------------------- /shaders/lib/post/outline.glsl: -------------------------------------------------------------------------------- 1 | float getOutline(in ivec2 iUv, in float depthOrigin){ 2 | ivec2 topRightCorner = iUv - OUTLINE_PIXEL_SIZE; 3 | ivec2 bottomLeftCorner = iUv + OUTLINE_PIXEL_SIZE; 4 | 5 | // (1.0 - screenPos.z) / near 6 | // near / (1.0 - screenPos.z) 7 | 8 | #if OUTLINES == 1 9 | float depth0 = near / (1.0 - texelFetch(depthtex0, topRightCorner, 0).x); 10 | float depth1 = near / (1.0 - texelFetch(depthtex0, bottomLeftCorner, 0).x); 11 | float depth2 = near / (1.0 - texelFetch(depthtex0, ivec2(topRightCorner.x, bottomLeftCorner.y), 0).x); 12 | float depth3 = near / (1.0 - texelFetch(depthtex0, ivec2(bottomLeftCorner.x, topRightCorner.y), 0).x); 13 | 14 | float sumDepth = depth0 + depth1 + depth2 + depth3; 15 | 16 | // Calculate standard outlines 17 | return saturate(sumDepth - (near * 4.0) / (1.0 - depthOrigin)); 18 | #else 19 | float depth0 = 64.0 / (1.0 - texelFetch(depthtex0, topRightCorner, 0).x); 20 | float depth1 = 64.0 / (1.0 - texelFetch(depthtex0, bottomLeftCorner, 0).x); 21 | float depth2 = 64.0 / (1.0 - texelFetch(depthtex0, ivec2(topRightCorner.x, bottomLeftCorner.y), 0).x); 22 | float depth3 = 64.0 / (1.0 - texelFetch(depthtex0, ivec2(bottomLeftCorner.x, topRightCorner.y), 0).x); 23 | 24 | float sumDepth = depth0 + depth1 + depth2 + depth3; 25 | 26 | // Calculate dungeons outlines 27 | return saturate((1.0 - depthOrigin) * sumDepth - 256.0); 28 | #endif 29 | } -------------------------------------------------------------------------------- /shaders/lib/atmospherics/fogRender.glsl: -------------------------------------------------------------------------------- 1 | // Modified Complementary border fog calculation, thanks Emin! 2 | float getBorderFog(in float playerPosLength){ 3 | return exp2(-exp2(playerPosLength / borderFar * 21.0 - 18.0)); 4 | } 5 | 6 | // Ground fog calculation from this Stack Exchange post, variables has been renamed for their respective purpose 7 | // https://www.bing.com/search?q=ground+fog+shader&qs=n&form=QBRE&sp=-1&lq=0&pq=&sc=0-0&sk=&cvid=CEF589A66F844D48A5D56923DDBF4540&ghsh=0&ghacc=0&ghpl=&ntref=1 8 | float getAtmosphericFog(in float nPlayerPosY, in float worldPosY, in float playerPosLength, in float totalDensity, in float verticalFogDensity){ 9 | return (totalDensity / verticalFogDensity) * exp2(-worldPosY * verticalFogDensity) * (1.0 - exp2(-playerPosLength * nPlayerPosY * verticalFogDensity)) / nPlayerPosY; 10 | } 11 | 12 | float getFogFactor(in float viewDist, in float nEyePlayerPosY, in float worldPosY){ 13 | #ifdef FORCE_DISABLE_WEATHER 14 | float verticalFogDensity = isEyeInWater == 0 ? FOG_VERTICAL_DENSITY : FOG_VERTICAL_DENSITY * 0.2; 15 | float totalFogDensity = isEyeInWater == 0 ? FOG_TOTAL_DENSITY : FOG_TOTAL_DENSITY * TAU; 16 | #else 17 | float verticalFogDensity = isEyeInWater == 0 ? FOG_VERTICAL_DENSITY - FOG_VERTICAL_DENSITY * rainStrength * 0.8 : FOG_VERTICAL_DENSITY * 0.2; 18 | float totalFogDensity = isEyeInWater == 0 ? FOG_TOTAL_DENSITY * (rainStrength * eyeBrightFact * PI + 1.0) : FOG_TOTAL_DENSITY * TAU; 19 | #endif 20 | 21 | // Return fog, need to cap world position to prevent further fogging 22 | return min(1.0, getAtmosphericFog(nEyePlayerPosY, max(0.0, worldPosY), viewDist, totalFogDensity, verticalFogDensity)) * min(1.0, GROUND_FOG_STRENGTH + GROUND_FOG_STRENGTH * isEyeInWater); 23 | } 24 | 25 | float getFogEffectFactor(in float viewDist){ 26 | // Blindness fog 27 | return exp2(-viewDist * effectFactor); 28 | } -------------------------------------------------------------------------------- /shaders/lib/lighting/basicShadingForward.glsl: -------------------------------------------------------------------------------- 1 | vec3 basicShadingForward(in vec3 albedo){ 2 | // Get sky light squared 3 | float skyLightSquared = squared(lmCoord.y); 4 | 5 | // Calculate sky diffusion first, begining with the sky itself 6 | // Occlude the appled sky and thunder flash calculation by sky light amount 7 | vec3 totalDiffuse = (toLinear(SKY_COLOR_DATA_BLOCK) + lightningFlash) * skyLightSquared; 8 | 9 | // Calculate block light 10 | totalDiffuse += toLinear(squared(lmCoord.x) * blockLightColor * 1.25); 11 | 12 | // Calculate ambient lightning 13 | totalDiffuse += toLinear(nightVision * 0.5 + AMBIENT_LIGHTING); 14 | 15 | #ifdef WORLD_LIGHT 16 | #ifdef SHADOW_MAPPING 17 | // Apply shadow distortion and transform to shadow screen space 18 | vec3 shdPos = vec3(vertexShdPos.xy / (length(vertexShdPos.xy) * 2.0 + 0.2) + 0.5, vertexShdPos.z); 19 | 20 | // Sample shadows 21 | #ifdef SHADOW_FILTER 22 | #if ANTI_ALIASING >= 2 23 | float dither = fract(texelFetch(noisetex, ivec2(gl_FragCoord.xy) & 255, 0).x + frameFract); 24 | #else 25 | float dither = texelFetch(noisetex, ivec2(gl_FragCoord.xy) & 255, 0).x; 26 | #endif 27 | 28 | vec3 shdCol = getShdCol(shdPos, dither * TAU); 29 | #else 30 | vec3 shdCol = getShdCol(shdPos); 31 | #endif 32 | 33 | shdCol *= shdFade; 34 | #else 35 | // Sample fake shadows 36 | float shdCol = saturate(hermiteMix(0.9, 1.0, lmCoord.y)) * shdFade; 37 | #endif 38 | 39 | #ifndef FORCE_DISABLE_WEATHER 40 | // Approximate rain diffusing light shadow 41 | float rainDiffuseAmount = rainStrength * 0.5; 42 | 43 | shdCol *= 1.0 - rainDiffuseAmount; 44 | shdCol += rainDiffuseAmount * skyLightSquared; 45 | #endif 46 | 47 | // Calculate and add shadow diffuse 48 | totalDiffuse += shdCol * toLinear(LIGHT_COLOR_DATA_BLOCK0); 49 | #endif 50 | 51 | // Return final result 52 | return albedo.rgb * totalDiffuse; 53 | } -------------------------------------------------------------------------------- /shaders/main/composite7.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: Fast Approximate Anti-Aliasing (FXAA) 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | #if ANTI_ALIASING == 1 || ANTI_ALIASING == 3 20 | noperspective out vec2 texCoord; 21 | #endif 22 | 23 | void main(){ 24 | #if ANTI_ALIASING == 1 || ANTI_ALIASING == 3 25 | // Get buffer texture coordinates 26 | texCoord = gl_MultiTexCoord0.xy; 27 | #endif 28 | 29 | gl_Position = vec4(gl_Vertex.xy * 2.0 - 1.0, 0, 1); 30 | } 31 | #endif 32 | 33 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 34 | 35 | #ifdef FRAGMENT 36 | /* RENDERTARGETS: 3 */ 37 | layout(location = 0) out vec3 postColOut; // colortex3 38 | 39 | uniform sampler2D colortex3; 40 | 41 | #if ANTI_ALIASING == 1 || ANTI_ALIASING == 3 42 | noperspective in vec2 texCoord; 43 | 44 | uniform float pixelWidth; 45 | uniform float pixelHeight; 46 | 47 | #include "/lib/antialiasing/fxaa.glsl" 48 | #endif 49 | 50 | void main(){ 51 | #if ANTI_ALIASING == 1 || ANTI_ALIASING == 3 52 | postColOut = textureFXAA(ivec2(gl_FragCoord.xy)); 53 | #else 54 | postColOut = texelFetch(colortex3, ivec2(gl_FragCoord.xy), 0).rgb; 55 | #endif 56 | } 57 | #endif -------------------------------------------------------------------------------- /shaders/main/composite5.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: Bloom blur 2nd pass 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | void main(){ 20 | gl_Position = vec4(gl_Vertex.xy * 2.0 - 1.0, 0, 1); 21 | } 22 | #endif 23 | 24 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 25 | 26 | #ifdef FRAGMENT 27 | /* RENDERTARGETS: 0 */ 28 | layout(location = 0) out vec3 bloomColOut; // colortex0 29 | 30 | #ifdef BLOOM 31 | // No need to use mipmapping in this 2nd bloom pass, so we'll utilize texelFetch for some sweet, sweet performance 32 | uniform sampler2D colortex0; 33 | #endif 34 | 35 | void main(){ 36 | #ifdef BLOOM 37 | vec3 sample0 = texelFetch(colortex0, ivec2(gl_FragCoord.x, gl_FragCoord.y - 2), 0).rgb + 38 | texelFetch(colortex0, ivec2(gl_FragCoord.x, gl_FragCoord.y + 2), 0).rgb; 39 | vec3 sample1 = texelFetch(colortex0, ivec2(gl_FragCoord.x, gl_FragCoord.y - 1), 0).rgb + 40 | texelFetch(colortex0, ivec2(gl_FragCoord.x, gl_FragCoord.y + 1), 0).rgb; 41 | vec3 sample2 = texelFetch(colortex0, ivec2(gl_FragCoord.xy), 0).rgb; 42 | 43 | bloomColOut = sample0 * 0.0625 + sample1 * 0.25 + sample2 * 0.375; 44 | #else 45 | bloomColOut = vec3(0); 46 | #endif 47 | } 48 | #endif -------------------------------------------------------------------------------- /shaders/lib/utility/projectionFunctions.glsl: -------------------------------------------------------------------------------- 1 | // Screen space to view space perspective projection 2 | vec3 getViewPos(in mat4 projectionInverse, in vec3 screenPos){ 3 | // vec3 viewPos = vec3(vec2(projectionInverse[0].x, projectionInverse[1].y) * (screenPos.xy * 2.0 - 1.0), -1); 4 | // return viewPos / (projectionInverse[2].w * (screenPos.z * 2.0 - 1.0) + projectionInverse[3].w); 5 | vec3 viewPos = vec3(vec2(projectionInverse[0].x, projectionInverse[1].y) * screenPos.xy * 2.0 - vec2(projectionInverse[0].x, projectionInverse[1].y), -1); 6 | return viewPos / (projectionInverse[2].w * screenPos.z * 2.0 - projectionInverse[2].w + projectionInverse[3].w); 7 | } 8 | 9 | // Screen depth to view depth 10 | float getViewDepth(in mat4 projectionInverse, in float screenDepth){ 11 | // return -1.0 / (projectionInverse[2].w * (screenDepth * 2.0 - 1.0) + projectionInverse[3].w); 12 | return -1.0 / (projectionInverse[2].w * screenDepth * 2.0 - projectionInverse[2].w + projectionInverse[3].w); 13 | } 14 | 15 | // View space to screen space perspective projection 16 | vec3 getScreenPos(in mat4 projection, in vec3 viewPos){ 17 | // vec3 screenPos = vec3(projection[0].x, projection[1].y, projection[2].z) * viewPos; 18 | // return (vec3(screenPos.xy, screenPos.z + projection[3].z) / -viewPos.z) * 0.5 + 0.5; 19 | vec2 clipCoord = vec2(projection[0].x, projection[1].y) * viewPos.xy; 20 | return 0.5 - vec3(clipCoord.xy / viewPos.z, projection[3].z / viewPos.z + projection[2].z) * 0.5; 21 | } 22 | 23 | // View space to screen space coordinates perspective projection 24 | vec2 getScreenCoord(in mat4 projection, in vec3 viewPos){ 25 | vec2 clipCoord = vec2(projection[0].x, projection[1].y) * viewPos.xy; 26 | return 0.5 - (clipCoord.xy / viewPos.z) * 0.5; 27 | } 28 | 29 | // View depth to screen depth 30 | float getScreenDepth(in mat4 projection, in float viewDepth){ 31 | // ((projection[2].z * viewDepth + projection[3].z) / -viewDepth) * 0.5 + 0.5 32 | return 0.5 - (projection[3].z / viewDepth + projection[2].z) * 0.5; 33 | } -------------------------------------------------------------------------------- /shaders/lib/post/tonemap.glsl: -------------------------------------------------------------------------------- 1 | const float oneMinusShoulder = 1.0 - SHOULDER_STRENGTH; 2 | 3 | const float shoulderFactor = oneMinusShoulder * 3.0; 4 | const float shoulderWhitePointFactor = oneMinusShoulder / (WHITE_POINT * WHITE_POINT); 5 | 6 | // Luminance function 7 | float getLuminance(in vec3 col){ 8 | return dot(col, vec3(0.2126, 0.7152, 0.0722)); 9 | } 10 | 11 | // Saturation function 12 | vec3 saturation(in vec3 col, in float a){ 13 | float luma = getLuminance(col); 14 | return (col - luma) * a + luma; 15 | } 16 | 17 | // Contrast function 18 | vec3 contrast(in vec3 col, in float a){ 19 | return (col - 0.5) * a + 0.5; 20 | } 21 | 22 | // Modified Reinhard extended luminance tonemapping 23 | vec3 modifiedReinhardExtended(in vec3 color){ 24 | float sumCol = sumOf(color); 25 | return color * ((3.0 + sumCol * shoulderWhitePointFactor) / (shoulderFactor + sumCol)); 26 | } 27 | 28 | /* 29 | vec3 modifiedReinhardExtended(in vec3 color){ 30 | color *= EXPOSURE; 31 | float sumCol = sumOf(color); 32 | float rainHardFactor = (3.0 + sumCol * shoulderWhitePointFactor) / (shoulderFactor + sumCol); 33 | vec3 tonemapped = color * rainHardFactor; 34 | 35 | // Color tinting, exposure, and tonemapping 36 | const float coefficient = exp2(EXPOSURE) - 1.0; 37 | vec3 exposureFactor = (coefficient * tonemapped) / (1.0 + (coefficient - 1.0) * tonemapped); 38 | 39 | return tonemapped; 40 | } 41 | 42 | float coefficient = EXPOSURE * 0.00392156863; 43 | (coefficient * color + color) / (coefficient * color + 1.0) 44 | (coefficient * color) / (1.0 + (coefficient - 1.0) * color) 45 | */ 46 | 47 | // Modified Reinhard Jodie extended tonemapping 48 | // Might eventually become an option...maybe 49 | vec3 modifiedReinhardJodieExtended(in vec3 color){ 50 | float sumCol = sumOf(color); 51 | 52 | vec3 reinhardColorFactor = color * ((1.0 + color * shoulderWhitePointFactor) / (oneMinusShoulder + color)); 53 | vec3 reinhardLumaFactor = color * ((3.0 + sumCol * shoulderWhitePointFactor) / (shoulderFactor + sumCol)); 54 | 55 | return (reinhardColorFactor - reinhardLumaFactor) * reinhardColorFactor + reinhardLumaFactor; 56 | } -------------------------------------------------------------------------------- /shaders/lib/rayTracing/rayTracer.glsl: -------------------------------------------------------------------------------- 1 | const uint rayTraceSteps = uint(RAYTRACER_STEPS); 2 | const uint rayTraceBiSteps = uint(RAYTRACER_BISTEPS); 3 | 4 | // This raytracer is so fast I swear... 5 | // Based from Belmu's raytracer https://github.com/BelmuTM/NobleRT 6 | // Basically an upgrade to Shadax's raytracer https://github.com/Shadax-stack/MinecraftSSR 7 | vec3 rayTraceScene(in vec3 screenPos, in vec3 viewPos, in vec3 rayDir, in float dither){ 8 | // Fix for the blob when player is near a surface. From Bálint#1673 9 | if(rayDir.z > -viewPos.z) return vec3(0); 10 | 11 | // Get screenspace rayDir 12 | vec3 screenPosRayDir = fastNormalize(getScreenPos(gbufferProjection, viewPos + rayDir) - screenPos) * rayTracerStepsInv; 13 | 14 | // Apply dithering 15 | vec3 startPos = screenPos + screenPosRayDir * dither; 16 | 17 | for(uint i = 0u; i < rayTraceSteps; i++){ 18 | // We raytrace here 19 | startPos += screenPosRayDir; 20 | 21 | // If current pos is out of bounds, exit immediately 22 | if(startPos.x < 0 || startPos.y < 0 || startPos.x > 1 || startPos.y > 1) return vec3(0); 23 | 24 | // Get current texture depth 25 | float currDepth = textureLod(depthtex0, startPos.xy, 0).x; 26 | 27 | // If hand return immediately 28 | if(currDepth <= 0.56) return vec3(0); 29 | 30 | // Check intersection 31 | bool intersection = currDepth < startPos.z; 32 | 33 | // If intersection 34 | if(intersection){ 35 | // Integrated binary refinement 36 | #if RAYTRACER_BISTEPS != 0 37 | for(uint i = 0u; i < rayTraceBiSteps; i++){ 38 | // If sky return immediately 39 | if(getDepthTex(startPos.xy) == 1) return vec3(0); 40 | 41 | // Continue refinement 42 | screenPosRayDir *= 0.5; 43 | startPos += intersection ? -screenPosRayDir : screenPosRayDir; 44 | 45 | // Get current texture depth 46 | currDepth = textureLod(depthtex0, startPos.xy, 0).x; 47 | // Check intersection 48 | intersection = currDepth < startPos.z; 49 | } 50 | #else 51 | // If sky return immediately 52 | if(getDepthTex(startPos.xy) == 1) return vec3(0); 53 | #endif 54 | 55 | // Return final results 56 | return vec3(startPos.xy, 1); 57 | } 58 | } 59 | 60 | return vec3(0); 61 | } -------------------------------------------------------------------------------- /shaders/lib/vertex/waveTerrain.glsl: -------------------------------------------------------------------------------- 1 | // Wave animation movements for shadow 2 | vec3 getTerrainWave(in vec3 vertexEyePlayerPos, in vec2 vertexWorldPosXZ, in float midBlockY, in float id, in float outside, in float currTime){ 3 | // Wind affected blocks 4 | if(WIND_SPEED > 0){ 5 | // Calculate wind strength 6 | float windStrength = sin(-sumOf(id == 10801 ? floor(vertexWorldPosXZ) : vertexWorldPosXZ) * WIND_FREQUENCY + currTime * WIND_SPEED) * outside; 7 | 8 | // Simple blocks, horizontal movement 9 | if(id >= 10000 && id <= 10099){ 10 | vertexEyePlayerPos.xz -= windStrength * 0.1; 11 | return vertexEyePlayerPos; 12 | } 13 | 14 | // Single and double grounded cutouts 15 | if(id >= 10600 && id <= 10799){ 16 | float isUpper = midBlockY - (id >= 10700 ? 1.5 : 0.5); 17 | vertexEyePlayerPos.xz += isUpper * windStrength * 0.1; 18 | return vertexEyePlayerPos; 19 | } 20 | 21 | // Single hanging cutouts 22 | if(id >= 10800 && id <= 10899){ 23 | float isLower = midBlockY + 0.5; 24 | vertexEyePlayerPos.xz += isLower * windStrength * 0.05; 25 | return vertexEyePlayerPos; 26 | } 27 | 28 | // Multi wall cutouts 29 | if(id >= 10900 && id <= 10999){ 30 | vertexEyePlayerPos.xz += windStrength * 0.05; 31 | return vertexEyePlayerPos; 32 | } 33 | } 34 | 35 | // Current affected blocks 36 | if(CURRENT_SPEED > 0){ 37 | // Calculate current strength 38 | float currentStrength = cos(-sumOf(vertexWorldPosXZ) * CURRENT_FREQUENCY + currTime * CURRENT_SPEED); 39 | 40 | // Simple blocks, vertical movement 41 | if(id >= 11100 && id <= 11199){ 42 | vertexEyePlayerPos.y += currentStrength * 0.05; 43 | return vertexEyePlayerPos; 44 | } 45 | 46 | // Single and double grounded cutouts 47 | if(id >= 11600 && id <= 11799){ 48 | float isUpper = midBlockY - (id >= 11700 ? 1.5 : 0.5); 49 | vertexEyePlayerPos.xz += isUpper * currentStrength * 0.1; 50 | return vertexEyePlayerPos; 51 | } 52 | } 53 | 54 | return vertexEyePlayerPos; 55 | } -------------------------------------------------------------------------------- /shaders/lib/post/lensFlare.glsl: -------------------------------------------------------------------------------- 1 | float lensShape(in vec2 lensCoord){ 2 | #if WORLD_SUN_MOON == 2 3 | return abs(length(lensCoord) - cubed(WORLD_SUN_MOON_SIZE)); 4 | #else 5 | return length(lensCoord) - cubed(WORLD_SUN_MOON_SIZE); 6 | #endif 7 | } 8 | 9 | float lensFlareSimple(in vec2 centerCoord, in vec2 lightDir, in float size, in float dist){ 10 | vec2 flareCoord = centerCoord + lightDir * dist; 11 | return squared(squared(max(0.0, 1.0 - lensShape(vec2(flareCoord.x * aspectRatio, flareCoord.y)) / (size * shdLightDirScreenSpace.z)))); 12 | } 13 | 14 | float lensFlareRays(in vec2 centerCoord, in vec2 lightDir, in float rayBeam, in float size, in float dist){ 15 | vec2 flareCoord = centerCoord + lightDir * dist; 16 | float rays = max(0.0, sin(atan(flareCoord.x * aspectRatio, flareCoord.y) * rayBeam)); 17 | float lens = lensFlareSimple(centerCoord, lightDir, size, dist); 18 | return rays * lens + lens; 19 | } 20 | 21 | vec3 chromaLens(in vec2 centerCoord, in vec2 lightDir, in float chromaDist, in float size, in float dist){ 22 | return vec3( 23 | lensFlareSimple(centerCoord, lightDir, size, dist), 24 | lensFlareSimple(centerCoord, lightDir, size, dist * (1.0 - chromaDist)), 25 | lensFlareSimple(centerCoord, lightDir, size, dist * (1.0 - chromaDist * 2.0)) 26 | ); 27 | } 28 | 29 | vec3 getLensFlare(in vec2 centerCoord, in vec2 lightDir){ 30 | float lens0 = lensFlareSimple(centerCoord, lightDir, 0.2, 0.75); 31 | float lens1 = lensFlareSimple(centerCoord, lightDir, 0.1, 0.5); 32 | float lens2 = lensFlareSimple(centerCoord, lightDir, 0.05, 0.25); 33 | 34 | vec3 chromaLens = chromaLens(centerCoord, lightDir, 0.05, 0.05, -0.5); 35 | 36 | #if WORLD_SUN_MOON == 2 37 | return (lens1 + (lens0 + lens2) * 0.125 + chromaLens) * LENS_FLARE_STRENGTH * sRGBLightCol; 38 | #elif SUN_MOON_TYPE == 2 39 | float rays = lensFlareRays(centerCoord, lightDir, 8.0, 0.05, -1.0); 40 | return (lens1 + (lens0 + lens2) * 0.125 + rays + chromaLens) * LENS_FLARE_STRENGTH * sRGBLightCol; 41 | #else 42 | float rays = lensFlareRays(centerCoord, lightDir, 8.0, 0.1, -1.0); 43 | return (lens1 + (lens0 + lens2) * 0.125 + rays + chromaLens) * LENS_FLARE_STRENGTH * sRGBLightCol; 44 | #endif 45 | } -------------------------------------------------------------------------------- /shaders/lib/lighting/shdMapping.glsl: -------------------------------------------------------------------------------- 1 | // Enable filtering on shadows 2 | const int shadowMapResolution = 1024; // Shadow map resolution. Increase for more resolution at the cost of performance. [512 1024 1536 2048 2560 3072 3584 4096 4608 5120 5632 6144 6656 7168 7680 8192] 3 | const float shadowMapPixelSize = 1.0 / shadowMapResolution; // Shadow map pixel size. Calculated as the reciprocal of the shadow map resolution. 4 | const bool shadowHardwareFiltering = true; // Free slightly better filtering 5 | 6 | const float shadowDistance = 128.0; // Shadow distance. Increase to stretch the shadow map to farther distances in blocks. It's recommended to match this setting with your render distance and increase your shadow map resolution. [32.0 64.0 96.0 128.0 160.0 192.0 224.0 256.0 288.0 320.0 352.0 384.0 416.0 448.0 480.0 512.0 544.0 576.0 608.0 640.0 672.0 704.0 736.0 768.0 800.0 832.0 864.0 896.0 928.0 960.0 992.0 1024.0] 7 | const float shadowDistanceRenderMul = 1.0; // Hardcoded to be always 1.0 for maximum optimization. 8 | const float entityShadowDistanceMul = 0.5; // Renders the entity shadows at half shadowDistance. Iris only. 9 | 10 | // Shadow opaque 11 | uniform sampler2DShadow shadowtex0; 12 | 13 | #ifdef SHADOW_COLOR 14 | // Shadow w/o translucents 15 | uniform sampler2DShadow shadowtex1; 16 | 17 | // Shadow color 18 | uniform sampler2D shadowcolor0; 19 | #endif 20 | 21 | vec3 getShdCol(in vec3 shdPos){ 22 | #ifdef SHADOW_COLOR 23 | // Sample shadows 24 | float shd0 = textureLod(shadowtex0, shdPos, 0); 25 | // If not in shadow, return "white" 26 | if(shd0 == 1) return vec3(1); 27 | 28 | // Sample opaque only shadows 29 | float shd1 = textureLod(shadowtex1, shdPos, 0); 30 | // If in shadow, return "black" 31 | if(shd1 == 0) return vec3(0); 32 | // Otherwise, calculate the full shadow color 33 | return texelFetch(shadowcolor0, ivec2(shdPos.xy * shadowMapResolution), 0).rgb * (1.0 - shd0) * shd1 + shd0; 34 | #else 35 | // Sample shadows and return directly 36 | return vec3(textureLod(shadowtex0, shdPos, 0)); 37 | #endif 38 | } 39 | 40 | vec3 getShdCol(in vec3 shdPos, in float dither){ 41 | vec2 randVec = vec2(cos(dither), sin(dither)) * shadowMapPixelSize; 42 | 43 | #if ANTI_ALIASING >= 2 44 | return getShdCol(vec3(shdPos.xy + randVec, shdPos.z)); 45 | #else 46 | return (getShdCol(vec3(shdPos.xy + randVec, shdPos.z)) + getShdCol(vec3(shdPos.xy - randVec, shdPos.z))) * 0.5; 47 | #endif 48 | } -------------------------------------------------------------------------------- /CONTRIBUTION.md: -------------------------------------------------------------------------------- 1 | ## Basic Guidelines 2 | Important standards that must be followed when contributing to this project. These guidelines must remain consistent wherever possible. Please also read [DOCUMENTATION.md](DOCUMENTATION.md) for information about the current pipeline. 3 | 4 | * Do not submit your pull request without testing the shader. 5 | * Optimize your code wherever possible, leave comments when necessary. 6 | * If you're making a pull request for mod compatibility, make sure it follows the above guidelines. 7 | 8 | ## Translation 9 | For translation, it should be based from the latest commit to ensure compatibility and avoid conflicts, and that another person fluent of the language you're translating to should verify the final product. Please also update to the latest .lang version format as the main language file [en_US](/lang/en_US.lang). 10 | 11 | If you're updating an existing translation, the same rules will apply unless someone is already working on it. If that were the case, please communicate with the user working on the translation before making a pull request. 12 | 13 | ## Format guidelines 14 | No spaces around parentheses: `if(condition){`, `this = function()` 15 | 16 | ```glsl 17 | vec3 neverGonna(vec3 GiveYouUp){ 18 | if(neverGonnaLetYouDown){ 19 | return neverGonnaRunAroundAndDesertYou; 20 | }else if(neverGonnaMakeYouCry){ 21 | return neverGonnaSayGoodBye; 22 | } 23 | 24 | return neverGonnaRunAroundAndDesertYou; 25 | } 26 | ``` 27 | 28 | Use `SCREAMING_CASE` for defined macros only. 29 | 30 | ```glsl 31 | #define THIS_IS_CORRECT 0.0 32 | 33 | #define this_is_incorrect 0.0 34 | ``` 35 | 36 | Use `camelCase` on everything else. 37 | 38 | ```glsl 39 | struct thisIsCorrect{ 40 | vec3 thisIsAlsoCorrect; 41 | float thisIsAlsoCorrectAsWell; 42 | } 43 | 44 | thisIsCorrect thisIsAlsoCorrect(vec3 THIS_IS_INCORRECT){ 45 | const float thisIsVeryCorrect = 1.0; 46 | thisIsCorrect this_is_incorrect(vec3(0), thisIsVeryCorrect); 47 | return this_is_incorrect; 48 | } 49 | ``` 50 | 51 | When commenting, leave a space after `//` or `/*`. 52 | 53 | ```glsl 54 | // This is a comment. 55 | /* Explain your code here. */ 56 | 57 | /* 58 | Is this a bird? 59 | */ 60 | 61 | //This is not a comment 62 | /*BLASPHEMY!*/ 63 | ``` 64 | 65 | ## Miscellaneous 66 | You may add your name in [**CONTRIBUTORS**](CONTRIBUTORS.md) under the contributers list with your PR. If you're a translator, add your name in [**TRANSLATORS**](TRANSLATORS.md) under the translators list. 67 | 68 | ## TO DO (for Eldeston) 69 | * Update the descriptions of this file. 70 | * Make a separate file for translation. -------------------------------------------------------------------------------- /shaders/main/composite2.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: Motion blur 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | #ifdef MOTION_BLUR 20 | noperspective out vec2 texCoord; 21 | #endif 22 | 23 | void main(){ 24 | #ifdef MOTION_BLUR 25 | // Get buffer texture coordinates 26 | texCoord = gl_MultiTexCoord0.xy; 27 | #endif 28 | 29 | gl_Position = vec4(gl_Vertex.xy * 2.0 - 1.0, 0, 1); 30 | } 31 | #endif 32 | 33 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 34 | 35 | #ifdef FRAGMENT 36 | /* RENDERTARGETS: 4 */ 37 | layout(location = 0) out vec3 sceneColOut; // colortex4 38 | 39 | uniform sampler2D colortex4; 40 | 41 | #ifdef MOTION_BLUR 42 | noperspective in vec2 texCoord; 43 | 44 | uniform vec3 cameraPosition; 45 | uniform vec3 camPosDelta; 46 | 47 | uniform mat4 gbufferModelViewInverse; 48 | uniform mat4 gbufferPreviousModelView; 49 | 50 | uniform mat4 gbufferProjectionInverse; 51 | uniform mat4 gbufferPreviousProjection; 52 | 53 | uniform sampler2D depthtex0; 54 | 55 | #include "/lib/utility/projectionFunctions.glsl" 56 | #include "/lib/utility/prevProjectionFunctions.glsl" 57 | 58 | #include "/lib/utility/noiseFunctions.glsl" 59 | 60 | #include "/lib/post/motionBlur.glsl" 61 | #endif 62 | 63 | void main(){ 64 | // Screen texel coordinates 65 | ivec2 screenTexelCoord = ivec2(gl_FragCoord.xy); 66 | 67 | // Get scene color 68 | sceneColOut = texelFetch(colortex4, screenTexelCoord, 0).rgb; 69 | 70 | #ifdef MOTION_BLUR 71 | // Declare and get positions 72 | float depth = texelFetch(depthtex0, screenTexelCoord, 0).x; 73 | 74 | // Return immediately if player hand 75 | if(depth <= 0.56) return; 76 | 77 | // Apply motion blur 78 | sceneColOut = motionBlur(sceneColOut, depth, texelFetch(noisetex, screenTexelCoord & 255, 0).x); 79 | #endif 80 | } 81 | #endif -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | FlameRender (C) Studios License 2 | Version 1.6, November 8, 2024 3 | 4 | Copyright (C) 2023 Eldeston 5 | All Rights Reserved unless otherwise explicitly stated. 6 | 7 | 0. Definitions 8 | 0.1. "The license" and/or "this license" refers to the FlameRender (C) Studios License. 9 | 10 | 0.2. "The project" and/or "this project" refers to the files included with this license. 11 | 12 | 0.3. "Author" refers to the original creator of the project and its source code. 13 | 14 | 0.4. "User" and/or "users" refers to the people that use this project. 15 | 16 | 0.5. "Modpack" refers to a collection of unique projects represented as another unique project. 17 | 18 | 0.6. To "modify" means to adapt all or part of the project other than its exact copy. The resulting project is then called the "modified version" of the earlier project. The criteria for the modified version must meet the following conditions: 19 | a. Adapted values or settings of the project are disqualified as the "modified version." 20 | b. The "modified version" is visually and functionally distinct from the earlier project. 21 | 22 | 1. Permissions 23 | 1.1. Users are allowed to modify this project for personal use. 24 | 25 | 1.2. Users are allowed to use this project for content creation. 26 | 27 | 1.3. Users are allowed to redistribute this project as part of a modpack under the following conditions: 28 | a. The modpack includes a copy of this license and copyright notice. 29 | b. The project and its author are visibly credited in the description of the modpack. 30 | 31 | 1.4. Users are allowed to redistribute this project as the modified version under the following conditions: 32 | a. The modified version uses the same license as this project. 33 | b. The modified version does not use "Super Duper Vanilla" in its name. 34 | c. The modified version includes a copy of this license and copyright notice. 35 | d. The project and its author are visibly credited in the description of the modified version. 36 | 37 | 2. Denied cases 38 | 2.1. Users are not allowed to redistribute this project unless the case falls under sections 1.3 or 1.4 in this license. 39 | 40 | 3. Disclaimers 41 | 3.1. THE PROJECT IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE PROJECT OR THE USE OR OTHER DEALINGS IN THE PROJECT. 42 | 43 | 3.3. This license and its terms are subject to change and review at any time by this project's author. 44 | -------------------------------------------------------------------------------- /shaders/lib/rayTracing/volumetricClouds.glsl: -------------------------------------------------------------------------------- 1 | const uint volumetricCloudSteps = uint(VOLUMETRIC_CLOUD_STEPS); 2 | 3 | const float volumetricCenterDepth = VOLUMETRIC_CLOUD_DEPTH * 0.5; 4 | const float volumetricCloudHeight = 195.0 + volumetricCenterDepth; 5 | 6 | // This took me a while to finally understand how this all works 7 | vec2 volumetricClouds(in vec3 nFeetPlayerPos, in vec3 cameraPos, in float feetPlayerDist, in float dither, in bool isSky){ 8 | // Minimum cloud distance, if terrain, caps distance to the minimum cloud distance 9 | float cloudFar = isSky ? volumetricCloudFar : min(volumetricCloudFar, feetPlayerDist); 10 | float invCloudFarSqrd = 1.0 / squared(volumetricCloudFar); 11 | 12 | // Sets the bounding box vertically 13 | float lowerBoundDist = (-VOLUMETRIC_CLOUD_DEPTH - cameraPos.y) / nFeetPlayerPos.y; 14 | float higherBoundDist = -cameraPos.y / nFeetPlayerPos.y; 15 | 16 | // Finds the nearest and furthest plane 17 | float nearestPlane = max(min(lowerBoundDist, higherBoundDist), 0.0); 18 | float furthestPlane = min(cloudFar, max(lowerBoundDist, higherBoundDist)); 19 | 20 | // If the clouds are outside the bounding box, return nothing 21 | if(furthestPlane < 0) return vec2(0); 22 | 23 | // Get distance inside the cloud 24 | float distInsideCloud = furthestPlane - nearestPlane; 25 | 26 | // Calculate cloud steps that dynamically increase with distance 27 | uint dynamicVolumetricCloudSteps = min(uint(distInsideCloud), volumetricCloudSteps); 28 | float volumetricCloudStepsInverse = 1.0 / dynamicVolumetricCloudSteps; 29 | 30 | // Multiply by volumetricCloudStepsInverse to get the step size and scale with distance 31 | vec3 endPos = nFeetPlayerPos * (distInsideCloud * volumetricCloudStepsInverse); 32 | 33 | // Camera position as its start position 34 | vec3 startPos = cameraPos + nFeetPlayerPos * nearestPlane + endPos * dither; 35 | 36 | // To store the cloud data for 2 cloud layers 37 | vec2 clouds = vec2(0); 38 | 39 | // LESSS GOOOOO RAT RACING!!!11!!11!!11!! 40 | for(uint i = 0u; i < dynamicVolumetricCloudSteps; i++){ 41 | // Get cloud fog 42 | float cloudFog = 1.0 - lengthSquared(startPos - cameraPos) * invCloudFarSqrd; 43 | 44 | // Get cloud texture 45 | vec2 cloudData = texelFetch(colortex0, ivec2(startPos.xz * 0.0625) & 255, 0).xy; 46 | 47 | // Apply cloud gradiante' 48 | // Check if ray is inside a cloud 49 | if(cloudData.x > 0.5) clouds.x = max(clouds.x, -startPos.y * cloudFog); 50 | if(cloudData.y > 0.5) clouds.y = max(clouds.y, -startPos.y * cloudFog); 51 | 52 | // Continue tracing 53 | startPos += endPos; 54 | } 55 | 56 | // Otherwise, return nothing 57 | return clouds; 58 | } -------------------------------------------------------------------------------- /shaders/main/composite1.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: Temporal Anti-Aliasing (TAA) 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | noperspective out vec2 texCoord; 20 | 21 | void main(){ 22 | // Get buffer texture coordinates 23 | texCoord = gl_MultiTexCoord0.xy; 24 | 25 | gl_Position = vec4(gl_Vertex.xy * 2.0 - 1.0, 0, 1); 26 | } 27 | #endif 28 | 29 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 30 | 31 | #ifdef FRAGMENT 32 | /* RENDERTARGETS: 4 */ 33 | layout(location = 0) out vec3 sceneColOut; // colortex4 34 | 35 | #if (defined PREVIOUS_FRAME && (defined SSR || defined SSGI)) || ANTI_ALIASING >= 2 36 | /* RENDERTARGETS: 4,5 */ 37 | #ifdef AUTO_EXPOSURE 38 | out vec4 temporalDataOut; // colortex5 39 | #else 40 | out vec3 temporalDataOut; // colortex5 41 | #endif 42 | #endif 43 | 44 | noperspective in vec2 texCoord; 45 | 46 | uniform sampler2D colortex4; 47 | 48 | #if (defined PREVIOUS_FRAME && (defined SSR || defined SSGI)) || ANTI_ALIASING >= 2 49 | uniform sampler2D colortex5; 50 | #endif 51 | 52 | #if ANTI_ALIASING >= 2 53 | uniform vec3 cameraPosition; 54 | uniform vec3 camPosDelta; 55 | 56 | uniform mat4 gbufferModelViewInverse; 57 | uniform mat4 gbufferPreviousModelView; 58 | 59 | uniform mat4 gbufferProjectionInverse; 60 | uniform mat4 gbufferPreviousProjection; 61 | 62 | uniform sampler2D depthtex0; 63 | 64 | #include "/lib/utility/projectionFunctions.glsl" 65 | #include "/lib/utility/prevProjectionFunctions.glsl" 66 | 67 | #include "/lib/antialiasing/taa.glsl" 68 | #endif 69 | 70 | void main(){ 71 | #if ANTI_ALIASING >= 2 72 | sceneColOut = textureTAA(ivec2(gl_FragCoord.xy)); 73 | #else 74 | sceneColOut = texelFetch(colortex4, ivec2(gl_FragCoord.xy), 0).rgb; 75 | #endif 76 | 77 | #if ((defined SSR || defined SSGI) && defined PREVIOUS_FRAME) || ANTI_ALIASING >= 2 78 | #ifdef AUTO_EXPOSURE 79 | temporalDataOut = vec4(sceneColOut, texelFetch(colortex5, ivec2(0), 0).a); 80 | #else 81 | temporalDataOut = sceneColOut; 82 | #endif 83 | #endif 84 | } 85 | #endif -------------------------------------------------------------------------------- /shaders/lib/rayTracing/volumetricLight.glsl: -------------------------------------------------------------------------------- 1 | #define VOLUMETRIC_LIGHT_STEPS 7u 2 | 3 | const float volumetricStepsInverse = 1.0 / VOLUMETRIC_LIGHT_STEPS; 4 | 5 | vec3 getVolumetricLight(in vec3 nFeetPlayerPos, in float feetPlayerDist, in float fogFactor, in float borderFog, in float dither, in bool isSky){ 6 | float totalFogDensity = FOG_TOTAL_DENSITY; 7 | 8 | #ifdef FORCE_DISABLE_WEATHER 9 | if(isEyeInWater != 0) totalFogDensity *= TAU; 10 | #else 11 | totalFogDensity *= isEyeInWater == 0 ? (rainStrength * PI + 1.0) : TAU; 12 | #endif 13 | 14 | float heightFade = 1.0; 15 | 16 | // Fade VL, but do not apply to underwater VL 17 | if(isEyeInWater == 0 && nFeetPlayerPos.y > 0){ 18 | heightFade = squared(squared(1.0 - squared(nFeetPlayerPos.y))); 19 | if(isSky) heightFade *= heightFade; 20 | 21 | #ifndef WORLD_CUSTOM_SKYLIGHT 22 | #ifndef FORCE_DISABLE_WEATHER 23 | heightFade += (1.0 - heightFade) * max(1.0 - eyeBrightFact, rainStrength * 0.5); 24 | #else 25 | heightFade += (1.0 - heightFade) * (1.0 - eyeBrightFact); 26 | #endif 27 | #endif 28 | } 29 | 30 | float volumetricFogDensity = 1.0 - exp2(-feetPlayerDist * totalFogDensity); 31 | volumetricFogDensity = (volumetricFogDensity - fogFactor) * VOLUMETRIC_LIGHTING_STRENGTH + fogFactor; 32 | 33 | // Border fog 34 | #ifdef BORDER_FOG 35 | volumetricFogDensity = (volumetricFogDensity - 1.0) * borderFog + 1.0; 36 | #endif 37 | 38 | #if defined VOLUMETRIC_LIGHTING && defined SHADOW_MAPPING 39 | // Normalize then unormalize with feetPlayerDist and clamping it at minimum distance between far and current shadowDistance 40 | vec3 endPos = vec3(shadowProjection[0].x, shadowProjection[1].y, shadowProjection[2].z) * (mat3(shadowModelView) * nFeetPlayerPos); 41 | endPos *= min(min(borderFar, shadowDistance), feetPlayerDist) * volumetricStepsInverse; 42 | 43 | // Apply dithering added to the eyePlayerPos "camera" position converted to shadow clip space 44 | vec3 startPos = vec3(shadowProjection[0].x, shadowProjection[1].y, shadowProjection[2].z) * shadowModelView[3].xyz + endPos * dither; 45 | startPos.z += shadowProjection[3].z; 46 | 47 | vec3 volumeData = vec3(0); 48 | 49 | for(uint i = 0u; i < VOLUMETRIC_LIGHT_STEPS; i++){ 50 | // No need to do anymore fancy matrix multiplications during the loop 51 | volumeData += getShdCol(vec3(startPos.xy / (length(startPos.xy) * 2.0 + 0.2), startPos.z * 0.1) + 0.5); 52 | // We continue tracing! 53 | startPos += endPos; 54 | } 55 | 56 | return volumeData * lightCol * (min(1.0, VOLUMETRIC_LIGHTING_STRENGTH + VOLUMETRIC_LIGHTING_STRENGTH * isEyeInWater) * squared(heightFade) * volumetricFogDensity * volumetricStepsInverse); 57 | #else 58 | if(isEyeInWater == 1) return lightCol * toLinear(fogColor) * (min(1.0, VOLUMETRIC_LIGHTING_STRENGTH * 2.0) * volumetricFogDensity); 59 | #ifdef WORLD_CUSTOM_SKYLIGHT 60 | else return lightCol * (volumetricFogDensity * VOLUMETRIC_LIGHTING_STRENGTH); 61 | #else 62 | else return lightCol * (squared(eyeBrightFact) * volumetricFogDensity * VOLUMETRIC_LIGHTING_STRENGTH); 63 | #endif 64 | #endif 65 | } -------------------------------------------------------------------------------- /shaders/main/composite4.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: Bloom blur 1st pass 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | #ifdef BLOOM 20 | noperspective out vec2 texCoord; 21 | #endif 22 | 23 | void main(){ 24 | #ifdef BLOOM 25 | // Get buffer texture coordinates 26 | texCoord = gl_MultiTexCoord0.xy; 27 | #endif 28 | 29 | gl_Position = vec4(gl_Vertex.xy * 2.0 - 1.0, 0, 1); 30 | } 31 | #endif 32 | 33 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 34 | 35 | #ifdef FRAGMENT 36 | /* RENDERTARGETS: 0 */ 37 | layout(location = 0) out vec3 bloomColOut; // colortex0 38 | 39 | #ifdef BLOOM 40 | // Needs to be enabled by force to be able to use LOD fully even with textureLod 41 | const bool colortex4MipmapEnabled = true; 42 | 43 | noperspective in vec2 texCoord; 44 | 45 | uniform float pixelWidth; 46 | 47 | uniform sampler2D colortex4; 48 | 49 | vec3 bloomTile(in vec3 bloomCol, in vec2 bloomPos, in int scale, in int LOD){ 50 | vec2 bloomUv = bloomPos * scale; 51 | 52 | // Apply padding 53 | if(bloomUv.x < 0 || bloomUv.x > 1 || bloomUv.y < 0 || bloomUv.y > 1) return bloomCol; 54 | 55 | // Get pixel size based on bloom tile scale 56 | float pixSize = scale * pixelWidth; 57 | 58 | vec3 sample0 = textureLod(colortex4, vec2(bloomUv.x - pixSize * 2.0, bloomUv.y), LOD).rgb + 59 | textureLod(colortex4, vec2(bloomUv.x + pixSize * 2.0, bloomUv.y), LOD).rgb; 60 | vec3 sample1 = textureLod(colortex4, vec2(bloomUv.x - pixSize, bloomUv.y), LOD).rgb + 61 | textureLod(colortex4, vec2(bloomUv.x + pixSize, bloomUv.y), LOD).rgb; 62 | vec3 sample2 = textureLod(colortex4, bloomUv, LOD).rgb; 63 | 64 | return sample0 * 0.0625 + sample1 * 0.25 + sample2 * 0.375; 65 | } 66 | #endif 67 | 68 | void main(){ 69 | #ifdef BLOOM 70 | bloomColOut = bloomTile(vec3(0), texCoord, 4, 2); 71 | bloomColOut = bloomTile(bloomColOut, vec2(texCoord.x, texCoord.y - 0.2578125), 8, 3); 72 | bloomColOut = bloomTile(bloomColOut, vec2(texCoord.x - 0.12890625, texCoord.y - 0.2578125), 16, 4); 73 | bloomColOut = bloomTile(bloomColOut, vec2(texCoord.x - 0.1953125, texCoord.y - 0.2578125), 32, 5); 74 | bloomColOut = bloomTile(bloomColOut, vec2(texCoord.x - 0.12890625, texCoord.y - 0.328125), 64, 6); 75 | #else 76 | bloomColOut = vec3(0); 77 | #endif 78 | } 79 | #endif -------------------------------------------------------------------------------- /shaders/main/gbuffers/gbuffers_lightning.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: TAA jittering, complex shading, PBR, lightning, and world curvature 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | out vec4 vertexColor; 20 | 21 | #ifdef WORLD_CURVATURE 22 | uniform mat4 gbufferModelView; 23 | uniform mat4 gbufferModelViewInverse; 24 | #endif 25 | 26 | #if ANTI_ALIASING == 2 27 | uniform int frameMod; 28 | 29 | uniform float pixelWidth; 30 | uniform float pixelHeight; 31 | 32 | #include "/lib/utility/taaJitter.glsl" 33 | #endif 34 | 35 | void main(){ 36 | // Get vertex color 37 | vertexColor = gl_Color; 38 | 39 | // Get vertex view position 40 | vec3 vertexViewPos = mat3(gl_ModelViewMatrix) * gl_Vertex.xyz + gl_ModelViewMatrix[3].xyz; 41 | 42 | #ifdef WORLD_CURVATURE 43 | // Get vertex eye player position 44 | vec3 vertexEyePlayerPos = mat3(gbufferModelViewInverse) * vertexViewPos; 45 | 46 | // Get vertex feet player position 47 | vec2 vertexFeetPlayerPosXZ = vertexEyePlayerPos.xz + gbufferModelViewInverse[3].xz; 48 | 49 | // Apply curvature distortion 50 | vertexEyePlayerPos.y -= lengthSquared(vertexFeetPlayerPosXZ) * worldCurvatureInv; 51 | 52 | // Convert back to vertex view position 53 | vertexViewPos = mat3(gbufferModelView) * vertexEyePlayerPos; 54 | #endif 55 | 56 | // Convert to clip position and output as final position 57 | // gl_Position = gl_ProjectionMatrix * vertexViewPos; 58 | gl_Position.xyz = getMatScale(mat3(gl_ProjectionMatrix)) * vertexViewPos; 59 | gl_Position.z += gl_ProjectionMatrix[3].z; 60 | 61 | gl_Position.w = -vertexViewPos.z; 62 | 63 | #if ANTI_ALIASING == 2 64 | gl_Position.xy += jitterPos(gl_Position.w); 65 | #endif 66 | } 67 | #endif 68 | 69 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 70 | 71 | #ifdef FRAGMENT 72 | /* RENDERTARGETS: 4 */ 73 | layout(location = 0) out vec3 sceneColOut; // colortex4 74 | 75 | in vec4 vertexColor; 76 | 77 | uniform int entityId; 78 | 79 | void main(){ 80 | const vec3 lightingCol = vec3(0.25 * EMISSIVE_INTENSITY, 0.5 * EMISSIVE_INTENSITY, EMISSIVE_INTENSITY); 81 | 82 | // Write to HDR scene color 83 | if(entityId == 10129) sceneColOut = vertexColor.rgb * lightingCol; 84 | else sceneColOut = toLinear(vertexColor.rgb * vertexColor.a) * EMISSIVE_INTENSITY; 85 | } 86 | #endif -------------------------------------------------------------------------------- /shaders/main/deferred.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: Solid screen space ambient occlusion 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | #ifdef SSAO 20 | noperspective out vec2 texCoord; 21 | #endif 22 | 23 | void main(){ 24 | #ifdef SSAO 25 | // Get buffer texture coordinates 26 | texCoord = gl_MultiTexCoord0.xy; 27 | #endif 28 | 29 | gl_Position = vec4(gl_Vertex.xy * 2.0 - 1.0, 0, 1); 30 | } 31 | #endif 32 | 33 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 34 | 35 | #ifdef FRAGMENT 36 | /* RENDERTARGETS: 2 */ 37 | #ifdef SSAO 38 | layout(location = 0) out vec4 albedoDataOut; // colortex2 39 | #else 40 | layout(location = 0) out vec3 albedoDataOut; // colortex2 41 | #endif 42 | 43 | // SSAO without normals fix for beacon 44 | const vec4 colortex1ClearColor = vec4(0, 0, 0, 1); 45 | 46 | #ifdef SSAO 47 | noperspective in vec2 texCoord; 48 | #endif 49 | 50 | uniform sampler2D colortex2; 51 | 52 | #ifdef SSAO 53 | uniform float near; 54 | 55 | uniform mat4 gbufferModelView; 56 | 57 | uniform mat4 gbufferProjection; 58 | uniform mat4 gbufferProjectionInverse; 59 | 60 | uniform sampler2D colortex1; 61 | 62 | uniform sampler2D depthtex0; 63 | 64 | #if ANTI_ALIASING >= 2 65 | uniform float frameFract; 66 | #endif 67 | 68 | #include "/lib/utility/projectionFunctions.glsl" 69 | #include "/lib/utility/noiseFunctions.glsl" 70 | 71 | #include "/lib/lighting/SSAO.glsl" 72 | #endif 73 | 74 | void main(){ 75 | // Screen texel coordinates 76 | ivec2 screenTexelCoord = ivec2(gl_FragCoord.xy); 77 | 78 | #ifdef SSAO 79 | albedoDataOut = vec4(texelFetch(colortex2, screenTexelCoord, 0).rgb, 0.25); 80 | 81 | // Declare and get positions 82 | float depth = texelFetch(depthtex0, screenTexelCoord, 0).x; 83 | 84 | // If sky or player hand return immediately 85 | if(depth <= 0.56 || depth == 1) return; 86 | 87 | // Check if sky and player hand 88 | vec3 normal = texelFetch(colortex1, screenTexelCoord, 0).xyz; 89 | 90 | // Check if normal has a direction 91 | if(normal.x + normal.y + normal.z == 0) return; 92 | 93 | // Do SSAO 94 | albedoDataOut.w = getSSAO(vec3(texCoord, depth), mat3(gbufferModelView) * normal); 95 | #else 96 | albedoDataOut = texelFetch(colortex2, screenTexelCoord, 0).rgb; 97 | #endif 98 | } 99 | #endif -------------------------------------------------------------------------------- /shaders/main/gbuffers/gbuffers_damagedblock.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: TAA jittering, direct shading, and world curvature 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | out vec2 texCoord; 20 | 21 | #ifdef WORLD_CURVATURE 22 | uniform mat4 gbufferModelView; 23 | uniform mat4 gbufferModelViewInverse; 24 | #endif 25 | 26 | #if ANTI_ALIASING == 2 27 | uniform int frameMod; 28 | 29 | uniform float pixelWidth; 30 | uniform float pixelHeight; 31 | 32 | #include "/lib/utility/taaJitter.glsl" 33 | #endif 34 | 35 | void main(){ 36 | // Get buffer texture coordinates 37 | texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; 38 | 39 | // Get vertex view position 40 | vec3 vertexViewPos = mat3(gl_ModelViewMatrix) * gl_Vertex.xyz + gl_ModelViewMatrix[3].xyz; 41 | 42 | #ifdef WORLD_CURVATURE 43 | // Get vertex eye player position 44 | vec3 vertexEyePlayerPos = mat3(gbufferModelViewInverse) * vertexViewPos; 45 | 46 | // Get vertex feet player position 47 | vec2 vertexFeetPlayerPosXZ = vertexEyePlayerPos.xz + gbufferModelViewInverse[3].xz; 48 | 49 | // Apply curvature distortion 50 | vertexEyePlayerPos.y -= lengthSquared(vertexFeetPlayerPosXZ) * worldCurvatureInv; 51 | 52 | // Convert back to vertex view position 53 | vertexViewPos = mat3(gbufferModelView) * vertexEyePlayerPos; 54 | #endif 55 | 56 | // Convert to clip position and output as final position 57 | // gl_Position = gl_ProjectionMatrix * vertexViewPos; 58 | gl_Position.xyz = getMatScale(mat3(gl_ProjectionMatrix)) * vertexViewPos; 59 | gl_Position.z += gl_ProjectionMatrix[3].z; 60 | 61 | gl_Position.w = -vertexViewPos.z; 62 | 63 | #if ANTI_ALIASING == 2 64 | gl_Position.xy += jitterPos(gl_Position.w); 65 | #endif 66 | } 67 | #endif 68 | 69 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 70 | 71 | #ifdef FRAGMENT 72 | /* RENDERTARGETS: 4 */ 73 | layout(location = 0) out vec4 sceneColOut; // colortex4 74 | 75 | in vec2 texCoord; 76 | 77 | // Get albedo texture 78 | uniform sampler2D gtexture; 79 | 80 | void main(){ 81 | // Get albedo color 82 | vec4 albedo = textureLod(gtexture, texCoord, 0); 83 | 84 | // Alpha test, discard and return immediately 85 | if(albedo.a < ALPHA_THRESHOLD){ discard; return; } 86 | 87 | // Convert to linear space 88 | albedo.rgb = toLinear(albedo.rgb); 89 | 90 | sceneColOut = albedo; 91 | } 92 | #endif -------------------------------------------------------------------------------- /shaders/lib/lighting/complexShadingDeferred.glsl: -------------------------------------------------------------------------------- 1 | vec3 complexShadingDeferred(in vec3 sceneCol, in vec3 screenPos, in vec3 viewPos, in vec3 normal, in vec3 albedo, in vec3 dither, in float viewDotInvSqrt, in float metallic, in float smoothness, in bool realSky){ 2 | #if defined ROUGH_REFLECTIONS || defined SSGI 3 | vec3 noiseUnitVector = generateUnitVector(dither.xy); 4 | #endif 5 | 6 | // Calculate SSGI 7 | #ifdef SSGI 8 | // Get SSGI screen coordinates 9 | vec3 SSGIcoord = rayTraceScene(screenPos, viewPos, generateCosineVector(normal, noiseUnitVector), dither.z); 10 | 11 | // If sky don't do SSGI 12 | #ifdef PREVIOUS_FRAME 13 | if(SSGIcoord.z > 0.5) sceneCol += albedo * textureLod(colortex5, getPrevScreenCoord(SSGIcoord.xy), 0).rgb; 14 | #else 15 | if(SSGIcoord.z > 0.5) sceneCol += albedo * textureLod(colortex4, SSGIcoord.xy, 0).rgb; 16 | #endif 17 | #endif 18 | 19 | // If smoothness is 0, return immediately 20 | if(smoothness < 0.005) return sceneCol; 21 | 22 | #ifdef ROUGH_REFLECTIONS 23 | // Rough the normals with noise 24 | normal = generateCosineVector(normal, noiseUnitVector * (squared(1.0 - smoothness) * 0.5)); 25 | #endif 26 | 27 | vec3 nViewPos = viewPos * viewDotInvSqrt; 28 | 29 | // Get reflected view direction 30 | // reflect(direction, normal) = direction - 2.0 * dot(normal, direction) * normal 31 | float NV = dot(normal, -nViewPos); 32 | vec3 reflectViewDir = nViewPos + (2.0 * NV) * normal; 33 | 34 | // Calculate SSR and sky reflections 35 | #ifdef SSR 36 | // Get SSR screen coordinates 37 | vec3 SSRCoord = rayTraceScene(screenPos, viewPos, reflectViewDir, dither.z); 38 | 39 | #ifdef DISTANT_HORIZONS 40 | if(realSky) SSRCoord.z = 0.0; 41 | #endif 42 | 43 | // Fake reflections, also helps with improving reflection quality 44 | if(SSRCoord.z < 0.5){ 45 | // Using the original ray direction, get the reflected ray and increase its length 46 | vec3 reflectDirF = viewPos + reflectViewDir * borderFar; 47 | 48 | // This masks only the reflections in view 49 | if(reflectDirF.z < viewPos.z){ 50 | vec3 SSRDH = getScreenPos(gbufferProjection, reflectDirF); 51 | if(SSRDH.x >= 0 && SSRDH.y >= 0 && SSRDH.x <= 1 && SSRDH.y <= 1 && getDepthTex(SSRDH.xy) != 1) SSRCoord = vec3(SSRDH.xy, 1); 52 | } 53 | } 54 | 55 | #ifdef PREVIOUS_FRAME 56 | // Get reflections and check for sky 57 | vec3 reflectCol = SSRCoord.z < 0.5 ? getSkyReflection(reflectViewDir) : textureLod(colortex5, getPrevScreenCoord(SSRCoord.xy), 0).rgb; 58 | #else 59 | // Get reflections and check for sky 60 | vec3 reflectCol = SSRCoord.z < 0.5 ? getSkyReflection(reflectViewDir) : textureLod(colortex4, SSRCoord.xy, 0).rgb; 61 | #endif 62 | #else 63 | vec3 reflectCol = getSkyReflection(reflectViewDir); 64 | #endif 65 | 66 | // Modified version of BSL's reflection PBR calculation 67 | // vec3 fresnel = (F0 + (1.0 - F0) * cosTheta) * smoothness 68 | // Fresnel calculation derived and optimized from this equation 69 | float smoothCosTheta = NV > 0 ? exp2(-9.28 * NV) * smoothness : smoothness; 70 | float oneMinusCosTheta = smoothness - smoothCosTheta; 71 | 72 | if(metallic <= 0.9) return sceneCol + reflectCol * (smoothCosTheta + metallic * oneMinusCosTheta); 73 | return sceneCol + reflectCol * (smoothCosTheta + albedo * oneMinusCosTheta); 74 | } -------------------------------------------------------------------------------- /shaders/lib/utility/celestialFunctions.glsl: -------------------------------------------------------------------------------- 1 | /* Unused, needs to be worked on */ 2 | 3 | uniform float celestialCosX; 4 | uniform float celestialSinX; 5 | 6 | // World space to celestial space 7 | vec3 getCelestialPos(in vec3 eyePlayerPos, in float sinAxisX, in float cosAxisX){ 8 | // vec3 celestialPos = eyePlayerPos.zyx; 9 | // celestialPos.xy = celestialRotationZ * celestialPos.xy; 10 | // celestialPos.yz = mat2(cosAxisX, sinAxisX, -sinAxisX, cosAxisX) * celestialPos.yz; 11 | 12 | // vec3 celestialPos = mat3(shadowModelView) * nEyePlayerPos; 13 | 14 | vec2 zCoord = vec2( 15 | eyePlayerPos.z * celestialCosZ - eyePlayerPos.y * celestialSinZ, 16 | eyePlayerPos.z * celestialSinZ + eyePlayerPos.y * celestialCosZ 17 | // dot(eyePlayerPos.zy, vec2(celestialCosZ, -celestialSinZ)), 18 | // dot(eyePlayerPos.zy, vec2(celestialSinZ, celestialCosZ)) 19 | ); 20 | 21 | vec2 xCoord = vec2( 22 | zCoord.y * cosAxisX - eyePlayerPos.x * sinAxisX, 23 | zCoord.y * sinAxisX + eyePlayerPos.x * cosAxisX 24 | // dot(vec2(zCoord.y, eyePlayerPos.x), vec2(cosAxisX, -sinAxisX)), 25 | // dot(vec2(zCoord.y, eyePlayerPos.x), vec2(sinAxisX, cosAxisX)) 26 | ); 27 | 28 | return vec3(zCoord.x, xCoord); 29 | } 30 | 31 | uniform float sunAngle; 32 | 33 | // World space to celestial space 34 | vec3 getCelestialPos(in vec3 eyePlayerPos){ 35 | // Rotate by 90 in the y axis 36 | eyePlayerPos.xz = rot2D(-90.0 * (PI / 180.0)) * eyePlayerPos.xz; 37 | // eyePlayerPos.xz = eyePlayerPos.zx; 38 | // Rotate by sunPathRotation in the x axis 39 | eyePlayerPos.xy = rot2D(-sunPathRotation * (PI / 180.0)) * eyePlayerPos.xy; 40 | // Rotate by sunAngle in the z axis 41 | eyePlayerPos.yz = rot2D(-sunAngle * TAU) * eyePlayerPos.yz; 42 | 43 | return eyePlayerPos; 44 | } 45 | 46 | // World space to celestial space 47 | vec3 getCelestialPos(in vec3 eyePlayerPos){ 48 | // eyePlayerPos.xz = rot2D(-90.0 * (PI / 180.0)) * eyePlayerPos.xz; 49 | // eyePlayerPos.xz = eyePlayerPos.zx; 50 | // eyePlayerPos.xy = rot2D(-sunPathRotation * (PI / 180.0)) * eyePlayerPos.xy; 51 | // eyePlayerPos.yz = rot2D(-sunAngle * TAU) * eyePlayerPos.yz; 52 | 53 | // eyePlayerPos = rot3DY(90.0 * (PI / 180.0)) * eyePlayerPos; 54 | // eyePlayerPos = rot3DX(-sunPathRotation * (PI / 180.0)) * eyePlayerPos; 55 | // eyePlayerPos = rot3DZ(-sunAngle * TAU) * eyePlayerPos; 56 | 57 | mat3 newShadowModelView = rot3DY(90.0 * (PI / 180.0)) * rot3DX(sunAngle * TAU) * rot3DZ(-sunPathRotation * (PI / 180.0)); 58 | 59 | return newShadowModelView * eyePlayerPos; 60 | } 61 | 62 | // getCelestialPos(vertexShadowFeetPlayerPos.xyz, celestialSinX, celestialCosX) 63 | 64 | /* 65 | mat3( 66 | 0, -celestialSinX, celestialCosX, 67 | -celestialSinZ, celestialCosZ * celestialCosX, celestialCosZ * celestialSinX, 68 | celestialCosZ, celestialSinZ * celestialCosX, celestialSinZ * celestialSinX 69 | ) 70 | */ 71 | 72 | /* 73 | mat3( 74 | 0, 0, 0 75 | 0, 0, cos(z) * cos(x), sin(z) * -cos(x) 76 | -sin(z), cos(z) * cos(x), cos(z) * -cos(x) 77 | ) 78 | 79 | mat3( 80 | cos(z) , -sin(z) * cos(x) , sin(z) * sin(x) 81 | sin(z) , cos(z) * cos(x) , -cos(z) * sin(x) 82 | 0 , sin(x) , cos(x) 83 | ) 84 | 85 | vec3(-sin(Z), 86 | cos(Z) * cos(X), 87 | cos(Z) * -sin(X) 88 | ) 89 | */ -------------------------------------------------------------------------------- /shaders/main/gbuffers/gbuffers_clouds.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: TAA jittering, simple shading, and dynamic clouds 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | #if defined FORCE_DISABLE_CLOUDS || CLOUD_TYPE != 0 20 | void main(){ 21 | gl_Position = vec4(-10); 22 | } 23 | #else 24 | out float cloudGradient; 25 | 26 | uniform vec3 cameraPosition; 27 | 28 | uniform mat4 gbufferModelViewInverse; 29 | 30 | #if ANTI_ALIASING == 2 31 | uniform int frameMod; 32 | 33 | uniform float pixelWidth; 34 | uniform float pixelHeight; 35 | 36 | #include "/lib/utility/taaJitter.glsl" 37 | #endif 38 | 39 | void main(){ 40 | // Get vertex view position 41 | vec3 vertexViewPos = mat3(gl_ModelViewMatrix) * gl_Vertex.xyz + gl_ModelViewMatrix[3].xyz; 42 | // Get vertex feet player position 43 | vec3 vertexFeetPlayerPos = mat3(gbufferModelViewInverse) * vertexViewPos + gbufferModelViewInverse[3].xyz; 44 | 45 | // Cloud gradiante' *spanish accent* 46 | cloudGradient = saturate((196.5 - vertexFeetPlayerPos.y - cameraPosition.y) * 0.25); 47 | 48 | // Convert to clip position and output as final position 49 | // gl_Position = gl_ProjectionMatrix * vertexViewPos; 50 | gl_Position.xyz = getMatScale(mat3(gl_ProjectionMatrix)) * vertexViewPos; 51 | gl_Position.z += gl_ProjectionMatrix[3].z; 52 | 53 | gl_Position.w = -vertexViewPos.z; 54 | 55 | #if ANTI_ALIASING == 2 56 | gl_Position.xy += jitterPos(gl_Position.w); 57 | #endif 58 | } 59 | #endif 60 | #endif 61 | 62 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 63 | 64 | #ifdef FRAGMENT 65 | #if defined FORCE_DISABLE_CLOUDS || CLOUD_TYPE != 0 66 | void main(){ 67 | discard; return; 68 | } 69 | #else 70 | /* RENDERTARGETS: 4 */ 71 | layout(location = 0) out vec3 sceneColOut; // colortex4 72 | 73 | in float cloudGradient; 74 | 75 | uniform float nightVision; 76 | uniform float lightningFlash; 77 | 78 | #ifndef FORCE_DISABLE_DAY_CYCLE 79 | uniform float dayCycle; 80 | uniform float twilightPhase; 81 | #endif 82 | 83 | #ifdef WORLD_VANILLA_FOG_COLOR 84 | uniform vec3 fogColor; 85 | #endif 86 | 87 | void main(){ 88 | // Apply simple shading 89 | sceneColOut = (toLinear(nightVision * 0.5 + AMBIENT_LIGHTING) + lightningFlash) + toLinear(SKY_COLOR_DATA_BLOCK) + toLinear(LIGHT_COLOR_DATA_BLOCK0) * squared(cloudGradient); 90 | } 91 | #endif 92 | #endif -------------------------------------------------------------------------------- /shaders/lib/modded/distantHorizons/complexShadingLOD.glsl: -------------------------------------------------------------------------------- 1 | vec3 complexShadingLOD(in dataPBR material){ 2 | // Calculate sky diffusion first, begining with the sky itself 3 | vec3 totalIllumination = toLinear(SKY_COLOR_DATA_BLOCK); 4 | 5 | // Calculate thunder flash 6 | totalIllumination += lightningFlash; 7 | 8 | // Get block light squared 9 | float blockLightSquared = squared(lmCoord.x); 10 | // Get sky light squared 11 | float skyLightSquared = squared(lmCoord.y); 12 | 13 | // Occlude the appled sky and thunder flash calculation by sky light amount 14 | totalIllumination *= skyLightSquared; 15 | 16 | // Lastly, calculate ambient lightning 17 | totalIllumination += toLinear(AMBIENT_LIGHTING + nightVision * 0.5); 18 | 19 | // Calculate block light 20 | totalIllumination += toLinear((float(material.emissive == 0) * 0.25 + 1.0) * blockLightSquared * blockLightColor); 21 | 22 | #ifdef WORLD_LIGHT 23 | // Get sRGB light color 24 | vec3 sRGBLightCol = LIGHT_COLOR_DATA_BLOCK0; 25 | 26 | float NLZ = dot(material.normal, vec3(shadowModelView[0].z, shadowModelView[1].z, shadowModelView[2].z)); 27 | // also equivalent to: 28 | // vec3(0, 0, 1) * mat3(shadowModelView) = vec3(shadowModelView[0].z, shadowModelView[1].z, shadowModelView[2].z) 29 | // shadowLightPosition is broken in other dimensions. The current is equivalent to: 30 | // (mat3(gbufferModelViewInverse) * shadowLightPosition + gbufferModelViewInverse[3].xyz) * 0.01 31 | 32 | bool isShadow = NLZ > 0; 33 | 34 | // Calculate fake shadows 35 | float shdCol = saturate(hermiteMix(0.9, 1.0, lmCoord.y)) * shdFade; 36 | 37 | float dirLight = isShadow ? NLZ : 0.0; 38 | 39 | #ifdef SUBSURFACE_SCATTERING 40 | // Diffuse with simple SS approximation 41 | if(material.ss > 0) dirLight += (1.0 - dirLight) * material.ambient * material.ss * 0.5; 42 | #endif 43 | 44 | shdCol *= dirLight; 45 | 46 | #ifndef FORCE_DISABLE_WEATHER 47 | // Approximate rain diffusing light shadow 48 | float rainDiffuseAmount = rainStrength * 0.5; 49 | shdCol *= 1.0 - rainDiffuseAmount; 50 | 51 | shdCol += rainDiffuseAmount * material.ambient * skyLightSquared * (1.0 - shdFade); 52 | #endif 53 | 54 | // Calculate and add shadow diffuse 55 | totalIllumination += toLinear(sRGBLightCol) * shdCol; 56 | #endif 57 | 58 | // Get view direction 59 | vec3 viewDir = -fastNormalize(vertexFeetPlayerPos); 60 | 61 | // Modified version of BSL's reflection PBR calculation 62 | // vec3 fresnel = (F0 + (1.0 - F0) * cosTheta) * smoothness 63 | // Fresnel calculation derived and optimized from this equation 64 | float NV = dot(material.normal, viewDir); 65 | float smoothCosTheta = NV > 0 ? exp2(-9.28 * NV) * material.smoothness : material.smoothness; 66 | float oneMinusCosTheta = material.smoothness - smoothCosTheta; 67 | 68 | if(material.metallic <= 0.9) totalIllumination *= 1.0 - (smoothCosTheta + material.metallic * oneMinusCosTheta); 69 | else totalIllumination *= 1.0 - material.smoothness; 70 | 71 | // Apply emissives 72 | totalIllumination += material.emissive * EMISSIVE_INTENSITY; 73 | 74 | vec3 totalLighting = material.albedo.rgb * totalIllumination; 75 | 76 | #if defined WORLD_LIGHT && defined SPECULAR_HIGHLIGHTS 77 | if(isShadow){ 78 | // Get specular GGX 79 | vec3 specCol = getSpecularBRDF(viewDir, material.normal, material.albedo.rgb, NLZ, NV, material.metallic, material.smoothness); 80 | totalLighting += specCol * shdCol * sRGBLightCol; 81 | } 82 | #endif 83 | 84 | return totalLighting; 85 | } -------------------------------------------------------------------------------- /shaders/main/gbuffers/gbuffers_line.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: TAA jittering, and world curvature 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | flat out vec3 vertexColor; 20 | 21 | uniform float pixelWidth; 22 | uniform float pixelHeight; 23 | 24 | // 1.17 uniforms 25 | uniform mat4 modelViewMatrix; 26 | uniform mat4 projectionMatrix; 27 | 28 | #ifdef WORLD_CURVATURE 29 | uniform mat4 gbufferModelView; 30 | uniform mat4 gbufferModelViewInverse; 31 | #endif 32 | 33 | #if ANTI_ALIASING == 2 34 | uniform int frameMod; 35 | 36 | #include "/lib/utility/taaJitter.glsl" 37 | #endif 38 | 39 | // Attributes (uses "in" instead of "attribute" because Mojank and GL 330) 40 | in vec3 vaNormal; 41 | in vec3 vaPosition; 42 | 43 | in vec4 vaColor; 44 | 45 | void main(){ 46 | // Get vertex color 47 | vertexColor = vaColor.rgb; 48 | 49 | // Feet player pos 50 | vec3 linePosStart = mat3(modelViewMatrix) * vaPosition + modelViewMatrix[3].xyz; 51 | vec3 linePosEnd = mat3(modelViewMatrix) * (vaPosition + vaNormal) + modelViewMatrix[3].xyz; 52 | 53 | #ifdef WORLD_CURVATURE 54 | linePosStart = mat3(gbufferModelViewInverse) * linePosStart; 55 | linePosEnd = mat3(gbufferModelViewInverse) * linePosEnd; 56 | 57 | linePosStart.y -= lengthSquared(linePosStart.xz + gbufferModelViewInverse[3].xz) * worldCurvatureInv; 58 | linePosEnd.y -= lengthSquared(linePosEnd.xz + gbufferModelViewInverse[3].xz) * worldCurvatureInv; 59 | 60 | linePosStart = mat3(gbufferModelView) * linePosStart; 61 | linePosEnd = mat3(gbufferModelView) * linePosEnd; 62 | #endif 63 | 64 | vec2 vertexClipCoordStart = vec2(projectionMatrix[0].x, projectionMatrix[1].y) * linePosStart.xy; 65 | vec2 vertexClipCoordEnd = vec2(projectionMatrix[0].x, projectionMatrix[1].y) * linePosEnd.xy; 66 | 67 | vec2 lineScreenDir = fastNormalize(vertexClipCoordStart / linePosStart.z - vertexClipCoordEnd / linePosEnd.z); 68 | vec2 lineOffset = vec2(-lineScreenDir.y * pixelWidth, lineScreenDir.x * pixelHeight); 69 | 70 | if(lineOffset.x < 0) lineOffset = -lineOffset; 71 | if(gl_VertexID % 2 != 0) lineOffset = -lineOffset; 72 | 73 | // Apply view scaling here 74 | // 1.0 - (1.0 / 256.0) = 0.99609375 75 | float vertexViewDepth = linePosStart.z * 0.99609375; 76 | float vertexClipDepth = projectionMatrix[2].z * vertexViewDepth + projectionMatrix[3].z; 77 | 78 | gl_Position.xyz = vec3(vertexClipCoordStart - lineOffset * (vertexViewDepth * 2.0), vertexClipDepth); 79 | gl_Position.w = -vertexViewDepth; 80 | 81 | #if ANTI_ALIASING == 2 82 | gl_Position.xy += jitterPos(gl_Position.w); 83 | #endif 84 | } 85 | #endif 86 | 87 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 88 | 89 | #ifdef FRAGMENT 90 | /* RENDERTARGETS: 4 */ 91 | layout(location = 0) out vec3 sceneColOut; // colortex4 92 | 93 | flat in vec3 vertexColor; 94 | 95 | void main(){ 96 | sceneColOut = vertexColor; 97 | } 98 | #endif -------------------------------------------------------------------------------- /shaders/main/gbuffers/gbuffers_beaconbeam.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: TAA jittering, direct shading, and world curvature 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | flat out vec4 vertexColor; 20 | 21 | out vec2 texCoord; 22 | 23 | #ifdef WORLD_CURVATURE 24 | uniform mat4 gbufferModelView; 25 | uniform mat4 gbufferModelViewInverse; 26 | #endif 27 | 28 | #if ANTI_ALIASING == 2 29 | uniform int frameMod; 30 | 31 | uniform float pixelWidth; 32 | uniform float pixelHeight; 33 | 34 | #include "/lib/utility/taaJitter.glsl" 35 | #endif 36 | 37 | void main(){ 38 | // Get buffer texture coordinates 39 | texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; 40 | // Get vertex color 41 | vertexColor = gl_Color; 42 | 43 | // Get vertex view position 44 | vec3 vertexViewPos = mat3(gl_ModelViewMatrix) * gl_Vertex.xyz + gl_ModelViewMatrix[3].xyz; 45 | 46 | #ifdef WORLD_CURVATURE 47 | // Get vertex eye player position 48 | vec3 vertexEyePlayerPos = mat3(gbufferModelViewInverse) * vertexViewPos; 49 | 50 | // Get vertex feet player position 51 | vec2 vertexFeetPlayerPosXZ = vertexEyePlayerPos.xz + gbufferModelViewInverse[3].xz; 52 | 53 | // Apply curvature distortion 54 | vertexEyePlayerPos.y -= lengthSquared(vertexFeetPlayerPosXZ) * worldCurvatureInv; 55 | 56 | // Convert back to vertex view position 57 | vertexViewPos = mat3(gbufferModelView) * vertexEyePlayerPos; 58 | #endif 59 | 60 | // Convert to clip position and output as final position 61 | // gl_Position = gl_ProjectionMatrix * vertexViewPos; 62 | gl_Position.xyz = getMatScale(mat3(gl_ProjectionMatrix)) * vertexViewPos; 63 | gl_Position.z += gl_ProjectionMatrix[3].z; 64 | 65 | gl_Position.w = -vertexViewPos.z; 66 | 67 | #if ANTI_ALIASING == 2 68 | gl_Position.xy += jitterPos(gl_Position.w); 69 | #endif 70 | } 71 | #endif 72 | 73 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 74 | 75 | #ifdef FRAGMENT 76 | /* RENDERTARGETS: 4 */ 77 | layout(location = 0) out vec4 sceneColOut; // colortex4 78 | 79 | flat in vec4 vertexColor; 80 | 81 | in vec2 texCoord; 82 | 83 | // Get albedo texture 84 | uniform sampler2D gtexture; 85 | 86 | void main(){ 87 | vec4 albedo = textureLod(gtexture, texCoord, 0) * vertexColor; 88 | 89 | // Alpha test, discard and return immediately 90 | if(albedo.a < ALPHA_THRESHOLD){ discard; return; } 91 | 92 | #if COLOR_MODE == 1 93 | albedo.rgb = vec3(1); 94 | #elif COLOR_MODE == 2 95 | albedo.rgb = vec3(0); 96 | #elif COLOR_MODE == 3 97 | albedo.rgb = vertexColor.rgb; 98 | #endif 99 | 100 | // Convert to linear space 101 | albedo.rgb = toLinear(albedo.rgb); 102 | 103 | sceneColOut = vec4(albedo.rgb * EMISSIVE_INTENSITY, albedo.a); 104 | } 105 | #endif -------------------------------------------------------------------------------- /shaders/main/modded/dh_generic.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: TAA jittering, simple shading, and world curvature 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | flat out vec4 vertexColor; 20 | 21 | out float vertexViewDist; 22 | 23 | uniform mat4 gbufferModelViewInverse; 24 | 25 | #ifdef WORLD_CURVATURE 26 | uniform mat4 gbufferModelView; 27 | #endif 28 | 29 | #if ANTI_ALIASING == 2 30 | uniform int frameMod; 31 | 32 | uniform float pixelWidth; 33 | uniform float pixelHeight; 34 | 35 | #include "/lib/utility/taaJitter.glsl" 36 | #endif 37 | 38 | void main(){ 39 | // Get vertex color 40 | vertexColor = gl_Color; 41 | 42 | // Get vertex view position 43 | vec3 vertexViewPos = mat3(gl_ModelViewMatrix) * gl_Vertex.xyz + gl_ModelViewMatrix[3].xyz; 44 | // Output view distance 45 | vertexViewDist = length(vertexViewPos); 46 | 47 | #ifdef WORLD_CURVATURE 48 | // Get vertex feet player position 49 | vec3 vertexFeetPlayerPos = mat3(gbufferModelViewInverse) * vertexViewPos + gbufferModelViewInverse[3].xyz; 50 | 51 | // Apply curvature distortion 52 | vertexFeetPlayerPos.y -= lengthSquared(vertexFeetPlayerPos.xz) * worldCurvatureInv; 53 | 54 | // Convert back to vertex view position 55 | vertexViewPos = mat3(gbufferModelView) * vertexFeetPlayerPos + gbufferModelView[3].xyz; 56 | #endif 57 | 58 | // Convert to clip position and output as final position 59 | // gl_Position = gl_ProjectionMatrix * vertexViewPos; 60 | gl_Position.xyz = getMatScale(mat3(gl_ProjectionMatrix)) * vertexViewPos; 61 | gl_Position.z += gl_ProjectionMatrix[3].z; 62 | 63 | gl_Position.w = -vertexViewPos.z; 64 | 65 | #if ANTI_ALIASING == 2 66 | gl_Position.xy += jitterPos(gl_Position.w); 67 | #endif 68 | } 69 | #endif 70 | 71 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 72 | 73 | #ifdef FRAGMENT 74 | /* RENDERTARGETS: 4,3 */ 75 | layout(location = 0) out vec3 sceneColOut; // colortex4 76 | layout(location = 1) out vec3 materialDataOut; // colortex3 77 | 78 | flat in vec4 vertexColor; 79 | 80 | in float vertexViewDist; 81 | 82 | uniform float far; 83 | 84 | void main(){ 85 | // Prevents overdraw 86 | if(far > vertexViewDist){ discard; return; } 87 | 88 | // Get albedo color 89 | vec4 albedo = vertexColor; 90 | 91 | // Alpha test, discard and return immediately 92 | if(albedo.a < ALPHA_THRESHOLD){ discard; return; } 93 | 94 | #if COLOR_MODE == 1 95 | albedo.rgb = vec3(1); 96 | #elif COLOR_MODE == 2 97 | albedo.rgb = vec3(0); 98 | #endif 99 | 100 | // Convert to linear space 101 | albedo.rgb = toLinear(albedo.rgb); 102 | 103 | // Apply simple shading 104 | sceneColOut = albedo.rgb * EMISSIVE_INTENSITY; 105 | 106 | // Write material data 107 | materialDataOut = vec3(0, 0, 0.5); 108 | } 109 | #endif -------------------------------------------------------------------------------- /shaders/main/gbuffers/gbuffers_armor_glint.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: TAA jittering, direct shading, and world curvature 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | flat out float vertexAlpha; 20 | 21 | out vec2 texCoord; 22 | 23 | #ifdef WORLD_CURVATURE 24 | uniform mat4 gbufferModelView; 25 | uniform mat4 gbufferModelViewInverse; 26 | 27 | uniform int renderStage; 28 | #endif 29 | 30 | #if ANTI_ALIASING == 2 31 | uniform int frameMod; 32 | 33 | uniform float pixelWidth; 34 | uniform float pixelHeight; 35 | 36 | #include "/lib/utility/taaJitter.glsl" 37 | #endif 38 | 39 | void main(){ 40 | // Get vertex alpha and emissive 41 | vertexAlpha = gl_Color.a * gl_Color.a; 42 | // Get buffer texture coordinates 43 | texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; 44 | 45 | // Get vertex view position 46 | vec3 vertexViewPos = mat3(gl_ModelViewMatrix) * gl_Vertex.xyz + gl_ModelViewMatrix[3].xyz; 47 | 48 | #ifdef WORLD_CURVATURE 49 | // This is because world curvature isn't applied to the player hand 50 | if(renderStage != MC_RENDER_STAGE_HAND_SOLID && renderStage != MC_RENDER_STAGE_TERRAIN_TRANSLUCENT){ 51 | // Get vertex eye player position 52 | vec3 vertexEyePlayerPos = mat3(gbufferModelViewInverse) * vertexViewPos; 53 | 54 | // Get vertex feet player position 55 | vec2 vertexFeetPlayerPosXZ = vertexEyePlayerPos.xz + gbufferModelViewInverse[3].xz; 56 | 57 | // Apply curvature distortion 58 | vertexEyePlayerPos.y -= lengthSquared(vertexFeetPlayerPosXZ) * worldCurvatureInv; 59 | 60 | // Convert back to vertex view position 61 | vertexViewPos = mat3(gbufferModelView) * vertexEyePlayerPos; 62 | } 63 | #endif 64 | 65 | // Convert to clip position and output as final position 66 | // gl_Position = gl_ProjectionMatrix * vertexViewPos; 67 | gl_Position.xyz = getMatScale(mat3(gl_ProjectionMatrix)) * vertexViewPos; 68 | gl_Position.z += gl_ProjectionMatrix[3].z; 69 | 70 | gl_Position.w = -vertexViewPos.z; 71 | 72 | #if ANTI_ALIASING == 2 73 | gl_Position.xy += jitterPos(gl_Position.w); 74 | #endif 75 | } 76 | #endif 77 | 78 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 79 | 80 | #ifdef FRAGMENT 81 | /* RENDERTARGETS: 4 */ 82 | layout(location = 0) out vec3 sceneColOut; // colortex4 83 | 84 | flat in float vertexAlpha; 85 | 86 | in vec2 texCoord; 87 | 88 | // Get albedo texture 89 | uniform sampler2D gtexture; 90 | 91 | void main(){ 92 | // Get albedo color 93 | vec4 albedo = textureLod(gtexture, texCoord, 0); 94 | 95 | // Alpha test, discard and return immediately 96 | if(albedo.a < ALPHA_THRESHOLD){ discard; return; } 97 | 98 | // Convert to linear space 99 | sceneColOut = squared(toLinear(albedo.rgb)) * vertexAlpha; 100 | } 101 | #endif -------------------------------------------------------------------------------- /shaders/main/gbuffers/gbuffers_skytextured.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: TAA jittering, and direct shading 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | flat out vec4 vertexColor; 20 | 21 | out vec2 texCoord; 22 | 23 | #if ANTI_ALIASING == 2 24 | uniform int frameMod; 25 | 26 | uniform float pixelWidth; 27 | uniform float pixelHeight; 28 | 29 | #include "/lib/utility/taaJitter.glsl" 30 | #endif 31 | 32 | void main(){ 33 | // Get vertex color 34 | vertexColor = gl_Color; 35 | // Get buffer texture coordinates 36 | texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; 37 | 38 | // Get vertex view position 39 | vec3 vertexViewPos = mat3(gl_ModelViewMatrix) * gl_Vertex.xyz + gl_ModelViewMatrix[3].xyz; 40 | 41 | // Convert to clip position and output as final position 42 | // gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 43 | gl_Position.xyz = getMatScale(mat3(gl_ProjectionMatrix)) * vertexViewPos; 44 | gl_Position.z += gl_ProjectionMatrix[3].z; 45 | 46 | gl_Position.w = -vertexViewPos.z; 47 | 48 | gl_Position.z *= 0.9; 49 | 50 | #if ANTI_ALIASING == 2 51 | gl_Position.xy += jitterPos(gl_Position.w); 52 | #endif 53 | } 54 | #endif 55 | 56 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 57 | 58 | #ifdef FRAGMENT 59 | /* RENDERTARGETS: 4 */ 60 | layout(location = 0) out vec3 sceneColOut; // colortex4 61 | 62 | flat in vec4 vertexColor; 63 | 64 | in vec2 texCoord; 65 | 66 | uniform int renderStage; 67 | 68 | #if WORLD_SUN_MOON == 1 && SUN_MOON_TYPE == 2 && defined WORLD_LIGHT && !defined FORCE_DISABLE_DAY_CYCLE 69 | uniform float twilightPhase; 70 | #endif 71 | 72 | uniform sampler2D gtexture; 73 | 74 | void main(){ 75 | // Get albedo color 76 | vec4 albedo = textureLod(gtexture, texCoord, 0) * vertexColor; 77 | 78 | // Alpha test, discard and return immediately 79 | if(albedo.a < ALPHA_THRESHOLD){ discard; return; } 80 | 81 | #if WORLD_SUN_MOON == 1 && SUN_MOON_TYPE == 2 && defined WORLD_LIGHT && !defined FORCE_DISABLE_DAY_CYCLE 82 | // Detect sun 83 | if(renderStage == MC_RENDER_STAGE_SUN){ 84 | // Convert to linear space 85 | sceneColOut = toLinear(albedo.rgb * albedo.a) * SUN_COL_DATA_BLOCK * sunMoonIntensitySqrd; 86 | return; 87 | } 88 | 89 | // Detect moon 90 | if(renderStage == MC_RENDER_STAGE_MOON){ 91 | // Convert to linear space 92 | sceneColOut = toLinear(albedo.rgb * albedo.a) * MOON_COL_DATA_BLOCK * sunMoonIntensitySqrd; 93 | return; 94 | } 95 | #else 96 | // Otherwise BEGONE 97 | if(renderStage == MC_RENDER_STAGE_SUN){ discard; return; } 98 | if(renderStage == MC_RENDER_STAGE_MOON){ discard; return; } 99 | #endif 100 | 101 | // Otherwise calculate skybox 102 | sceneColOut = toLinear(albedo.rgb * albedo.a) * skyBoxIntensitySqrd; 103 | } 104 | #endif -------------------------------------------------------------------------------- /shaders/main/gbuffers/gbuffers_spidereyes.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: TAA jittering, direct shading, and world curvature 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | flat out float vertexAlpha; 20 | 21 | out vec2 texCoord; 22 | 23 | #ifdef WORLD_CURVATURE 24 | uniform mat4 gbufferModelView; 25 | uniform mat4 gbufferModelViewInverse; 26 | #endif 27 | 28 | #if ANTI_ALIASING == 2 29 | uniform int frameMod; 30 | 31 | uniform float pixelWidth; 32 | uniform float pixelHeight; 33 | 34 | #include "/lib/utility/taaJitter.glsl" 35 | #endif 36 | 37 | void main(){ 38 | // Get buffer texture coordinates 39 | texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; 40 | // Get vertex alpha (in this case, the warden stores the heartbeat pulse here) 41 | vertexAlpha = gl_Color.a * EMISSIVE_INTENSITY; 42 | 43 | // Get vertex view position 44 | vec3 vertexViewPos = mat3(gl_ModelViewMatrix) * gl_Vertex.xyz + gl_ModelViewMatrix[3].xyz; 45 | 46 | #ifdef WORLD_CURVATURE 47 | // Get vertex eye player position 48 | vec3 vertexEyePlayerPos = mat3(gbufferModelViewInverse) * vertexViewPos; 49 | 50 | // Get vertex feet player position 51 | vec2 vertexFeetPlayerPosXZ = vertexEyePlayerPos.xz + gbufferModelViewInverse[3].xz; 52 | 53 | // Apply curvature distortion 54 | vertexEyePlayerPos.y -= lengthSquared(vertexFeetPlayerPosXZ) * worldCurvatureInv; 55 | 56 | // Convert back to vertex view position 57 | vertexViewPos = mat3(gbufferModelView) * vertexEyePlayerPos; 58 | #endif 59 | 60 | // Convert to clip position and output as final position 61 | // gl_Position = gl_ProjectionMatrix * vertexViewPos; 62 | gl_Position.xyz = getMatScale(mat3(gl_ProjectionMatrix)) * vertexViewPos; 63 | gl_Position.z += gl_ProjectionMatrix[3].z; 64 | 65 | gl_Position.w = -vertexViewPos.z; 66 | 67 | #if ANTI_ALIASING == 2 68 | gl_Position.xy += jitterPos(gl_Position.w); 69 | #endif 70 | } 71 | #endif 72 | 73 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 74 | 75 | #ifdef FRAGMENT 76 | /* RENDERTARGETS: 4 */ 77 | layout(location = 0) out vec3 sceneColOut; // colortex4 78 | 79 | flat in float vertexAlpha; 80 | 81 | in vec2 texCoord; 82 | 83 | // Get albedo texture 84 | uniform sampler2D gtexture; 85 | 86 | void main(){ 87 | // Get albedo color 88 | vec4 albedo = textureLod(gtexture, texCoord, 0); 89 | 90 | // Alpha test, discard and return immediately 91 | if(albedo.a < ALPHA_THRESHOLD){ discard; return; } 92 | 93 | // Convert to linear space 94 | albedo.rgb = toLinear(albedo.rgb); 95 | 96 | // Since the blend is set to add, simply base the glow from the avarage of the albedo's luminance squared 97 | // Then use vertexAlpha where it stores the vanilla emissive brightness 98 | float emissiveMap = sumOf(albedo.rgb) * 0.33333333; 99 | sceneColOut = albedo.rgb * emissiveMap * max(emissiveMap, vertexAlpha); 100 | } 101 | #endif -------------------------------------------------------------------------------- /shaders/lib/modded/physicsMod/physicsModVertex.glsl: -------------------------------------------------------------------------------- 1 | // For Physics Mod support: https://github.com/haubna/PhysicsMod/blob/main/oceans.glsl 2 | 3 | // just some basic consts for the wave function based on afl_ext's shader https://www.shadertoy.com/view/Xdlczl 4 | // the overall shape must stay consistent because it is also computed on the CPU side 5 | // to offset entities (though a custom CPU integration of your shader is possible by 6 | // contacting me on my discord server https://discord.gg/VsNs9xP) 7 | 8 | // this is the surface detail from the physics options, ranges from 13 to 48 (yeah I know weird) 9 | // uniform int physics_iterationsNormal; 10 | // used to offset the 0 point of wave meshes to keep the wave function consistent even 11 | // though the mesh totally changes 12 | uniform vec2 physics_waveOffset; 13 | // used for offsetting the local position to fetch the right pixel of the waviness texture 14 | uniform ivec2 physics_textureOffset; 15 | // time in seconds that can go faster dependent on weather conditions (affected by weather strength 16 | // multiplier in ocean settings 17 | uniform float physics_gameTime; 18 | // base value is 13 and gets multiplied by wave height in ocean settings 19 | uniform float physics_oceanHeight; 20 | // basic texture to determine how shallow/far away from the shore the water is 21 | uniform sampler2D physics_waviness; 22 | // basic scale for the horizontal size of the waves 23 | uniform float physics_oceanWaveHorizontalScale; 24 | // used to offset the model to know the ripple position 25 | // uniform vec3 physics_modelOffset; 26 | // used for offsetting the ripple texture 27 | // uniform float physics_rippleRange; 28 | // controlling how much foam generates on the ocean 29 | // uniform float physics_foamAmount; 30 | // controlling the opacity of the foam 31 | // uniform float physics_foamOpacity; 32 | // texture containing the ripples (basic bump map) 33 | // uniform sampler2D physics_ripples; 34 | // foam noise 35 | // uniform sampler3D physics_foam; 36 | // just the generic minecraft lightmap, you can remove this and use the one supplied by Optifine/Iris 37 | // uniform sampler2D physics_lightmap; 38 | 39 | float physics_waveHeight(in vec2 position, in float factor){ 40 | float iter = 0.0; 41 | float frequency = PHYSICS_FREQUENCY; 42 | float speed = PHYSICS_SPEED; 43 | float weight = 1.0; 44 | float height = 0.0; 45 | float waveSum = 0.0; 46 | float modifiedTime = physics_gameTime * PHYSICS_TIME_MULTIPLICATOR; 47 | 48 | for(int i = 0; i < PHYSICS_ITERATIONS_OFFSET; i++){ 49 | vec2 direction = vec2(sin(iter), cos(iter)); 50 | 51 | float x = dot(direction, position) * frequency + modifiedTime * speed; 52 | float wave = exp(sin(x) - 1.0); 53 | float result = wave * cos(x); 54 | 55 | vec2 force = result * weight * direction; 56 | 57 | position -= force * PHYSICS_DRAG_MULT; 58 | height += wave * weight; 59 | iter += PHYSICS_ITER_INC; 60 | waveSum += weight; 61 | weight *= PHYSICS_WEIGHT; 62 | frequency *= PHYSICS_FREQUENCY_MULT; 63 | speed *= PHYSICS_SPEED_MULT; 64 | } 65 | 66 | return height / waveSum * physics_oceanHeight * factor - physics_oceanHeight * factor * 0.5; 67 | } 68 | 69 | /* 70 | // VERTEX STAGE 71 | void main(){ 72 | // pass this to the fragment shader to fetch the texture there for per fragment normals 73 | physics_localPosition = (gl_Vertex.xz - physics_waveOffset) * PHYSICS_XZ_SCALE * physics_oceanWaveHorizontalScale; 74 | 75 | // basic texture to determine how shallow/far away from the shore the water is 76 | physics_localWaviness = texelFetch(physics_waviness, ivec2(gl_Vertex.xz) - physics_textureOffset, 0).r; 77 | 78 | // transform gl_Vertex (since it is the raw mesh, i.e. not transformed yet) 79 | vertexFeetPlayerPos.y += physics_waveHeight(physics_localPosition, physics_localWaviness); 80 | 81 | // now use finalPosition instead of gl_Vertex 82 | } 83 | */ -------------------------------------------------------------------------------- /shaders/main/gbuffers/gbuffers_textured.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 3 | 4 | Developed by Eldeston, presented by FlameRender (C) Studios. 5 | 6 | Copyright (C) 2023 Eldeston | FlameRender (C) Studios License 7 | 8 | 9 | By downloading this content you have agreed to the license and its terms of use. 10 | 11 | ================================ /// Super Duper Vanilla v1.3.8 /// ================================ 12 | */ 13 | 14 | /// Buffer features: TAA jittering, simple shading, and world curvature 15 | 16 | /// -------------------------------- /// Vertex Shader /// -------------------------------- /// 17 | 18 | #ifdef VERTEX 19 | flat out vec4 vertexColor; 20 | 21 | out vec2 texCoord; 22 | 23 | #ifdef WORLD_CURVATURE 24 | uniform mat4 gbufferModelView; 25 | uniform mat4 gbufferModelViewInverse; 26 | #endif 27 | 28 | #if ANTI_ALIASING == 2 29 | uniform int frameMod; 30 | 31 | uniform float pixelWidth; 32 | uniform float pixelHeight; 33 | 34 | #include "/lib/utility/taaJitter.glsl" 35 | #endif 36 | 37 | void main(){ 38 | // Get vertex alpha and emissive 39 | vertexColor = gl_Color; 40 | // Get buffer texture coordinates 41 | texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; 42 | 43 | // Get vertex view position 44 | vec3 vertexViewPos = mat3(gl_ModelViewMatrix) * gl_Vertex.xyz + gl_ModelViewMatrix[3].xyz; 45 | 46 | #ifdef WORLD_CURVATURE 47 | // Get vertex eye player position 48 | vec3 vertexEyePlayerPos = mat3(gbufferModelViewInverse) * vertexViewPos; 49 | 50 | // Get vertex feet player position 51 | vec2 vertexFeetPlayerPosXZ = vertexEyePlayerPos.xz + gbufferModelViewInverse[3].xz; 52 | 53 | // Apply curvature distortion 54 | vertexEyePlayerPos.y -= lengthSquared(vertexFeetPlayerPosXZ) * worldCurvatureInv; 55 | 56 | // Convert back to vertex view position 57 | vertexViewPos = mat3(gbufferModelView) * vertexEyePlayerPos; 58 | #endif 59 | 60 | // Convert to clip position and output as final position 61 | // gl_Position = gl_ProjectionMatrix * vertexViewPos; 62 | gl_Position.xyz = getMatScale(mat3(gl_ProjectionMatrix)) * vertexViewPos; 63 | gl_Position.z += gl_ProjectionMatrix[3].z; 64 | 65 | gl_Position.w = -vertexViewPos.z; 66 | 67 | #if ANTI_ALIASING == 2 68 | gl_Position.xy += jitterPos(gl_Position.w); 69 | #endif 70 | } 71 | #endif 72 | 73 | /// -------------------------------- /// Fragment Shader /// -------------------------------- /// 74 | 75 | #ifdef FRAGMENT 76 | /* RENDERTARGETS: 4,3 */ 77 | layout(location = 0) out vec4 sceneColOut; // colortex4 78 | layout(location = 1) out vec3 materialDataOut; // colortex3 79 | 80 | flat in vec4 vertexColor; 81 | 82 | in vec2 texCoord; 83 | 84 | uniform sampler2D gtexture; 85 | 86 | void main(){ 87 | // Get albedo 88 | vec4 albedo = textureLod(gtexture, texCoord, 0); 89 | albedo.a *= vertexColor.a; 90 | 91 | // Alpha test, discard and return immediately 92 | if(albedo.a < ALPHA_THRESHOLD){ discard; return; } 93 | 94 | #if COLOR_MODE == 0 95 | albedo.rgb *= vertexColor.rgb; 96 | #elif COLOR_MODE == 1 97 | albedo.rgb = vec3(1); 98 | #elif COLOR_MODE == 2 99 | albedo.rgb = vec3(0); 100 | #elif COLOR_MODE == 3 101 | albedo.rgb = vertexColor.rgb; 102 | #endif 103 | 104 | // Convert to linear space 105 | albedo.rgb = toLinear(albedo.rgb) * EMISSIVE_INTENSITY; 106 | 107 | // Apply simple shading 108 | sceneColOut = albedo; 109 | 110 | // Write material data 111 | materialDataOut = vec3(0, 0, 0.5); 112 | } 113 | #endif --------------------------------------------------------------------------------