custommods

This commit is contained in:
samsonsin
2025-05-29 23:31:29 +02:00
committed by samsonsin
parent 7a590ecbfc
commit f4bd9ce61d
800 changed files with 19540 additions and 0 deletions

4
.gitattributes vendored
View File

@@ -17,5 +17,9 @@
*.properties filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.fsh filter=lfs diff=lfs merge=lfs -text
*.vsh filter=lfs diff=lfs merge=lfs -text
*.glsl filter=lfs diff=lfs merge=lfs -text
*.mcmeta filter=lfs diff=lfs merge=lfs -text
* !text !filter !merge !diff
*.zip !text !filter !merge !diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View 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

View File

@@ -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)

View 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

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/composite.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/composite.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/composite1.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/composite1.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/composite2.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/composite2.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/composite3.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/composite3.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/composite4.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/composite4.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/composite5.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/composite5.glsl"

View File

@@ -0,0 +1,5 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/composite6.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/composite6.glsl"

View File

@@ -0,0 +1,5 @@
#version 130
#define FSH
#include "/program/composite7.glsl"

View File

@@ -0,0 +1,5 @@
#version 130
#define VSH
#include "/program/composite7.glsl"

View File

@@ -0,0 +1,5 @@
#version 130
#define FSH
#include "/program/deferred.glsl"

View File

@@ -0,0 +1,5 @@
#version 130
#define VSH
#include "/program/deferred.glsl"

View File

@@ -0,0 +1,7 @@
#version 130
#define DEFERRED
#define OVERWORLD
#define FSH
#include "/program/deferred1.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/deferred1.glsl"

View File

@@ -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

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/final.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/final.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/gbuffers_armor_glint.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/gbuffers_armor_glint.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/gbuffers_basic.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/gbuffers_basic.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/gbuffers_beaconbeam.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/gbuffers_beaconbeam.glsl"

View File

@@ -0,0 +1,7 @@
#version 130
#define GBUFFERS_BLOCK
#define OVERWORLD
#define FSH
#include "/program/gbuffers_block.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/gbuffers_block.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/gbuffers_clouds.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/gbuffers_clouds.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/gbuffers_damagedblock.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/gbuffers_damagedblock.glsl"

View File

@@ -0,0 +1,7 @@
#version 130
#define GBUFFERS_ENTITIES
#define OVERWORLD
#define FSH
#include "/program/gbuffers_entities.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/gbuffers_entities.glsl"

View File

@@ -0,0 +1,8 @@
#version 130
#define GBUFFERS_ENTITIES
#define GBUFFERS_ENTITIES_GLOWING
#define OVERWORLD
#define FSH
#include "/program/gbuffers_entities.glsl"

View File

@@ -0,0 +1,7 @@
#version 130
#define GBUFFERS_ENTITIES_GLOWING
#define OVERWORLD
#define VSH
#include "/program/gbuffers_entities.glsl"

View File

@@ -0,0 +1,7 @@
#version 130
#define GBUFFERS_HAND
#define OVERWORLD
#define FSH
#include "/program/gbuffers_hand.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/gbuffers_hand.glsl"

View File

@@ -0,0 +1,7 @@
#version 130
#define OVERWORLD
#define FSH
#define GBUFFERS_LINE
#include "/program/gbuffers_basic.glsl"

View File

@@ -0,0 +1,7 @@
#version 130
#define OVERWORLD
#define VSH
#define GBUFFERS_LINE
#include "/program/gbuffers_basic.glsl"

View File

@@ -0,0 +1,7 @@
#version 130
#define OVERWORLD
#define GBUFFERS_SKYBASIC
#define FSH
#include "/program/gbuffers_skybasic.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/gbuffers_skybasic.glsl"

View File

@@ -0,0 +1,8 @@
#version 130
#define OVERWORLD
#define FSH
#define GBUFFERS_SKYTEXTURED
#include "/program/gbuffers_skytextured.glsl"

View File

@@ -0,0 +1,8 @@
#version 130
#define OVERWORLD
#define VSH
#define GBUFFERS_SKYTEXTURED
#include "/program/gbuffers_skytextured.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/gbuffers_spidereyes.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/gbuffers_spidereyes.glsl"

View File

@@ -0,0 +1,7 @@
#version 130
#define GBUFFERS_TERRAIN
#define OVERWORLD
#define FSH
#include "/program/gbuffers_terrain.glsl"

View File

@@ -0,0 +1,7 @@
#version 130
#define OVERWORLD
#define VSH
#define GBUFFERS_TERRAIN
#include "/program/gbuffers_terrain.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/gbuffers_textured.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/gbuffers_textured.glsl"

View File

@@ -0,0 +1,8 @@
#version 130
#define GBUFFERS_WATER
#define OVERWORLD
#define WATER
#define FSH
#include "/program/gbuffers_water.glsl"

View File

@@ -0,0 +1,7 @@
#version 130
#define OVERWORLD
#define WATER
#define VSH
#include "/program/gbuffers_water.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define FSH
#include "/program/gbuffers_weather.glsl"

View File

@@ -0,0 +1,6 @@
#version 130
#define OVERWORLD
#define VSH
#include "/program/gbuffers_weather.glsl"

View File

@@ -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

View File

@@ -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;
}
}

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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.

View File

@@ -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;

View File

@@ -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

View File

@@ -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

View File

@@ -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);

View File

@@ -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;

View File

@@ -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

View File

@@ -0,0 +1,2 @@
vec3 selectionColSqrt = vec3(SELECTION_R, SELECTION_G, SELECTION_B) * SELECTION_I / 255.0;
vec3 selectionCol = selectionColSqrt * selectionColSqrt;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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));
}

View File

@@ -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));
}
/**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**/

View File

@@ -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

View File

@@ -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

View File

@@ -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;
}

Some files were not shown because too many files have changed in this diff Show More