custommods
This commit is contained in:
BIN
.minecraft/mods/DynamicSurroundings-1.7.10-1.0.7.6.jar
Normal file
BIN
.minecraft/mods/DynamicSurroundings-1.7.10-1.0.7.6.jar
Normal file
Binary file not shown.
BIN
.minecraft/mods/ItemPhysic Lite 1.1.5 mc1.7.10.jar
Normal file
BIN
.minecraft/mods/ItemPhysic Lite 1.1.5 mc1.7.10.jar
Normal file
Binary file not shown.
BIN
.minecraft/mods/NoFog-1.7.10b1-1.0.jar
Normal file
BIN
.minecraft/mods/NoFog-1.7.10b1-1.0.jar
Normal file
Binary file not shown.
BIN
.minecraft/mods/deconfigintegration-1.0.1.jar
Normal file
BIN
.minecraft/mods/deconfigintegration-1.0.1.jar
Normal file
Binary file not shown.
BIN
.minecraft/mods/esm-legacy-1.7.10-1.0.10.jar
Normal file
BIN
.minecraft/mods/esm-legacy-1.7.10-1.0.10.jar
Normal file
Binary file not shown.
BIN
.minecraft/mods/matmos-1.7.10-36.0.1+nomixin.jar
Normal file
BIN
.minecraft/mods/matmos-1.7.10-36.0.1+nomixin.jar
Normal file
Binary file not shown.
BIN
.minecraft/mods/sharedprospecting-2.0.3.jar
Normal file
BIN
.minecraft/mods/sharedprospecting-2.0.3.jar
Normal file
Binary file not shown.
BIN
.minecraft/mods/soundphysics-1.1.1.jar
Normal file
BIN
.minecraft/mods/soundphysics-1.1.1.jar
Normal file
Binary file not shown.
BIN
.minecraft/resourcepacks/GTNH-Faithful-x32.v0.9.18.1.zip
Normal file
BIN
.minecraft/resourcepacks/GTNH-Faithful-x32.v0.9.18.1.zip
Normal file
Binary file not shown.
BIN
.minecraft/resourcepacks/GTNHReflections-main.zip
Normal file
BIN
.minecraft/resourcepacks/GTNHReflections-main.zip
Normal file
Binary file not shown.
Binary file not shown.
BIN
.minecraft/resourcepacks/TransparentUI-main.zip
Normal file
BIN
.minecraft/resourcepacks/TransparentUI-main.zip
Normal file
Binary file not shown.
98
.minecraft/shaderpacks/ComplementaryShaders_v4.6.txt
Normal file
98
.minecraft/shaderpacks/ComplementaryShaders_v4.6.txt
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
#Mon Aug 21 16:10:16 EEST 2023
|
||||||
|
ALTERNATIVE_COMMAND_BLOCK=true
|
||||||
|
AMBIENT_GROUND=0.80
|
||||||
|
AO_QUALITY=3
|
||||||
|
BLOCKLIGHT_B=255
|
||||||
|
BLOCKLIGHT_FLICKER=true
|
||||||
|
BLOCKLIGHT_FLICKER_STRENGTH=0.10
|
||||||
|
BLOCKLIGHT_G=240
|
||||||
|
BLOCKLIGHT_I=0.40
|
||||||
|
BLOCKLIGHT_R=240
|
||||||
|
BLOOM_STRENGTH=1.00
|
||||||
|
BLUE_SCREEN=true
|
||||||
|
CLOUD_HEIGHT=20.0
|
||||||
|
CLOUD_SPEED=0.50
|
||||||
|
CLOUD_THICKNESS=3.00
|
||||||
|
COLORED_SHADOWS=true
|
||||||
|
COLOR_GRADING=true
|
||||||
|
DIRECTIONAL_LIGHTMAP_STRENGTH=2.5
|
||||||
|
DOF=1
|
||||||
|
DOF_STRENGTH=256.0
|
||||||
|
DYNAMIC_SHADER_LIGHT=false
|
||||||
|
EMISSIVE_MULTIPLIER=0.30
|
||||||
|
ENTITY_EFFECT=false
|
||||||
|
FOG1_DISTANCE_M=1.20
|
||||||
|
FOG1_TYPE=2
|
||||||
|
FOG2_ALTITUDE_MODE=false
|
||||||
|
FOG2_BRIGHTNESS=0.50
|
||||||
|
FOG2_DISTANCE_M=1.20
|
||||||
|
GENERATED_NORMALS=true
|
||||||
|
GLOWING_LAPIS_BLOCK=true
|
||||||
|
GLOWING_REDSTONE_BLOCK=true
|
||||||
|
GREEN_SCREEN=true
|
||||||
|
HAND_BLOOM_REDUCTION=true
|
||||||
|
LAVA_VISIBILITY=true
|
||||||
|
LENS_FLARE=true
|
||||||
|
LENS_FLARE_STRENGTH=0.75
|
||||||
|
LIGHT_DI=1.00
|
||||||
|
LIGHT_GROUND=0.80
|
||||||
|
LIGHT_MI=1.00
|
||||||
|
LIGHT_SHAFT_DAY_RAIN_MULTIPLIER=1.60
|
||||||
|
LIGHT_SHAFT_MODE=3
|
||||||
|
LIGHT_SHAFT_NIGHT_MULTIPLIER=0.55
|
||||||
|
LIGHT_SHAFT_NIGHT_RAIN_MULTIPLIER=2.10
|
||||||
|
LIGHT_SHAFT_NOON_MULTIPLIER=0.70
|
||||||
|
LIGHT_SHAFT_QUALITY=3
|
||||||
|
LIGHT_SHAFT_THE_END_MULTIPLIER=0.40
|
||||||
|
LIGHT_SHAFT_UNDERWATER_MULTIPLIER=1.10
|
||||||
|
MIN_LIGHT=1024
|
||||||
|
MOON_WATER_REF=3.00
|
||||||
|
MOTION_BLUR_STRENGTH=0.25
|
||||||
|
PARALLAX_DEPTH=0.80
|
||||||
|
PARALLAX_DISTANCE=24
|
||||||
|
PARALLAX_QUALITY=512
|
||||||
|
PARTICLE_VISIBILITY=true
|
||||||
|
PROJECTED_CAUSTICS=true
|
||||||
|
PROMO_OUTLINE_THICKNESS=2
|
||||||
|
REFLECTION_RAIN=true
|
||||||
|
REFLECTION_ROUGH=false
|
||||||
|
RP_SUPPORT=3
|
||||||
|
SAFE_GENERATED_NORMALS=true
|
||||||
|
SELECTION_MODE=2
|
||||||
|
SELF_SHADOW_ANGLE=2.5
|
||||||
|
SHADING_STRENGTH=0.90
|
||||||
|
SHARPEN=1
|
||||||
|
SKYBOX_BRIGHTNESS=0.25
|
||||||
|
SKY_DAY=0.50
|
||||||
|
SKY_MULT_I=0.50
|
||||||
|
SKY_NOON=0.60
|
||||||
|
STAR_AMOUNT=2
|
||||||
|
STAR_BRIGHTNESS=4.00
|
||||||
|
SUN_GLARE_STRENGTH=0.3
|
||||||
|
SUN_MOON_WATER_REF=32.0
|
||||||
|
UNDERWATER_I=1.30
|
||||||
|
VIGNETTE=0
|
||||||
|
VIGNETTE_STRENGTH=0.10
|
||||||
|
WATERMARK_DURATION=999
|
||||||
|
WATER_ABSORPTION=true
|
||||||
|
WATER_BUMP=0.45
|
||||||
|
WATER_DISPLACEMENT=true
|
||||||
|
WATER_FOG=128.0
|
||||||
|
WATER_G=236
|
||||||
|
WATER_I=0.40
|
||||||
|
WATER_NOISE_1=0.30
|
||||||
|
WATER_NOISE_2=0.30
|
||||||
|
WATER_NOISE_3=0.10
|
||||||
|
WATER_NOISE_4=0.10
|
||||||
|
WATER_OPACITY=0.25
|
||||||
|
WATER_REFRACT=true
|
||||||
|
WATER_SIZE=200.0
|
||||||
|
WATER_SPEED=1.00
|
||||||
|
WATER_V=0.1
|
||||||
|
WAVING_LEAVES=true
|
||||||
|
WAVING_LILY_PADS=true
|
||||||
|
WAVING_VINES=true
|
||||||
|
WEATHER_RI=1.00
|
||||||
|
WORLD_TIME_ANIMATION=0
|
||||||
|
shadowMapResolution=3072
|
||||||
|
sunPathRotation=-20.0
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
Information:
|
||||||
|
For questions, suggestions, early access, and more; feel free to join the Complementary Discord Server: https://discord.gg/A6faFYt
|
||||||
|
If you encounter issues with mods, you can check out this mod issue fixes list: https://justpaste.it/60cgu
|
||||||
|
|
||||||
|
Credits:
|
||||||
|
EminGT - The lead developer of Complementary
|
||||||
|
Capt Tatsu - Complementary is based on his work, BSL Shaders
|
||||||
|
Chocapic13 - Previous frame reprojection, jitter offset, ray tracer
|
||||||
|
Robobo1221 - Volumetric light
|
||||||
|
Horizon Zero Dawn - GGX area light approximation
|
||||||
|
Simon Rodriguez - FXAA
|
||||||
|
fayer3 - End portal/gateway shader
|
||||||
|
Jessie - Dithering
|
||||||
|
Builderb0y - Vanilla star detection
|
||||||
|
Aldebaran S - Galaxy image
|
||||||
|
|
||||||
|
Dimensions:
|
||||||
|
-1 NETHER - Nether
|
||||||
|
0 OVERWORLD - Overworld
|
||||||
|
1 END - End
|
||||||
|
2 / -23 TWO - The Midnight
|
||||||
|
5 / 7 SEVEN - Twilight Forest
|
||||||
|
17 ONESEVEN - Atum
|
||||||
|
20 SEVEN + TWENTY - The Betweenlands
|
||||||
|
50...53 TWO + ABYSS - AbyssalCraft
|
||||||
|
10 <empty> - Placeholder (The Beneath)
|
||||||
|
-27..-31 <empty> - Placeholder (Galacticraft)
|
||||||
60
.minecraft/shaderpacks/ComplementaryShaders_v4.6/License.txt
Normal file
60
.minecraft/shaderpacks/ComplementaryShaders_v4.6/License.txt
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
Complementary Agreement 1.2
|
||||||
|
===========================
|
||||||
|
|
||||||
|
0. Terminology
|
||||||
|
--------------
|
||||||
|
0.1. "The Pack" and/or "This Pack" means the software package that this
|
||||||
|
specific agreement file you are reading from is found in.
|
||||||
|
|
||||||
|
0.2. "Normal Usage" means usage of The Pack as intended for the general
|
||||||
|
public. This includes most usage, but the following usages are
|
||||||
|
definitely NOT considered Normal Usage:
|
||||||
|
a. Redistributing (parts of) The Pack
|
||||||
|
b. Modifying code of The Pack
|
||||||
|
|
||||||
|
0.3. "User" and/or "Users" means people that are using The Pack under our
|
||||||
|
definition of Normal Usage.
|
||||||
|
|
||||||
|
0.4. "Modpack" means a modification package made for the video
|
||||||
|
game "Minecraft: Java Edition".
|
||||||
|
|
||||||
|
0.5. "Modified Pack" means a software package that consists of The Pack but
|
||||||
|
with the code intentionally being changed to differ from The Pack.
|
||||||
|
|
||||||
|
1. Grants
|
||||||
|
---------
|
||||||
|
1.1. All Users are free to use This Pack for Normal Usage. This isn't
|
||||||
|
limited to, but includes:
|
||||||
|
a. Using The Pack for gameplay
|
||||||
|
b. Using The Pack for content creation
|
||||||
|
|
||||||
|
1.2. This Pack is allowed to be redistributed inside a Modpack as long as
|
||||||
|
the following conditions are met:
|
||||||
|
a. This Pack must be visibly credited in the Modpack's description
|
||||||
|
page(s).
|
||||||
|
b. The author of the Modpack must acknowledge that any problems that
|
||||||
|
may arise from using This Pack in their Modpack is entirely under
|
||||||
|
the responsibility of the author of the Modpack.
|
||||||
|
|
||||||
|
1.3. This Pack is allowed to be redistributed as a Modified Pack as long as
|
||||||
|
the following conditions are met:
|
||||||
|
a. This Pack must be visibly credited in the description page(s) of
|
||||||
|
the Modified Pack.
|
||||||
|
b. This agreement file must still be left inside the Modified Pack
|
||||||
|
without any changes being made to it.
|
||||||
|
c. The Modified Pack must not have the word "Complementary" in it's
|
||||||
|
name, and there should be at least 3 character difference between
|
||||||
|
the name of the Modified Pack and This Pack. Adding or removing
|
||||||
|
invisible characters or the removal of "Complementary" does not
|
||||||
|
count as a character difference.
|
||||||
|
This section (1.3) covers any forks of The Pack as long as the intent
|
||||||
|
is modification.
|
||||||
|
|
||||||
|
2. Denied Cases
|
||||||
|
---------------
|
||||||
|
2.1. The Pack is NOT allowed to be redistributed unless the case falls under
|
||||||
|
the sections 1.2 or 1.3 in this agreement.
|
||||||
|
|
||||||
|
2.2. This agreement only applies to the version of This Pack that this exact
|
||||||
|
file can be found in. This agreement is not valid for future or past
|
||||||
|
versions of The Pack unless they contain the exact same agreement.
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/composite.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/composite.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/composite1.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/composite1.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/composite2.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/composite2.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/composite3.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/composite3.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/composite4.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/composite4.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/composite5.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/composite5.glsl"
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#version 130
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/composite6.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/composite6.glsl"
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/composite7.glsl"
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/composite7.glsl"
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/deferred.glsl"
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/deferred.glsl"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define DEFERRED
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/deferred1.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/deferred1.glsl"
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
#if MC_VERSION >= 11300
|
||||||
|
|
||||||
|
#1.13+ Mapping
|
||||||
|
|
||||||
|
entity.18=minecraft:item_frame minecraft:painting minecraft:glow_item_frame
|
||||||
|
entity.19=minecraft:frog
|
||||||
|
entity.1001=minecraft:ender_dragon
|
||||||
|
entity.1089=minecraft:boat minecraft:chest_boat
|
||||||
|
entity.10101=minecraft:lightning_bolt
|
||||||
|
entity.10001=minecraft:experience_orb
|
||||||
|
entity.10201=minecraft:end_crystal
|
||||||
|
entity.10202=minecraft:endermite
|
||||||
|
entity.10203=minecraft:witch
|
||||||
|
entity.10204=minecraft:blaze
|
||||||
|
entity.10205=minecraft:wither minecraft:wither_skull
|
||||||
|
entity.10206=minecraft:magma_cube
|
||||||
|
entity.10207=minecraft:vex
|
||||||
|
entity.10208=minecraft:creeper
|
||||||
|
entity.10209=minecraft:drowned
|
||||||
|
entity.10210=minecraft:stray
|
||||||
|
entity.10211=minecraft:ghast
|
||||||
|
entity.10212=minecraft:fireball minecraft:dragon_fireball
|
||||||
|
entity.10213=minecraft:glow_squid
|
||||||
|
entity.10214=minecraft:allay
|
||||||
|
entity.10220=minecraft:warden
|
||||||
|
entity.11001=minecraft:enderman
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
entity.10101=minecraft:lightning_bolt
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/final.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/final.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_armor_glint.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_armor_glint.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_basic.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_basic.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_beaconbeam.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_beaconbeam.glsl"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define GBUFFERS_BLOCK
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_block.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_block.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_clouds.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_clouds.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_damagedblock.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_damagedblock.glsl"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define GBUFFERS_ENTITIES
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_entities.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_entities.glsl"
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define GBUFFERS_ENTITIES
|
||||||
|
#define GBUFFERS_ENTITIES_GLOWING
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_entities.glsl"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define GBUFFERS_ENTITIES_GLOWING
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_entities.glsl"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define GBUFFERS_HAND
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_hand.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_hand.glsl"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
#define GBUFFERS_LINE
|
||||||
|
|
||||||
|
#include "/program/gbuffers_basic.glsl"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
#define GBUFFERS_LINE
|
||||||
|
|
||||||
|
#include "/program/gbuffers_basic.glsl"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define GBUFFERS_SKYBASIC
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_skybasic.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_skybasic.glsl"
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#define GBUFFERS_SKYTEXTURED
|
||||||
|
|
||||||
|
#include "/program/gbuffers_skytextured.glsl"
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#define GBUFFERS_SKYTEXTURED
|
||||||
|
|
||||||
|
#include "/program/gbuffers_skytextured.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_spidereyes.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_spidereyes.glsl"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define GBUFFERS_TERRAIN
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_terrain.glsl"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
#define GBUFFERS_TERRAIN
|
||||||
|
|
||||||
|
#include "/program/gbuffers_terrain.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_textured.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_textured.glsl"
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define GBUFFERS_WATER
|
||||||
|
#define OVERWORLD
|
||||||
|
#define WATER
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_water.glsl"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define WATER
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_water.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define FSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_weather.glsl"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#version 130
|
||||||
|
|
||||||
|
#define OVERWORLD
|
||||||
|
#define VSH
|
||||||
|
|
||||||
|
#include "/program/gbuffers_weather.glsl"
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
#if MC_VERSION >= 11300
|
||||||
|
|
||||||
|
#1.13+ Mapping
|
||||||
|
|
||||||
|
item.358=minecraft:filled_map
|
||||||
|
|
||||||
|
item.11001=minecraft:glowstone
|
||||||
|
item.11002=minecraft:sea_lantern
|
||||||
|
item.11004=minecraft:shroomlight
|
||||||
|
item.11007=minecraft:jack_o_lantern
|
||||||
|
item.11008=minecraft:beacon
|
||||||
|
item.11009=minecraft:end_rod
|
||||||
|
item.11012=minecraft:redstone_torch
|
||||||
|
item.11017=minecraft:lantern
|
||||||
|
item.11018=minecraft:soul_lantern
|
||||||
|
item.11021=minecraft:torch
|
||||||
|
item.11022=minecraft:soul_torch
|
||||||
|
item.11023=minecraft:crying_obsidian minecraft:respawn_anchor
|
||||||
|
item.11024=minecraft:campfire
|
||||||
|
item.11025=minecraft:soul_campfire
|
||||||
|
|
||||||
|
item.12001=minecraft:lava_bucket
|
||||||
|
|
||||||
|
item.13001=minecraft:spider_eye minecraft:fermented_spider_eye
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
item.358=minecraft:filled_map
|
||||||
|
|
||||||
|
#endif
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,153 @@
|
|||||||
|
//FXAA 3.11 from http://blog.simonrodriguez.fr/articles/30-07-2016_implementing_fxaa.html
|
||||||
|
float quality[12] = float[12] (1.0, 1.0, 1.0, 1.0, 1.0, 1.5, 2.0, 2.0, 2.0, 2.0, 4.0, 8.0);
|
||||||
|
|
||||||
|
void FXAA311(inout vec3 color) {
|
||||||
|
float edgeThresholdMin = 0.03125;
|
||||||
|
float edgeThresholdMax = 0.0625;
|
||||||
|
float subpixelQuality = 0.75;
|
||||||
|
int iterations = 12;
|
||||||
|
|
||||||
|
vec2 view = 1.0 / vec2(viewWidth, viewHeight);
|
||||||
|
|
||||||
|
float lumaCenter = GetLuminance(color);
|
||||||
|
float lumaDown = GetLuminance(texture2D(colortex1, texCoord + vec2( 0.0, -1.0) * view).rgb);
|
||||||
|
float lumaUp = GetLuminance(texture2D(colortex1, texCoord + vec2( 0.0, 1.0) * view).rgb);
|
||||||
|
float lumaLeft = GetLuminance(texture2D(colortex1, texCoord + vec2(-1.0, 0.0) * view).rgb);
|
||||||
|
float lumaRight = GetLuminance(texture2D(colortex1, texCoord + vec2( 1.0, 0.0) * view).rgb);
|
||||||
|
|
||||||
|
float lumaMin = min(lumaCenter, min(min(lumaDown, lumaUp), min(lumaLeft, lumaRight)));
|
||||||
|
float lumaMax = max(lumaCenter, max(max(lumaDown, lumaUp), max(lumaLeft, lumaRight)));
|
||||||
|
|
||||||
|
float lumaRange = lumaMax - lumaMin;
|
||||||
|
|
||||||
|
if (lumaRange > max(edgeThresholdMin, lumaMax * edgeThresholdMax)) {
|
||||||
|
float lumaDownLeft = GetLuminance(texture2D(colortex1, texCoord + vec2(-1.0, -1.0) * view).rgb);
|
||||||
|
float lumaUpRight = GetLuminance(texture2D(colortex1, texCoord + vec2( 1.0, 1.0) * view).rgb);
|
||||||
|
float lumaUpLeft = GetLuminance(texture2D(colortex1, texCoord + vec2(-1.0, 1.0) * view).rgb);
|
||||||
|
float lumaDownRight = GetLuminance(texture2D(colortex1, texCoord + vec2( 1.0, -1.0) * view).rgb);
|
||||||
|
|
||||||
|
float lumaDownUp = lumaDown + lumaUp;
|
||||||
|
float lumaLeftRight = lumaLeft + lumaRight;
|
||||||
|
|
||||||
|
float lumaLeftCorners = lumaDownLeft + lumaUpLeft;
|
||||||
|
float lumaDownCorners = lumaDownLeft + lumaDownRight;
|
||||||
|
float lumaRightCorners = lumaDownRight + lumaUpRight;
|
||||||
|
float lumaUpCorners = lumaUpRight + lumaUpLeft;
|
||||||
|
|
||||||
|
float edgeHorizontal = abs(-2.0 * lumaLeft + lumaLeftCorners ) +
|
||||||
|
abs(-2.0 * lumaCenter + lumaDownUp ) * 2.0 +
|
||||||
|
abs(-2.0 * lumaRight + lumaRightCorners);
|
||||||
|
float edgeVertical = abs(-2.0 * lumaUp + lumaUpCorners ) +
|
||||||
|
abs(-2.0 * lumaCenter + lumaLeftRight ) * 2.0 +
|
||||||
|
abs(-2.0 * lumaDown + lumaDownCorners );
|
||||||
|
|
||||||
|
bool isHorizontal = (edgeHorizontal >= edgeVertical);
|
||||||
|
|
||||||
|
float luma1 = isHorizontal ? lumaDown : lumaLeft;
|
||||||
|
float luma2 = isHorizontal ? lumaUp : lumaRight;
|
||||||
|
float gradient1 = luma1 - lumaCenter;
|
||||||
|
float gradient2 = luma2 - lumaCenter;
|
||||||
|
|
||||||
|
bool is1Steepest = abs(gradient1) >= abs(gradient2);
|
||||||
|
float gradientScaled = 0.25 * max(abs(gradient1), abs(gradient2));
|
||||||
|
|
||||||
|
float stepLength = isHorizontal ? view.y : view.x;
|
||||||
|
|
||||||
|
float lumaLocalAverage = 0.0;
|
||||||
|
|
||||||
|
if (is1Steepest) {
|
||||||
|
stepLength = - stepLength;
|
||||||
|
lumaLocalAverage = 0.5 * (luma1 + lumaCenter);
|
||||||
|
} else {
|
||||||
|
lumaLocalAverage = 0.5 * (luma2 + lumaCenter);
|
||||||
|
}
|
||||||
|
|
||||||
|
vec2 currentUv = texCoord;
|
||||||
|
if (isHorizontal) {
|
||||||
|
currentUv.y += stepLength * 0.5;
|
||||||
|
} else {
|
||||||
|
currentUv.x += stepLength * 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec2 offset = isHorizontal ? vec2(view.x, 0.0) : vec2(0.0, view.y);
|
||||||
|
|
||||||
|
vec2 uv1 = currentUv - offset;
|
||||||
|
vec2 uv2 = currentUv + offset;
|
||||||
|
|
||||||
|
float lumaEnd1 = GetLuminance(texture2D(colortex1, uv1).rgb);
|
||||||
|
float lumaEnd2 = GetLuminance(texture2D(colortex1, uv2).rgb);
|
||||||
|
lumaEnd1 -= lumaLocalAverage;
|
||||||
|
lumaEnd2 -= lumaLocalAverage;
|
||||||
|
|
||||||
|
bool reached1 = abs(lumaEnd1) >= gradientScaled;
|
||||||
|
bool reached2 = abs(lumaEnd2) >= gradientScaled;
|
||||||
|
bool reachedBoth = reached1 && reached2;
|
||||||
|
|
||||||
|
if (!reached1) {
|
||||||
|
uv1 -= offset;
|
||||||
|
}
|
||||||
|
if (!reached2) {
|
||||||
|
uv2 += offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!reachedBoth) {
|
||||||
|
for(int i = 2; i < iterations; i++) {
|
||||||
|
if (!reached1) {
|
||||||
|
lumaEnd1 = GetLuminance(texture2D(colortex1, uv1).rgb);
|
||||||
|
lumaEnd1 = lumaEnd1 - lumaLocalAverage;
|
||||||
|
}
|
||||||
|
if (!reached2) {
|
||||||
|
lumaEnd2 = GetLuminance(texture2D(colortex1, uv2).rgb);
|
||||||
|
lumaEnd2 = lumaEnd2 - lumaLocalAverage;
|
||||||
|
}
|
||||||
|
|
||||||
|
reached1 = abs(lumaEnd1) >= gradientScaled;
|
||||||
|
reached2 = abs(lumaEnd2) >= gradientScaled;
|
||||||
|
reachedBoth = reached1 && reached2;
|
||||||
|
|
||||||
|
if (!reached1) {
|
||||||
|
uv1 -= offset * quality[i];
|
||||||
|
}
|
||||||
|
if (!reached2) {
|
||||||
|
uv2 += offset * quality[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reachedBoth) break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
float distance1 = isHorizontal ? (texCoord.x - uv1.x) : (texCoord.y - uv1.y);
|
||||||
|
float distance2 = isHorizontal ? (uv2.x - texCoord.x) : (uv2.y - texCoord.y);
|
||||||
|
|
||||||
|
bool isDirection1 = distance1 < distance2;
|
||||||
|
float distanceFinal = min(distance1, distance2);
|
||||||
|
|
||||||
|
float edgeThickness = (distance1 + distance2);
|
||||||
|
|
||||||
|
float pixelOffset = - distanceFinal / edgeThickness + 0.5;
|
||||||
|
|
||||||
|
bool isLumaCenterSmaller = lumaCenter < lumaLocalAverage;
|
||||||
|
|
||||||
|
bool correctVariation = ((isDirection1 ? lumaEnd1 : lumaEnd2) < 0.0) != isLumaCenterSmaller;
|
||||||
|
|
||||||
|
float finalOffset = correctVariation ? pixelOffset : 0.0;
|
||||||
|
|
||||||
|
float lumaAverage = (1.0 / 12.0) * (2.0 * (lumaDownUp + lumaLeftRight) + lumaLeftCorners + lumaRightCorners);
|
||||||
|
float subPixelOffset1 = clamp(abs(lumaAverage - lumaCenter) / lumaRange, 0.0, 1.0);
|
||||||
|
float subPixelOffset2 = (-2.0 * subPixelOffset1 + 3.0) * subPixelOffset1 * subPixelOffset1;
|
||||||
|
float subPixelOffsetFinal = subPixelOffset2 * subPixelOffset2 * subpixelQuality;
|
||||||
|
|
||||||
|
finalOffset = max(finalOffset, subPixelOffsetFinal);
|
||||||
|
|
||||||
|
|
||||||
|
// Compute the final UV coordinates.
|
||||||
|
vec2 finalUv = texCoord;
|
||||||
|
if (isHorizontal) {
|
||||||
|
finalUv.y += finalOffset * stepLength;
|
||||||
|
} else {
|
||||||
|
finalUv.x += finalOffset * stepLength;
|
||||||
|
}
|
||||||
|
|
||||||
|
color = texture2D(colortex1, finalUv).rgb;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
/*
|
||||||
|
Complementary Shaders by EminGT, based on BSL Shaders by Capt Tatsu
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "/lib/util/reprojection.glsl"
|
||||||
|
|
||||||
|
ivec2 neighbourhoodOffsets[8] = ivec2[8](
|
||||||
|
ivec2(-1, -1),
|
||||||
|
ivec2( 0, -1),
|
||||||
|
ivec2( 1, -1),
|
||||||
|
ivec2(-1, 0),
|
||||||
|
ivec2( 1, 0),
|
||||||
|
ivec2(-1, 1),
|
||||||
|
ivec2( 0, 1),
|
||||||
|
ivec2( 1, 1)
|
||||||
|
);
|
||||||
|
|
||||||
|
void NeighbourhoodClamping(vec3 color, inout vec3 tempColor, float depth, inout float edge) {
|
||||||
|
vec3 minclr = color, maxclr = color;
|
||||||
|
|
||||||
|
ivec2 texelCoord = ivec2(gl_FragCoord.xy);
|
||||||
|
|
||||||
|
for (int i = 0; i < 8; i++) {
|
||||||
|
float depthCheck = texelFetch(depthtex1, texelCoord + neighbourhoodOffsets[i], 0).r;
|
||||||
|
if (abs(GetLinearDepth(depthCheck) - GetLinearDepth(depth)) > 0.09) edge = 0.25;
|
||||||
|
vec3 clr = texelFetch(colortex1, texelCoord + neighbourhoodOffsets[i], 0).rgb;
|
||||||
|
minclr = min(minclr, clr); maxclr = max(maxclr, clr);
|
||||||
|
}
|
||||||
|
|
||||||
|
tempColor = clamp(tempColor, minclr, maxclr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TAA(inout vec3 color, inout vec4 temp) {
|
||||||
|
float depth = texture2D(depthtex1, texCoord).r;
|
||||||
|
float noTAA = texture2D(colortex7, texCoord).r;
|
||||||
|
if (depth < 0.56 || noTAA > 0.5) { // Fixes entities and hand
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 coord = vec3(texCoord, depth);
|
||||||
|
vec2 prvCoord = Reprojection(coord);
|
||||||
|
|
||||||
|
vec2 view = vec2(viewWidth, viewHeight);
|
||||||
|
vec3 tempColor = texture2D(colortex2, prvCoord).gba;
|
||||||
|
if (tempColor == vec3(0.0)) { // Fixes the first frame
|
||||||
|
temp = vec4(temp.r, color);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
float edge = 0.0;
|
||||||
|
NeighbourhoodClamping(color, tempColor, depth, edge);
|
||||||
|
|
||||||
|
vec2 velocity = (texCoord - prvCoord.xy) * view;
|
||||||
|
|
||||||
|
float blendFactor = float(prvCoord.x > 0.0 && prvCoord.x < 1.0 &&
|
||||||
|
prvCoord.y > 0.0 && prvCoord.y < 1.0);
|
||||||
|
#if AA == 2 || AA == 3
|
||||||
|
float blendMinimum = 0.3;
|
||||||
|
#elif AA == 4
|
||||||
|
float blendMinimum = 0.6;
|
||||||
|
#endif
|
||||||
|
float blendVariable = 0.25;
|
||||||
|
float blendConstant = 0.65;
|
||||||
|
|
||||||
|
float lengthVelocity = length(velocity) * 50;
|
||||||
|
blendFactor *= max(exp(-lengthVelocity) * blendVariable + blendConstant - lengthVelocity * edge, blendMinimum);
|
||||||
|
|
||||||
|
color = mix(color, tempColor, blendFactor);
|
||||||
|
temp = vec4(temp.r, color);
|
||||||
|
//if (edge > 0.05) color.rgb = vec3(1.0, 0.0, 1.0);
|
||||||
|
}
|
||||||
@@ -0,0 +1,257 @@
|
|||||||
|
#if MC_VERSION >= 11900
|
||||||
|
uniform float darknessFactor;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef OVERWORLD
|
||||||
|
#include "/lib/atmospherics/sunGlare.glsl"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec3 Fog1(vec3 color, float lWorldPos, float lViewPos, vec3 nViewPos, vec3 extra, float NdotU) {
|
||||||
|
#if defined OVERWORLD && !defined ONESEVEN && !defined TWO
|
||||||
|
#if FOG1_TYPE < 2
|
||||||
|
float fog = lWorldPos / far * (1.0/FOG1_DISTANCE_M);
|
||||||
|
#else
|
||||||
|
float fog = lViewPos / far * (1.025/FOG1_DISTANCE_M);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
fog *= fog;
|
||||||
|
fog *= fog;
|
||||||
|
fog *= fog * fog;
|
||||||
|
fog = 1.0 - exp(-6.0 * fog);
|
||||||
|
|
||||||
|
if (fog > 0.0) {
|
||||||
|
vec3 artificialFogColor = GetSkyColor(lightCol, NdotU, nViewPos, false);
|
||||||
|
artificialFogColor = SunGlare(artificialFogColor, nViewPos, lightCol);
|
||||||
|
#ifdef CAVE_SKY_FIX
|
||||||
|
artificialFogColor *= 1.0 - isEyeInCave;
|
||||||
|
#endif
|
||||||
|
color.rgb = mix(color.rgb, artificialFogColor, fog);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined NETHER && defined NETHER_FOG // extra = nether smoke (if enabled)
|
||||||
|
#if FOG1_TYPE > 0
|
||||||
|
float fog = lViewPos / far * (1.0/FOG1_DISTANCE_M);
|
||||||
|
#else
|
||||||
|
float fog = lWorldPos / far * (1.0/FOG1_DISTANCE_M);
|
||||||
|
#endif
|
||||||
|
fog *= fog;
|
||||||
|
fog *= fog;
|
||||||
|
fog = 1.0 - exp(-8.0 * fog);
|
||||||
|
|
||||||
|
vec3 artificialFogColor = pow((netherCol * 2.5) / NETHER_I, vec3(2.2)) * 4;
|
||||||
|
#ifdef NETHER_SMOKE
|
||||||
|
artificialFogColor += extra * fog;
|
||||||
|
#endif
|
||||||
|
color.rgb = mix(color.rgb, artificialFogColor, fog);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef END // extra = ender nebula (if enabled)
|
||||||
|
float fog = lWorldPos / far * (1.5/FOG1_DISTANCE_M);
|
||||||
|
fog = 1.0 - exp(-0.1 * pow(fog, 10.0));
|
||||||
|
if (fog > 0.0) {
|
||||||
|
vec3 artificialFogColor = endCol * (0.035 + 0.02 * vsBrightness);
|
||||||
|
#ifdef ENDER_NEBULA
|
||||||
|
artificialFogColor += extra * fog;
|
||||||
|
#endif
|
||||||
|
color.rgb = mix(color.rgb, artificialFogColor, fog);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef TWO
|
||||||
|
float fog = lWorldPos / far * (4.0/FOG1_DISTANCE_M);
|
||||||
|
fog = 1.0 - exp(-0.1 * pow(fog, 3.0));
|
||||||
|
|
||||||
|
//float NdotU = 1.0 - max(dot(nViewPos, upVec), 0.0);
|
||||||
|
NdotU = 1.0 - max(NdotU, 0.0);
|
||||||
|
NdotU = NdotU * NdotU;
|
||||||
|
#ifndef ABYSS
|
||||||
|
vec3 midnightPurple = vec3(0.0003, 0.0004, 0.002) * 1.25;
|
||||||
|
vec3 midnightFogColor = fogColor * fogColor * 0.3;
|
||||||
|
#else
|
||||||
|
vec3 midnightPurple = skyColor * skyColor * 0.00075;
|
||||||
|
vec3 midnightFogColor = fogColor * fogColor * 0.09;
|
||||||
|
#endif
|
||||||
|
vec3 artificialFogColor = mix(midnightPurple, midnightFogColor, NdotU);
|
||||||
|
|
||||||
|
color.rgb = mix(color.rgb, artificialFogColor, fog);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SEVEN
|
||||||
|
float fog = lWorldPos / far * (1.5/FOG1_DISTANCE_M);
|
||||||
|
fog = 1.0 - exp(-0.1 * pow(fog, 10.0));
|
||||||
|
float cosT = dot(nViewPos, upVec);
|
||||||
|
vec3 twilightPurple = vec3(0.005, 0.006, 0.018);
|
||||||
|
vec3 twilightGreen = vec3(0.015, 0.03, 0.02);
|
||||||
|
#ifdef TWENTY
|
||||||
|
twilightPurple = twilightGreen * 0.1;
|
||||||
|
#endif
|
||||||
|
vec3 artificialFogColor = 2 * (twilightPurple * 2 * clamp(pow(cosT, 0.7), 0.0, 1.0) + twilightGreen * (1-clamp(pow(cosT, 0.7), 0.0, 1.0)));
|
||||||
|
color.rgb = mix(color.rgb, artificialFogColor, fog);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ONESEVEN
|
||||||
|
float fogoneseven = lWorldPos / 16 * (1.35-sunVisibility*0.35);
|
||||||
|
fogoneseven = 1.0 - exp(-0.1 * pow(fogoneseven, 3.0));
|
||||||
|
|
||||||
|
if (fogoneseven > 0.0) {
|
||||||
|
vec3 artificialFogColor = GetSkyColor(lightCol, NdotU, nViewPos, false);
|
||||||
|
artificialFogColor = SunGlare(artificialFogColor, nViewPos, lightCol);
|
||||||
|
color.rgb = mix(color.rgb, artificialFogColor, fogoneseven);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return color.rgb;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 Fog2(vec3 color, float lViewPos, vec3 worldPos) {
|
||||||
|
|
||||||
|
#ifdef OVERWORLD
|
||||||
|
#ifdef FOG2_ALTITUDE_MODE
|
||||||
|
float altitudeFactor = (worldPos.y + eyeAltitude + 1000.0 - FOG2_ALTITUDE) * 0.001;
|
||||||
|
if (altitudeFactor > 0.965 && altitudeFactor < 1.0) altitudeFactor = pow(altitudeFactor, 1.0 - (altitudeFactor - 0.965) * 28.57);
|
||||||
|
altitudeFactor = clamp(pow(altitudeFactor, 20.0), 0.0, 1.0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//duplicate 307309760
|
||||||
|
float fog2 = lViewPos / pow(far, 0.25) * 0.112 * (1.0 + rainStrengthS * FOG2_RAIN_DISTANCE_M)
|
||||||
|
* (1.0 - sunVisibility * 0.25 * (1.0 - rainStrengthS)) / FOG2_DISTANCE_M;
|
||||||
|
fog2 = (1.0 - (exp(-50.0 * pow(fog2*0.125, 3.25) * eBS)));
|
||||||
|
fog2 *= min(FOG2_OPACITY * (3.0 + rainStrengthS * FOG2_RAIN_OPACITY_M - sunVisibility * 2.0), 1.0);
|
||||||
|
#ifdef FOG2_ALTITUDE_MODE
|
||||||
|
fog2 *= pow(clamp((eyeAltitude - FOG2_ALTITUDE*0.2) / FOG2_ALTITUDE, 0.0, 1.0), 2.5 - FOG2_RAIN_ALTITUDE_M * rainStrengthS * 2.5);
|
||||||
|
fog2 *= 1.0 - altitudeFactor * (1.0 - FOG2_RAIN_ALTITUDE_M * rainStrengthS);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float sunVisibility2 = sunVisibility * sunVisibility;
|
||||||
|
float sunVisibility4 = sunVisibility2 * sunVisibility2;
|
||||||
|
float sunVisibility8 = sunVisibility4 * sunVisibility4;
|
||||||
|
float timeBrightness2 = sqrt1(timeBrightness);
|
||||||
|
vec3 fogColor2 = mix(lightCol*0.5, skyColor*skyMult*1.25, timeBrightness2);
|
||||||
|
fogColor2 = mix(ambientNight*ambientNight, fogColor2, sunVisibility8);
|
||||||
|
if (rainStrengthS > 0.0) {
|
||||||
|
float rainStrengthS2 = 1.0 - (1.0 - rainStrengthS) * (1.0 - rainStrengthS);
|
||||||
|
vec3 rainFogColor = FOG2_RAIN_BRIGHTNESS_M * skyColCustom * (0.01 + 0.05 * sunVisibility8 + 0.1 * timeBrightness2);
|
||||||
|
rainFogColor *= mix(SKY_RAIN_NIGHT, SKY_RAIN_DAY, sunVisibility);
|
||||||
|
fogColor2 = mix(fogColor2, rainFogColor, rainStrengthS2);
|
||||||
|
}
|
||||||
|
fogColor2 *= FOG2_BRIGHTNESS;
|
||||||
|
#ifdef CAVE_SKY_FIX
|
||||||
|
fogColor2 *= 1.0 - isEyeInCave;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
color.rgb = mix(color.rgb, fogColor2, fog2);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef END
|
||||||
|
float fog2 = lViewPos / pow(far, 0.25) * 0.035 * (32.0/FOG2_END_DISTANCE_M);
|
||||||
|
fog2 = 1.0 - (exp(-50.0 * pow(fog2*0.125, 4.0)));
|
||||||
|
#ifdef FOG2_ALTITUDE_MODE
|
||||||
|
float altitudeFactor = clamp((worldPos.y + eyeAltitude + 100.0 - FOG2_END_ALTITUDE) * 0.01, 0.0, 1.0);
|
||||||
|
if (altitudeFactor > 0.75 && altitudeFactor < 1.0) altitudeFactor = pow(altitudeFactor, 1.0 - (altitudeFactor - 0.75) * 4.0);
|
||||||
|
fog2 *= 1.0 - altitudeFactor;
|
||||||
|
#endif
|
||||||
|
fog2 = clamp(fog2, 0.0, 0.125) * (7.0 + fog2);
|
||||||
|
fog2 = 1 - pow(1 - fog2, 2.0 - fog2);
|
||||||
|
vec3 fogColor2 = endCol * (0.035 + 0.02 * vsBrightness);
|
||||||
|
color.rgb = mix(color.rgb, fogColor2 * FOG2_END_BRIGHTNESS, fog2 * FOG2_END_OPACITY);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined SEVEN && !defined TWENTY
|
||||||
|
float fog2 = lViewPos / pow(far, 0.25) * 0.035 * (1.0 + rainStrengthS) * (3.2/FOG2_DISTANCE_M);
|
||||||
|
fog2 = 1.0 - (exp(-50.0 * pow(fog2*0.125, 4.0) * eBS));
|
||||||
|
float altitudeFactor = (worldPos.y + eyeAltitude + 1000.0 - 90 * (1 + rainStrengthS*0.5)) * 0.001;
|
||||||
|
if (altitudeFactor > 0.965 && altitudeFactor < 1.0) altitudeFactor = pow(altitudeFactor, 1.0 - (altitudeFactor - 0.965) * 28.57);
|
||||||
|
fog2 *= 1.0 - altitudeFactor;
|
||||||
|
fog2 = clamp(fog2, 0.0, 0.125) * (7.0 + fog2);
|
||||||
|
vec3 fogColor2 = vec3(0.015, 0.03, 0.02);
|
||||||
|
color.rgb = mix(color.rgb, fogColor2, fog2 * 0.80);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return color.rgb;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 WaterFog(vec3 color, float lViewPos, float fogrange) {
|
||||||
|
float fog = lViewPos / fogrange;
|
||||||
|
fog = 1.0 - exp(-3.0 * fog * fog);
|
||||||
|
color *= pow(max(underwaterColor.rgb, vec3(0.1)), vec3(0.5)) * 3.0;
|
||||||
|
color = mix(color, 0.8 * pow(underwaterColor.rgb * (1.0 - blindFactor), vec3(2.0)), fog);
|
||||||
|
|
||||||
|
return color.rgb;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 LavaFog(vec3 color, float lViewPos) {
|
||||||
|
#ifndef LAVA_VISIBILITY
|
||||||
|
float fog = (lViewPos - gl_Fog.start) * gl_Fog.scale;
|
||||||
|
fog *= fog;
|
||||||
|
fog = 1.0 - exp(- fog);
|
||||||
|
fog = clamp(fog, 0.0, 1.0);
|
||||||
|
#else
|
||||||
|
float fog = lViewPos * 0.02;
|
||||||
|
fog = 1.0 - exp(-3.0 * fog);
|
||||||
|
#if MC_VERSION >= 11700
|
||||||
|
if (gl_Fog.start / far < 0.0) fog = min(lViewPos * 0.01, 1.0);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//duplicate 792763950
|
||||||
|
#ifndef VANILLA_UNDERLAVA_COLOR
|
||||||
|
vec3 lavaFogColor = vec3(0.6, 0.35, 0.15);
|
||||||
|
#else
|
||||||
|
vec3 lavaFogColor = pow(fogColor, vec3(2.2));
|
||||||
|
#endif
|
||||||
|
color.rgb = mix(color.rgb, lavaFogColor, fog);
|
||||||
|
return color.rgb;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 SnowFog(vec3 color, float lViewPos) {
|
||||||
|
float fog = lViewPos * 0.3;
|
||||||
|
fog = (1.0 - exp(-4.0 * fog * fog * fog));
|
||||||
|
color.rgb = mix(color.rgb, vec3(0.1, 0.15, 0.2), fog);
|
||||||
|
|
||||||
|
return color.rgb;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 BlindFog(vec3 color, float lViewPos) {
|
||||||
|
float fog = lViewPos *0.04* (5.0 / blindFactor);
|
||||||
|
fog = (1.0 - exp(-6.0 * fog * fog * fog)) * blindFactor;
|
||||||
|
color.rgb = mix(color.rgb, vec3(0.0), fog);
|
||||||
|
|
||||||
|
return color.rgb;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if MC_VERSION >= 11900
|
||||||
|
vec3 DarknessFog(vec3 color, float lViewPos) {
|
||||||
|
float fog = lViewPos * 0.06;
|
||||||
|
fog = (1.0 - exp(-6.0 * fog * fog * fog)) * darknessFactor;
|
||||||
|
color.rgb = mix(color.rgb, darknessColor, fog);
|
||||||
|
|
||||||
|
return color.rgb;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec3 startFog(vec3 color, vec3 nViewPos, float lViewPos, vec3 worldPos, vec3 extra, float NdotU) {
|
||||||
|
#if !defined GBUFFER_CODING
|
||||||
|
if (isEyeInWater == 0) {
|
||||||
|
#ifdef FOG2
|
||||||
|
color.rgb = Fog2(color.rgb, lViewPos, worldPos);
|
||||||
|
#endif
|
||||||
|
#ifdef FOG1
|
||||||
|
color.rgb = Fog1(color.rgb, length(worldPos.xz), lViewPos, nViewPos, extra, NdotU);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (blindFactor < 0.001) {
|
||||||
|
if (isEyeInWater == 1) color.rgb = WaterFog(color.rgb, lViewPos, waterFog * (1.0 + eBS));
|
||||||
|
if (isEyeInWater == 2) color.rgb = LavaFog(color.rgb, lViewPos);
|
||||||
|
#if MC_VERSION >= 11700
|
||||||
|
if (isEyeInWater == 3) color.rgb = SnowFog(color.rgb, lViewPos);
|
||||||
|
#endif
|
||||||
|
} else color.rgb = BlindFog(color.rgb, lViewPos);
|
||||||
|
#if MC_VERSION >= 11900
|
||||||
|
if (darknessFactor > 0.001) color.rgb = DarknessFog(color.rgb, lViewPos);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return color.rgb;
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
float rainbowTime = sqrt3(max(pow2(pow2(sunVisibility * shadowFade)) - timeBrightness * 2.5, 0.0));
|
||||||
|
#ifdef RAINBOW_AFTER_RAIN_CHECK
|
||||||
|
rainbowTime *= sqrt3(max(wetness - 0.1, 0.0) * (1.0 - rainStrength) * (1.0 - rainStrengthS)) * isRainy;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (rainbowTime > 0.001) {
|
||||||
|
float rainbowDistance = max(far, 256.0) * 0.25;
|
||||||
|
float rainbowLength = max(far, 256.0) * 0.75;
|
||||||
|
|
||||||
|
vec3 rainbowTranslucent = translucent;
|
||||||
|
if (water) rainbowTranslucent = vec3(float(isEyeInWater == 1));
|
||||||
|
|
||||||
|
vec4 viewPosZ1 = gbufferProjectionInverse * (vec4(texCoord, z1, 1.0) * 2.0 - 1.0);
|
||||||
|
viewPosZ1 /= viewPosZ1.w;
|
||||||
|
float lViewPosZ1 = length(viewPosZ1.xyz);
|
||||||
|
float lViewPosZ0 = length(viewPos.xyz);
|
||||||
|
|
||||||
|
float rainbowCoord = 1.0 - (cosS + 0.75) / (0.0625 * RAINBOW_DIAMETER);
|
||||||
|
|
||||||
|
float rainbowFactor = clamp(1.0 - rainbowCoord, 0.0, 1.0) * clamp(rainbowCoord, 0.0, 1.0);
|
||||||
|
rainbowFactor *= rainbowFactor * (3.0 - 2.0 * rainbowFactor);
|
||||||
|
rainbowFactor *= min(max(lViewPosZ1 - rainbowDistance, 0.0) / rainbowLength, 1.0);
|
||||||
|
rainbowFactor *= rainbowTime;
|
||||||
|
#ifdef CAVE_SKY_FIX
|
||||||
|
rainbowFactor *= 1.0 - isEyeInCave;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (rainbowFactor > 0.0) {
|
||||||
|
#if RAINBOW_STYLE == 1
|
||||||
|
float rainbowCoordM = pow(rainbowCoord, 1.4 + max(rainbowCoord - 0.5, 0.0) * 1.6);
|
||||||
|
rainbowCoordM = smoothstep(0.0, 1.0, rainbowCoordM) * 0.85;
|
||||||
|
rainbowCoordM += (dither - 0.5) * 0.1;
|
||||||
|
vec3 rainbow = clamp(abs(mod(rainbowCoordM * 6.0 + vec3(-0.55,4.3,2.2) ,6.0)-3.0)-1.0, 0.0, 1.0);
|
||||||
|
rainbowCoordM += 0.1;
|
||||||
|
rainbow += clamp(abs(mod(rainbowCoordM * 6.0 + vec3(-0.55,4.3,2.2) ,6.0)-3.0)-1.0, 0.0, 1.0);
|
||||||
|
rainbowCoordM -= 0.2;
|
||||||
|
rainbow += clamp(abs(mod(rainbowCoordM * 6.0 + vec3(-0.55,4.3,2.2) ,6.0)-3.0)-1.0, 0.0, 1.0);
|
||||||
|
rainbow /= 3.0;
|
||||||
|
rainbow.r += pow2(max(rainbowCoord - 0.5, 0.0)) * (max(1.0 - rainbowCoord, 0.0)) * 26.0;
|
||||||
|
rainbow = pow(rainbow, vec3(2.2)) * vec3(0.25, 0.075, 0.25) * 3.0;
|
||||||
|
#else
|
||||||
|
float rainbowCoordM = pow(rainbowCoord, 1.35);
|
||||||
|
rainbowCoordM = smoothstep(0.0, 1.0, rainbowCoordM);
|
||||||
|
vec3 rainbow = clamp(abs(mod(rainbowCoordM * 6.0 + vec3(0.0,4.0,2.0) ,6.0)-3.0)-1.0, 0.0, 1.0);
|
||||||
|
rainbow *= rainbow * (3.0 - 2.0 * rainbow);
|
||||||
|
rainbow = pow(rainbow, vec3(2.2)) * vec3(0.25, 0.075, 0.25) * 3.0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (z1 > z0 && lViewPosZ0 < rainbowDistance + rainbowLength)
|
||||||
|
rainbow *= mix(rainbowTranslucent, vec3(1.0),
|
||||||
|
clamp((lViewPosZ0 - rainbowDistance) / rainbowLength, 0.0, 1.0)
|
||||||
|
);
|
||||||
|
if (isEyeInWater == 1) rainbow *= float(water) * 0.05;
|
||||||
|
|
||||||
|
color.rgb += rainbow * rainbowFactor;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
vec3 GetSkyColor(vec3 lightCol, float NdotU, vec3 nViewPos, bool isReflection) {
|
||||||
|
float timeBrightnessInv = 1.0 - timeBrightness;
|
||||||
|
float timeBrightnessInv2 = timeBrightnessInv * timeBrightnessInv;
|
||||||
|
float timeBrightnessInv4 = timeBrightnessInv2 * timeBrightnessInv2;
|
||||||
|
float timeBrightnessInv8 = timeBrightnessInv4 * timeBrightnessInv4;
|
||||||
|
|
||||||
|
float NdotSp = clamp(dot(nViewPos, sunVec) * 0.5 + 0.5, 0.001, 1.0);
|
||||||
|
float NdotS = NdotSp * NdotSp;
|
||||||
|
NdotS *= NdotS;
|
||||||
|
|
||||||
|
float absNdotU = abs(NdotU);
|
||||||
|
|
||||||
|
vec3 skyColor2 = skyColor * skyColor;
|
||||||
|
|
||||||
|
vec3 sky = mix(sqrt1(skyColor) * 0.47, skyColor2 * 0.9, absNdotU);
|
||||||
|
sky = sky * (0.5 + 0.5 * sunVisibility) * skyMult;
|
||||||
|
|
||||||
|
#ifdef ONESEVEN
|
||||||
|
sky = vec3(0.812, 0.741, 0.674) * 0.5;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float horizon = 1.0 - max(NdotU + 0.1, 0.0) * (1.0 - 0.25 * NdotS * sunVisibility);
|
||||||
|
horizon = min(horizon, 0.9);
|
||||||
|
horizon *= horizon;
|
||||||
|
|
||||||
|
float lightmix = NdotS * max(1.0 - absNdotU * 2.0, 0.0) * 0.5 + horizon + 0.05;
|
||||||
|
lightmix *= sunVisibility * (1.0 - rainStrengthS) * timeBrightnessInv8;
|
||||||
|
|
||||||
|
sky *= 2.0 - 0.5 * timeBrightnessInv4;
|
||||||
|
sky *= mix(SKY_NOON, SKY_DAY, timeBrightnessInv4);
|
||||||
|
|
||||||
|
float mult = 0.1 * (1.0 + rainStrengthS) + horizon * (0.3 + 0.1 * sunVisibility);
|
||||||
|
|
||||||
|
float meFactorP = min((1.0 - min(moonBrightness, 0.6) / 0.6) * 0.115, 0.075);
|
||||||
|
float meNdotU = 1.0 - absNdotU;
|
||||||
|
float meFactor = meFactorP * meNdotU * meNdotU * 15.0 * max(timeBrightnessInv4 - rainStrengthS, 0.0);
|
||||||
|
vec3 meColor = mix(lightMorning, lightEvening, mefade);
|
||||||
|
meColor *= meColor;
|
||||||
|
meColor *= meColor;
|
||||||
|
meColor *= meFactor * meFactor * NdotS;
|
||||||
|
|
||||||
|
vec3 finalSky = mix(sky * (1.0 - pow2(lightmix)), lightCol * sqrt(lightCol), lightmix);
|
||||||
|
|
||||||
|
vec3 nightSky = ambientNight * ambientNight * (3.25 + 2.25 * max(sqrt1(NdotU), 0.0));
|
||||||
|
nightSky *= mix(SKY_NIGHT, 1.0, sunVisibility);
|
||||||
|
finalSky += nightSky;
|
||||||
|
|
||||||
|
finalSky *= max(1.0 - length(meColor) * 0.5, 0.0);
|
||||||
|
finalSky += meColor * 0.8;
|
||||||
|
|
||||||
|
if (isReflection) {
|
||||||
|
float invNdotU = max(-NdotU, 0.0);
|
||||||
|
float groundFactor = 0.5 * (11.0 * rainStrengthS + 1.0) * (-5.0 * sunVisibility + 6.0);
|
||||||
|
float ground = exp(-groundFactor / (invNdotU * 6.0));
|
||||||
|
ground = smoothstep(0.0, 1.0, ground);
|
||||||
|
mult *= (1.0 - ground);
|
||||||
|
}
|
||||||
|
|
||||||
|
//duplicate 98765
|
||||||
|
vec3 weatherSky = weatherCol * weatherCol;
|
||||||
|
weatherSky *= GetLuminance(ambientCol / (weatherSky)) * 1.4;
|
||||||
|
weatherSky *= mix(SKY_RAIN_NIGHT, SKY_RAIN_DAY, sunVisibility);
|
||||||
|
weatherSky = max(weatherSky, skyColor2 * 0.75); // Lightning Sky Color
|
||||||
|
weatherSky *= rainStrengthS;
|
||||||
|
finalSky = mix(finalSky, weatherSky, rainStrengthS) * mult;
|
||||||
|
|
||||||
|
finalSky = pow(finalSky, vec3(1.125));
|
||||||
|
|
||||||
|
return finalSky;
|
||||||
|
}
|
||||||
@@ -0,0 +1,399 @@
|
|||||||
|
#if !defined END && !defined SEVEN && !defined NETHER
|
||||||
|
float CloudNoise(vec2 coord, vec2 wind) {
|
||||||
|
float noise = texture2D(noisetex, coord*0.125 + wind * 0.25).x * 7.0;
|
||||||
|
noise+= texture2D(noisetex, coord*0.0625 + wind * 0.15).x * 12.0;
|
||||||
|
noise+= texture2D(noisetex, coord*0.03125 + wind * 0.05).x * 12.0;
|
||||||
|
noise+= texture2D(noisetex, coord*0.015625 + wind * 0.05).x * 24.0;
|
||||||
|
return noise * 0.34;
|
||||||
|
}
|
||||||
|
|
||||||
|
float CloudCoverage(float noise, float coverage, float NdotU, float cosS) {
|
||||||
|
float noiseCoverageCosS = abs(cosS);
|
||||||
|
noiseCoverageCosS *= noiseCoverageCosS;
|
||||||
|
noiseCoverageCosS *= noiseCoverageCosS;
|
||||||
|
float NdotUmult = 0.365;
|
||||||
|
#ifdef AURORA
|
||||||
|
float auroraMult = max(1.0 - sunVisibility - rainStrengthS, 0.0);
|
||||||
|
#ifdef AURORA_BIOME_CHECK
|
||||||
|
auroraMult *= isSnowy;
|
||||||
|
#endif
|
||||||
|
#ifdef AURORA_FULL_MOON_CHECK
|
||||||
|
auroraMult *= float(moonPhase == 0);
|
||||||
|
#endif
|
||||||
|
NdotUmult *= 1.0 + 2.5 * auroraMult;
|
||||||
|
#endif
|
||||||
|
float noiseCoverage = coverage * coverage + CLOUD_AMOUNT
|
||||||
|
* (1.0 + noiseCoverageCosS * 0.175)
|
||||||
|
* (1.0 + NdotU * NdotUmult * (1.0-rainStrengthS*3.0))
|
||||||
|
- 2.5;
|
||||||
|
|
||||||
|
return max(noise - noiseCoverage, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 DrawCloud(vec3 viewPos, float dither, vec3 lightCol, vec3 ambientCol, float NdotU, int sampleCount) {
|
||||||
|
float cosS = dot(normalize(viewPos), sunVec);
|
||||||
|
|
||||||
|
#if AA > 1
|
||||||
|
dither = fract(16.0 * frameTimeCounter + dither);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float timeBrightnessS = sqrt1(timeBrightness);
|
||||||
|
|
||||||
|
float cloud = 0.0;
|
||||||
|
float cloudGradient = 0.0;
|
||||||
|
float gradientMix = dither * 0.1667;
|
||||||
|
float colorMultiplier = CLOUD_BRIGHTNESS * (0.23 + 0.07 * timeBrightnessS);
|
||||||
|
float noiseMultiplier = CLOUD_THICKNESS * 0.125;
|
||||||
|
float scattering = 0.5 * pow(cosS * 0.5 * (2.0 * sunVisibility - 1.0) + 0.5, 6.0);
|
||||||
|
|
||||||
|
float cloudHeightFactor = max(1.11 - 0.0015 * eyeAltitude, 0.0);
|
||||||
|
cloudHeightFactor *= cloudHeightFactor;
|
||||||
|
float cloudHeight = CLOUD_HEIGHT * cloudHeightFactor * 0.5;
|
||||||
|
|
||||||
|
#if !defined GBUFFERS_WATER && !defined DEFERRED
|
||||||
|
float skytime = frametime;
|
||||||
|
#else
|
||||||
|
float skytime = cloudtime;
|
||||||
|
#endif
|
||||||
|
float cloudSpeedFactor = 0.003;
|
||||||
|
vec2 wind = vec2(skytime * CLOUD_SPEED * cloudSpeedFactor, 0.0);
|
||||||
|
#ifdef SEVEN
|
||||||
|
wind *= 8;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec3 cloudColor = vec3(0.0);
|
||||||
|
|
||||||
|
float stretchFactor = 2.5;
|
||||||
|
float coordFactor = 0.009375;
|
||||||
|
|
||||||
|
if (NdotU > 0.025) { //duplicate 78634
|
||||||
|
vec3 wpos = normalize((gbufferModelViewInverse * vec4(viewPos, 1.0)).xyz);
|
||||||
|
for(int i = 0; i < sampleCount; i++) {
|
||||||
|
if (cloud > 0.99) break;
|
||||||
|
vec2 planeCoord = wpos.xz * ((cloudHeight + (i + dither) * stretchFactor * 6.0 / sampleCount) / wpos.y) * 0.0085;
|
||||||
|
vec2 coord = cameraPosition.xz * 0.00025 + planeCoord;
|
||||||
|
|
||||||
|
float ang1 = (i + frametime * 0.025) * 2.391;
|
||||||
|
float ang2 = ang1 + 2.391;
|
||||||
|
coord += mix(vec2(cos(ang1), sin(ang1)), vec2(cos(ang2), sin(ang2)), dither * 0.25 + 0.75) * coordFactor;
|
||||||
|
|
||||||
|
float coverage = float(i - 3.0 + dither) * 0.725;
|
||||||
|
|
||||||
|
float noise = CloudNoise(coord, wind);
|
||||||
|
noise = CloudCoverage(noise, coverage, NdotU, cosS) * noiseMultiplier;
|
||||||
|
noise = noise / sqrt(noise * noise + 1.0);
|
||||||
|
|
||||||
|
cloudGradient = mix(cloudGradient,
|
||||||
|
mix(gradientMix * gradientMix, 1.0 - noise, 0.25),
|
||||||
|
noise * (1.0 - cloud));
|
||||||
|
|
||||||
|
cloud += max(noise - cloud * 0.95, 0.0);
|
||||||
|
cloud = mix(cloud, 1.0, rainStrengthS * pow2(noise * noise));
|
||||||
|
gradientMix += 0.2 * (6.0 / sampleCount);
|
||||||
|
}
|
||||||
|
|
||||||
|
float meFactorP = min((1.0 - min(moonBrightness, 0.6) / 0.6) * 0.115, 0.075);
|
||||||
|
vec3 meColor = vec3(0.0);
|
||||||
|
if (cosS > 0.0) {
|
||||||
|
float meNdotU = 1.0 - NdotU;
|
||||||
|
float meFactor = meFactorP * meNdotU * meNdotU * 12.0 * (1.0 - rainStrengthS);
|
||||||
|
meColor = mix(lightMorning, lightEvening, mefade);
|
||||||
|
meColor *= meColor;
|
||||||
|
meColor *= meColor;
|
||||||
|
meColor *= meFactor * meFactor * cosS;
|
||||||
|
}
|
||||||
|
|
||||||
|
float sunVisibilityM = pow(sunVisibility, 4.0 - meFactorP * 24.0);
|
||||||
|
vec3 skyColor2 = skyColor * skyColor;
|
||||||
|
|
||||||
|
vec3 cloudNightColor = ambientCol * 8.0;
|
||||||
|
vec3 cloudDayColor = pow(lightCol, vec3(1.5)) * 1.5;
|
||||||
|
vec3 cloudUpColor = mix(cloudNightColor, cloudDayColor, sunVisibilityM);
|
||||||
|
cloudUpColor *= 1.0 + scattering;
|
||||||
|
cloudUpColor += max(meColor, vec3(0.0));
|
||||||
|
|
||||||
|
vec3 cloudDownColor = skyColor2 * 0.225 * sunVisibility * skyMult;
|
||||||
|
|
||||||
|
//duplicate 98765
|
||||||
|
vec3 weatherSky = weatherCol * weatherCol;
|
||||||
|
weatherSky *= GetLuminance(ambientCol / (weatherSky)) * 1.4;
|
||||||
|
weatherSky *= mix(SKY_RAIN_NIGHT, SKY_RAIN_DAY, sunVisibility);
|
||||||
|
weatherSky = max(weatherSky, skyColor2 * 0.75); // Lightning Sky Color
|
||||||
|
weatherSky *= rainStrengthS;
|
||||||
|
#ifdef LIGHT_SHAFTS
|
||||||
|
weatherSky *= 12.5 + scattering * 47.5 * (1.0 + sunVisibility);
|
||||||
|
#else
|
||||||
|
weatherSky *= 12.5 + scattering * 47.5;
|
||||||
|
#endif
|
||||||
|
cloudUpColor = mix(cloudUpColor, weatherSky, rainStrengthS * rainStrengthS);
|
||||||
|
|
||||||
|
cloudColor = mix(cloudDownColor, cloudUpColor, cloudGradient);
|
||||||
|
|
||||||
|
cloud *= pow2(pow2(1.0 - exp(- (10.0 - 8.2 * rainStrengthS) * NdotU))); //duplicate 78634
|
||||||
|
}
|
||||||
|
|
||||||
|
return vec4(cloudColor * colorMultiplier, cloud * CLOUD_OPACITY);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef AURORA
|
||||||
|
float AuroraNoise(vec2 coord, vec2 wind) {
|
||||||
|
float noise = texture2D(noisetex, coord * 0.175 + wind * 0.25).x;
|
||||||
|
noise+= texture2D(noisetex, coord * 0.04375 + wind * 0.15).x * 5.0;
|
||||||
|
|
||||||
|
return noise;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 DrawAurora(vec3 viewPos, float dither, int sampleCount, float NdotU) {
|
||||||
|
#if AA > 1
|
||||||
|
dither = fract(16.0 * frameTimeCounter + dither);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float gradientMix = dither / sampleCount;
|
||||||
|
float visibility = (1.0 - sunVisibility) * (1.0 - rainStrengthS);
|
||||||
|
visibility *= visibility;
|
||||||
|
|
||||||
|
#ifdef AURORA_BIOME_CHECK
|
||||||
|
visibility *= isSnowy;
|
||||||
|
#endif
|
||||||
|
#ifdef AURORA_FULL_MOON_CHECK
|
||||||
|
visibility *= float(moonPhase == 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined GBUFFERS_WATER && !defined DEFERRED
|
||||||
|
float skytime = frametime;
|
||||||
|
#else
|
||||||
|
float skytime = cloudtime;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec2 wind = vec2(skytime * 0.00005);
|
||||||
|
|
||||||
|
vec3 aurora = vec3(0.0);
|
||||||
|
|
||||||
|
float NdotUM = min(1.08 - NdotU, 1.0);
|
||||||
|
NdotUM *= NdotUM;
|
||||||
|
NdotUM = 1.0 - NdotUM * NdotUM;
|
||||||
|
|
||||||
|
if (NdotU > 0.0 && visibility > 0.0) {
|
||||||
|
vec3 wpos = normalize((gbufferModelViewInverse * vec4(viewPos, 1.0)).xyz);
|
||||||
|
for(int i = 0; i < sampleCount; i++) {
|
||||||
|
vec2 planeCoord = wpos.xz * ((8.0 * AURORA_HEIGHT + (i + dither) * 7.0 / sampleCount) / wpos.y) * 0.004;
|
||||||
|
vec2 coord = cameraPosition.xz * 0.00001 + planeCoord;
|
||||||
|
|
||||||
|
float noise = AuroraNoise(coord, wind);
|
||||||
|
noise = max(1.0 - 1.5 / (1.0 - NdotU * 0.8) * abs(noise - 3.0), 0.0);
|
||||||
|
|
||||||
|
if (noise > 0.0) {
|
||||||
|
noise *= texture2D(noisetex, coord * 0.25 + wind * 0.25).x;
|
||||||
|
noise *= 0.5 * texture2D(noisetex, coord + wind * 16.0).x + 0.75;
|
||||||
|
noise = noise * noise * 3.0 / sampleCount;
|
||||||
|
noise *= NdotUM;
|
||||||
|
|
||||||
|
vec3 auroracolor = mix(
|
||||||
|
auroraDCol,
|
||||||
|
auroraUCol,
|
||||||
|
pow(gradientMix, 0.4));
|
||||||
|
|
||||||
|
aurora += noise * auroracolor * exp2(-6.0 * i / sampleCount);
|
||||||
|
}
|
||||||
|
gradientMix += 1.0 / sampleCount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
aurora = aurora * visibility * 1.5;
|
||||||
|
|
||||||
|
return aurora;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SEVEN
|
||||||
|
float GetNoise(vec2 pos) {
|
||||||
|
return fract(sin(dot(pos, vec2(12.9898, 4.1414))) * 43758.54953);
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 DrawStars(inout vec3 color, vec3 viewPos, float NdotU) {
|
||||||
|
vec3 wpos = vec3(gbufferModelViewInverse * vec4(viewPos, 1.0));
|
||||||
|
vec3 planeCoord = 0.75 * wpos / (wpos.y + length(wpos.xz));
|
||||||
|
vec2 wind = 0.75 * vec2(frametime, 0.0);
|
||||||
|
#ifdef SEVEN
|
||||||
|
wind = vec2(0.0);
|
||||||
|
#endif
|
||||||
|
vec2 coord = planeCoord.xz * 0.5 + wind * 0.00125;
|
||||||
|
coord = floor(coord*1024.0) / 1024.0;
|
||||||
|
|
||||||
|
float multiplier = 5.0 * (1.0 - rainStrengthS) * (1 - (sunVisibility*0.9 + pow(timeBrightness, 0.05)*0.1)) * pow(NdotU, 2.0);
|
||||||
|
|
||||||
|
#ifdef SEVEN
|
||||||
|
multiplier = sqrt2(NdotU) * 5.0 * (1.0 - rainStrengthS);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float star = 1.0;
|
||||||
|
if (NdotU > 0.0) {
|
||||||
|
star *= GetNoise(coord.xy);
|
||||||
|
star *= GetNoise(coord.xy+0.1);
|
||||||
|
star *= GetNoise(coord.xy+0.23);
|
||||||
|
}
|
||||||
|
star = max(star - 0.825, 0.0) * multiplier;
|
||||||
|
|
||||||
|
vec3 stars = star * lightNight * lightNight * 160;
|
||||||
|
|
||||||
|
return vec3(stars);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined END && defined ENDER_NEBULA
|
||||||
|
float GetNebulaStarNoise(vec2 pos) {
|
||||||
|
return fract(sin(dot(pos, vec2(12.9898, 4.1414))) * 43758.54953);
|
||||||
|
}
|
||||||
|
|
||||||
|
float NebulaNoise(vec2 coord, vec2 wind) {
|
||||||
|
float noise = texture2D(noisetex, coord * 0.175 + wind * 0.25).x;
|
||||||
|
noise+= texture2D(noisetex, coord * 0.04375 + wind * 0.15).x * 5.0;
|
||||||
|
|
||||||
|
return noise;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 DrawEnderNebula(vec3 viewPos, float dither, vec3 lightCol, inout vec3 nebulaStars) {
|
||||||
|
float NdotU = dot(normalize(viewPos), upVec);
|
||||||
|
|
||||||
|
bool dragonBattle = gl_Fog.start / far < 0.5;
|
||||||
|
//if (gl_FragCoord.x < 960) dragonBattle = false;
|
||||||
|
//dragonBattle = true;
|
||||||
|
|
||||||
|
#if AA > 1
|
||||||
|
dither = fract(16.0 * frameTimeCounter + dither);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int sampleCount = 20;
|
||||||
|
|
||||||
|
float gradientMix = dither / sampleCount;
|
||||||
|
|
||||||
|
#if !defined GBUFFERS_WATER && !defined DEFERRED
|
||||||
|
float skytime = frametime;
|
||||||
|
#else
|
||||||
|
float skytime = cloudtime;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec2 wind = vec2(skytime * 0.000035 * NEBULA_SPEED);
|
||||||
|
|
||||||
|
vec3 nebula = vec3(0.0);
|
||||||
|
|
||||||
|
float NdotUM = abs(NdotU);
|
||||||
|
NdotUM = 1.0 - NdotUM;
|
||||||
|
NdotUM = pow(NdotUM, (2.0 - NdotUM) * (NEBULA_DISTRIBUTION - 0.8)) * 0.85;
|
||||||
|
NdotUM = max(NdotUM, 0.0);
|
||||||
|
float compression = pow(NdotUM, NEBULA_COMPRESSION);
|
||||||
|
dither *= dragonBattle ? 0.5 + 0.5 * NEBULA_SMOOTHING : NEBULA_SMOOTHING;
|
||||||
|
|
||||||
|
vec3 nebulaPurple = 12.0 * lightCol * NEBULA_PURPLE_BRIGHTNESS;
|
||||||
|
vec3 nebulaOrange = endOrangeCol * NEBULA_ORANGE_BRIGHTNESS * 4.0;
|
||||||
|
|
||||||
|
vec3 wpos = normalize((gbufferModelViewInverse * vec4(viewPos * 1000.0, 1.0)).xyz);
|
||||||
|
if (dragonBattle) {
|
||||||
|
nebulaPurple *= 0.3;
|
||||||
|
nebulaOrange *= 2.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0; i < sampleCount; i++) {
|
||||||
|
vec2 planeCoord = wpos.xz * (1.0 + (i + dither) * compression * 6.0 / sampleCount) * NEBULA_SIZE;
|
||||||
|
vec2 coord = planeCoord + cameraPosition.xz * 0.00004;
|
||||||
|
|
||||||
|
float noise = NebulaNoise(coord, wind);
|
||||||
|
noise = max(0.75 - 1.0 / abs(noise - (4.0 + NdotUM * 2.0)), 0.0) * 3.0;
|
||||||
|
|
||||||
|
if (noise > 0.0) {
|
||||||
|
noise *= texture2D(noisetex, abs(coord * 0.25) + wind * 4.0).x;
|
||||||
|
float fireNoise = texture2D(noisetex, abs(coord * 0.2) + wind * 8.0).x;
|
||||||
|
noise *= 0.5 * fireNoise + 0.75;
|
||||||
|
noise = noise * noise * 3.0 / sampleCount;
|
||||||
|
noise *= NdotUM;
|
||||||
|
|
||||||
|
vec3 nebulaColor = nebulaPurple;
|
||||||
|
nebulaColor += nebulaOrange * pow(fireNoise, 5.0);
|
||||||
|
nebulaColor *= gradientMix;
|
||||||
|
|
||||||
|
nebula += noise * nebulaColor * exp2(-6.0 * i / sampleCount);
|
||||||
|
}
|
||||||
|
gradientMix += 1.0 / sampleCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 starCoord = 0.75 * wpos / (abs(wpos.y) + length(wpos.xz));
|
||||||
|
vec2 starCoord2 = starCoord.xz * 0.5;
|
||||||
|
if (NdotU < 0.0) starCoord2 += 100.0;
|
||||||
|
float starFactor = 1024.0;
|
||||||
|
starCoord2 = floor(starCoord2 * starFactor) / starFactor;
|
||||||
|
float star = 1.0;
|
||||||
|
star *= GetNebulaStarNoise(starCoord2.xy);
|
||||||
|
star *= GetNebulaStarNoise(starCoord2.xy+0.1);
|
||||||
|
star *= GetNebulaStarNoise(starCoord2.xy+0.23);
|
||||||
|
star = max(star - 0.7, 0.0);
|
||||||
|
star *= star;
|
||||||
|
nebulaStars = star * lightCol * 120.0 * (1.0 - NdotUM) * NEBULA_STAR_BRIGHTNESS;
|
||||||
|
|
||||||
|
if (dragonBattle) {
|
||||||
|
nebulaStars *= vec3(2.0, 1.0, 0.5);
|
||||||
|
nebula *= vec3(2.0, 3.0, 2.0) * 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
return nebula * 2.0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined NETHER && defined NETHER_SMOKE
|
||||||
|
float SmokeNoise(vec2 coord, vec2 wind) {
|
||||||
|
float noise = texture2D(noisetex, coord * 0.175 + wind * 0.25).x;
|
||||||
|
noise+= texture2D(noisetex, coord * 0.04375 + wind * 0.15).x * 5.0;
|
||||||
|
|
||||||
|
return noise;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 DrawNetherSmoke(vec3 viewPos, float dither, vec3 lightCol) {
|
||||||
|
float NdotU = dot(normalize(viewPos), upVec);
|
||||||
|
|
||||||
|
#if AA > 1
|
||||||
|
dither = fract(16.0 * frameTimeCounter + dither);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int sampleCount = 20;
|
||||||
|
|
||||||
|
float gradientMix = dither / sampleCount;
|
||||||
|
|
||||||
|
#if !defined GBUFFERS_WATER && !defined DEFERRED
|
||||||
|
float skytime = frametime;
|
||||||
|
#else
|
||||||
|
float skytime = cloudtime;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec2 wind = vec2(skytime * 0.00005);
|
||||||
|
|
||||||
|
vec3 smoke = vec3(0.0);
|
||||||
|
|
||||||
|
float NdotUM = abs(NdotU);
|
||||||
|
NdotUM = 1.0 - NdotUM;
|
||||||
|
|
||||||
|
vec3 wpos = normalize((gbufferModelViewInverse * vec4(viewPos, 1.0)).xyz);
|
||||||
|
for(int i = 0; i < sampleCount; i++) {
|
||||||
|
vec2 planeCoord = wpos.xz * (1.0 + (i + dither) * 6.0 / sampleCount) * 0.03;
|
||||||
|
vec2 coord = planeCoord + cameraPosition.xz * 0.0017;
|
||||||
|
|
||||||
|
float noise = SmokeNoise(coord, wind);
|
||||||
|
noise = max(0.75 - 1.0 / abs(noise - 6.0), 0.0) * 3.0;
|
||||||
|
|
||||||
|
if (noise > 0.0) {
|
||||||
|
noise *= texture2D(noisetex, abs(coord * 0.25) + wind * 8.0).x;
|
||||||
|
float heightNoise = wpos.y;
|
||||||
|
float fireNoise = texture2D(noisetex, abs(coord * 0.2) + (heightNoise + cameraPosition.y * 0.01) * 0.01 + wind * -4.0).x;
|
||||||
|
noise = noise * noise * 3.0 / sampleCount;
|
||||||
|
noise *= NdotUM;
|
||||||
|
|
||||||
|
vec3 smokeColor = pow(lightCol, vec3(0.6, 0.5, 0.6)) * 12.0 * pow(fireNoise, 5.0);
|
||||||
|
smokeColor *= gradientMix;
|
||||||
|
|
||||||
|
smoke += noise * smokeColor * exp2(-6.0 * i / sampleCount);
|
||||||
|
}
|
||||||
|
gradientMix += 1.0 / sampleCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
return smoke * 2.0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
vec3 SunGlare(vec3 color, vec3 nViewPos, vec3 lightCol) {
|
||||||
|
float cosSp = dot(nViewPos, lightVec);
|
||||||
|
if (cosSp > 0.0) {
|
||||||
|
float cosS = cosSp;
|
||||||
|
cosS *= cosS;
|
||||||
|
cosS *= cosS;
|
||||||
|
cosS *= cosS;
|
||||||
|
float visfactor = 0.075;
|
||||||
|
|
||||||
|
float sunGlare = cosS;
|
||||||
|
sunGlare = visfactor / (1.0 - (1.0 - visfactor) * sunGlare) - visfactor;
|
||||||
|
sunGlare *= cosSp;
|
||||||
|
|
||||||
|
sunGlare *= 0.25 * SUN_GLARE_STRENGTH * (1.0 - rainStrengthS);
|
||||||
|
|
||||||
|
float shadowTime = abs(sunVisibility - 0.5) * 2.0;
|
||||||
|
shadowTime *= shadowTime;
|
||||||
|
sunGlare *= shadowTime * shadowTime;
|
||||||
|
|
||||||
|
vec3 finalSunGlare = lightCol * sunGlare;
|
||||||
|
|
||||||
|
if (isEyeInWater == 1) finalSunGlare *= underwaterColor.rgb * underwaterColor.rgb * 200.0;
|
||||||
|
|
||||||
|
color += finalSunGlare;
|
||||||
|
}
|
||||||
|
|
||||||
|
return color;
|
||||||
|
}
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
vec4 GetVolumetricClouds(float depth0, float depth1, vec3 vlAlbedo, float dither, vec4 viewPos) {
|
||||||
|
vec4 clouds = vec4(0.0);
|
||||||
|
|
||||||
|
//Color+
|
||||||
|
float sunVisibility2 = sunVisibility * sunVisibility;
|
||||||
|
float sunVisibility4 = sunVisibility2 * sunVisibility2;
|
||||||
|
|
||||||
|
vec3 cloudNightColor = ambientCol * 2.0;
|
||||||
|
vec3 cloudDayColor = pow(lightCol, vec3(1.5)) * (0.5 + 0.5 * timeBrightness);
|
||||||
|
vec3 cloudRainColor = normalize(pow(lightCol, vec3(1.0 + sunVisibility4))) * (0.015 + 0.1 * sunVisibility4 + 0.1 * timeBrightness);
|
||||||
|
|
||||||
|
vec3 cloudUpColor = mix(cloudNightColor, cloudDayColor, sunVisibility4);
|
||||||
|
cloudUpColor = mix(cloudUpColor, cloudRainColor, rainStrengthS);
|
||||||
|
|
||||||
|
vec3 cloudDownColor = cloudUpColor * 0.35;
|
||||||
|
|
||||||
|
float cloudAmountM = 0.075 * CLOUD_AMOUNT * (1.0 - 0.35 * rainStrengthS);
|
||||||
|
|
||||||
|
//Settings
|
||||||
|
float cloudAltitude = 128.0;
|
||||||
|
float cloudThickness = 24.0;
|
||||||
|
int sampleCount = 20;
|
||||||
|
float minDistFactor = 160.0 / sampleCount * sqrt(far / 256.0);
|
||||||
|
|
||||||
|
//Ray Trace
|
||||||
|
for(int i = 0; i < sampleCount; i++) {
|
||||||
|
float minDist = (i + dither) * minDistFactor;
|
||||||
|
|
||||||
|
if (depth1 < minDist || (depth0 < minDist && vlAlbedo == vec3(0.0))) break;
|
||||||
|
|
||||||
|
float distX = GetDistX(minDist);
|
||||||
|
vec4 viewPos = gbufferProjectionInverse * (vec4(texCoord, distX, 1.0) * 2.0 - 1.0);
|
||||||
|
viewPos /= viewPos.w;
|
||||||
|
vec4 wpos = gbufferModelViewInverse * viewPos;
|
||||||
|
vec3 worldPos = wpos.xyz + cameraPosition.xyz + vec3(cloudtime * 2.0, 0.0, 0.0);
|
||||||
|
|
||||||
|
float yFactor = max(cloudThickness - abs(worldPos.y - cloudAltitude), 0.0) / cloudThickness;
|
||||||
|
float disFalloff = max(32.0 - max(length(wpos.xz) - 256.0, 0.0), 0.0) / 32.0;
|
||||||
|
float smoke = 0.0;
|
||||||
|
if (yFactor * disFalloff > 0.001) {
|
||||||
|
worldPos.xz *= 2.0;
|
||||||
|
smoke = texture2D(noisetex, worldPos.xz * 0.0002 ).r * 0.5;
|
||||||
|
smoke += texture2D(noisetex, worldPos.xz * 0.0001 ).r;
|
||||||
|
smoke += texture2D(noisetex, worldPos.xz * 0.00005 ).r;
|
||||||
|
smoke += texture2D(noisetex, worldPos.xz * 0.000025).r * 2.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
smoke *= disFalloff;
|
||||||
|
smoke *= sqrt1(yFactor) * 0.35;
|
||||||
|
smoke = max(smoke - cloudAmountM, 0.0);
|
||||||
|
|
||||||
|
float blend = ( (worldPos.y - cloudAltitude) / cloudThickness + 1.0 ) * 0.5;
|
||||||
|
blend = clamp(blend, 0.0, 1.0);
|
||||||
|
blend *= blend;
|
||||||
|
vec3 cloudColorSample = mix(cloudDownColor, cloudUpColor, blend);
|
||||||
|
if (depth0 < minDist) cloudColorSample *= vlAlbedo;
|
||||||
|
clouds.rgb = mix(cloudColorSample, clouds.rgb, min(clouds.a, 1.0));
|
||||||
|
|
||||||
|
clouds.a += smoke * 256.0 / sampleCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
clouds *= 0.9;
|
||||||
|
clouds += clouds * dither * 0.19;
|
||||||
|
clouds = sqrt(clouds);
|
||||||
|
|
||||||
|
return clouds;
|
||||||
|
}
|
||||||
@@ -0,0 +1,227 @@
|
|||||||
|
vec4 DistortShadow(vec4 shadowpos, float distortFactor) {
|
||||||
|
shadowpos.xy *= 1.0 / distortFactor;
|
||||||
|
shadowpos.z = shadowpos.z * 0.2;
|
||||||
|
shadowpos = shadowpos * 0.5 + 0.5;
|
||||||
|
|
||||||
|
return shadowpos;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GetShadowSpace(inout vec3 worldposition, inout vec4 vlposition, float shadowdepth, vec2 texCoord) {
|
||||||
|
vec4 viewPos = gbufferProjectionInverse * (vec4(texCoord, shadowdepth, 1.0) * 2.0 - 1.0);
|
||||||
|
viewPos /= viewPos.w;
|
||||||
|
|
||||||
|
vec4 wpos = gbufferModelViewInverse * viewPos;
|
||||||
|
worldposition = wpos.xyz / wpos.w;
|
||||||
|
wpos = shadowModelView * wpos;
|
||||||
|
wpos = shadowProjection * wpos;
|
||||||
|
wpos /= wpos.w;
|
||||||
|
|
||||||
|
float distb = sqrt(wpos.x * wpos.x + wpos.y * wpos.y);
|
||||||
|
float distortFactor = 1.0 - shadowMapBias + distb * shadowMapBias;
|
||||||
|
wpos = DistortShadow(wpos,distortFactor);
|
||||||
|
|
||||||
|
#if defined WATER_CAUSTICS && defined OVERWORLD && defined SMOKEY_WATER_LIGHTSHAFTS
|
||||||
|
if (isEyeInWater == 1.0) {
|
||||||
|
vec3 worldPos = ViewToWorld(viewPos.xyz);
|
||||||
|
vec3 causticpos = worldPos.xyz + cameraPosition.xyz;
|
||||||
|
float caustic = getCausticWaves(causticpos.xyz * 0.25);
|
||||||
|
wpos.xy *= 1.0 + caustic * 0.0125;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vlposition = wpos;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Volumetric light from Robobo1221 (highly modified)
|
||||||
|
vec3 GetVolumetricRays(float depth0, float depth1, vec3 vlAlbedo, float dither, float cosS) {
|
||||||
|
vec3 vl = vec3(0.0);
|
||||||
|
|
||||||
|
#if AA > 1
|
||||||
|
float ditherAnimate = 1.61803398875 * mod(float(frameCounter), 3600.0);
|
||||||
|
dither = fract(dither + ditherAnimate);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef OVERWORLD
|
||||||
|
float visibility = 0.055;
|
||||||
|
if (isEyeInWater == 1) visibility = 0.19;
|
||||||
|
|
||||||
|
float endurance = 1.20;
|
||||||
|
|
||||||
|
#if LIGHT_SHAFT_MODE == 2
|
||||||
|
if (isEyeInWater == 0) endurance *= min(2.0 + rainStrengthS*rainStrengthS - sunVisibility * sunVisibility, 2.0);
|
||||||
|
else visibility *= 1.0 + 2.0 * pow(max(cosS, 0.0), 128.0) * float(sunVisibility > 0.5) * (1.0 - rainStrengthS);
|
||||||
|
|
||||||
|
if (endurance >= 1.0) visibility *= max((cosS + endurance) / (endurance + 1.0), 0.0);
|
||||||
|
else visibility *= pow(max((cosS + 1.0) / 2.0, 0.0), (11.0 - endurance*10.0));
|
||||||
|
#else
|
||||||
|
if (isEyeInWater == 0) endurance *= min(1.0 + rainStrengthS*rainStrengthS, 2.0);
|
||||||
|
else visibility *= 1.0 + 2.0 * pow(max(cosS, 0.0), 128.0) * float(sunVisibility > 0.5) * (1.0 - rainStrengthS);
|
||||||
|
|
||||||
|
if (endurance >= 1.0) cosS = max((cosS + endurance) / (endurance + 1.0), 0.0);
|
||||||
|
else cosS = pow(max((cosS + 1.0) / 2.0, 0.0), (11.0 - endurance*10.0));
|
||||||
|
#endif
|
||||||
|
#ifdef CAVE_SKY_FIX
|
||||||
|
visibility *= 1.0 - isEyeInCave;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef END
|
||||||
|
float visibility = 0.14285;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (visibility > 0.0) {
|
||||||
|
#ifdef END
|
||||||
|
float maxDist = 192.0 * (1.5 - isEyeInWater);
|
||||||
|
#else
|
||||||
|
float maxDist = 288.0;
|
||||||
|
if (isEyeInWater == 1) maxDist = min(288.0, shadowDistance * 0.75);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec3 worldposition = vec3(0.0);
|
||||||
|
vec4 vlposition = vec4(0.0);
|
||||||
|
|
||||||
|
vec3 watercol = underwaterColor.rgb / UNDERWATER_I;
|
||||||
|
watercol = pow(watercol, vec3(2.3)) * 55.0;
|
||||||
|
|
||||||
|
#ifdef END
|
||||||
|
float minDistFactor = 5.0;
|
||||||
|
#else
|
||||||
|
float minDistFactor = 11.0;
|
||||||
|
|
||||||
|
minDistFactor *= clamp(far, 128.0, 512.0) / 192.0;
|
||||||
|
|
||||||
|
float fovFactor = gbufferProjection[1][1] / 1.37;
|
||||||
|
float x = abs(texCoord.x - 0.5);
|
||||||
|
x = 1.0 - x*x;
|
||||||
|
x = pow(x, max(3.0 - fovFactor, 0.0));
|
||||||
|
minDistFactor *= x;
|
||||||
|
maxDist *= x;
|
||||||
|
|
||||||
|
#if LIGHT_SHAFT_MODE == 2
|
||||||
|
#else
|
||||||
|
float lightBrightnessM = smoothstep(0.0, 1.0, 1.0 - pow2(1.0 - max(timeBrightness, moonBrightness)));
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef END
|
||||||
|
int sampleCount = 9;
|
||||||
|
#else
|
||||||
|
float addition = 0.5;
|
||||||
|
|
||||||
|
#if LIGHT_SHAFT_MODE == 2
|
||||||
|
int sampleCount = 9;
|
||||||
|
if (isEyeInWater == 0) {
|
||||||
|
sampleCount = 7;
|
||||||
|
minDistFactor *= 0.5;
|
||||||
|
}
|
||||||
|
float sampleIntensity = 2.5;
|
||||||
|
#else
|
||||||
|
int sampleCount = 9;
|
||||||
|
float sampleIntensity = 1.95;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if LIGHT_SHAFT_QUALITY == 2
|
||||||
|
if (isEyeInWater == 0) {
|
||||||
|
float qualityFactor = 1.42857;
|
||||||
|
#if LIGHT_SHAFT_MODE == 2
|
||||||
|
sampleCount = 10;
|
||||||
|
#else
|
||||||
|
sampleCount = 13;
|
||||||
|
#endif
|
||||||
|
sampleIntensity /= qualityFactor;
|
||||||
|
minDistFactor /= 1.7; // pow(qualityFactor, 1.5)
|
||||||
|
addition *= qualityFactor;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if LIGHT_SHAFT_QUALITY == 3
|
||||||
|
if (isEyeInWater == 0) {
|
||||||
|
int qualityFactor = 4;
|
||||||
|
sampleCount *= qualityFactor;
|
||||||
|
sampleIntensity /= qualityFactor;
|
||||||
|
minDistFactor /= 8; // pow(qualityFactor, 1.5)
|
||||||
|
addition *= qualityFactor;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
for(int i = 0; i < sampleCount; i++) {
|
||||||
|
#ifdef END
|
||||||
|
float minDist = exp2(i + dither) - 0.9;
|
||||||
|
#else
|
||||||
|
float minDist = 0.0;
|
||||||
|
if (isEyeInWater == 0) {
|
||||||
|
#if LIGHT_SHAFT_MODE == 2
|
||||||
|
minDist = pow(i + dither + addition, 1.5) * minDistFactor;
|
||||||
|
#else
|
||||||
|
minDist = pow(i + dither + addition, 1.5) * minDistFactor * (0.3 - 0.1 * lightBrightnessM);
|
||||||
|
#endif
|
||||||
|
} else minDist = pow2(i + dither + 0.5) * minDistFactor * 0.045;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//if (depth0 >= far*0.9999) break;
|
||||||
|
if (minDist >= maxDist) break;
|
||||||
|
|
||||||
|
if (depth1 < minDist || (depth0 < minDist && vlAlbedo == vec3(0.0))) break;
|
||||||
|
|
||||||
|
GetShadowSpace(worldposition, vlposition, GetDistX(minDist), texCoord.st);
|
||||||
|
//vlposition.z += 0.00002;
|
||||||
|
|
||||||
|
if (length(vlposition.xy * 2.0 - 1.0) < 1.0) {
|
||||||
|
vec3 vlsample = vec3(shadow2D(shadowtex0, vlposition.xyz).z);
|
||||||
|
|
||||||
|
if (depth0 < minDist) vlsample *= vlAlbedo;
|
||||||
|
|
||||||
|
#ifdef END
|
||||||
|
if (isEyeInWater == 1) vlsample *= watercol;
|
||||||
|
vl += vlsample;
|
||||||
|
#else
|
||||||
|
if (isEyeInWater == 0) {
|
||||||
|
#if LIGHT_SHAFT_MODE == 2
|
||||||
|
vl += vlsample * sampleIntensity;
|
||||||
|
#else
|
||||||
|
vlsample *= cosS;
|
||||||
|
|
||||||
|
vl += vlsample * sampleIntensity;
|
||||||
|
#endif
|
||||||
|
} else {
|
||||||
|
vlsample *= watercol;
|
||||||
|
float sampleFactor = sqrt(minDist / maxDist);
|
||||||
|
|
||||||
|
#if LIGHT_SHAFT_MODE == 3
|
||||||
|
vlsample *= cosS;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vl += vlsample * sampleFactor * 0.55;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
} else {
|
||||||
|
vl += 1.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
vl = sqrt(vl * visibility);
|
||||||
|
|
||||||
|
#ifdef END
|
||||||
|
#else
|
||||||
|
#if LIGHT_SHAFT_MODE == 2
|
||||||
|
if (isEyeInWater == 0) {
|
||||||
|
float vlPower = max(1.75 - rainStrengthS + sunVisibility*0.25, 1.0);
|
||||||
|
vl = pow(vl, vec3(vlPower));
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (isEyeInWater == 0) {
|
||||||
|
float vlPower = 2.0 - lightBrightnessM;
|
||||||
|
vl = pow(vl, vec3(vlPower));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vl *= 0.9;
|
||||||
|
vl += vl * dither * 0.19;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GBUFFER_CODING
|
||||||
|
vl = vec3(0.0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return vl;
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
//Water fog is now located in multiple programs in different forms. I will put all of them here when I feel like it.
|
||||||
|
//Update: It's been multiple months and I'm still feeling too lazy to do it.
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
vec3 auroraUColSqrt = vec3(AURORA_UP_R, AURORA_UP_G, AURORA_UP_B) * AURORA_UP_I / 255.0;
|
||||||
|
vec3 auroraUCol = auroraUColSqrt * auroraUColSqrt;
|
||||||
|
|
||||||
|
vec3 auroraDColSqrt = vec3(AURORA_DOWN_R, AURORA_DOWN_G, AURORA_DOWN_B) * AURORA_DOWN_I / 255.0;
|
||||||
|
vec3 auroraDCol = auroraDColSqrt * auroraDColSqrt;
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#ifndef COLORED_LIGHT
|
||||||
|
vec3 blocklightColSqrt = vec3(BLOCKLIGHT_R, BLOCKLIGHT_G, BLOCKLIGHT_B) * BLOCKLIGHT_I / 255.0;
|
||||||
|
vec3 blocklightCol = blocklightColSqrt * blocklightColSqrt;
|
||||||
|
#else
|
||||||
|
vec3 blocklightColSqrt = vec3(0.387, 0.31, 0.247);
|
||||||
|
vec3 blocklightCol = vec3(0.15, 0.096, 0.061);
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
#if defined OVERWORLD || defined SEVEN
|
||||||
|
#include "lightColor.glsl"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NETHER
|
||||||
|
#include "netherColor.glsl"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef END
|
||||||
|
#include "endColor.glsl"
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
vec3 endColSqrt = vec3(END_R, END_G, END_B) * 2.25 / 255.0;
|
||||||
|
vec3 endCol = endColSqrt * endColSqrt;
|
||||||
|
vec3 endOrangeCol = vec3(1.0, 0.25, 0.0);
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
#if defined MOON_PHASE_LIGHTING && !defined UNIFORM_moonPhase
|
||||||
|
#define UNIFORM_moonPhase
|
||||||
|
uniform int moonPhase;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef MOON_PHASE_LIGHTING
|
||||||
|
float nightBrightness = NIGHT_BRIGHTNESS;
|
||||||
|
#else
|
||||||
|
float nightBrightness = moonPhase == 0 ? NIGHT_BRIGHTNESS * NIGHT_LIGHTING_FULL_MOON :
|
||||||
|
moonPhase != 4 ? NIGHT_BRIGHTNESS * NIGHT_LIGHTING_PARTIAL_MOON :
|
||||||
|
NIGHT_BRIGHTNESS * NIGHT_LIGHTING_NEW_MOON;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec3 lightMorning = vec3(LIGHT_MR, LIGHT_MG, LIGHT_MB) * LIGHT_MI / 255.0;
|
||||||
|
vec3 lightDay = vec3(LIGHT_DR, LIGHT_DG, LIGHT_DB) * LIGHT_DI / 255.0;
|
||||||
|
vec3 lightEvening = vec3(LIGHT_ER, LIGHT_EG, LIGHT_EB) * LIGHT_EI / 255.0;
|
||||||
|
#ifndef ONESEVEN
|
||||||
|
vec3 lightNight = vec3(LIGHT_NR, LIGHT_NG, LIGHT_NB) * LIGHT_NI * (vsBrightness*0.125 + 0.80) * 0.4 / 255.0 * nightBrightness;
|
||||||
|
#else
|
||||||
|
vec3 lightNight = (vec3(LIGHT_NR, LIGHT_NG, LIGHT_NB) * LIGHT_NI * 0.195 / 255.0) + vec3(0.37, 0.31, 0.25) * 0.35 ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec3 ambientMorning = vec3(AMBIENT_MR, AMBIENT_MG, AMBIENT_MB) * AMBIENT_MI * 1.1 / 255.0;
|
||||||
|
vec3 ambientDay = vec3(AMBIENT_DR, AMBIENT_DG, AMBIENT_DB) * AMBIENT_DI * 1.1 / 255.0;
|
||||||
|
vec3 ambientEvening = vec3(AMBIENT_ER, AMBIENT_EG, AMBIENT_EB) * AMBIENT_EI * 1.1 / 255.0;
|
||||||
|
vec3 ambientNight = vec3(AMBIENT_NR, AMBIENT_NG, AMBIENT_NB) * AMBIENT_NI * (vsBrightness*0.20 + 0.70) * 0.495 / 255.0 * nightBrightness;
|
||||||
|
|
||||||
|
vec3 weatherCol = vec3(WEATHER_RR, WEATHER_RG, WEATHER_RB) * WEATHER_RI / 255.0;
|
||||||
|
vec3 weatherIntensity = vec3(WEATHER_RI);
|
||||||
|
|
||||||
|
float mefade = 1.0 - clamp(abs(timeAngle - 0.5) * 8.0 - 1.5, 0.0, 1.0);
|
||||||
|
float dfade = 1.0 - timeBrightness;
|
||||||
|
float dfadeM = dfade * dfade;
|
||||||
|
float dfadeM2 = 1.0 - dfade * dfade;
|
||||||
|
|
||||||
|
vec3 meL = mix(lightMorning, lightEvening, mefade);
|
||||||
|
vec3 dayAllL = mix(meL, lightDay, dfadeM2);
|
||||||
|
vec3 cL = mix(lightNight, dayAllL, sunVisibility);
|
||||||
|
vec3 cL2 = mix(cL, dot(cL, vec3(0.299, 0.587, 0.114)) * weatherCol * (vsBrightness*0.1 + 0.9), rainStrengthS*0.6);
|
||||||
|
vec3 lightCol = cL2 * cL2;
|
||||||
|
|
||||||
|
vec3 meA = mix(ambientMorning, ambientEvening, mefade);
|
||||||
|
vec3 dayAllA = mix(meA, ambientDay, dfadeM2);
|
||||||
|
vec3 cA = mix(ambientNight, dayAllA, sunVisibility);
|
||||||
|
vec3 cA2 = mix(cA, dot(cA, vec3(0.299, 0.587, 0.114)) * weatherCol * (vsBrightness*0.1 + 0.9), rainStrengthS*0.6);
|
||||||
|
vec3 ambientCol = cA2 * cA2;
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#if MC_VERSION >= 11600
|
||||||
|
vec3 netherCol = max(fogColor * (1.0 - length(fogColor / 3.0)) * 0.25 * NETHER_I, vec3(0.001));
|
||||||
|
#else
|
||||||
|
vec3 netherColSqrt = vec3(NETHER_R, NETHER_G, NETHER_B) * 0.25 * NETHER_I / 255.0;
|
||||||
|
vec3 netherCol = netherColSqrt * netherColSqrt;
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
vec3 selectionColSqrt = vec3(SELECTION_R, SELECTION_G, SELECTION_B) * SELECTION_I / 255.0;
|
||||||
|
vec3 selectionCol = selectionColSqrt * selectionColSqrt;
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
vec3 sky_ColorSqrt = vec3(136.0, 172.0, 236.0) * 1.10 / 255.0;
|
||||||
|
vec3 skyColCustom = sky_ColorSqrt * sky_ColorSqrt;
|
||||||
|
|
||||||
|
vec3 skyMult = vec3(SKY_MULT_R, SKY_MULT_G, SKY_MULT_B) * SKY_MULT_I / 255.0;
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#if MC_VERSION > 10711
|
||||||
|
vec4 underwaterColor = vec4(pow(fogColor, vec3(UNDERWATER_R, UNDERWATER_G, UNDERWATER_B)) * UNDERWATER_I * 0.2, 1.0);
|
||||||
|
#else
|
||||||
|
vec4 underwaterColor = vec4(pow(vec3(0.2, 0.3, 1.0), vec3(UNDERWATER_R, UNDERWATER_G, UNDERWATER_B)) * UNDERWATER_I * 0.2, 1.0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec4 waterColorSqrt = vec4(WATER_R, WATER_G, WATER_B, 255.0) * WATER_I / 255.0;
|
||||||
|
vec4 waterColor = waterColorSqrt * waterColorSqrt;
|
||||||
|
|
||||||
|
const float waterFog = WATER_FOG;
|
||||||
|
|
||||||
|
const float waterAlpha = WATER_OPACITY;
|
||||||
@@ -0,0 +1,789 @@
|
|||||||
|
/*
|
||||||
|
Complementary Shaders by EminGT, based on BSL Shaders by Capt Tatsu
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------
|
||||||
|
___ __ __ ____ ___ ____ _____ _ _ _ _____
|
||||||
|
|_ _| \/ | _ \ / _ \| _ \_ _|/ \ | \ | |_ _|
|
||||||
|
| || |\/| | |_) | | | | |_) || | / _ \ | \| | | |
|
||||||
|
| || | | | __/| |_| | _ < | |/ ___ \| |\ | | |
|
||||||
|
|___|_| |_|_| \___/|_| \_\|_/_/ \_\_| \_| |_|
|
||||||
|
.
|
||||||
|
-> -> -> EDITING THIS FILE HAS A HIGH CHANCE TO BREAK COMPLEMENTARY
|
||||||
|
-> -> -> DO NOT CHANGE ANYTHING UNLESS YOU KNOW WHAT YOU ARE DOING
|
||||||
|
-> -> -> DO NOT EXPECT SUPPORT AFTER MODIFYING SHADER FILES
|
||||||
|
--------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
//Shader Options//
|
||||||
|
//#define COMPATIBILITY_MODE
|
||||||
|
#define RP_SUPPORT 1 //[1 2 3 4]
|
||||||
|
#define SECRET 0 //[0]
|
||||||
|
|
||||||
|
#define TEST 0 //[0 1 2]
|
||||||
|
#define GLOWING_ENTITY_FIX
|
||||||
|
#define END_PORTAL_REWORK
|
||||||
|
#define LIGHTNING_BOLTS_FIX
|
||||||
|
//#define NIGHT_TWILIGHT_FOREST
|
||||||
|
#define LIGHT_LEAK_FIX
|
||||||
|
#define ENTITY_NORMAL_FIX
|
||||||
|
#define THE_FORBIDDEN_OPTION 0 //[0 1 2 3]
|
||||||
|
#define WRONG_MIPMAP_FIX
|
||||||
|
#define FLICKERING_FIX
|
||||||
|
#define SKY_REF_FIX_1 2 //[1 2 3]
|
||||||
|
#define OVERLAY_FIX
|
||||||
|
#define CAVE_SKY_FIX
|
||||||
|
//#define SMOKEY_WATER_LIGHTSHAFTS
|
||||||
|
//#define MIN_LIGHT_EVERYWHERE
|
||||||
|
//#define METALLIC_WORLD
|
||||||
|
//#define ANAMORPHIC_BLOOM
|
||||||
|
//#define EXTRA_PARTICLE_EMISSION
|
||||||
|
//#define WAVING_EVERYTHING
|
||||||
|
//#define GBUFFER_CODING
|
||||||
|
//#define SHOW_RAY_TRACING
|
||||||
|
//#define RANDOM_BLOCKLIGHT
|
||||||
|
//#define OVERDRAW
|
||||||
|
#define RAIN_REF_BIOME_CHECK
|
||||||
|
//#define RAIN_REF_FORCED
|
||||||
|
|
||||||
|
#define WAVING_SPEED 1.00 //[0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00]
|
||||||
|
#define WAVING_INTENSITY 1.00 //[0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.25 7.50 8.00 8.50 9.00 9.50 10.0 11.0 12.0 13.0 14.0 15.0 17.5 20.0 25.0 30.0 35.0 40.0 45.0 50.0 55.0 60.0 65.0 70.0 75.0 80.0 90.0]
|
||||||
|
#define RAIN_WAVING_INTENSITY 1.00 //[0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.25 7.50 8.00 8.50 9.00 9.50 10.0 11.0 12.0 13.0 14.0 15.0 17.5 20.0 25.0 30.0 35.0 40.0 45.0 50.0 55.0 60.0 65.0 70.0 75.0 80.0 90.0]
|
||||||
|
//#define DO_WAVING_UNDERGROUND
|
||||||
|
//#define DO_WAVING_ON_COMPATIBILITY
|
||||||
|
#define WAVING_FOLIAGE
|
||||||
|
//#define WAVING_LEAVES
|
||||||
|
#define WAVING_CROPS
|
||||||
|
//#define WAVING_VINES
|
||||||
|
//#define WAVING_LILY_PADS
|
||||||
|
|
||||||
|
#define NEBULA_COMPRESSION 0.00 //[-1.00 -0.95 -0.90 -0.85 -0.80 -0.75 -0.70 -0.65 -0.60 -0.55 -0.50 -0.45 -0.40 -0.35 -0.30 -0.25 -0.20 -0.15 -0.10 -0.05 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00]
|
||||||
|
#define NEBULA_SMOOTHING 0.00 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00]
|
||||||
|
#define NEBULA_DISTRIBUTION 2.0 //[0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 5.6 5.8 6.0 6.2 6.4 6.6 6.8 7.0 7.2 7.4 7.6 7.8 8.0 8.2 8.4 8.6 8.8 9.0 9.2 9.4 9.6 9.8 10.0 10.2 10.4 10.6 10.8 11.0 11.2 11.4 11.6 11.8 12.0 12.2 12.4 12.6 12.8 13.0 13.2 13.4 13.6 13.8 14.0 14.2 14.4 14.6 14.8 15.0 15.2 15.4 15.6 15.8 16.0]
|
||||||
|
#define NEBULA_SIZE 0.03 //[0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05 0.055 0.06 0.065 0.07 0.075 0.08 0.09 0.10 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.20 0.21 0.22 0.23 0.24 0.25]
|
||||||
|
#define NEBULA_PURPLE_BRIGHTNESS 1.00 //[0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00 7.50 10.00 12.50 15.00 20.00]
|
||||||
|
#define NEBULA_ORANGE_BRIGHTNESS 1.00 //[0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00 7.50 10.00 12.50 15.00 20.00]
|
||||||
|
#define NEBULA_STAR_BRIGHTNESS 1.00 //[0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00 7.50 10.00]
|
||||||
|
#define NEBULA_SPEED 1.00 //[0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00]
|
||||||
|
|
||||||
|
//#define WATERMARK
|
||||||
|
#define WATERMARK_DURATION 1 //[1 999]
|
||||||
|
//#define GRAY_START
|
||||||
|
//#define BLURRY_START
|
||||||
|
//#define PARTICLE_VISIBILITY
|
||||||
|
//#define HAND_BLOOM_REDUCTION
|
||||||
|
//#define LAVA_VISIBILITY
|
||||||
|
#define SHOW_LIGHT_LEVELS 0 //[0 1 3 2]
|
||||||
|
#define ENTITY_EFFECT
|
||||||
|
#define HAND_SWAY 0.0 //[0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0]
|
||||||
|
//#define SNOW_MODE
|
||||||
|
#define NETHER_REFRACT 1 //[0 1 2 3]
|
||||||
|
#define NIGHT_VISION 1 //[1 2]
|
||||||
|
//#define VANILLA_UNDERLAVA_COLOR
|
||||||
|
#define DYNAMIC_SHADER_LIGHT
|
||||||
|
#define DYNAMIC_LIGHT_DISTANCE 14.0 //[4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 22.0 24.0 26.0 28.0 30.0 32.0 34.0 36.0 38.0 40.0 44.0 48.0 52.0 56.0 60.0 64.0]
|
||||||
|
#define GLINT_BRIGHTNESS 1.0 //[0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 5.6 5.8 6.0 6.2 6.4 6.6 6.8 7.0 7.2 7.4 7.6 7.8 8.0 8.2 8.4 8.6 8.8 9.0 9.2 9.4 9.6 9.8 10.0 10.2 10.4 10.6 10.8 11.0 11.2 11.4 11.6 11.8 12.0 12.2 12.4 12.6 12.8 13.0 13.2 13.4 13.6 13.8 14.0 14.2 14.4 14.6 14.8 15.0 15.2 15.4 15.6 15.8 16.0 18.0 20.0 22.0 24.0 26.0 28.0 30.0 32.0]
|
||||||
|
#define AO
|
||||||
|
#define AO_STRENGTH_NEW 2.2 //[0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.3 3.6 3.9 4.4 5.0]
|
||||||
|
#define AO_QUALITY 1 //[1 2 3]
|
||||||
|
#define LIGHT_SHAFTS
|
||||||
|
#define LIGHT_SHAFT_QUALITY 1 //[1 2 3]
|
||||||
|
#define LIGHT_SHAFT_STRENGTH 0.50 //[0.01 0.02 0.03 0.04 0.05 0.07 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.60 0.75 1.00 1.25 1.50 1.75 2.00 2.50 3.00 1000.0]
|
||||||
|
#define LIGHT_SHAFT_MODE 2 //[2 3]
|
||||||
|
#define LIGHT_SHAFT_NOON_MULTIPLIER 0.50 //[0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00 7.50 10.00 12.50 15.00 20.00 25.00 50.00]
|
||||||
|
#define LIGHT_SHAFT_NIGHT_MULTIPLIER 2.00 //[0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00 7.50 10.00 12.50 15.00 20.00 25.00 50.00]
|
||||||
|
#define LIGHT_SHAFT_DAY_RAIN_MULTIPLIER 1.50 //[0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00 7.50 10.00 12.50 15.00 20.00 25.00 50.00]
|
||||||
|
#define LIGHT_SHAFT_NIGHT_RAIN_MULTIPLIER 1.50 //[0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00 7.50 10.00 12.50 15.00 20.00 25.00 50.00]
|
||||||
|
#define LIGHT_SHAFT_UNDERWATER_MULTIPLIER 1.00 //[0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00 7.50 10.00 12.50 15.00 20.00 25.00 50.00]
|
||||||
|
#define LIGHT_SHAFT_THE_END_MULTIPLIER 0.25 //[0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00 7.50 10.00 12.50 15.00 20.00 25.00 50.00]
|
||||||
|
#define REFLECTION
|
||||||
|
#define REFLECTION_TRANSLUCENT
|
||||||
|
#define WATER_TRANSLUCENT_SKY_REF
|
||||||
|
#define WATER_CAUSTICS
|
||||||
|
//#define PROJECTED_CAUSTICS
|
||||||
|
//#define WATER_ABSORPTION
|
||||||
|
//#define WATER_REFRACT
|
||||||
|
#define REFRACT_STRENGTH 1.00 //[0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00]
|
||||||
|
//#define BLACK_OUTLINE
|
||||||
|
//#define PROMO_OUTLINE
|
||||||
|
#define PROMO_OUTLINE_MODE 3 //[1 2 3]
|
||||||
|
#define PROMO_OUTLINE_STRENGTH 4.00 //[1.00 1.50 2.00 2.50 3.00 3.50 4.00 4.50 5.00 5.50 6.00 6.50 7.00 7.50 8.00]
|
||||||
|
#define PROMO_OUTLINE_THICKNESS 1 //[1 2 3 4]
|
||||||
|
//#define OUTLINE_ON_EVERYTHING
|
||||||
|
|
||||||
|
#define REFLECTION_SPECULAR
|
||||||
|
#define REFLECTION_ROUGH
|
||||||
|
#define SPECULAR_SKY_REF
|
||||||
|
//#define DOUBLE_QUALITY_ROUGH_REF
|
||||||
|
//#define REFLECTION_RAIN
|
||||||
|
#define REFLECTION_RAIN_COVERAGE 50 //[05 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100]
|
||||||
|
#define EMISSIVE_MULTIPLIER 1.00 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00 6.00 7.00 8.00 9.00 10.00 12.50 15.00 17.50 20.00 30.00 40.00 50.00 100.00]
|
||||||
|
#define LAVA_INTENSITY 1.00 //[0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00]
|
||||||
|
#define FIRE_INTENSITY 1.00 //[0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00]
|
||||||
|
#define NORMAL_MAPPING
|
||||||
|
#define PARALLAX
|
||||||
|
#define PARALLAX_DEPTH 0.60 //[0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00]
|
||||||
|
#define SELF_SHADOW
|
||||||
|
#define SELF_SHADOW_ANGLE 2.0 //[0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0]
|
||||||
|
#define PARALLAX_QUALITY 128 //[16 32 64 128 256 512]
|
||||||
|
#define PARALLAX_DISTANCE 16 //[0 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120 128]
|
||||||
|
#define DIRECTIONAL_LIGHTMAP
|
||||||
|
#define DIRECTIONAL_LIGHTMAP_STRENGTH 3.0 //[7.0 6.5 6.0 5.5 5.0 4.5 4.0 3.5 3.0 2.5 2.0 1.5 1.0]
|
||||||
|
#define NORMAL_MULTIPLIER 1.00 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00]
|
||||||
|
|
||||||
|
//#define GENERATED_NORMALS
|
||||||
|
//#define SAFE_GENERATED_NORMALS
|
||||||
|
//#define NOISY_TEXTURES
|
||||||
|
#define EMISSIVE_ORES
|
||||||
|
#define EMISSIVE_IRON_ORE
|
||||||
|
#define EMISSIVE_COPPER_ORE
|
||||||
|
#define EMISSIVE_GOLD_ORE
|
||||||
|
#define EMISSIVE_REDSTONE_ORE
|
||||||
|
#define EMISSIVE_EMERALD_ORE
|
||||||
|
#define EMISSIVE_LAPIS_ORE
|
||||||
|
#define EMISSIVE_DIAMOND_ORE
|
||||||
|
#define ORE_EMISSION 1.00 //[0.01 0.02 0.03 0.05 0.07 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00 6.00 7.00 8.00]
|
||||||
|
//#define GLOWING_DEBRIS
|
||||||
|
//#define EMISSIVE_NETHER_ORES
|
||||||
|
#define EMISSIVE_NETHER_STEMS
|
||||||
|
#define EMISSIVE_LICHEN 1 //[0 1 2]
|
||||||
|
#define EMISSIVE_AMETHYST_BUDS
|
||||||
|
#define FANCY_NETHER_PORTAL 1 //[0 1 2]
|
||||||
|
//#define GREEN_SCREEN
|
||||||
|
//#define BLUE_SCREEN
|
||||||
|
//#define GLOWING_REDSTONE_BLOCK
|
||||||
|
//#define GLOWING_LAPIS_BLOCK
|
||||||
|
//#define ALTERNATIVE_COMMAND_BLOCK
|
||||||
|
|
||||||
|
#define DOF 2 //[1 2]
|
||||||
|
//#define DOF_IS_ON
|
||||||
|
#define RAIN_BLUR_MULT 3.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.25 7.50 8.00 8.50 9.00 9.50 10.0 11.0 12.0 13.0 14.0 15.0 17.5 20.0 25.0 30.0 35.0 40.0 45.0 50.0 55.0 60.0 65.0 70.0 75.0 80.0 90.0]
|
||||||
|
#define UNDERWATER_BLUR_MULT 4.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.25 7.50 8.00 8.50 9.00 9.50 10.0 11.0 12.0 13.0 14.0 15.0 17.5 20.0 25.0 30.0 35.0 40.0 45.0 50.0 55.0 60.0 65.0 70.0 75.0 80.0 90.0]
|
||||||
|
#define NETHER_BLUR
|
||||||
|
//#define ANAMORPHIC_BLUR
|
||||||
|
//#define FOV_SCALED_BLUR
|
||||||
|
//#define CHROMATIC_BLUR
|
||||||
|
#define DOF_STRENGTH 32.0 //[1.0 2.0 3.0 4.0 6.0 8.0 12.0 16.0 24.0 32.0 48.0 64.0 96.0 128.0 192.0 256.0 384.0 512.0 768.0 1024.0 1536.0 2048.0 3072.0 4096.0]
|
||||||
|
#define DOF_FOCUS 0 //[0 1 2 3 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 65 67 69 72 74 76 79 81 83 86 88 91 94 96 99 102 104 107 110 113 115 118 121 124 127 130 133 136 140 143 146 149 153 156 160 163 167 170 174 178 182 185 189 193 197 201 206 210 214 219 223 227 232 237 242 246 251 256 261 267 272 277 283 288 294 300 306 312 318 324 330 337 344 350 357 364 371 379 386 394 402 410 418 427 435 444 453 462 472 481 491 501 512]
|
||||||
|
#define NETHER_BLUR_STRENGTH 64.0 //[1.0 2.0 3.0 4.0 6.0 8.0 12.0 16.0 24.0 32.0 48.0 64.0 96.0 128.0 192.0 256.0 384.0 512.0 768.0 1024.0 1536.0 2048.0 3072.0 4096.0]
|
||||||
|
//#define MOTION_BLUR
|
||||||
|
#define MOTION_BLUR_STRENGTH 1.50 //[0.05 0.07 0.10 0.15 0.20 0.25 0.35 0.50 0.75 1.00 1.25 1.50 1.75 2.00 3.00 5.00 10.00]
|
||||||
|
#define BLOOM
|
||||||
|
#define BLOOM_STRENGTH 0.40 //[0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.75 1.00 100]
|
||||||
|
#define UNDERWATER_BLOOM_STRENGTH 0.40 //[0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.75 1.00]
|
||||||
|
#define NETHER_BLOOM_STRENGTH 0.40 //[0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.75 1.00]
|
||||||
|
//#define LENS_FLARE
|
||||||
|
#define LENS_FLARE_STRENGTH 1.00 //[0.10 0.15 0.20 0.25 0.30 0.40 0.50 0.75 1.00 1.25 1.50 1.75 2.00]
|
||||||
|
#define AA 3 //[0 1 2 3 4]
|
||||||
|
#define SHARPEN 0 //[0 1 2 3 4 5 6 7 8 9 10]
|
||||||
|
#define CHROMATIC_ABERRATION 0 //[0 1 2 3 4 5 6 7 8 9 10]
|
||||||
|
#define AUTO_EXPOSURE 0 //[0 1 2]
|
||||||
|
#define VIGNETTE 1 //[0 1 2]
|
||||||
|
#define VIGNETTE_STRENGTH 0.50 //[0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.25 2.50 2.75 3.00 4.00 5.00]
|
||||||
|
#define SUN_GLARE
|
||||||
|
#define SUN_GLARE_STRENGTH 1.0 //[0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.2 1.4 1.6 1.8 2.0 2.5 3.0 4.0 5.0]
|
||||||
|
|
||||||
|
//#define COLOR_GRADING
|
||||||
|
#define TONEMAP_EXPOSURE 5.6 //[1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 5.6 5.8 6.0 6.2 6.4 6.6 6.8 7.0 7.2 7.4 7.6 7.8 8.0 8.2 8.4 8.6 8.8 9.0 9.2 9.4 9.6 9.8 10.0 10.2 10.4 10.6 10.8 11.0 11.2 11.4 11.6 11.8 12.0 12.2 12.4 12.6 12.8 13.0 13.2 13.4 13.6 13.8 14.0 14.2 14.4 14.6 14.8 15.0 15.2 15.4 15.6 15.8 16.0]
|
||||||
|
#define TONEMAP_WHITE_CURVE 2.8 //[1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.5 4.0 4.5 5.0 6.0 7.0 8.0 9.0]
|
||||||
|
#define TONEMAP_LOWER_CURVE 1.20 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00]
|
||||||
|
#define TONEMAP_UPPER_CURVE 1.20 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00]
|
||||||
|
#define SATURATION 1.00 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00]
|
||||||
|
#define VIBRANCE 1.15 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00]
|
||||||
|
|
||||||
|
#define CG_RR 255 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define CG_RG 0 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define CG_RB 0 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define CG_RI 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
#define CG_RM 0 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define CG_RC 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define CG_GR 0 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define CG_GG 255 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define CG_GB 0 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define CG_GI 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
#define CG_GM 0 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define CG_GC 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define CG_BR 0 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define CG_BG 0 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define CG_BB 255 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define CG_BI 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
#define CG_BM 0 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define CG_BC 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define CG_TR 255 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define CG_TG 255 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define CG_TB 255 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define CG_TI 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
#define CG_TM 0.0 //[0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
|
||||||
|
|
||||||
|
const float sunPathRotation = -40.0; //[-60.0 -55.0 -50.0 -45.0 -40.0 -35.0 -30.0 -25.0 -20.0 -15.0 -10.0 -5.0 0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 55.0 60.0]
|
||||||
|
const int shadowMapResolution = 2048; //[256 1024 2048 3072 4096 8192]
|
||||||
|
const float shadowDistance = 192.0; //[64.0 80.0 96.0 112.0 128.0 160.0 192.0 224.0 256.0 320.0 384.0 512.0 768.0 1024.0]
|
||||||
|
#define SHADOWS
|
||||||
|
#define SHADOW_FILTER
|
||||||
|
#define SHADOW_SUBSURFACE 2 //[0 2 3]
|
||||||
|
#define SCATTERING_LEAVES 0.50 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00]
|
||||||
|
#define SCATTERING_FOLIAGE 0.80 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00]
|
||||||
|
const float shadowMapBias = 1.0 - 25.6 / shadowDistance;
|
||||||
|
//#define COLORED_SHADOWS
|
||||||
|
//#define CLOUD_SHADOW
|
||||||
|
//#define NO_FOLIAGE_SHADOWS
|
||||||
|
#define PIXEL_SHADOWS 0 //[0 8 16 32 64 128]
|
||||||
|
#define BLOCK_ENTITY_SHADOWS
|
||||||
|
#define ENTITY_SHADOWS
|
||||||
|
#define VAO_STRENGTH 10 //[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 24 26 28 30 35 40 45 50]
|
||||||
|
#define SHADING_STRENGTH 0.85 //[0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00]
|
||||||
|
|
||||||
|
#define LIGHT_MR 236 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define LIGHT_MG 184 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define LIGHT_MB 132 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define LIGHT_MI 1.05 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define AMBIENT_MR 212 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AMBIENT_MG 196 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AMBIENT_MB 228 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AMBIENT_MI 0.30 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define LIGHT_DR 180 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define LIGHT_DG 172 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define LIGHT_DB 164 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define LIGHT_DI 1.40 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define AMBIENT_DR 156 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AMBIENT_DG 188 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AMBIENT_DB 228 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AMBIENT_DI 0.45 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define LIGHT_ER 236 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define LIGHT_EG 180 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define LIGHT_EB 132 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define LIGHT_EI 1.05 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define AMBIENT_ER 212 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AMBIENT_EG 196 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AMBIENT_EB 228 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AMBIENT_EI 0.30 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define LIGHT_NR 156 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define LIGHT_NG 192 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define LIGHT_NB 240 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define LIGHT_NI 0.70 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define AMBIENT_NR 120 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AMBIENT_NG 164 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AMBIENT_NB 228 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AMBIENT_NI 0.45 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define NIGHT_BRIGHTNESS 1.00 //[0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00 7.50 10.00 12.50 15.00 20.00 25.00 50.00]
|
||||||
|
//#define MOON_PHASE_LIGHTING
|
||||||
|
#define NIGHT_LIGHTING_FULL_MOON 1.05 //[0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00 7.50 10.00 12.50 15.00 20.00 25.00 50.00]
|
||||||
|
#define NIGHT_LIGHTING_PARTIAL_MOON 0.90 //[0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00 7.50 10.00 12.50 15.00 20.00 25.00 50.00]
|
||||||
|
#define NIGHT_LIGHTING_NEW_MOON 0.70 //[0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00 7.50 10.00 12.50 15.00 20.00 25.00 50.00]
|
||||||
|
|
||||||
|
#define BLOCKLIGHT_R 224 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define BLOCKLIGHT_G 172 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define BLOCKLIGHT_B 140 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define BLOCKLIGHT_I 0.45 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
|
||||||
|
//#define COLORED_LIGHT_DEFINE
|
||||||
|
|
||||||
|
#define LIGHT_GROUND 1.00 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
#define AMBIENT_GROUND 1.00 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define WATER_R 172 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define WATER_G 212 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define WATER_B 255 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define WATER_I 0.50 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00]
|
||||||
|
#define WATER_OPACITY 0.50 //[0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 0.99]
|
||||||
|
#define WATER_FOG 64.0 //[2.0 3.0 4.0 6.0 8.0 12.0 16.0 24.0 32.0 48.0 64.0 96.0 128.0 160.0 192.0 224.0 256.0 512.0]
|
||||||
|
#define WATER_V 0.0 //[0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
|
||||||
|
#define UNDERWATER_R 0.33 //[0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.20 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 0.30 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.50 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.60 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.70 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.80 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.90 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1.00]
|
||||||
|
#define UNDERWATER_G 0.21 //[0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.20 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 0.30 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.50 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.60 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.70 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.80 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.90 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1.00]
|
||||||
|
#define UNDERWATER_B 0.26 //[0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.20 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 0.30 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.50 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.60 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.70 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.80 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.90 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1.00]
|
||||||
|
#define UNDERWATER_I 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define WEATHER_RR 168 //[4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define WEATHER_RG 196 //[4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define WEATHER_RB 255 //[4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define WEATHER_RI 1.60 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define NETHER_R 128 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define NETHER_G 64 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define NETHER_B 64 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define NETHER_I 1.75 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00 4.25 4.50 4.75 5.00 5.50 6.00 7.00 8.00 9.00 10.00]
|
||||||
|
|
||||||
|
#define END_R 36 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define END_G 28 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define END_B 52 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define END_I 2.25 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00 4.25 4.50 4.75 5.00 5.50 6.00 7.00 8.00 9.00 10.00]
|
||||||
|
|
||||||
|
#define SELECTION_R 164 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define SELECTION_G 128 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define SELECTION_B 255 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define SELECTION_I 1.00 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define SELECTION_MODE 0 //[0 1 2 4 3]
|
||||||
|
|
||||||
|
#define AURORA_UP_R 112 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AURORA_UP_G 80 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AURORA_UP_B 255 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AURORA_UP_I 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define AURORA_DOWN_R 80 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AURORA_DOWN_G 255 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AURORA_DOWN_B 180 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define AURORA_DOWN_I 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define ENDER_NEBULA
|
||||||
|
#define AURORA
|
||||||
|
#define AURORA_BIOME_CHECK
|
||||||
|
#define AURORA_FULL_MOON_CHECK
|
||||||
|
#define AURORA_HEIGHT 0.75 //[0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.12 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.10 2.20 2.30 2.40 2.50 2.60 2.70 2.80 2.90 3.00 3.50 4.00 4.50 5.00]
|
||||||
|
#define RAINBOW
|
||||||
|
#define RAINBOW_BRIGHTNESS 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.50 8.00]
|
||||||
|
#define RAINBOW_DIAMETER 1.00 //[0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.50 8.00]
|
||||||
|
#define RAINBOW_STYLE 1 //[1 2]
|
||||||
|
#define RAINBOW_AFTER_RAIN_CHECK
|
||||||
|
#define ROUND_SUN_MOON
|
||||||
|
//#define VANILLA_SKYBOX
|
||||||
|
#define SUN_MOON_HORIZON
|
||||||
|
#define SKYBOX_BRIGHTNESS 2.00 //[0.01 0.02 0.03 0.05 0.07 0.10 0.15 0.20 0.25 0.35 0.40 0.45 0.50 0.60 0.75 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00]
|
||||||
|
|
||||||
|
#define SKY_DAY 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.50 8.00 8.50 9.00 9.50 10.0 11.0 12.0 13.0 14.0 15.0 16.0 18.0 20.0 22.0 24.0 28.0 30.0 32.0]
|
||||||
|
#define SKY_NOON 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.50 8.00 8.50 9.00 9.50 10.0 11.0 12.0 13.0 14.0 15.0 16.0 18.0 20.0 22.0 24.0 28.0 30.0 32.0]
|
||||||
|
#define SKY_NIGHT 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.50 8.00 8.50 9.00 9.50 10.0 11.0 12.0 13.0 14.0 15.0 16.0 18.0 20.0 22.0 24.0 28.0 30.0 32.0]
|
||||||
|
#define SKY_RAIN_DAY 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.50 8.00 8.50 9.00 9.50 10.0 11.0 12.0 13.0 14.0 15.0 16.0 18.0 20.0 22.0 24.0 28.0 30.0 32.0]
|
||||||
|
#define SKY_RAIN_NIGHT 0.70 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.50 8.00 8.50 9.00 9.50 10.0 11.0 12.0 13.0 14.0 15.0 16.0 18.0 20.0 22.0 24.0 28.0 30.0 32.0]
|
||||||
|
|
||||||
|
#define SKY_MULT_R 255 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define SKY_MULT_G 255 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define SKY_MULT_B 255 //[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 172 176 180 184 188 192 196 200 204 208 212 216 220 224 228 232 236 240 244 248 252 255]
|
||||||
|
#define SKY_MULT_I 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
|
||||||
|
#define CLOUDS
|
||||||
|
#define CLOUD_THICKNESS 4.00 //[0.25 0.50 0.75 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00]
|
||||||
|
#define CLOUD_AMOUNT 10.5 //[14.0 13.5 13.0 12.5 12.0 11.5 11.0 10.5 10.0 9.5 9.0 8.5 8.0 7.5 7.0 6.5 6.0]
|
||||||
|
#define CLOUD_HEIGHT 30.0 //[2.5 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0]
|
||||||
|
#define CLOUD_SPEED 1.00 //[0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.50 3.00 3.50 4.00 5.00]
|
||||||
|
#define CLOUD_OPACITY 0.6 //[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
|
||||||
|
#define CLOUD_BRIGHTNESS 2.00 //[0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00]
|
||||||
|
|
||||||
|
//#define GALAXIES
|
||||||
|
#define GALAXY_BRIGHTNESS 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
#define SHADER_STARS
|
||||||
|
#define STAR_BRIGHTNESS 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
#define STAR_AMOUNT 1 //[1 2]
|
||||||
|
#define SUNSET_STARS
|
||||||
|
|
||||||
|
#define WATER_TYPE 0 //[0 1 2]
|
||||||
|
#define WATER_WAVES
|
||||||
|
//#define WATER_DISPLACEMENT
|
||||||
|
#define WATER_PARALLAX
|
||||||
|
#define WATER_BUMP 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00 5.50 6.00 6.50 7.00 7.50 8.00]
|
||||||
|
#define WATER_NOISE_1 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.25 2.50 2.75 3.00]
|
||||||
|
#define WATER_NOISE_2 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.25 2.50 2.75 3.00]
|
||||||
|
#define WATER_NOISE_3 0.40 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.25 2.50 2.75 3.00]
|
||||||
|
#define WATER_NOISE_4 0.30 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.25 2.50 2.75 3.00]
|
||||||
|
#define SUN_MOON_WATER_REF 1.00 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00 5.50 6.00 6.50 7.00 7.50 8.00 8.50 9.00 9.50 10.0 11.0 12.0 13.0 14.0 15.0 16.0 18.0 20.0 22.0 24.0 26.0 28.0 30.0 32.0]
|
||||||
|
#define MOON_WATER_REF 1.00 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.25 2.50 2.75 3.00]
|
||||||
|
#define WATER_SHARPNESS 0.25 //[0.01 0.02 0.03 0.05 0.07 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50]
|
||||||
|
#define WATER_SIZE 450.0 //[25.0 50.0 100.0 150.0 200.0 250.0 300.0 350.0 400.0 450.0 500.0 550.0 600.0 650.0 700.0 750.0 800.0 850.0 900.0 950.0 1000.0 1100.0 1200.0 1300.0 1400.0 1500.0]
|
||||||
|
#define WATER_SPEED 1.25 //[0.05 0.10 0.15 0.20 0.25 0.35 0.50 0.60 0.75 0.90 1.00 1.10 1.25 1.50 1.75 2.00 2.50 3.00 3.50 4.00 4.25 4.50 4.75 5.00 5.50 6.00 6.50 7.00 7.50 8.00]
|
||||||
|
#define UNDERWATER_DISTORT 1.0 //[0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 100.0 1000.0]
|
||||||
|
|
||||||
|
//#define WHITE_WORLD
|
||||||
|
#define NETHER_FOG
|
||||||
|
//#define NETHER_SMOKE
|
||||||
|
#define FOG1
|
||||||
|
#define FOG1_DISTANCE_M 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
#define FOG1_TYPE 1 //[0 1 2]
|
||||||
|
#define FOG2
|
||||||
|
#define FOG2_ALTITUDE_MODE
|
||||||
|
#define FOG2_BRIGHTNESS 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
#define FOG2_END_BRIGHTNESS 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
#define FOG2_DISTANCE_M 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00]
|
||||||
|
#define FOG2_ALTITUDE 95 //[0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300]
|
||||||
|
#define FOG2_OPACITY 0.30 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00]
|
||||||
|
#define FOG2_END_DISTANCE_M 8.0 //[0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0 11.0 12.0 13.0 14.0 15.0 16.0 18.0 20.0 22.0 24.0 26.0 28.0 30.0 32.0 36.0 40.0 44.0 48.0 52.0 56.0 60.0 64.0]
|
||||||
|
#define FOG2_END_ALTITUDE 80 //[0 5 10 15 20 25 30 35 40 45 50 55 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300]
|
||||||
|
#define FOG2_END_OPACITY 0.65 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00]
|
||||||
|
#define FOG2_RAIN_OPACITY_M 3.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.50 8.00 8.50 9.00 9.50 10.0]
|
||||||
|
#define FOG2_RAIN_BRIGHTNESS_M 1.00 //[0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.50 8.00 8.50 9.00 9.50 10.0]
|
||||||
|
#define FOG2_RAIN_ALTITUDE_M 0.25 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00]
|
||||||
|
#define FOG2_RAIN_DISTANCE_M 1.00 //[-0.95 -0.90 -0.85 -0.80 -0.75 -0.70 -0.65 -0.60 -0.55 -0.50 -0.45 -0.40 -0.35 -0.30 -0.25 -0.20 -0.15 -0.10 -0.05 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85 3.90 3.95 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 6.25 6.50 6.75 7.00 7.50 8.00 8.50 9.00 9.50 10.0]
|
||||||
|
//#define WORLD_CURVATURE
|
||||||
|
#define OVERWORLD_CURVATURE_SIZE 2048 //[-256 -512 -1024 -2048 -4096 -8192 -16384 -32768 999999 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16]
|
||||||
|
#define NETHER_CURVATURE_SIZE 2048 //[-256 -512 -1024 -2048 -4096 -8192 -16384 -32768 999999 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16]
|
||||||
|
#define END_CURVATURE_SIZE 2048 //[-256 -512 -1024 -2048 -4096 -8192 -16384 -32768 999999 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16]
|
||||||
|
#define WORLD_TIME_ANIMATION 1 //[0 1 2]
|
||||||
|
#define ANIMATION_SPEED 1.00 //[0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.50 3.00 3.50 4.00 5.00 6.00 7.00 8.00 16.00 32.00 64.00 128.00]
|
||||||
|
#define MIN_LIGHT 32 //[0 1 2 3 4 6 8 12 16 24 32 48 64 96 128 192 256 384 512 768 1024 1536 2048]
|
||||||
|
//#define NO_PARTICLES
|
||||||
|
//#define BLOCKLIGHT_FLICKER
|
||||||
|
#define BLOCKLIGHT_FLICKER_STRENGTH 0.60 //[0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00 1.50 2.00 3.00 4.00]
|
||||||
|
|
||||||
|
//#define VL_CLOUDS_50325
|
||||||
|
|
||||||
|
//Define Handling//
|
||||||
|
#if (RP_SUPPORT == 1 && !defined COMPATIBILITY_MODE) || RP_SUPPORT > 2
|
||||||
|
#define ADV_MAT
|
||||||
|
#else
|
||||||
|
#undef SNOW_MODE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined COMPATIBILITY_MODE && RP_SUPPORT == 1
|
||||||
|
#define COMPBR
|
||||||
|
#undef PARALLAX
|
||||||
|
#undef SELF_SHADOW
|
||||||
|
#undef DIRECTIONAL_LIGHTMAP
|
||||||
|
#if !defined GENERATED_NORMALS
|
||||||
|
#undef NORMAL_MAPPING
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#undef NOISY_TEXTURES
|
||||||
|
#undef GENERATED_NORMALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NORMAL_MAPPING
|
||||||
|
#undef GENERATED_NORMALS
|
||||||
|
#undef PARALLAX
|
||||||
|
#undef SELF_SHADOW
|
||||||
|
#undef DIRECTIONAL_LIGHTMAP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined ENTITY_NORMAL_FIX && (defined GBUFFERS_ENTITIES || defined GBUFFERS_HAND || defined GBUFFERS_BLOCK)
|
||||||
|
#if MC_VERSION >= 11500 && MC_VERSION < 11600
|
||||||
|
#undef NOISY_TEXTURES
|
||||||
|
#undef GENERATED_NORMALS
|
||||||
|
#undef NORMAL_MAPPING
|
||||||
|
#undef PARALLAX
|
||||||
|
#undef SELF_SHADOW
|
||||||
|
#undef DIRECTIONAL_LIGHTMAP
|
||||||
|
#endif
|
||||||
|
#if MC_VERSION < 11802 || defined GBUFFERS_ENTITIES || defined GBUFFERS_HAND
|
||||||
|
#undef NOISY_TEXTURES
|
||||||
|
#undef GENERATED_NORMALS
|
||||||
|
#ifdef COMPBR
|
||||||
|
#undef NORMAL_MAPPING
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHADOWS
|
||||||
|
#undef LIGHT_SHAFTS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef COMPATIBILITY_MODE
|
||||||
|
#undef FLICKERING_FIX
|
||||||
|
#ifndef DO_WAVING_ON_COMPATIBILITY
|
||||||
|
#undef WAVING_FOLIAGE
|
||||||
|
#undef WAVING_LEAVES
|
||||||
|
#undef WAVING_CROPS
|
||||||
|
#undef WAVING_VINES
|
||||||
|
#undef WAVING_LILY_PADS
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined ADV_MAT && !defined COMPATIBILITY_MODE && defined COLORED_LIGHT_DEFINE
|
||||||
|
#define COLORED_LIGHT
|
||||||
|
#undef RANDOM_BLOCKLIGHT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef VL_CLOUDS
|
||||||
|
#undef CLOUDS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//Dimension Undefine//
|
||||||
|
#ifdef NETHER
|
||||||
|
#undef LIGHT_SHAFTS
|
||||||
|
#undef LENS_FLARE
|
||||||
|
#undef RAINBOW
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef END
|
||||||
|
#undef LENS_FLARE
|
||||||
|
#undef VL_CLOUDS
|
||||||
|
#undef RAINBOW
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SEVEN_2
|
||||||
|
#undef LIGHT_SHAFTS
|
||||||
|
#undef LENS_FLARE
|
||||||
|
#undef CLOUDS
|
||||||
|
#undef RAINBOW
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef TWO
|
||||||
|
#undef LIGHT_SHAFTS
|
||||||
|
#undef LENS_FLARE
|
||||||
|
#undef RAINBOW
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SEVEN
|
||||||
|
#undef LIGHT_SHAFTS
|
||||||
|
#undef LENS_FLARE
|
||||||
|
#undef RAINBOW
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef TWO
|
||||||
|
#undef LIGHT_SHAFTS
|
||||||
|
#undef LENS_FLARE
|
||||||
|
#undef RAINBOW
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ONESEVEN
|
||||||
|
#undef LIGHT_SHAFTS
|
||||||
|
#undef RAINBOW
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef TWENTY
|
||||||
|
#undef LIGHT_SHAFTS
|
||||||
|
#undef LENS_FLARE
|
||||||
|
#undef RAINBOW
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//Shenanigans//
|
||||||
|
#ifdef NETHER_BLUR
|
||||||
|
#endif
|
||||||
|
#ifdef DOF_IS_ON
|
||||||
|
#endif
|
||||||
|
#ifdef ENTITY_NORMAL_FIX
|
||||||
|
#endif
|
||||||
|
#ifdef WATER_DISPLACEMENT
|
||||||
|
#endif
|
||||||
|
#ifdef NO_PARTICLES
|
||||||
|
#endif
|
||||||
|
#ifdef FOG2_ALTITUDE_MODE
|
||||||
|
#endif
|
||||||
|
#ifdef HAND_BLOOM_REDUCTION
|
||||||
|
#endif
|
||||||
|
#ifdef OUTLINE_ON_EVERYTHING
|
||||||
|
#endif
|
||||||
|
#ifdef FOG2
|
||||||
|
#endif
|
||||||
|
#ifdef CLOUD_SHADOW
|
||||||
|
#endif
|
||||||
|
#ifdef LIGHT_SHAFTS
|
||||||
|
#endif
|
||||||
|
#ifdef NETHER_FOG
|
||||||
|
#endif
|
||||||
|
#ifdef REFLECTION_SPECULAR
|
||||||
|
#endif
|
||||||
|
#ifdef VANILLA_SKYBOX
|
||||||
|
#endif
|
||||||
|
#ifdef COLORED_LIGHT_DEFINE
|
||||||
|
#endif
|
||||||
|
#ifdef PROJECTED_CAUSTICS
|
||||||
|
#endif
|
||||||
|
#ifdef COLORED_SHADOWS
|
||||||
|
#endif
|
||||||
|
#ifdef BLOCK_ENTITY_SHADOWS
|
||||||
|
#endif
|
||||||
|
#ifdef ENTITY_SHADOWS
|
||||||
|
#endif
|
||||||
|
#ifdef WATER_REFRACT
|
||||||
|
#endif
|
||||||
|
#ifdef BLOCKLIGHT_FLICKER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//Very Common Variables//
|
||||||
|
uniform int worldTime;
|
||||||
|
#ifndef SHADOWS
|
||||||
|
float timeAngle = worldTime / 24000.0;
|
||||||
|
float shadowFade = 1.0;
|
||||||
|
#else
|
||||||
|
uniform float sunAngle;
|
||||||
|
float tAmin = fract(sunAngle - 0.033333333);
|
||||||
|
float tAlin = tAmin < 0.433333333 ? tAmin * 1.15384615385 : tAmin * 0.882352941176 + 0.117647058824;
|
||||||
|
float hA = tAlin > 0.5 ? 1.0 : 0.0;
|
||||||
|
float tAfrc = fract(tAlin * 2.0);
|
||||||
|
float tAfrs = tAfrc*tAfrc*(3.0-2.0*tAfrc);
|
||||||
|
float tAmix = hA < 0.5 ? 0.3 : -0.1;
|
||||||
|
float timeAngle = (tAfrc * (1.0-tAmix) + tAfrs * tAmix + hA) * 0.5;
|
||||||
|
float shadowFade = clamp(1.0 - (abs(abs(sunAngle - 0.5) - 0.25) - 0.23) * 100.0, 0.0, 1.0);
|
||||||
|
#endif
|
||||||
|
float timeBrightness = max(sin(timeAngle*6.28318530718),0.0);
|
||||||
|
float moonBrightness = max(sin(timeAngle*(-6.28318530718)),0.0);
|
||||||
|
|
||||||
|
vec3 darknessColor = vec3(0.0001, 0.0003, 0.0005);
|
||||||
|
|
||||||
|
//Very Common Functions//
|
||||||
|
int min1(int x) {
|
||||||
|
return min(x, 1);
|
||||||
|
}
|
||||||
|
float min1(float x) {
|
||||||
|
return min(x, 1.0);
|
||||||
|
}
|
||||||
|
int max0(int x) {
|
||||||
|
return max(x, 0);
|
||||||
|
}
|
||||||
|
float max0(float x) {
|
||||||
|
return max(x, 0.0);
|
||||||
|
}
|
||||||
|
int clamp01(int x) {
|
||||||
|
return clamp(x, 0, 1);
|
||||||
|
}
|
||||||
|
float clamp01(float x) {
|
||||||
|
return clamp(x, 0.0, 1.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int pow2(int x) {
|
||||||
|
return x * x;
|
||||||
|
}
|
||||||
|
float pow2(float x) {
|
||||||
|
return x * x;
|
||||||
|
}
|
||||||
|
vec2 pow2(vec2 x) {
|
||||||
|
return x * x;
|
||||||
|
}
|
||||||
|
vec3 pow2(vec3 x) {
|
||||||
|
return x * x;
|
||||||
|
}
|
||||||
|
vec4 pow2(vec4 x) {
|
||||||
|
return x * x;
|
||||||
|
}
|
||||||
|
|
||||||
|
float pow1_5(float x) { // Faster pow(x, 1.5) approximation (that isn't accurate at all) if x is between 0 and 1
|
||||||
|
return x - x * pow2(1.0 - x); // Thanks to SixthSurge
|
||||||
|
}
|
||||||
|
vec2 pow1_5(vec2 x) {
|
||||||
|
return x - x * pow2(1.0 - x);
|
||||||
|
}
|
||||||
|
vec3 pow1_5(vec3 x) {
|
||||||
|
return x - x * pow2(1.0 - x);
|
||||||
|
}
|
||||||
|
vec4 pow1_5(vec4 x) {
|
||||||
|
return x - x * pow2(1.0 - x);
|
||||||
|
}
|
||||||
|
|
||||||
|
float sqrt1(float x) { // Faster sqrt() approximation (that isn't accurate at all) if x is between 0 and 1
|
||||||
|
return x * (2.0 - x); // Thanks to Builderb0y
|
||||||
|
}
|
||||||
|
vec2 sqrt1(vec2 x) {
|
||||||
|
return x * (2.0 - x);
|
||||||
|
}
|
||||||
|
vec3 sqrt1(vec3 x) {
|
||||||
|
return x * (2.0 - x);
|
||||||
|
}
|
||||||
|
vec4 sqrt1(vec4 x) {
|
||||||
|
return x * (2.0 - x);
|
||||||
|
}
|
||||||
|
float sqrt2(float x) {
|
||||||
|
x = 1.0 - x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
return 1.0 - x;
|
||||||
|
}
|
||||||
|
vec2 sqrt2(vec2 x) {
|
||||||
|
x = 1.0 - x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
return 1.0 - x;
|
||||||
|
}
|
||||||
|
vec3 sqrt2(vec3 x) {
|
||||||
|
x = 1.0 - x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
return 1.0 - x;
|
||||||
|
}
|
||||||
|
vec4 sqrt2(vec4 x) {
|
||||||
|
x = 1.0 - x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
return 1.0 - x;
|
||||||
|
}
|
||||||
|
float sqrt3(float x) {
|
||||||
|
x = 1.0 - x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
return 1.0 - x;
|
||||||
|
}
|
||||||
|
vec2 sqrt3(vec2 x) {
|
||||||
|
x = 1.0 - x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
return 1.0 - x;
|
||||||
|
}
|
||||||
|
vec3 sqrt3(vec3 x) {
|
||||||
|
x = 1.0 - x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
return 1.0 - x;
|
||||||
|
}
|
||||||
|
vec4 sqrt3(vec4 x) {
|
||||||
|
x = 1.0 - x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
return 1.0 - x;
|
||||||
|
}
|
||||||
|
float sqrt4(float x) {
|
||||||
|
x = 1.0 - x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
return 1.0 - x;
|
||||||
|
}
|
||||||
|
vec2 sqrt4(vec2 x) {
|
||||||
|
x = 1.0 - x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
return 1.0 - x;
|
||||||
|
}
|
||||||
|
vec3 sqrt4(vec3 x) {
|
||||||
|
x = 1.0 - x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
return 1.0 - x;
|
||||||
|
}
|
||||||
|
vec4 sqrt4(vec4 x) {
|
||||||
|
x = 1.0 - x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
x *= x;
|
||||||
|
return 1.0 - x;
|
||||||
|
}
|
||||||
|
|
||||||
|
float smoothstep1(float x) {
|
||||||
|
return x * x * (3.0 - 2.0 * x);
|
||||||
|
}
|
||||||
|
|
||||||
|
float sqrt1inv(float number) {
|
||||||
|
number = 1.0 - number;
|
||||||
|
number *= number;
|
||||||
|
return number;
|
||||||
|
}
|
||||||
|
|
||||||
|
float dot2(vec2 vector) {
|
||||||
|
return dot(vector, vector);
|
||||||
|
}
|
||||||
|
float dot2(vec3 vector) {
|
||||||
|
return dot(vector, vector);
|
||||||
|
}
|
||||||
|
float dot2(vec4 vector) {
|
||||||
|
return dot(vector, vector);
|
||||||
|
}
|
||||||
|
|
||||||
|
float min2(vec2 vector) {
|
||||||
|
return min(vector.x, vector.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
float max2(vec2 vector) {
|
||||||
|
return max(vector.x, vector.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CheckForColor(vec3 albedo, vec3 check) { // Thanks Builderb0y
|
||||||
|
vec3 dif = albedo - check / 255.0;
|
||||||
|
return dif == clamp(dif, vec3(-0.001), vec3(0.001));
|
||||||
|
}
|
||||||
@@ -0,0 +1,107 @@
|
|||||||
|
/**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**/
|
||||||
|
vec3 glowstoneColor = vec3(0.9, 0.5, 0.2);
|
||||||
|
vec3 sealanternColor = vec3(0.5, 0.57, 0.78);
|
||||||
|
vec3 shroomlightColor = vec3(1.0, 0.3, 0.125);
|
||||||
|
vec3 jackolanternColor = vec3(0.9, 0.5, 0.2);
|
||||||
|
vec3 beaconColor = vec3(0.33, 0.51, 0.6);
|
||||||
|
vec3 endrodColor = vec3(0.53, 0.5, 0.47);
|
||||||
|
vec3 redstonetorchColor = vec3(1.0, 0.0, 0.0);
|
||||||
|
vec3 lanternColor = vec3(0.9, 0.5, 0.2);
|
||||||
|
vec3 soullanternColor = vec3(0.0, 0.7, 1.0);
|
||||||
|
vec3 torchColor = vec3(0.9, 0.5, 0.2);
|
||||||
|
vec3 soultorchColor = vec3(0.0, 0.7, 1.0);
|
||||||
|
vec3 respawnanchorColor = vec3(0.3, 0.0, 1.0);
|
||||||
|
vec3 campfireColor = vec3(0.94, 0.5, 0.2);
|
||||||
|
vec3 soulcampfireColor = vec3(0.0, 0.7, 1.0);
|
||||||
|
vec3 lavabucketColor = vec3(0.94, 0.5, 0.2);
|
||||||
|
/**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**/
|
||||||
|
vec3 heldLightAlbedo1 = vec3(0.0);
|
||||||
|
vec3 heldLightAlbedo2 = vec3(0.0);
|
||||||
|
if (heldItemId < 11012.5) {
|
||||||
|
if (heldItemId < 11005.5) {
|
||||||
|
if (heldItemId == 11001) // Glowstone
|
||||||
|
heldLightAlbedo1 = glowstoneColor;
|
||||||
|
else if (heldItemId == 11002) // Sea Lantern
|
||||||
|
heldLightAlbedo1 = sealanternColor;
|
||||||
|
else if (heldItemId == 11004) // Shroomlight
|
||||||
|
heldLightAlbedo1 = shroomlightColor;
|
||||||
|
} else {
|
||||||
|
if (heldItemId == 11007) // Jack o'Lantern
|
||||||
|
heldLightAlbedo1 = jackolanternColor;
|
||||||
|
else if (heldItemId == 11008) // Beacon
|
||||||
|
heldLightAlbedo1 = beaconColor;
|
||||||
|
else if (heldItemId == 11009) // End Rod
|
||||||
|
heldLightAlbedo1 = endrodColor;
|
||||||
|
else if (heldItemId == 11012) // Redstone Torch
|
||||||
|
heldLightAlbedo1 = redstonetorchColor;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (heldItemId < 11022.5) {
|
||||||
|
if (heldItemId == 11017) // Lantern
|
||||||
|
heldLightAlbedo1 = lanternColor;
|
||||||
|
else if (heldItemId == 11018) // Soul Lantern
|
||||||
|
heldLightAlbedo1 = soullanternColor;
|
||||||
|
else if (heldItemId == 11021) // Torch
|
||||||
|
heldLightAlbedo1 = torchColor;
|
||||||
|
else if (heldItemId == 11022) // Soul Torch
|
||||||
|
heldLightAlbedo1 = soultorchColor;
|
||||||
|
} else {
|
||||||
|
if (heldItemId == 11023) // Crying Obsidian, Respawn Anchor
|
||||||
|
heldLightAlbedo1 = respawnanchorColor;
|
||||||
|
else if (heldItemId == 11024) // Campfire
|
||||||
|
heldLightAlbedo1 = campfireColor;
|
||||||
|
else if (heldItemId == 11025) // Soul Campfire
|
||||||
|
heldLightAlbedo1 = soulcampfireColor;
|
||||||
|
else if (heldItemId == 12001) // Lava Bucket
|
||||||
|
heldLightAlbedo1 = lavabucketColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (heldItemId2 < 11012.5) {
|
||||||
|
if (heldItemId2 < 11005.5) {
|
||||||
|
if (heldItemId2 == 11001) // Glowstone
|
||||||
|
heldLightAlbedo2 = glowstoneColor;
|
||||||
|
else if (heldItemId2 == 11002) // Sea Lantern
|
||||||
|
heldLightAlbedo2 = sealanternColor;
|
||||||
|
else if (heldItemId2 == 11004) // Shroomlight
|
||||||
|
heldLightAlbedo2 = shroomlightColor;
|
||||||
|
} else {
|
||||||
|
if (heldItemId2 == 11007) // Jack o'Lantern
|
||||||
|
heldLightAlbedo2 = jackolanternColor;
|
||||||
|
else if (heldItemId2 == 11008) // Beacon
|
||||||
|
heldLightAlbedo2 = beaconColor;
|
||||||
|
else if (heldItemId2 == 11009) // End Rod
|
||||||
|
heldLightAlbedo2 = endrodColor;
|
||||||
|
else if (heldItemId2 == 11012) // Redstone Torch
|
||||||
|
heldLightAlbedo2 = redstonetorchColor;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (heldItemId2 < 11022.5) {
|
||||||
|
if (heldItemId2 == 11017) // Lantern
|
||||||
|
heldLightAlbedo2 = lanternColor;
|
||||||
|
else if (heldItemId2 == 11018) // Soul Lantern
|
||||||
|
heldLightAlbedo2 = soullanternColor;
|
||||||
|
else if (heldItemId2 == 11021) // Torch
|
||||||
|
heldLightAlbedo2 = torchColor;
|
||||||
|
else if (heldItemId2 == 11022) // Soul Torch
|
||||||
|
heldLightAlbedo2 = soultorchColor;
|
||||||
|
} else {
|
||||||
|
if (heldItemId2 == 11023) // Crying Obsidian, Respawn Anchor
|
||||||
|
heldLightAlbedo2 = respawnanchorColor;
|
||||||
|
else if (heldItemId2 == 11024) // Campfire
|
||||||
|
heldLightAlbedo2 = campfireColor;
|
||||||
|
else if (heldItemId2 == 11025) // Soul Campfire
|
||||||
|
heldLightAlbedo2 = soulcampfireColor;
|
||||||
|
else if (heldItemId2 == 12001) // Lava Bucket
|
||||||
|
heldLightAlbedo2 = lavabucketColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**/
|
||||||
|
vec3 heldLightAlbedo = heldLightAlbedo1 + heldLightAlbedo2;
|
||||||
|
|
||||||
|
if (dot(heldLightAlbedo, heldLightAlbedo) > 0.001) {
|
||||||
|
heldLightAlbedo /= length(heldLightAlbedo);
|
||||||
|
heldLightAlbedo *= BLOCKLIGHT_I * 0.4;
|
||||||
|
float mixFactor = finalHandLight * finalHandLight;
|
||||||
|
blocklightCol = mix(blocklightCol, heldLightAlbedo, max(mixFactor, 0.0));
|
||||||
|
}
|
||||||
|
/**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**/
|
||||||
@@ -0,0 +1,353 @@
|
|||||||
|
if (mat > 100.5 && mat < 10000.0) {
|
||||||
|
if (mat < 152.5) {
|
||||||
|
if (mat < 132.5) {
|
||||||
|
if (mat < 124.5) {
|
||||||
|
if (material == 120.0) { // Redstone Stuff
|
||||||
|
#ifndef WORLD_CURVATURE
|
||||||
|
float comPos = fract(worldPos.y + cameraPosition.y);
|
||||||
|
#else
|
||||||
|
float comPos = fract(oldPosition.y + cameraPosition.y);
|
||||||
|
#endif
|
||||||
|
if (comPos > 0.18) emissive = float((albedo.r > 0.65 && albedo.r > albedo.b * 1.0) || albedo.b > 0.99);
|
||||||
|
else emissive = float(albedo.r > albedo.b * 3.0 && albedo.r > 0.5) * 0.125;
|
||||||
|
emissive *= max(0.65 - 0.3 * dot(albedo.rgb, vec3(1.0, 1.0, 0.0)), 0.0);
|
||||||
|
if (specB > 900.0) { // Observer
|
||||||
|
emissive *= float(albedo.r > albedo.g * 1.5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (material == 124.0) { // Warped Stem+
|
||||||
|
#ifdef EMISSIVE_NETHER_STEMS
|
||||||
|
float core = float(albedo.r < 0.1);
|
||||||
|
float edge = float(albedo.b > 0.35 && albedo.b < 0.401 && core == 0.0);
|
||||||
|
emissive = core * 0.195 + 0.035 * edge;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (material == 128.0) { // Crimson Stem+
|
||||||
|
#ifdef EMISSIVE_NETHER_STEMS
|
||||||
|
emissive = float(albedo.b < 0.16);
|
||||||
|
emissive = min(pow2(lAlbedoP * lAlbedoP) * emissive * 3.0, 0.3);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
if (material == 130.0) { // Sculk++
|
||||||
|
emissive *= max((albedo.b - albedo.r) - 0.1, 0.0) * 0.5
|
||||||
|
+ 100.0 * max(albedo.g - albedo.b, 0.0) * float(albedo.r < albedo.b - 0.1)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
else if (material == 132.0) { // Command Blocks
|
||||||
|
#ifndef WORLD_CURVATURE
|
||||||
|
vec3 comPos = fract(worldPos.xyz + cameraPosition.xyz);
|
||||||
|
#else
|
||||||
|
vec3 comPos = fract(oldPosition.xyz + cameraPosition.xyz);
|
||||||
|
#endif
|
||||||
|
comPos = abs(comPos - vec3(0.5));
|
||||||
|
float comPosM = min(max(comPos.x, comPos.y), min(max(comPos.x, comPos.z), max(comPos.y, comPos.z)));
|
||||||
|
emissive = 0.0;
|
||||||
|
if (comPosM < 0.1882) { // Command Block Center
|
||||||
|
vec3 dif = vec3(albedo.r - albedo.b, albedo.r - albedo.g, albedo.b - albedo.g);
|
||||||
|
dif = abs(dif);
|
||||||
|
emissive = float(max(dif.r, max(dif.g, dif.b)) > 0.1) * 25.0;
|
||||||
|
emissive *= float(albedo.r > 0.44 || albedo.g > 0.29);
|
||||||
|
|
||||||
|
if (CheckForColor(albedo.rgb, vec3(207, 166, 139)) // Fix for Iris' precision
|
||||||
|
|| CheckForColor(albedo.rgb, vec3(201, 143, 107))
|
||||||
|
|| CheckForColor(albedo.rgb, vec3(161, 195, 180))
|
||||||
|
|| CheckForColor(albedo.rgb, vec3(131, 181, 145))
|
||||||
|
|| CheckForColor(albedo.rgb, vec3(155, 139, 207))
|
||||||
|
|| CheckForColor(albedo.rgb, vec3(135, 121, 181))) emissive = 0.0;
|
||||||
|
|
||||||
|
#ifdef ALTERNATIVE_COMMAND_BLOCK
|
||||||
|
if (emissive > 0.01) {
|
||||||
|
albedo.rgb *= vec3(0.88, 1.32, 1.9);
|
||||||
|
albedo.g = sqrt1(albedo.g) * 0.6;
|
||||||
|
albedo.rgb *= albedo.rgb * 2.0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
vec3 dif = abs(vec3(albedo.r - albedo.g, albedo.g - albedo.b, albedo.r - albedo.b));
|
||||||
|
float maxDif = max(dif.r, max(dif.g, dif.b));
|
||||||
|
smoothness = 0.38;
|
||||||
|
if (maxDif < 0.05) smoothness = 0.6;
|
||||||
|
metalness = 1.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mat < 144.5) {
|
||||||
|
if (material == 136.0) { // Snowy Grass Block
|
||||||
|
if (lAlbedoP > 1.0) smoothness = lAlbedoP * lAlbedoP * 0.165;
|
||||||
|
else metalness = 0.003;
|
||||||
|
}
|
||||||
|
else if (material == 140.0) { // Dragon Egg, Spawner
|
||||||
|
emissive = float(albedo.r + albedo.b > albedo.g * 30.0 && lAlbedoP < 0.6);
|
||||||
|
emissive *= 8.0 + float(lAlbedoP < 0.4) * 100.0;
|
||||||
|
if (albedo.b + albedo.g > albedo.r * 2.0 && lAlbedoP > 0.2) { // Spawner Metal
|
||||||
|
smoothness = 0.385;
|
||||||
|
metalness = 0.8;
|
||||||
|
}
|
||||||
|
if (max(abs(albedo.r - albedo.b), abs(albedo.g - albedo.r)) < 0.01) { // Dragon Egg Subtle Emission
|
||||||
|
emissive = 2.5 * float(lAlbedoP < 0.2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (material == 144.0) // Furnaces Lit
|
||||||
|
emissive = 0.75 * float(albedo.r * albedo.r > albedo.b * 4.0 || (albedo.r > 0.9 && (albedo.r > albedo.b || albedo.r > 0.99)));
|
||||||
|
} else {
|
||||||
|
if (material == 148.0) // Torch, Soul Torch
|
||||||
|
emissive = float(albedo.r > 0.9 || albedo.b > 0.65) * (1.4 - albedo.b * 1.05);
|
||||||
|
/* {
|
||||||
|
#ifndef WORLD_CURVATURE
|
||||||
|
vec3 comPos = fract(worldPos.xyz + cameraPosition.xyz);
|
||||||
|
#else
|
||||||
|
vec3 comPos = fract(oldPosition.xyz + cameraPosition.xyz);
|
||||||
|
#endif
|
||||||
|
comPos = abs(comPos - vec3(0.5));
|
||||||
|
float comPosM = max(max(comPos.x, comPos.y), comPos.z);
|
||||||
|
emissive = clamp(1.0 - comPosM * 2.0, 0.0, 1.0);
|
||||||
|
if (emissive > 0.001) {
|
||||||
|
emissive *= emissive;
|
||||||
|
emissive *= emissive;
|
||||||
|
emissive *= pow(lAlbedoP * 0.7, 4.0) * 0.75;
|
||||||
|
emissive = min(emissive, 0.15);
|
||||||
|
} else emissive = 0.0;
|
||||||
|
lightmap.x = min(emissive * 10.0 + 0.6, 1.05);
|
||||||
|
albedo.rgb = pow(albedo.rgb, vec3(1.4 - lightmap.x));
|
||||||
|
} */
|
||||||
|
else if (material == 152.0) { // Obsidian++
|
||||||
|
smoothness = max(smoothness, 0.375);
|
||||||
|
if (specB > 0.5) { // Crying Obsidian, Respawn Anchor
|
||||||
|
emissive = (albedo.b - albedo.r) * albedo.r * 6.0;
|
||||||
|
emissive *= emissive * emissive;
|
||||||
|
emissive = clamp(emissive, 0.05, 1.0);
|
||||||
|
if (lAlbedoP > 1.6 || albedo.r > albedo.b * 1.7) emissive = 1.0;
|
||||||
|
} else {
|
||||||
|
if (lAlbedoP > 0.75) { // Enchanting Table Diamond
|
||||||
|
f0 = smoothness;
|
||||||
|
smoothness = 0.9 - f0 * 0.1;
|
||||||
|
metalness = 0.0;
|
||||||
|
}
|
||||||
|
if (albedo.r > albedo.g + albedo.b) { // Enchanting Table Cloth
|
||||||
|
smoothness = max(smoothness - 0.45, 0.0);
|
||||||
|
metalness = 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mat < 170.5) {
|
||||||
|
if (mat < 162.5) {
|
||||||
|
if (material == 156.0) { // Campfires, Powered Lever
|
||||||
|
if (albedo.g + albedo.b > albedo.r * 2.3 && albedo.g > 0.38 && albedo.g > albedo.b * 0.9) emissive = 0.09;
|
||||||
|
if (albedo.r > albedo.b * 3.0 || albedo.r > 0.8) emissive = 0.65;
|
||||||
|
emissive *= max(1.0 - albedo.b + albedo.r, 0.0);
|
||||||
|
emissive *= lAlbedoP;
|
||||||
|
}
|
||||||
|
else if (material == 160.0) { // Cauldron, Hopper, Anvils
|
||||||
|
if (color.r < 0.99) { // Cauldron Water
|
||||||
|
cauldron = 1.0, smoothness = 1.0, metalness = 0.0;
|
||||||
|
skymapMod = lmCoord.y * 0.475 + 0.515;
|
||||||
|
#if defined REFLECTION_RAIN && defined RAIN_REF_BIOME_CHECK
|
||||||
|
noRain = 1.0;
|
||||||
|
#endif
|
||||||
|
#if WATER_TYPE == 0
|
||||||
|
albedo.rgb = waterColor.rgb;
|
||||||
|
#elif WATER_TYPE == 1
|
||||||
|
albedo.rgb = pow(albedo.rgb, vec3(1.3));
|
||||||
|
#else
|
||||||
|
albedo.rgb = vec3(0.4, 0.5, 0.4) * (pow(albedo.rgb, vec3(2.8)) + 4 * waterColor.rgb * pow(albedo.r, 1.8)
|
||||||
|
+ 16 * waterColor.rgb * pow(albedo.g, 1.8) + 4 * waterColor.rgb * pow(albedo.b, 1.8));
|
||||||
|
albedo.rgb = pow(albedo.rgb * 1.5, vec3(0.5, 0.6, 0.5)) * 0.6;
|
||||||
|
albedo.rgb *= 1 + length(albedo.rgb) * pow(WATER_OPACITY, 32.0) * 2.0;
|
||||||
|
#endif
|
||||||
|
#ifdef NORMAL_MAPPING
|
||||||
|
vec2 cauldronCoord1 = texCoord + fract(frametime * 0.003);
|
||||||
|
float cauldronNoise1 = texture2D(noisetex, cauldronCoord1).r;
|
||||||
|
vec2 cauldronCoord2 = texCoord - fract(frametime * 0.003);
|
||||||
|
float cauldronNoise2 = texture2D(noisetex, cauldronCoord2).r;
|
||||||
|
float waveFactor = 0.027 + 0.065 * lightmap.y;
|
||||||
|
normalMap.xy += (0.5 * waveFactor) * (cauldronNoise1 * cauldronNoise2 - 0.3);
|
||||||
|
albedo.rgb *= (1.0 - waveFactor * 0.5) + waveFactor * cauldronNoise1 * cauldronNoise2;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#if MC_VERSION >= 11700
|
||||||
|
else if (albedo.r * 1.5 > albedo.g + albedo.b) { // Cauldron Lava
|
||||||
|
metalness = 0.0;
|
||||||
|
smoothness = 0.0;
|
||||||
|
|
||||||
|
#ifndef WORLD_CURVATURE
|
||||||
|
float comPos = fract(worldPos.y + cameraPosition.y);
|
||||||
|
#else
|
||||||
|
float comPos = fract(oldPosition.y + cameraPosition.y);
|
||||||
|
#endif
|
||||||
|
comPos = fract(comPos);
|
||||||
|
if (comPos > 0.2 && comPos < 0.99) {
|
||||||
|
emissive = 1.0;
|
||||||
|
albedo.rgb *= LAVA_INTENSITY * 0.9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (dot(albedo.rgb, albedo.rgb) > 2.7) { // Cauldron Powder Snow
|
||||||
|
metalness = 0.0;
|
||||||
|
smoothness = pow(lAlbedoP, 1.8037) * 0.185;
|
||||||
|
smoothness = min(smoothness, 1.0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else if (material == 162.0) { // Glowstone, Magma Block
|
||||||
|
#include "/lib/other/mipLevel.glsl"
|
||||||
|
|
||||||
|
emissive = pow(lAlbedoP, specB) * fract(specB) * 20.0;
|
||||||
|
|
||||||
|
emissive += miplevel * 2.5;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (material == 164.0) { // Chorus Plant, Chorus Flower Age 5
|
||||||
|
if (albedo.g > 0.55 && albedo.r < albedo.g * 1.1) {
|
||||||
|
emissive = 1.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (material == 168.0) { // Overworld Ore Handling Except Redstone
|
||||||
|
float stoneDif = max(abs(albedo.r - albedo.g), max(abs(albedo.r - albedo.b), abs(albedo.g - albedo.b)));
|
||||||
|
float brightFactor = max(lAlbedoP - 1.5, 0.0);
|
||||||
|
float ore = max(max(stoneDif - 0.175 + specG, 0.0), brightFactor);
|
||||||
|
#ifdef EMISSIVE_ORES
|
||||||
|
emissive *= sqrt4(ore) * 0.15 * ORE_EMISSION;
|
||||||
|
#endif
|
||||||
|
metalness = 0.0;
|
||||||
|
|
||||||
|
#if !defined EMISSIVE_ORES || !defined EMISSIVE_IRON_ORE
|
||||||
|
if (abs(specG - 0.07) < 0.0001) {
|
||||||
|
float oreM = min(pow2(ore * ore) * 300.0, 1.0);
|
||||||
|
smoothness = mix(smoothness, 1.0, oreM);
|
||||||
|
metalness = mix(metalness, 0.8, sqrt3(oreM));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if !defined EMISSIVE_ORES || !defined EMISSIVE_COPPER_ORE
|
||||||
|
if (abs(specG - 0.1) < 0.0001) {
|
||||||
|
float oreM = sqrt3(min(ore * 0.25, 1.0));
|
||||||
|
smoothness = mix(smoothness, 0.5, oreM);
|
||||||
|
if (oreM > 0.01) metalness = 0.8;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if !defined EMISSIVE_ORES || !defined EMISSIVE_GOLD_ORE
|
||||||
|
if (abs(specG - 0.002) < 0.0001) {
|
||||||
|
float oreM = min(pow2(ore * ore) * 40.0, 1.0);
|
||||||
|
smoothness = mix(smoothness, 0.5, oreM);
|
||||||
|
if (oreM > 0.01) metalness = 0.8;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if !defined EMISSIVE_ORES || !defined EMISSIVE_EMERALD_ORE
|
||||||
|
if (abs(specG - 0.0015) < 0.0001) {
|
||||||
|
if (ore > 0.01) {
|
||||||
|
float oreM = 1.0 - min(ore * 0.75, 1.0);
|
||||||
|
smoothness = mix(smoothness, 1.0, oreM);
|
||||||
|
extraSpecularM = 1.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if !defined EMISSIVE_ORES || !defined EMISSIVE_DIAMOND_ORE
|
||||||
|
if (abs(specG - 0.001) < 0.0001) {
|
||||||
|
if (ore > 0.01) {
|
||||||
|
float oreM = 1.0 - min(ore, 1.0);
|
||||||
|
smoothness = mix(smoothness, 1.0, oreM);
|
||||||
|
extraSpecularM = 1.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else if (material == 170.0) { // Block of Amethyst++
|
||||||
|
smoothness = min(pow((max(1.73 - lAlbedoP, 0.0) + 1.0), 0.81) * 0.5, 1.0);
|
||||||
|
|
||||||
|
#ifdef EMISSIVE_AMETHYST_BUDS
|
||||||
|
#ifndef WORLD_CURVATURE
|
||||||
|
vec3 comPos = fract(worldPos.xyz + cameraPosition.xyz);
|
||||||
|
#else
|
||||||
|
vec3 comPos = fract(oldPosition.xyz + cameraPosition.xyz);
|
||||||
|
#endif
|
||||||
|
comPos = abs(comPos - vec3(0.5));
|
||||||
|
float comPosM = max(max(comPos.x, comPos.y), comPos.z);
|
||||||
|
emissive = clamp(1.0 - comPosM * 2.0, 0.0, 1.0);
|
||||||
|
if (emissive > 0.001) {
|
||||||
|
float orangeFactor = sqrt1(emissive * sqrt2(1.0 - lmCoord.x));
|
||||||
|
emissive *= emissive;
|
||||||
|
emissive *= emissive;
|
||||||
|
emissive *= pow(lAlbedoP * 0.7, 4.0) * 0.75;
|
||||||
|
emissive = min(emissive, 0.15) * 1.1;
|
||||||
|
albedo.rgb = pow(albedo.rgb, mix(vec3(1.0), vec3(1.0, 1.0, 2.0), orangeFactor));
|
||||||
|
float whiteFactor = pow(clamp(albedo.g * (1.0 + emissive), 0.0, 1.0), 10.0);
|
||||||
|
albedo.rgb = mix(albedo.rgb, vec3(1.0), whiteFactor);
|
||||||
|
} else emissive = 0.0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mat < 176.5) {
|
||||||
|
if (material == 172.0) { // Wet Farmland
|
||||||
|
if (lAlbedoP > 0.3) smoothness = lAlbedoP * 0.7;
|
||||||
|
else smoothness = lAlbedoP * 2.7;
|
||||||
|
smoothness = min(smoothness, 1.0);
|
||||||
|
}
|
||||||
|
else if (material == 174.0) { // Emissive Redstone Ores
|
||||||
|
float stoneDif = max(abs(albedo.r - albedo.g), max(abs(albedo.r - albedo.b), abs(albedo.g - albedo.b)));
|
||||||
|
float brightFactor = max(lAlbedoP - 1.5, 0.0);
|
||||||
|
float ore = max(max(stoneDif - 0.175 + specG, 0.0), brightFactor);
|
||||||
|
emissive *= sqrt4(ore) * 0.11 * ORE_EMISSION;
|
||||||
|
metalness = 0.0;
|
||||||
|
|
||||||
|
// Fix white pixels
|
||||||
|
if (emissive > 0.01) {
|
||||||
|
float whitePixelFactor = max(lAlbedoP * lAlbedoP * 2.2, 1.0);
|
||||||
|
albedo.rgb = pow(albedo.rgb, vec3(whitePixelFactor));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (material == 176.0) { // Beacon
|
||||||
|
#ifndef WORLD_CURVATURE
|
||||||
|
vec3 comPos = fract(worldPos.xyz + cameraPosition.xyz);
|
||||||
|
#else
|
||||||
|
vec3 comPos = fract(oldPosition.xyz + cameraPosition.xyz);
|
||||||
|
#endif
|
||||||
|
comPos = abs(comPos - vec3(0.5));
|
||||||
|
float comPosM = max(max(comPos.x, comPos.y), comPos.z);
|
||||||
|
if (comPosM < 0.4 && albedo.b > 0.5) { // Beacon Core
|
||||||
|
albedo.rgb = vec3(0.35, 1.0, 0.975);
|
||||||
|
if (lAlbedoP > 1.5) albedo.rgb = vec3(1.0);
|
||||||
|
else if (lAlbedoP > 1.3) albedo.rgb = vec3(0.35, 1.0, 0.975);
|
||||||
|
else if (lAlbedoP > 1.15) albedo.rgb *= 0.86;
|
||||||
|
else albedo.rgb *= 0.78;
|
||||||
|
emissive = 1.5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (material == 180.0) { // End Rod
|
||||||
|
if (lAlbedoP > 1.3) {
|
||||||
|
smoothness = 0.0;
|
||||||
|
emissive = 0.4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (material == 184.0) { // Rails
|
||||||
|
if (albedo.r > albedo.g * 2.0 + albedo.b) {
|
||||||
|
if (lAlbedoP > 0.45) { // Rail Redstone Lit
|
||||||
|
emissive = lAlbedoP;
|
||||||
|
} else { // Rail Redstone Unlit
|
||||||
|
smoothness = 0.4;
|
||||||
|
metalness = 1.0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (albedo.r > albedo.g + albedo.b || abs(albedo.r - albedo.b) < 0.1) { // Rail Gold, Rail Iron
|
||||||
|
smoothness = 0.4;
|
||||||
|
metalness = 1.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef EMISSIVE_NETHER_ORES
|
||||||
|
if (specB < -9.0) {
|
||||||
|
emissive = float(albedo.r + albedo.g > albedo.b * 2.0 && albedo.g > albedo.b * (1.2 - albedo.g * 0.5));
|
||||||
|
if (abs(albedo.g - albedo.b) < 0.1) emissive *= float(albedo.b > 0.35 || albedo.b < 0.05); // Eliminate Some Pixels On Quartz Ore
|
||||||
|
emissive *= albedo.r * 0.05 * ORE_EMISSION;
|
||||||
|
if (emissive > 0.01) // Desaturate Some Red-Looking Pixels
|
||||||
|
albedo.rgb = mix(albedo.rgb, vec3(dot(albedo.rgb, vec3(0.4, 0.5, 0.07))), clamp((albedo.r - albedo.g) * 2.0, 0.0, 0.3));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,869 @@
|
|||||||
|
if (mc_Entity.x == 31 || mc_Entity.x == 6 || mc_Entity.x == 59 ||
|
||||||
|
mc_Entity.x == 175 || mc_Entity.x == 176 || mc_Entity.x == 83 ||
|
||||||
|
mc_Entity.x == 104 || mc_Entity.x == 105 || mc_Entity.x == 11019) // Foliage++
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 1001.0,
|
||||||
|
#endif
|
||||||
|
#ifndef SHADOWS
|
||||||
|
normal = upVec, color.rgb *= 0.9,
|
||||||
|
#else
|
||||||
|
mat = 1.0,
|
||||||
|
#endif
|
||||||
|
lmCoord.x = clamp(lmCoord.x, 0.0, 0.87), quarterNdotUfactor = 0.0;
|
||||||
|
|
||||||
|
if (mc_Entity.x == 18 || mc_Entity.x == 9600 || mc_Entity.x == 9100) // Leaves, Vine, Lily Pad
|
||||||
|
#ifdef COMPBR
|
||||||
|
specR = 12.065, specG = 0.003,
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 1001.0,
|
||||||
|
#endif
|
||||||
|
mat = 2.0;
|
||||||
|
|
||||||
|
if (mc_Entity.x == 10) // Lava
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 3.0,
|
||||||
|
#endif
|
||||||
|
mat = 4.0,
|
||||||
|
specB = 0.25, quarterNdotUfactor = 0.0, color.a = 1.0, lmCoord.x = 0.9,
|
||||||
|
color.rgb = normalize(color.rgb) * vec3(LAVA_INTENSITY * 1.45);
|
||||||
|
if (mc_Entity.x == 1010) // Fire
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 3.0,
|
||||||
|
#endif
|
||||||
|
specB = 0.25, lmCoord.x = 0.98, color.a = 1.0, color.rgb = vec3(FIRE_INTENSITY * 0.67);
|
||||||
|
if (mc_Entity.x == 210) // Soul Fire
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 2.0,
|
||||||
|
#endif
|
||||||
|
#ifdef SNOW_MODE
|
||||||
|
noSnow = 1.0,
|
||||||
|
#endif
|
||||||
|
specB = 0.25, lmCoord.x = 0.0, color.a = 1.0, color.rgb = vec3(FIRE_INTENSITY * 0.53);
|
||||||
|
|
||||||
|
if (mc_Entity.x == 12345) // Custom Emissive
|
||||||
|
lmCoord = vec2(0.0), specB = 2.05;
|
||||||
|
|
||||||
|
if (mc_Entity.x == 300) // No Vanilla AO
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 1001.0,
|
||||||
|
#endif
|
||||||
|
color.a = 1.0;
|
||||||
|
|
||||||
|
if (lmCoord.x > 0.99) // Clamp full bright emissives
|
||||||
|
lmCoord.x = 0.9;
|
||||||
|
|
||||||
|
#ifdef COMPBR
|
||||||
|
if (mc_Entity.x < 10380.5) {
|
||||||
|
if (mc_Entity.x < 10115.5) {
|
||||||
|
if (mc_Entity.x < 10052.5) {
|
||||||
|
if (mc_Entity.x < 10008.5) {
|
||||||
|
if (mc_Entity.x < 10002.5) {
|
||||||
|
if (mc_Entity.x == 10000) { // Grass Block
|
||||||
|
#if MC_VERSION > 10710
|
||||||
|
if (color.b < 0.99) { // Grass Block Grass
|
||||||
|
specR = 8.034, specG = 0.003;
|
||||||
|
} else // Grass Block Dirt
|
||||||
|
#endif
|
||||||
|
specR = 2.035, specG = 0.003;
|
||||||
|
}
|
||||||
|
else if (mc_Entity.x == 10001) // Snowy Grass Block
|
||||||
|
mat = 136.0, // Separation of Snow and Dirt will be handled in terrainFragment.glsl
|
||||||
|
specR = 2.035;
|
||||||
|
else if (mc_Entity.x == 10002) // Sand
|
||||||
|
specR = 80.004, mat = 3.0;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 10003) // Stone+, Coal Ore
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.77,
|
||||||
|
#endif
|
||||||
|
specR = 20.04;
|
||||||
|
else if (mc_Entity.x == 10007) // Dirt, Coarse Dirt, Podzol, Grass Path, Dirt Path, Farmland Dry
|
||||||
|
specR = 2.035, specG = 0.003;
|
||||||
|
else if (mc_Entity.x == 10008) // Glass, Glass Pane
|
||||||
|
specR = 0.8, lmCoord.x = clamp(lmCoord.x, 0.0, 0.87), mipmapDisabling = 1.0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 10012.5) {
|
||||||
|
if (mc_Entity.x == 10009) // Snow+, Snow Block
|
||||||
|
specR = 18.037, mat = 3.0;
|
||||||
|
else if (mc_Entity.x == 10010) // Gravel
|
||||||
|
specR = 32.06;
|
||||||
|
else if (mc_Entity.x == 10012) // Cobblestone+, Clay
|
||||||
|
specR = 18.037;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 10050) // Red Sand
|
||||||
|
specR = 80.115, mat = 3.0;
|
||||||
|
else if (mc_Entity.x == 10051) // Andesite, Diorite, Granite, Basalt+, Tuff, Dripstone+
|
||||||
|
specR = 12.05;
|
||||||
|
else if (mc_Entity.x == 10052) // Terracottas
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.275,
|
||||||
|
#endif
|
||||||
|
specR = 2.045, mat = 15000.0, color.rgb = vec3(0.03, 1.0, 0.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 10106.5) {
|
||||||
|
if (mc_Entity.x < 10102.5) {
|
||||||
|
if (mc_Entity.x == 10053) // Packed Ice, Purpur Block+, Beehive
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.4,
|
||||||
|
#endif
|
||||||
|
specR = 20.055;
|
||||||
|
else if (mc_Entity.x == 10058) // Blue Ice, Calcite
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.4,
|
||||||
|
#endif
|
||||||
|
specR = 20.065, extraSpecular = 1.0;
|
||||||
|
else if (mc_Entity.x == 10101) // Birch Log+
|
||||||
|
specR = 3.055;
|
||||||
|
else if (mc_Entity.x == 10102) // Oak Log+
|
||||||
|
specR = 8.055;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 10103) // Jungle Log+, Acacia Log+
|
||||||
|
specR = 6.055;
|
||||||
|
else if (mc_Entity.x == 10105) // Spruce Log+, Scaffolding, Cartography Table, Bee Nest
|
||||||
|
specR = 6.06;
|
||||||
|
else if (mc_Entity.x == 10106) // Warped Log+
|
||||||
|
specR = 10.07, mat = 124.0,
|
||||||
|
mipmapDisabling = 1.0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 10111.5) {
|
||||||
|
if (mc_Entity.x == 10107) // Crimson Log+
|
||||||
|
specR = 10.07, mat = 128.0,
|
||||||
|
mipmapDisabling = 1.0;
|
||||||
|
else if (mc_Entity.x == 10108) // Dark Oak Log+
|
||||||
|
specR = 2.04;
|
||||||
|
else if (mc_Entity.x == 10111) // Birch Planks+, Fletching Table, Loom
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.77,
|
||||||
|
#endif
|
||||||
|
specR = 20.036;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 10112) // Oak Planks+, Jungle Planks+, Bookshelf, Composter
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.77,
|
||||||
|
#endif
|
||||||
|
specR = 20.055;
|
||||||
|
else if (mc_Entity.x == 10114) // Acacia Planks+, Barrel
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.7,
|
||||||
|
#endif
|
||||||
|
specR = 20.075;
|
||||||
|
else if (mc_Entity.x == 10115) // Spruce Planks+, Smithing Table
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.7,
|
||||||
|
#endif
|
||||||
|
specR = 20.12;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 10338.5) {
|
||||||
|
if (mc_Entity.x < 10312.5) {
|
||||||
|
if (mc_Entity.x < 10118.5) {
|
||||||
|
if (mc_Entity.x == 10116) // Warped Planks+
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 1.3,
|
||||||
|
#endif
|
||||||
|
specR = 12.075;
|
||||||
|
else if (mc_Entity.x == 10117) // Crimson Planks+, Note Block, Jukebox
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 1.3,
|
||||||
|
#endif
|
||||||
|
specR = 12.095;
|
||||||
|
else if (mc_Entity.x == 10118) // Dark Oak Planks+
|
||||||
|
specR = 20.4;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 10300) // Stone Bricks++, Dried Kelp Block
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.7,
|
||||||
|
#endif
|
||||||
|
specR = 20.09;
|
||||||
|
else if (mc_Entity.x == 10304) // Nether Ores, Blackstone++
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 1.5,
|
||||||
|
#endif
|
||||||
|
#ifdef EMISSIVE_NETHER_ORES
|
||||||
|
specB = -10.0,
|
||||||
|
#endif
|
||||||
|
specR = 12.087, mat = 20000.0, color.rgb = vec3(1.0, 0.7, 1.0);
|
||||||
|
else if (mc_Entity.x == 10308) // Netherrack, Crimson/Warped Nylium
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 1.5,
|
||||||
|
#endif
|
||||||
|
specR = 12.087, mat = 20000.0, color.rgb = vec3(1.0, 0.7, 1.0);
|
||||||
|
else if (mc_Entity.x == 10312) // Polished Andesite, Polished Diorite, Polished Granite, Melon
|
||||||
|
specR = 6.085;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 10328.5) {
|
||||||
|
if (mc_Entity.x == 10316) // Nether Bricks+
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 1.5,
|
||||||
|
#endif
|
||||||
|
specR = 12.375, mat = 20000.0, color.rgb = vec3(0.55, 1.0, 1.0);
|
||||||
|
else if (mc_Entity.x == 10320 || mc_Entity.x == 10324) // Iron Block+
|
||||||
|
specR = 6.07, specG = 131.0;
|
||||||
|
else if (mc_Entity.x == 10328) // Gold Block+
|
||||||
|
specR = 8.1, mat = 30000.0, color.rgb = vec3(1.0, 1.0, 1.0), specG = 1.0;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 10332) // Diamond Block
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.65,
|
||||||
|
#endif
|
||||||
|
specR = 100.007, mat = 201.0, extraSpecular = 1.0;
|
||||||
|
else if (mc_Entity.x == 10336) // Emerald Block
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.65,
|
||||||
|
#endif
|
||||||
|
specR = 7.2, mat = 201.0, extraSpecular = 1.0;
|
||||||
|
else if (mc_Entity.x == 10338) { // Block of Amethyst, Budding Amethyst
|
||||||
|
mat = 170.0, extraSpecular = 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 10356.5) {
|
||||||
|
if (mc_Entity.x < 10344.5) {
|
||||||
|
if (mc_Entity.x == 10340) // Netherite Block
|
||||||
|
specR = 12.135, specG = 0.7;
|
||||||
|
else if (mc_Entity.x == 10342) // Amethyst Buds/Cluster
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 2.0,
|
||||||
|
#endif
|
||||||
|
mat = 170.0;
|
||||||
|
else if (mc_Entity.x == 10344) // Ancient Debris
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 2.0,
|
||||||
|
#endif
|
||||||
|
#ifdef GLOWING_DEBRIS
|
||||||
|
specB = 6.0 + min(0.3 * ORE_EMISSION, 0.9), color.a = 1.0,
|
||||||
|
#endif
|
||||||
|
specR = 8.07, specG = 0.7;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 10348) // Block of Redstone
|
||||||
|
#ifdef GLOWING_REDSTONE_BLOCK
|
||||||
|
specB = 7.20, mat = 20000.0, color.rgb = vec3(1.1), color.a = 1.0,
|
||||||
|
#ifdef SNOW_MODE
|
||||||
|
noSnow = 1.0,
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
specR = 8.05, specG = 1.0;
|
||||||
|
else if (mc_Entity.x == 10352) // Lapis Lazuli Block
|
||||||
|
#ifdef GLOWING_LAPIS_BLOCK
|
||||||
|
specB = 6.20, mat = 20000.0, color.rgb = vec3(1.13), color.a = 1.0,
|
||||||
|
#ifdef SNOW_MODE
|
||||||
|
noSnow = 1.0,
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
specR = 16.11;
|
||||||
|
else if (mc_Entity.x == 10356) // Carpets, Wools
|
||||||
|
specR = 2.02, mat = 15000.0, color.rgb = vec3(0.03, 1.0, 0.0), specG = 0.003, lmCoord.x *= 0.96;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 10368.5) {
|
||||||
|
if (mc_Entity.x == 10360) // Obsidian
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 2.0,
|
||||||
|
#endif
|
||||||
|
specR = 2.15, specG = 0.6, mat = 152.0, extraSpecular = 1.0;
|
||||||
|
else if (mc_Entity.x == 10364) // Enchanting Table
|
||||||
|
specR = 2.15, specG = 0.6, mat = 152.0, extraSpecular = 1.0;
|
||||||
|
else if (mc_Entity.x == 10368) // Chain
|
||||||
|
specR = 0.5, specG = 1.0,
|
||||||
|
lmCoord.x = clamp(lmCoord.x, 0.0, 0.87);
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 10372) // Cauldron, Hopper, Anvils
|
||||||
|
specR = 1.08, specG = 1.0, mat = 160.0,
|
||||||
|
lmCoord.x = clamp(lmCoord.x, 0.0, 0.87);
|
||||||
|
else if (mc_Entity.x == 10376) // Sandstone+
|
||||||
|
specR = 24.029;
|
||||||
|
else if (mc_Entity.x == 10380) // Red Sandstone+
|
||||||
|
specR = 24.085;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 11038.5) {
|
||||||
|
if (mc_Entity.x < 10432.5) {
|
||||||
|
if (mc_Entity.x < 10408.5) {
|
||||||
|
if (mc_Entity.x < 10392.5) {
|
||||||
|
if (mc_Entity.x == 10384) // Quartz+, Daylight Detector, Honeycomb Block
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.35,
|
||||||
|
#endif
|
||||||
|
specR = 16.082, extraSpecular = 1.0;
|
||||||
|
else if (mc_Entity.x == 10388) // Chorus Plant, Chorus Flower Age 5
|
||||||
|
mat = 164.0, specR = 6.1,
|
||||||
|
mipmapDisabling = 1.0, lmCoord.x = clamp(lmCoord.x, 0.0, 0.87);
|
||||||
|
else if (mc_Entity.x == 10392) // Chorus Flower Age<=4
|
||||||
|
specB = 5.0001, specR = 5.07,
|
||||||
|
mipmapDisabling = 1.0, lmCoord.x = clamp(lmCoord.x, 0.0, 0.87);
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 10396) // End Stone++, Smooth Stone+, Lodestone, TNT, Pumpkin+, Mushroom Blocks, Deepslate++, Mud, Mangrove Roots, Muddy Mangrove Roots, Packed Mud, Mud Bricks+
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.5,
|
||||||
|
#endif
|
||||||
|
specR = 12.065;
|
||||||
|
else if (mc_Entity.x == 10400) // Bone Block
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.35,
|
||||||
|
#endif
|
||||||
|
specR = 8.055;
|
||||||
|
else if (mc_Entity.x == 10404) // Concretes
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.2,
|
||||||
|
#endif
|
||||||
|
specR = 3.044, mat = 15000.0, color.rgb = vec3(0.03, 1.0, 0.0);
|
||||||
|
else if (mc_Entity.x == 10408) // Concrete Powders
|
||||||
|
specR = 6.014, mat = 15000.0, color.rgb = vec3(0.01, 1.0, 0.0);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 10420.5) {
|
||||||
|
if (mc_Entity.x == 10412) // Bedrock
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 2.0,
|
||||||
|
#endif
|
||||||
|
specR = 16.0675;
|
||||||
|
else if (mc_Entity.x == 10416) // Hay Block, Target
|
||||||
|
specR = 16.085, specG = 0.003, mat = 20000.0, color.rgb = vec3(1.0, 0.0, 0.0);
|
||||||
|
else if (mc_Entity.x == 10420) // Bricks+, Furnaces Unlit, Dispenser, Dropper
|
||||||
|
specR = 10.07;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 10424) { // Farmland Wet
|
||||||
|
if (dot(upVec, normal) > 0.75) { // Top (Actual Farmland Wet)
|
||||||
|
mat = 172.0;
|
||||||
|
} else { // Sides And Bottom (Dirt)
|
||||||
|
specR = 2.035, specG = 0.003;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (mc_Entity.x == 10428) // Crafting Table
|
||||||
|
specR = 24.06;
|
||||||
|
else if (mc_Entity.x == 10432) // Cave Vines With Glow Berries
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 3.0,
|
||||||
|
#endif
|
||||||
|
specB = 8.3, mat = 20000.0, color.rgb = vec3(1.2, -5.0, 0.0),
|
||||||
|
mipmapDisabling = 1.0, lmCoord.x = clamp(lmCoord.x, 0.0, 0.87);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 11012.5) {
|
||||||
|
if (mc_Entity.x < 10444.5) {
|
||||||
|
if (mc_Entity.x == 10436) // Prismarine+
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 1.3,
|
||||||
|
#endif
|
||||||
|
specR = 3.08, specG = 0.75;
|
||||||
|
else if (mc_Entity.x == 10440) // Dark Prismarine+
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 1.5,
|
||||||
|
#endif
|
||||||
|
specR = 3.11, specG = 0.75;
|
||||||
|
else if (mc_Entity.x == 10444) // Glazed Terracottas
|
||||||
|
specR = 0.5;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 11004) // Glowstone
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 2.0,
|
||||||
|
#endif
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 3.0,
|
||||||
|
#endif
|
||||||
|
lmCoord.x = 0.87, specB = 3.05, mat = 162.0,
|
||||||
|
//mipmapDisabling = 1.0,
|
||||||
|
color.rgb = vec3(0.69, 0.65, 0.6);
|
||||||
|
else if (mc_Entity.x == 11008) // Sea Lantern
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 4.0,
|
||||||
|
#endif
|
||||||
|
specR = 3.1, specG = 0.75,
|
||||||
|
lmCoord.x = 0.85, specB = 16.025,
|
||||||
|
mat = 17000.0, color.rgb = vec3(1.5, 0.67, 2.9),
|
||||||
|
quarterNdotUfactor = 0.0, mipmapDisabling = 1.0;
|
||||||
|
else if (mc_Entity.x == 11012) // Magma Block
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 2.0,
|
||||||
|
#endif
|
||||||
|
lmCoord = vec2(0.0), specB = 2.05, color.rgb = vec3(0.85, 0.84, 0.7), mat = 162.0,
|
||||||
|
//mipmapDisabling = 1.0,
|
||||||
|
quarterNdotUfactor = 0.0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 11024.5) {
|
||||||
|
if (mc_Entity.x == 11016) // Shroomlight
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 2.5,
|
||||||
|
#endif
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 1.0,
|
||||||
|
#endif
|
||||||
|
lmCoord.x = 0.81, specB = 16.005,
|
||||||
|
mat = 17000.0, color.rgb = vec3(1.5, 0.8, 1.0),
|
||||||
|
quarterNdotUfactor = 0.0;
|
||||||
|
else if (mc_Entity.x == 11020) // Redstone Lamp Lit
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 3.0,
|
||||||
|
#endif
|
||||||
|
lmCoord.x = 0.915, specB = 5.099, color.rgb = vec3(0.6), quarterNdotUfactor = 0.0,
|
||||||
|
specG = 0.63, specR = 0.55, mipmapDisabling = 1.0, extraSpecular = 1.0;
|
||||||
|
else if (mc_Entity.x == 11024) // Redstone Lamp Unlit
|
||||||
|
specG = 0.63, specR = 3.15, mipmapDisabling = 1.0, extraSpecular = 1.0;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 11028) // Jack o'Lantern
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.5,
|
||||||
|
#endif
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 3.0,
|
||||||
|
#endif
|
||||||
|
mat = 17000.0, color.rgb = vec3(1.54, 1.0, 1.15),
|
||||||
|
specR = 12.065, lmCoord.x = 0.87, specB = 16.00008, mipmapDisabling = 1.0;
|
||||||
|
else if (mc_Entity.x == 11032) // Beacon
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 4.0,
|
||||||
|
#endif
|
||||||
|
mat = 176.0, lmCoord.x = 0.87;
|
||||||
|
else if (mc_Entity.x == 11036) // End Rod
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.0,
|
||||||
|
#endif
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 4.0,
|
||||||
|
#endif
|
||||||
|
specR = 1.0, lmCoord.x = 0.88, mat = 180.0;
|
||||||
|
else if (mc_Entity.x == 11038) // Froglight+
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 1.0,
|
||||||
|
#endif
|
||||||
|
lmCoord.x = 0.7, specB = 7.0001, quarterNdotUfactor = 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 11084.5) {
|
||||||
|
if (mc_Entity.x < 11060.5) {
|
||||||
|
if (mc_Entity.x < 11048.5) {
|
||||||
|
if (mc_Entity.x == 11040) // Dragon Egg, Spawner
|
||||||
|
#ifdef SNOW_MODE
|
||||||
|
noSnow = 1.0,
|
||||||
|
#endif
|
||||||
|
mat = 140.0;
|
||||||
|
else if (mc_Entity.x == 11044) // Redstone Wire
|
||||||
|
#ifdef SNOW_MODE
|
||||||
|
noSnow = 1.0,
|
||||||
|
#endif
|
||||||
|
specB = smoothstep(0.0, 1.0, pow2(length(color.rgb))) * 0.07;
|
||||||
|
else if (mc_Entity.x == 11048) // Redstone Torch
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 1.5,
|
||||||
|
#endif
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 2.0,
|
||||||
|
#endif
|
||||||
|
#ifdef SNOW_MODE
|
||||||
|
noSnow = 1.0,
|
||||||
|
#endif
|
||||||
|
mat = 120.0, lmCoord.x = min(lmCoord.x, 0.86), mipmapDisabling = 1.0;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 11052) // Redstone Repeater & Comparator Powered
|
||||||
|
#ifdef SNOW_MODE
|
||||||
|
noSnow = 1.0,
|
||||||
|
#endif
|
||||||
|
mat = 120.0, mipmapDisabling = 1.0;
|
||||||
|
else if (mc_Entity.x == 11056) // Redstone Repeater & Comparator Unpowered
|
||||||
|
#ifdef SNOW_MODE
|
||||||
|
noSnow = 1.0,
|
||||||
|
#endif
|
||||||
|
mat = 120.0, mipmapDisabling = 1.0;
|
||||||
|
else if (mc_Entity.x == 11060) // Observer
|
||||||
|
#ifdef SNOW_MODE
|
||||||
|
noSnow = 1.0,
|
||||||
|
#endif
|
||||||
|
specR = 10.07, mat = 120.0, specB = 1000.0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 11072.5) {
|
||||||
|
if (mc_Entity.x == 11064) // Command Blocks
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 2.5,
|
||||||
|
#endif
|
||||||
|
#ifdef SNOW_MODE
|
||||||
|
noSnow = 1.0,
|
||||||
|
#endif
|
||||||
|
mat = 132.0, mipmapDisabling = 1.0;
|
||||||
|
else if (mc_Entity.x == 11068) // Lantern
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 3.0,
|
||||||
|
#endif
|
||||||
|
lmCoord.x = 0.87, specB = 3.4, mat = 20000.0, color.rgb = vec3(1.0, 0.0, 0.0),
|
||||||
|
#ifndef REFLECTION_SPECULAR
|
||||||
|
specB -= fract(specB) * 0.85,
|
||||||
|
#endif
|
||||||
|
specR = 0.5, specG = 1.0;
|
||||||
|
else if (mc_Entity.x == 11072) // Soul Lantern
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 2.0,
|
||||||
|
#endif
|
||||||
|
lmCoord.x = min(lmCoord.x, 0.87), specB = 4.15, mat = 20000.0, color.rgb = vec3(0.0, 1.0, 0.0),
|
||||||
|
#ifndef REFLECTION_SPECULAR
|
||||||
|
specB -= fract(specB) * 0.85,
|
||||||
|
#endif
|
||||||
|
specR = 0.5, specG = 1.0;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 11076) // Crimson Fungus, Warped Fungus, Twisting Vines, Weeping Vines
|
||||||
|
quarterNdotUfactor = 0.0,
|
||||||
|
specB = 16.007, mat = 20000.0, color.rgb = vec3(1.0, 0.0, 0.0);
|
||||||
|
else if (mc_Entity.x == 11078) { // Glow Lichen
|
||||||
|
#if EMISSIVE_LICHEN > 0
|
||||||
|
#if EMISSIVE_LICHEN == 1
|
||||||
|
float lightFactor = max(1.0 - lmCoord.y, 0.0);
|
||||||
|
lightFactor *= lightFactor;
|
||||||
|
lightFactor *= lightFactor;
|
||||||
|
lightFactor *= lightFactor;
|
||||||
|
lightFactor *= lightFactor;
|
||||||
|
#else
|
||||||
|
float lightFactor = 1.0;
|
||||||
|
#endif
|
||||||
|
specB = 15.0002 + 0.3 * lightFactor;
|
||||||
|
mat = 17000, color.rgb = vec3(1.11, 0.8, 1.0 + lightFactor * 0.07);
|
||||||
|
#endif
|
||||||
|
lmCoord.x = clamp(lmCoord.x, 0.0, 0.9);
|
||||||
|
}
|
||||||
|
else if (mc_Entity.x == 11080) // Furnaces Lit
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 3.0,
|
||||||
|
#endif
|
||||||
|
specR = 10.07, mat = 144.0, lmCoord.x = pow(lmCoord.x, 1.35);
|
||||||
|
else if (mc_Entity.x == 11084) // Torch
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 1.5,
|
||||||
|
#endif
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 1.0,
|
||||||
|
#endif
|
||||||
|
lmCoord.x = min(lmCoord.x, 0.86), mat = 148.0, mipmapDisabling = 1.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 11112.5) {
|
||||||
|
if (mc_Entity.x < 11100.5) {
|
||||||
|
if (mc_Entity.x == 11088) // Soul Torch
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 1.5,
|
||||||
|
#endif
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 2.0,
|
||||||
|
#endif
|
||||||
|
lmCoord.x = min(lmCoord.x, 0.86), mat = 148.0, mipmapDisabling = 1.0;
|
||||||
|
else if (mc_Entity.x == 11092) // Crying Obsidian, Respawn Anchor
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 1.5,
|
||||||
|
#endif
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 2.0,
|
||||||
|
#endif
|
||||||
|
specR = 2.15, specG = 0.6, mat = 152.0,
|
||||||
|
specB = 0.75, lmCoord.x = min(lmCoord.x, 0.88), mipmapDisabling = 1.0, extraSpecular = 1.0;
|
||||||
|
else if (mc_Entity.x == 11096) // Campfire, Powered Lever
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 3.0,
|
||||||
|
#endif
|
||||||
|
lmCoord.x = min(lmCoord.x, 0.885), mat = 156.0;
|
||||||
|
else if (mc_Entity.x == 11100) // Soul Campfire
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 2.0,
|
||||||
|
#endif
|
||||||
|
lmCoord.x = min(lmCoord.x, 0.885), mat = 156.0;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 11104) // Jigsaw Block, Structure Block
|
||||||
|
#ifdef SNOW_MODE
|
||||||
|
noSnow = 1.0,
|
||||||
|
#endif
|
||||||
|
specB = 8.003, quarterNdotUfactor = 0.0;
|
||||||
|
else if (mc_Entity.x == 11108) // Sea Pickle
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 5.0,
|
||||||
|
#endif
|
||||||
|
specB = 12.0003, lmCoord.x = min(lmCoord.x, 0.885), mipmapDisabling = 1.0;
|
||||||
|
else if (mc_Entity.x == 11110) // Sculk++ 0.01
|
||||||
|
specR = 12.065, specB = 0.01, mat = 130.0;
|
||||||
|
else if (mc_Entity.x == 11111) // Sculk++ 0.03
|
||||||
|
specR = 12.065, specB = 0.03, mat = 130.0;
|
||||||
|
else if (mc_Entity.x == 11112) // Lit Candles
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 3.0,
|
||||||
|
#endif
|
||||||
|
lmCoord.x = clamp(lmCoord.x, 0.0, 0.87);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 11129.5) {
|
||||||
|
if (mc_Entity.x < 11123.5) {
|
||||||
|
if (mc_Entity.x < 11119.5) {
|
||||||
|
if (mc_Entity.x == 11116) // Diamond Ore
|
||||||
|
#ifdef EMISSIVE_ORES
|
||||||
|
#ifdef EMISSIVE_DIAMOND_ORE
|
||||||
|
specB = 0.30,
|
||||||
|
#else
|
||||||
|
specG = 0.001,
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
specG = 0.001,
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.77,
|
||||||
|
#endif
|
||||||
|
mat = 168.0, specR = 20.04;
|
||||||
|
else if (mc_Entity.x == 11117) // Deepslate Diamond Ore
|
||||||
|
#ifdef EMISSIVE_ORES
|
||||||
|
#ifdef EMISSIVE_DIAMOND_ORE
|
||||||
|
specB = 0.30,
|
||||||
|
#else
|
||||||
|
specG = 0.001,
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
specG = 0.001,
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.5,
|
||||||
|
#endif
|
||||||
|
mat = 168.0, specR = 12.065;
|
||||||
|
else if (mc_Entity.x == 11118) // Emerald Ore
|
||||||
|
#ifdef EMISSIVE_ORES
|
||||||
|
#ifdef EMISSIVE_EMERALD_ORE
|
||||||
|
specB = 0.30,
|
||||||
|
#else
|
||||||
|
specG = 0.0015,
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
specG = 0.0015,
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.77,
|
||||||
|
#endif
|
||||||
|
mat = 168.0, specR = 20.04;
|
||||||
|
else if (mc_Entity.x == 11119) // Deepslate Emerald Ore
|
||||||
|
#ifdef EMISSIVE_ORES
|
||||||
|
#ifdef EMISSIVE_EMERALD_ORE
|
||||||
|
specB = 0.30,
|
||||||
|
#else
|
||||||
|
specG = 0.0015,
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
specG = 0.0015,
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.5,
|
||||||
|
#endif
|
||||||
|
mat = 168.0, specR = 12.065;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 11120) // Gold Ore
|
||||||
|
#ifdef EMISSIVE_ORES
|
||||||
|
#ifdef EMISSIVE_GOLD_ORE
|
||||||
|
specB = 0.08,
|
||||||
|
#else
|
||||||
|
specG = 0.002,
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
specG = 0.002,
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.77,
|
||||||
|
#endif
|
||||||
|
mat = 168.0, specR = 20.04;
|
||||||
|
else if (mc_Entity.x == 11121) // Deepslate Gold Ore
|
||||||
|
#ifdef EMISSIVE_ORES
|
||||||
|
#ifdef EMISSIVE_GOLD_ORE
|
||||||
|
specB = 0.08,
|
||||||
|
#else
|
||||||
|
specG = 0.002,
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
specG = 0.002,
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.5,
|
||||||
|
#endif
|
||||||
|
mat = 168.0, specR = 12.065;
|
||||||
|
else if (mc_Entity.x == 11122) // Lapis Ore
|
||||||
|
#ifdef EMISSIVE_ORES
|
||||||
|
#ifdef EMISSIVE_LAPIS_ORE
|
||||||
|
specB = 0.08, mat = 168.0,
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.77,
|
||||||
|
#endif
|
||||||
|
specR = 20.04;
|
||||||
|
else if (mc_Entity.x == 11123) // Deepslate Lapis Ore
|
||||||
|
#ifdef EMISSIVE_ORES
|
||||||
|
#ifdef EMISSIVE_LAPIS_ORE
|
||||||
|
specB = 0.08, mat = 168.0,
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.5,
|
||||||
|
#endif
|
||||||
|
specR = 12.065;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 11124) // Redstone Ore Unlit
|
||||||
|
#ifdef EMISSIVE_ORES
|
||||||
|
#ifdef EMISSIVE_REDSTONE_ORE
|
||||||
|
specB = 4.2, mat = 174.0,
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.77,
|
||||||
|
#endif
|
||||||
|
specR = 20.04;
|
||||||
|
else if (mc_Entity.x == 11125) // Deepslate Redstone Ore Unlit
|
||||||
|
#ifdef EMISSIVE_ORES
|
||||||
|
#ifdef EMISSIVE_REDSTONE_ORE
|
||||||
|
specB = 4.2, mat = 174.0,
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.5,
|
||||||
|
#endif
|
||||||
|
specR = 12.065;
|
||||||
|
else if (mc_Entity.x == 11128) // Redstone Ore Lit
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 2.0,
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.77,
|
||||||
|
#endif
|
||||||
|
lmCoord.x *= 0.95,
|
||||||
|
specB = 4.27, mat = 174.0,
|
||||||
|
specR = 20.04;
|
||||||
|
else if (mc_Entity.x == 11129) // Deepslate Redstone Ore Lit
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
lightVarying = 2.0,
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.5,
|
||||||
|
#endif
|
||||||
|
lmCoord.x *= 0.95,
|
||||||
|
specB = 4.27, mat = 174.0,
|
||||||
|
specR = 12.065;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 11135.5) {
|
||||||
|
if (mc_Entity.x == 11132) // Iron Ore
|
||||||
|
#ifdef EMISSIVE_ORES
|
||||||
|
#ifdef EMISSIVE_IRON_ORE
|
||||||
|
specB = 0.05,
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.77,
|
||||||
|
#endif
|
||||||
|
mat = 168.0, specG = 0.07, specR = 20.04;
|
||||||
|
else if (mc_Entity.x == 11133) // Deepslate Iron Ore
|
||||||
|
#ifdef EMISSIVE_ORES
|
||||||
|
#ifdef EMISSIVE_IRON_ORE
|
||||||
|
specB = 0.05,
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.5,
|
||||||
|
#endif
|
||||||
|
mat = 168.0, specG = 0.07, specR = 12.065;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 11136) // Copper Ore
|
||||||
|
#ifdef EMISSIVE_ORES
|
||||||
|
#ifdef EMISSIVE_COPPER_ORE
|
||||||
|
specB = 2.02,
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.77,
|
||||||
|
#endif
|
||||||
|
mat = 168.0, specG = 0.1, specR = 20.04;
|
||||||
|
else if (mc_Entity.x == 11137) // Deepslate Copper Ore
|
||||||
|
#ifdef EMISSIVE_ORES
|
||||||
|
#ifdef EMISSIVE_COPPER_ORE
|
||||||
|
specB = 2.02,
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifdef NOISY_TEXTURES
|
||||||
|
noiseVarying = 0.5,
|
||||||
|
#endif
|
||||||
|
mat = 168.0, specG = 0.1, specR = 12.065;
|
||||||
|
else if (mc_Entity.x == 11200) // Rails
|
||||||
|
mat = 184.0, lmCoord.x = clamp(lmCoord.x, 0.0, 0.87), mipmapDisabling = 1.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Too bright near a light source fix
|
||||||
|
if (mc_Entity.x == 99 || mc_Entity.x == 10324)
|
||||||
|
lmCoord.x = clamp(lmCoord.x, 0.0, 0.87);
|
||||||
|
|
||||||
|
// Mipmap Fix
|
||||||
|
/*if (mc_Entity.x == 98465498894)
|
||||||
|
mipmapDisabling = 1.0; */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined COMPBR && defined COLORED_LIGHT
|
||||||
|
if (mc_Entity.x < 11048.5) {
|
||||||
|
if (mc_Entity.x < 11020.5) {
|
||||||
|
if (mc_Entity.x == 10432) // Cave Vines With Glow Berries
|
||||||
|
lightVarying = 3.0;
|
||||||
|
else if (mc_Entity.x == 11004) // Glowstone
|
||||||
|
lightVarying = 3.0;
|
||||||
|
else if (mc_Entity.x == 11008) // Sea Lantern
|
||||||
|
lightVarying = 4.0;
|
||||||
|
else if (mc_Entity.x == 11016) // Shroomlight
|
||||||
|
lightVarying = 1.0;
|
||||||
|
else if (mc_Entity.x == 11020) // Redstone Lamp Lit
|
||||||
|
lightVarying = 3.0;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 11028) // Jack o'Lantern
|
||||||
|
lightVarying = 3.0;
|
||||||
|
else if (mc_Entity.x == 11032) // Beacon
|
||||||
|
lightVarying = 4.0;
|
||||||
|
else if (mc_Entity.x == 11036) // End Rod
|
||||||
|
lightVarying = 4.0;
|
||||||
|
else if (mc_Entity.x == 11038) // Froglight+
|
||||||
|
lightVarying = 1.0;
|
||||||
|
else if (mc_Entity.x == 11048) // Redstone Torch
|
||||||
|
lightVarying = 2.0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x < 11088.5) {
|
||||||
|
if (mc_Entity.x == 11068) // Lantern
|
||||||
|
lightVarying = 3.0;
|
||||||
|
else if (mc_Entity.x == 11072) // Soul Lantern
|
||||||
|
lightVarying = 2.0;
|
||||||
|
else if (mc_Entity.x == 11080) // Furnaces Lit
|
||||||
|
lightVarying = 3.0;
|
||||||
|
else if (mc_Entity.x == 11084) // Torch
|
||||||
|
lightVarying = 1.0;
|
||||||
|
else if (mc_Entity.x == 11088) // Soul Torch
|
||||||
|
lightVarying = 2.0;
|
||||||
|
} else {
|
||||||
|
if (mc_Entity.x == 11092) // Crying Obsidian, Respawn Anchor
|
||||||
|
lightVarying = 2.0;
|
||||||
|
else if (mc_Entity.x == 11096) // Campfire
|
||||||
|
lightVarying = 3.0;
|
||||||
|
else if (mc_Entity.x == 11100) // Soul Campfire
|
||||||
|
lightVarying = 2.0;
|
||||||
|
else if (mc_Entity.x == 11108) // Sea Pickle
|
||||||
|
lightVarying = 5.0;
|
||||||
|
else if (mc_Entity.x == 11112) // Lit Candles
|
||||||
|
lightVarying = 3.0;
|
||||||
|
else if (mc_Entity.x == 11128) // Redstone Ore Lit
|
||||||
|
lightVarying = 2.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
float waterH(vec3 pos) {
|
||||||
|
float noise = 0;
|
||||||
|
vec2 wind = vec2(frametime) * 0.25 * WATER_SPEED;
|
||||||
|
float yFactor = 0.5;
|
||||||
|
noise+= texture2D(noisetex,(pos.xz + wind - pos.y * yFactor) / 1024.0 * 1.1).r * 1.0;
|
||||||
|
noise+= texture2D(noisetex,(pos.xz - wind - pos.y * yFactor) / 1024.0 * 1.5).r * 0.8;
|
||||||
|
noise-= texture2D(noisetex,(pos.xz + wind + pos.y * yFactor) / 1024.0 * 2.5).r * 0.6;
|
||||||
|
noise+= texture2D(noisetex,(pos.xz - wind - pos.y * yFactor) / 1024.0 * 5.0).r * 0.4;
|
||||||
|
noise-= texture2D(noisetex,(pos.xz + wind + pos.y * yFactor) / 1024.0 * 8.0).r * 0.2;
|
||||||
|
|
||||||
|
return noise;
|
||||||
|
}
|
||||||
|
|
||||||
|
float getCausticWaves(vec3 pos) {
|
||||||
|
float deltaPos = 0.1;
|
||||||
|
float caustic_h0 = waterH(pos);
|
||||||
|
float caustic_h1 = waterH(pos + vec3( deltaPos, 0.0, 0.0));
|
||||||
|
float caustic_h2 = waterH(pos + vec3(-deltaPos, 0.0, 0.0));
|
||||||
|
float caustic_h3 = waterH(pos + vec3( 0.0, 0.0, deltaPos));
|
||||||
|
float caustic_h4 = waterH(pos + vec3( 0.0, 0.0, -deltaPos));
|
||||||
|
|
||||||
|
float caustic = max((1.0-abs(0.5-caustic_h0))*(1.0-(abs(caustic_h1-caustic_h2)+abs(caustic_h3-caustic_h4))),0.0);
|
||||||
|
caustic = max(pow(caustic,3.5),0.0)*2.0;
|
||||||
|
|
||||||
|
return caustic;
|
||||||
|
}
|
||||||
@@ -0,0 +1,442 @@
|
|||||||
|
#if defined SHADOWS && ((defined PROJECTED_CAUSTICS && !defined GBUFFERS_WATER) || defined COLORED_SHADOWS) && defined OVERWORLD
|
||||||
|
uniform sampler2DShadow shadowtex1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (defined OVERWORLD || defined END || defined SEVEN) && defined SHADOWS
|
||||||
|
#include "/lib/lighting/shadows.glsl"
|
||||||
|
|
||||||
|
vec3 DistortShadow(inout vec3 worldPos, float distortFactor) {
|
||||||
|
worldPos.xy /= distortFactor;
|
||||||
|
worldPos.z *= 0.2;
|
||||||
|
return worldPos * 0.5 + 0.5;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined WATER_CAUSTICS && defined OVERWORLD
|
||||||
|
#include "/lib/lighting/caustics.glsl"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float GetFakeShadow(float skyLight) {
|
||||||
|
float fakeShadow = 0.0;
|
||||||
|
|
||||||
|
#ifndef END
|
||||||
|
if (isEyeInWater == 0) skyLight = pow(skyLight, 30.0);
|
||||||
|
fakeShadow = skyLight;
|
||||||
|
#else
|
||||||
|
#ifdef SHADOWS
|
||||||
|
fakeShadow = 1.0;
|
||||||
|
#else
|
||||||
|
fakeShadow = 0.0;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return fakeShadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GetLighting(inout vec3 albedo, inout vec3 shadow, inout vec3 lightAlbedo, vec3 viewPos, float lViewPos, vec3 worldPos,
|
||||||
|
vec2 lightmap, float smoothLighting, float NdotL, float quarterNdotU,
|
||||||
|
float parallaxShadow, float emissive, float subsurface, float leaves, float materialAO) {
|
||||||
|
vec3 fullShadow = vec3(0.0);
|
||||||
|
float fullShadow1 = 0.0;
|
||||||
|
float fakeShadow = 0.0;
|
||||||
|
float shadowMult = 1.0;
|
||||||
|
float shadowTime = 1.0;
|
||||||
|
float water = 0.0;
|
||||||
|
|
||||||
|
#if PIXEL_SHADOWS > 0 && !defined GBUFFERS_HAND
|
||||||
|
worldPos = floor((worldPos + cameraPosition) * PIXEL_SHADOWS + 0.001) / PIXEL_SHADOWS - cameraPosition + 0.5 / PIXEL_SHADOWS;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined OVERWORLD || defined END || defined SEVEN
|
||||||
|
#ifdef SHADOWS
|
||||||
|
shadow = vec3(1.0);
|
||||||
|
if ((NdotL > 0.0 || subsurface > 0.001)) {
|
||||||
|
float shadowLength = shadowDistance * 0.9166667 - length(vec4(worldPos.x, worldPos.y, worldPos.y, worldPos.z));
|
||||||
|
//shadowDistance * 0.9166667 is shadowDistance - shadowDistance / 12.0
|
||||||
|
|
||||||
|
#if (defined OVERWORLD || defined SEVEN) && defined LIGHT_LEAK_FIX
|
||||||
|
if (isEyeInWater == 0) shadowLength *= float(lightmap.y > 0.001);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef TEST_12312
|
||||||
|
vec3 shadowPos = WorldToShadow(worldPos);
|
||||||
|
float distb = sqrt(shadowPos.x * shadowPos.x + shadowPos.y * shadowPos.y);
|
||||||
|
float distortFactor = distb * shadowMapBias + (1.0 - shadowMapBias);
|
||||||
|
shadowPos = DistortShadow(shadowPos, distortFactor);
|
||||||
|
|
||||||
|
bool doShadow = min2(shadowPos.xy) > 0.0
|
||||||
|
&& max2(shadowPos.xy) < 1.0;
|
||||||
|
if (!doShadow || shadowLength < 0.000001) albedo.rgb = vec3(1.0, 0.0, 1.0);
|
||||||
|
shadowLength = 999999.0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (shadowLength > 0.000001) {
|
||||||
|
#ifndef TEST_12312
|
||||||
|
vec3 shadowPos = WorldToShadow(worldPos);
|
||||||
|
float distb = sqrt(shadowPos.x * shadowPos.x + shadowPos.y * shadowPos.y);
|
||||||
|
float distortFactor = distb * shadowMapBias + (1.0 - shadowMapBias);
|
||||||
|
shadowPos = DistortShadow(shadowPos, distortFactor);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NORMAL_MAPPING
|
||||||
|
float NdotLm = clamp(dot(normal, lightVec) * 1.01 - 0.01, 0.0, 1.0) * 0.99 + 0.01;
|
||||||
|
NdotL = min(NdotL, NdotLm);
|
||||||
|
#else
|
||||||
|
float NdotLm = NdotL * 0.99 + 0.01;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float dotWorldPos = dot(worldPos.xyz, worldPos.xyz);
|
||||||
|
|
||||||
|
float biasFactor = sqrt(1.0 - NdotLm * NdotLm) / NdotLm;
|
||||||
|
float distortBias = distortFactor * shadowDistance / 256.0;
|
||||||
|
distortBias *= 8.0 * distortBias;
|
||||||
|
|
||||||
|
float bias = (distortBias * biasFactor + dotWorldPos * 0.000005 + 0.05) / shadowMapResolution;
|
||||||
|
float offset = 1.0 / shadowMapResolution;
|
||||||
|
|
||||||
|
int doSubsurface = 0;
|
||||||
|
if (subsurface > 0.001) {
|
||||||
|
if (leaves < 0.5) {
|
||||||
|
float UdotLm = clamp(dot(upVec, lightVec) * 1.01 - 0.01, 0.0, 1.0) * 0.99 + 0.01;
|
||||||
|
float biasFactorF = sqrt(1.0 - UdotLm * UdotLm) / UdotLm;
|
||||||
|
bias = (distortBias * biasFactorF + 0.05) / shadowMapResolution * 1.3;
|
||||||
|
} else bias = 0.0002;
|
||||||
|
offset = 0.002;
|
||||||
|
#if SHADOW_SUBSURFACE > 2
|
||||||
|
doSubsurface = 14;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
if (isEyeInWater == 1) offset *= 5.0;
|
||||||
|
|
||||||
|
#if PIXEL_SHADOWS > 0 && !defined GBUFFERS_HAND
|
||||||
|
bias += 0.0025 / PIXEL_SHADOWS * (1.0 + subsurface);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
shadowPos.z -= bias;
|
||||||
|
shadow = GetShadow(shadowPos, offset, water, doSubsurface);
|
||||||
|
|
||||||
|
float extraSideLight = 1.0;
|
||||||
|
shadow *= (1.0 + extraSideLight) - extraSideLight * quarterNdotU;
|
||||||
|
|
||||||
|
#if defined PROJECTED_CAUSTICS && defined WATER_CAUSTICS && defined OVERWORLD && !defined GBUFFERS_WATER
|
||||||
|
if (isEyeInWater == 0) {
|
||||||
|
water = float(water > 0.99);
|
||||||
|
water *= sqrt2(NdotL);
|
||||||
|
float shadowSum = (shadow.r + shadow.g + shadow.b) / 3.0;
|
||||||
|
water *= pow2(1.0 - shadowSum);
|
||||||
|
}
|
||||||
|
#ifdef GBUFFERS_ENTITIES
|
||||||
|
if (entityId == 1089) { // Boats
|
||||||
|
water = 0.0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
float shadowSmooth = 16.0;
|
||||||
|
if (shadowLength < shadowSmooth) {
|
||||||
|
float shadowLengthDecider = max(shadowLength / shadowSmooth, 0.0);
|
||||||
|
float skyLightShadow = GetFakeShadow(lightmap.y);
|
||||||
|
shadow = mix(vec3(skyLightShadow), shadow, shadowLengthDecider);
|
||||||
|
subsurface *= mix(subsurface * 0.5, subsurface, shadowLengthDecider);
|
||||||
|
fakeShadow = mix(1.0, fakeShadow, shadowLengthDecider);
|
||||||
|
fakeShadow = 1.0 - fakeShadow;
|
||||||
|
fakeShadow *= fakeShadow;
|
||||||
|
fakeShadow = 1.0 - fakeShadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef TEST_12312
|
||||||
|
if (shadow.r < 0.1 && albedo.r + albedo.b < 1.9) {
|
||||||
|
float timeThing1 = abs(fract(frameTimeCounter * 1.35) - 0.5) * 2.0;
|
||||||
|
float timeThing2 = abs(fract(frameTimeCounter * 1.15) - 0.5) * 2.0;
|
||||||
|
float timeThing3 = abs(fract(frameTimeCounter * 1.55) - 0.5) * 2.0;
|
||||||
|
albedo.rgb = 3.0 * pow(vec3(timeThing1, timeThing2, timeThing3), vec3(3.2));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
shadow = vec3(GetFakeShadow(lightmap.y));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined CLOUD_SHADOW && defined OVERWORLD
|
||||||
|
float cloudSize = 0.000025;
|
||||||
|
vec2 wind = vec2(frametime, 0.0) * CLOUD_SPEED * 6.0;
|
||||||
|
float cloudShadow = texture2D(noisetex, cloudSize * (wind + (worldPos.xz + cameraPosition.xz))).r;
|
||||||
|
cloudShadow += texture2D(noisetex, cloudSize * (vec2(1000.0) + wind + (worldPos.xz + cameraPosition.xz))).r;
|
||||||
|
cloudShadow = clamp(cloudShadow, 0.0, 1.0);
|
||||||
|
cloudShadow *= cloudShadow;
|
||||||
|
cloudShadow *= cloudShadow;
|
||||||
|
shadow *= cloudShadow;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ADV_MAT
|
||||||
|
#ifdef SELF_SHADOW
|
||||||
|
float shadowNdotL = min(NdotL + 0.5, 1.0);
|
||||||
|
shadowNdotL *= shadowNdotL;
|
||||||
|
shadow *= mix(1.0, parallaxShadow, shadowNdotL);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
fullShadow = shadow * max(NdotL, subsurface * (1.0 - max(rainStrengthS, (1.0 - sunVisibility)) * 0.40));
|
||||||
|
|
||||||
|
fullShadow1 = (fullShadow.r + fullShadow.g + fullShadow.b) / 3.0;
|
||||||
|
|
||||||
|
#ifdef ADV_MAT
|
||||||
|
shadow *= float(fullShadow1 > 0.01);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined OVERWORLD && !defined TWO
|
||||||
|
shadowMult = 1.0 * (1.0 - 0.95 * rainStrengthS);
|
||||||
|
|
||||||
|
shadowTime = abs(sunVisibility - 0.5) * 2.0;
|
||||||
|
shadowTime *= shadowTime;
|
||||||
|
shadowMult *= shadowTime * shadowTime;
|
||||||
|
|
||||||
|
#ifndef LIGHT_LEAK_FIX
|
||||||
|
ambientCol *= pow(lightmap.y, 2.5);
|
||||||
|
#else
|
||||||
|
if (isEyeInWater == 1) ambientCol *= pow(lightmap.y, 2.5);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec3 lightingCol = pow(lightCol, vec3(1.0 + sunVisibility * 1.5 - 0.5 * timeBrightness));
|
||||||
|
#ifdef SHADOWS
|
||||||
|
lightingCol *= (1.0 + 0.5 * leaves);
|
||||||
|
#else
|
||||||
|
lightingCol *= (1.0 + 0.4 * leaves);
|
||||||
|
#endif
|
||||||
|
vec3 shadowDecider = fullShadow * shadowMult;
|
||||||
|
if (isEyeInWater == 1) shadowDecider *= pow(min(lightmap.y * 1.03, 1.0), 200.0);
|
||||||
|
ambientCol *= AMBIENT_GROUND;
|
||||||
|
lightingCol *= LIGHT_GROUND;
|
||||||
|
vec3 sceneLighting = mix(ambientCol, lightingCol, shadowDecider);
|
||||||
|
|
||||||
|
#ifdef LIGHT_LEAK_FIX
|
||||||
|
if (isEyeInWater == 0) sceneLighting *= pow(lightmap.y, 2.5);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef END
|
||||||
|
vec3 ambientEnd = endCol * 0.07;
|
||||||
|
vec3 lightEnd = endCol * 0.17;
|
||||||
|
vec3 shadowDecider = fullShadow;
|
||||||
|
vec3 sceneLighting = mix(ambientEnd, lightEnd, shadowDecider);
|
||||||
|
sceneLighting *= END_I * (0.7 + 0.4 * vsBrightness);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef TWO
|
||||||
|
#ifndef ABYSS
|
||||||
|
vec3 sceneLighting = vec3(0.0003, 0.0004, 0.002) * 10.0;
|
||||||
|
#else
|
||||||
|
vec3 sceneLighting = pow(fogColor, vec3(0.2)) * 0.125;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined SEVEN && !defined SEVEN_2
|
||||||
|
sceneLighting = vec3(0.005, 0.006, 0.018) * 133 * (0.3 * fullShadow + 0.025);
|
||||||
|
#endif
|
||||||
|
#ifdef SEVEN_2
|
||||||
|
vec3 sceneLighting = vec3(0.005, 0.006, 0.018) * 33 * (1.0 * fullShadow + 0.025);
|
||||||
|
#endif
|
||||||
|
#if defined SEVEN || defined SEVEN_2
|
||||||
|
sceneLighting *= lightmap.y * lightmap.y;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined SHADOWS && defined OVERWORLD
|
||||||
|
if (subsurface > 0.001) {
|
||||||
|
float VdotL = clamp(dot(normalize(viewPos.xyz), lightVec), 0.0, 1.0);
|
||||||
|
|
||||||
|
vec3 subsurfaceGlow = (5.5 + 8.0 * leaves) * (1.0 - fakeShadow) * shadowTime * fullShadow * pow(VdotL, 10.0);
|
||||||
|
subsurfaceGlow *= 1.0 - rainStrengthS * 0.68;
|
||||||
|
albedo.rgb += max(albedo.g * normalize(sqrt((albedo.rgb + vec3(0.001)) * lightCol)) * subsurfaceGlow, vec3(0.0));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#ifdef NETHER
|
||||||
|
#if MC_VERSION >= 11600
|
||||||
|
if (quarterNdotU < 0.5625) quarterNdotU = 0.5625 + (0.4 - quarterNdotU * 0.7111111111111111);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if MC_VERSION >= 11600
|
||||||
|
vec3 sceneLighting = normalize(sqrt(max(fogColor, vec3(0.001)))) * 0.0385 * NETHER_I * (vsBrightness*0.5 + 0.6);
|
||||||
|
#else
|
||||||
|
vec3 sceneLighting = normalize(netherCol) * 0.0385 * NETHER_I * (vsBrightness*0.5 + 0.6);
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
vec3 sceneLighting = vec3(0.0);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DYNAMIC_SHADER_LIGHT
|
||||||
|
float handLight = min(float(heldBlockLightValue2 + heldBlockLightValue), 15.0) / 15.0;
|
||||||
|
|
||||||
|
float handLightFactor = 1.0 - min(DYNAMIC_LIGHT_DISTANCE * handLight, lViewPos) / (DYNAMIC_LIGHT_DISTANCE * handLight);
|
||||||
|
#ifdef GBUFFERS_WATER
|
||||||
|
if (mat > 0.05) handLight *= 0.9;
|
||||||
|
#endif
|
||||||
|
#ifdef GBUFFERS_HAND
|
||||||
|
handLight = min(handLight, 0.95);
|
||||||
|
#endif
|
||||||
|
float finalHandLight = handLight * handLightFactor;
|
||||||
|
lightmap.x = max(finalHandLight * 0.95, lightmap.x);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float lightmapX2 = lightmap.x * lightmap.x;
|
||||||
|
float lightmapXM1 = pow2(pow2(lightmapX2)) * lightmapX2;
|
||||||
|
float lightmapXM2 = max((lightmap.x - 0.05) * 0.925, 0.0);
|
||||||
|
float newLightmap = mix(lightmapXM1 * 5.0 + lightmapXM2, lightmapXM1 * 4.0 + lightmapXM2 * 1.5, vsBrightness);
|
||||||
|
|
||||||
|
#ifdef BLOCKLIGHT_FLICKER
|
||||||
|
float frametimeM = frametime * 0.5;
|
||||||
|
float lightFlicker = min(((1 - clamp(sin(fract(frametimeM*2.7) + frametimeM*3.7) - 0.75, 0.0, 0.25) * BLOCKLIGHT_FLICKER_STRENGTH)
|
||||||
|
* max(fract(frametimeM*1.4), (1 - BLOCKLIGHT_FLICKER_STRENGTH * 0.25))) / (1.0 - BLOCKLIGHT_FLICKER_STRENGTH * 0.2)
|
||||||
|
, 0.8) * 1.25
|
||||||
|
* 0.8 + 0.2 * clamp((cos(fract(frametimeM*0.47) * fract(frametimeM*1.17) + fract(frametimeM*2.17))) * 1.5, 1.0 - BLOCKLIGHT_FLICKER_STRENGTH * 0.25, 1.0);
|
||||||
|
newLightmap *= lightFlicker;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef RANDOM_BLOCKLIGHT
|
||||||
|
float CLr = texture2D(noisetex, 0.00006 * (worldPos.xz + cameraPosition.xz)).r;
|
||||||
|
float CLg = texture2D(noisetex, 0.00009 * (worldPos.xz + cameraPosition.xz)).r;
|
||||||
|
float CLb = texture2D(noisetex, 0.00014 * (worldPos.xz + cameraPosition.xz)).r;
|
||||||
|
blocklightCol = vec3(CLr, CLg, CLb);
|
||||||
|
blocklightCol *= blocklightCol * BLOCKLIGHT_I * 2.22;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef COLORED_LIGHT
|
||||||
|
#ifdef GBUFFERS_TERRAIN
|
||||||
|
if (lightVarying > 0.5) {
|
||||||
|
if (lightVarying < 1.5) {
|
||||||
|
lightAlbedo = albedo;
|
||||||
|
}
|
||||||
|
else if (lightVarying < 2.5) {
|
||||||
|
#ifdef COMPBR
|
||||||
|
lightAlbedo = float(eyeBrightness.x < 144) * emissive * albedo;
|
||||||
|
#else
|
||||||
|
lightAlbedo = float(eyeBrightness.x < 144) * albedo;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else if (lightVarying < 3.5) {
|
||||||
|
lightAlbedo = vec3(0.7, 0.5, 0.2);
|
||||||
|
}
|
||||||
|
else if (lightVarying < 4.5) { // Sea Lantern, Beacon, End Rod
|
||||||
|
lightAlbedo = albedo * vec3(0.6, 0.85, 1.0);
|
||||||
|
}
|
||||||
|
else if (lightVarying < 5.5) { // Sea Pickles
|
||||||
|
lightAlbedo = vec3(0.2, 0.9, 1.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//if (lViewPos > 16.0) lightAlbedo = vec3(0.0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec3 blocklightComplex = texture2D(colortex9, texCoord).rgb;
|
||||||
|
blocklightComplex *= 0.75 + 2.0 * blocklightComplex.b;
|
||||||
|
|
||||||
|
blocklightCol = mix(blocklightCol, blocklightComplex, 0.7);
|
||||||
|
|
||||||
|
#ifdef DYNAMIC_SHADER_LIGHT
|
||||||
|
#include "/lib/ifchecks/heldColoredLighting.glsl"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec3 blockLighting = blocklightCol * newLightmap * newLightmap;
|
||||||
|
|
||||||
|
vec3 minLighting = vec3(0.000000000001 + (MIN_LIGHT * 0.0035 * (vsBrightness*0.0775 + 0.0125)));
|
||||||
|
#ifndef MIN_LIGHT_EVERYWHERE
|
||||||
|
minLighting *= (1.0 - eBS);
|
||||||
|
#endif
|
||||||
|
#ifdef GBUFFERS_WATER
|
||||||
|
minLighting *= 2.0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float shade = pow(quarterNdotU, SHADING_STRENGTH);
|
||||||
|
|
||||||
|
vec3 emissiveLighting = albedo.rgb * emissive * 20.0 / shade * EMISSIVE_MULTIPLIER;
|
||||||
|
|
||||||
|
float nightVisionLighting = nightVision * 0.25;
|
||||||
|
|
||||||
|
if (smoothLighting > 0.01) {
|
||||||
|
smoothLighting = clamp(smoothLighting, 0.0, 1.0);
|
||||||
|
#if VAO_STRENGTH == 10
|
||||||
|
smoothLighting *= smoothLighting;
|
||||||
|
#else
|
||||||
|
smoothLighting = pow(smoothLighting, 0.2 * VAO_STRENGTH);
|
||||||
|
#endif
|
||||||
|
} else smoothLighting = 1.0;
|
||||||
|
|
||||||
|
if (materialAO < 1.0) {
|
||||||
|
smoothLighting *= pow(materialAO, max(1.0 - shadowTime * length(shadow) * NdotL - lmCoord.x, 0.0));
|
||||||
|
}
|
||||||
|
|
||||||
|
albedo *= sceneLighting + blockLighting + emissiveLighting + nightVisionLighting + minLighting;
|
||||||
|
albedo *= shade;
|
||||||
|
albedo *= smoothLighting;
|
||||||
|
|
||||||
|
#if defined WATER_CAUSTICS && defined OVERWORLD
|
||||||
|
#if defined PROJECTED_CAUSTICS && !defined GBUFFERS_WATER
|
||||||
|
if (water > 0.0 || isEyeInWater == 1) {
|
||||||
|
#else
|
||||||
|
if ((isEyeInWater != 0 && isEyeInWater != 2 && isEyeInWater != 3)) {
|
||||||
|
// Not just doing (isEyeInWater == 1) to fix caustics appearing in shadows on AMD Mesa with Iris
|
||||||
|
#endif
|
||||||
|
vec3 albedoCaustic = albedo;
|
||||||
|
|
||||||
|
float skyLightMap = lightmap.y * lightmap.y * (3.0 - 2.0 * lightmap.y);
|
||||||
|
float skyLightMapA = pow2(pow2((1.0 - skyLightMap)));
|
||||||
|
float skyLightMapB = skyLightMap > 0.98 ? (1.0 - skyLightMap) * 50.0 : 1.0;
|
||||||
|
|
||||||
|
float causticfactor = 1.0 - lightmap.x * 0.8;
|
||||||
|
|
||||||
|
vec3 causticpos = worldPos.xyz + cameraPosition.xyz;
|
||||||
|
float caustic = getCausticWaves(causticpos);
|
||||||
|
vec3 causticcol = underwaterColor.rgb / UNDERWATER_I;
|
||||||
|
|
||||||
|
#if defined PROJECTED_CAUSTICS && !defined GBUFFERS_WATER
|
||||||
|
if (isEyeInWater == 0) {
|
||||||
|
causticfactor *= 1.0 - skyLightMapA;
|
||||||
|
causticfactor *= 10.0;
|
||||||
|
|
||||||
|
causticcol = sqrt(normalize(waterColor.rgb + vec3(0.01)) * 0.32 * sqrt(UNDERWATER_I));
|
||||||
|
#ifndef WATER_ABSORPTION
|
||||||
|
albedoCaustic = albedo.rgb * causticcol * 3.0;
|
||||||
|
causticcol *= 0.53;
|
||||||
|
#else
|
||||||
|
albedoCaustic = albedo.rgb * water * 1.74;
|
||||||
|
causticcol = sqrt(causticcol) * 0.2;
|
||||||
|
#endif
|
||||||
|
} else {
|
||||||
|
#endif
|
||||||
|
causticfactor *= shadow.g * sqrt2(NdotL) * (1.0 - rainStrengthS);
|
||||||
|
causticfactor *= 0.25 - 0.15 * skyLightMapA;
|
||||||
|
causticfactor *= skyLightMapB;
|
||||||
|
|
||||||
|
albedoCaustic = (albedo.rgb + albedo.rgb * underwaterColor.rgb * 16.0) * 0.225;
|
||||||
|
#ifdef WATER_ABSORPTION
|
||||||
|
albedoCaustic *= 1.5;
|
||||||
|
#endif
|
||||||
|
albedoCaustic += albedo.rgb * underwaterColor.rgb * caustic * sqrt1(lightmap.x) * 4.0 * skyLightMapB;
|
||||||
|
causticcol = sqrt(causticcol) * 30.0;
|
||||||
|
#if defined PROJECTED_CAUSTICS && !defined GBUFFERS_WATER
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec3 lightcaustic = caustic * causticfactor * causticcol * UNDERWATER_I;
|
||||||
|
albedoCaustic *= 1.0 + lightcaustic;
|
||||||
|
|
||||||
|
#if defined PROJECTED_CAUSTICS && !defined GBUFFERS_WATER
|
||||||
|
if (isEyeInWater == 0) albedo = mix(albedo, albedoCaustic, max(water - rainStrengthS, 0.0));
|
||||||
|
else albedo = albedoCaustic;
|
||||||
|
#else
|
||||||
|
albedo = albedoCaustic;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined GBUFFERS_HAND && defined HAND_BLOOM_REDUCTION
|
||||||
|
float albedoStrength = (albedo.r + albedo.g + albedo.b) / 10.0;
|
||||||
|
if (albedoStrength > 1.0) albedo.rgb = albedo.rgb * max(2.0 - albedoStrength, 0.34);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if MC_VERSION >= 11900
|
||||||
|
albedo *= 1.0 - clamp(darknessLightFactor * (2.0 - emissive * 10000.0), 0.0, 1.0);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user