mirror of
https://github.com/Merlin1809/Eclipse-Shader.git
synced 2026-10-11 09:48:17 +08:00
Add water and puddle ripples, fix snow normal for real this time
This commit is contained in:
1 parent
abe97e97d9
commit
7d0980ab39
11 files changed
+176
-47
No files matched your search
@@ -421,6 +421,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
||||
BackgroundReflection = skyCloudsFromTex(mat3(gbufferModelViewInverse) * reflectedVector, colortex4).rgb / 1200.0;
|
||||
#endif
|
||||
#ifdef WATER_SUN_SPECULAR
|
||||
if(iswater) DirectLightColor *= WATER_SUN_REFLECTION_STRENGTH;
|
||||
SunReflection = (DirectLightColor * Shadows) * GGX(normalize(normals), -normalize(viewPos), normalize(WsunVec2), roughness, f0) * (1.0-Reflections.a);
|
||||
#endif
|
||||
|
||||
@@ -455,7 +456,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
||||
|
||||
#ifdef DH_CHUNK_FADING
|
||||
if (!iswater){
|
||||
float viewDist = length(mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz);
|
||||
float viewDist = length(playerPos);
|
||||
|
||||
float ditherFade = smoothstep(max(far-9,9), far-1, viewDist);
|
||||
if (step(bayerDither()/ditherFade, ditherFade) == 0.0) discard;
|
||||
|
||||
@@ -390,7 +390,7 @@ void main() {
|
||||
#endif
|
||||
|
||||
#if !defined WEATHER || (defined DISTANT_HORIZONS && defined DH_CHUNK_FADING)
|
||||
float viewDist = length(mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz);
|
||||
float viewDist = length(feetPlayerPos + gbufferModelViewInverse[3].xyz);
|
||||
#endif
|
||||
|
||||
#ifndef WEATHER
|
||||
|
||||
@@ -211,10 +211,14 @@ vec3 getParallaxDisplacement(vec3 waterPos, vec3 playerPos) {
|
||||
return parallaxPos;
|
||||
}
|
||||
|
||||
vec3 applyBump(mat3 tbnMatrix, vec3 bump, float puddle_values){
|
||||
vec3 applyBump(mat3 tbnMatrix, vec3 bump, float puddle_values, vec3 rippleBump){
|
||||
float bumpmult = puddle_values;
|
||||
bump = bump * vec3(bumpmult, bumpmult, bumpmult) + vec3(0.0f, 0.0f, 1.0f - bumpmult);
|
||||
//
|
||||
bump = bump * bumpmult + vec3(0.0f, 0.0f, 1.0f - bumpmult);
|
||||
|
||||
#if defined PHYSICSMOD_OCEAN_SHADER && defined PHYSICS_OCEAN
|
||||
bump += 4.0 * rippleBump;
|
||||
#endif
|
||||
|
||||
return normalize(bump*tbnMatrix);
|
||||
}
|
||||
|
||||
@@ -282,8 +286,9 @@ uniform float dhFarPlane;
|
||||
|
||||
#include "/lib/DistantHorizons_projections.glsl"
|
||||
|
||||
|
||||
|
||||
#ifdef RIPPLE_WATER
|
||||
#include "/lib/ripples.glsl"
|
||||
#endif
|
||||
|
||||
// #undef BASIC_SHADOW_FILTER
|
||||
|
||||
@@ -418,6 +423,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
||||
// 0.9 = entity mask
|
||||
// 0.8 = reflective entities
|
||||
// 0.7 = reflective blocks
|
||||
// 0.6 = nether portal
|
||||
// 0.4 = translucent particles
|
||||
// 0.3 = hand mask
|
||||
|
||||
@@ -430,6 +436,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
||||
bool isReflectiveEntity = abs(MATERIALS - 0.8) < 0.01;
|
||||
bool isReflective = abs(MATERIALS - 0.7) < 0.01 || isWater || isReflectiveEntity;
|
||||
bool isEntity = abs(MATERIALS - 0.9) < 0.01 || isReflectiveEntity;
|
||||
bool isNetherPortal = abs(MATERIALS - 0.6) < 0.01;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////// ALBEDO /////////////////////////////////////
|
||||
@@ -453,17 +460,21 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
||||
if (isWater){
|
||||
Albedo = vec3(0.0);
|
||||
gl_FragData[0].a = 1.0/255.0;
|
||||
|
||||
}
|
||||
#if defined DISTANT_HORIZONS && defined DH_CHUNK_FADING
|
||||
float viewDist = length((mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz));
|
||||
float ditherFade = smoothstep(0.98 * far, 1.03 * far, viewDist);
|
||||
|
||||
if (step(ditherFade, bayerDither()) == 0.0) discard;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
vec3 shadowPlayerPos = feetPlayerPos + gbufferModelViewInverse[3].xyz;
|
||||
#if (defined DISTANT_HORIZONS && defined DH_CHUNK_FADING) || defined RIPPLE_WATER
|
||||
float viewDist = length(shadowPlayerPos);
|
||||
#endif
|
||||
|
||||
#if defined DISTANT_HORIZONS && defined DH_CHUNK_FADING
|
||||
float ditherFade = smoothstep(0.98 * far, 1.03 * far, viewDist);
|
||||
|
||||
if (step(ditherFade, bayerDither()) == 0.0) discard;
|
||||
#endif
|
||||
|
||||
#if defined LIGHTNING
|
||||
Albedo = vec3(1.0,2.0,6.0);
|
||||
#endif
|
||||
@@ -523,6 +534,9 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
||||
NormalTex.xy = NormalTex.xy*2.0-1.0;
|
||||
NormalTex.z = clamp(sqrt(1.0 - dot(NormalTex.xy, NormalTex.xy)),0.0,1.0);
|
||||
|
||||
vec3 rippleBump = vec3(0.0);
|
||||
|
||||
vec2 lightmap = lmtexcoord.zw;
|
||||
#if !defined HAND
|
||||
if (isWater){
|
||||
vec3 playerPos = (mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz);
|
||||
@@ -536,7 +550,16 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
||||
waterPos.xy = newPos;
|
||||
|
||||
waterPos.xyz = getParallaxDisplacement(waterPos, playerPos);
|
||||
|
||||
|
||||
#ifdef RIPPLE_WATER
|
||||
float effectStrength = smoothstep(0.85, 1.0, max(lightmap.y-step(1.0,lightmap.x), 0.0));
|
||||
|
||||
if(viewDist < 35 && waterPos.y <= 0.0) {
|
||||
rippleBump = ripples(feetPlayerPos.xz+cameraPosition.xz);
|
||||
waterPos.xyz += 14 * rippleBump * rainStrength * effectStrength * smoothstep(35, 10, viewDist);
|
||||
}
|
||||
#endif
|
||||
|
||||
vec3 bump = normalize(getWaveNormal(waterPos, playerPos, false));
|
||||
|
||||
float bumpmult = WATER_WAVE_STRENGTH;
|
||||
@@ -550,9 +573,10 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
||||
TangentNormal = NormalTex.xy;
|
||||
|
||||
#if defined PHYSICSMOD_OCEAN_SHADER && defined PHYSICS_OCEAN
|
||||
normal = mix(applyBump(tbnMatrix, NormalTex.xyz, 1.0), applyBump(tbnMatrix, NormalTex.xyz, PHYSICS_OCEAN_TRANSITION), smoothstep(0.0, 0.1, physics_localWaviness));
|
||||
rippleBump *= physics_localWaviness;
|
||||
normal = mix(applyBump(tbnMatrix, NormalTex.xyz, 1.0, rippleBump), applyBump(tbnMatrix, NormalTex.xyz, PHYSICS_OCEAN_TRANSITION, rippleBump), smoothstep(0.0, 0.1, physics_localWaviness));
|
||||
#else
|
||||
normal = applyBump(tbnMatrix, NormalTex.xyz, 1.0);
|
||||
normal = applyBump(tbnMatrix, NormalTex.xyz, 1.0, rippleBump);
|
||||
#endif
|
||||
|
||||
worldSpaceNormal = viewToWorld(normal);
|
||||
@@ -579,8 +603,6 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
||||
//////////////////////////////// DIFFUSE LIGHTING //////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
vec2 lightmap = lmtexcoord.zw;
|
||||
|
||||
// lightmap.y = 1.0;
|
||||
|
||||
#ifndef OVERWORLD_SHADER
|
||||
@@ -631,8 +653,6 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
||||
|
||||
float LM_shadowMapFallback = min(max(lightmap.y-0.8, 0.0) * 25,1.0);
|
||||
|
||||
vec3 shadowPlayerPos = mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz;
|
||||
|
||||
Shadows = ComputeShadowMap(DirectLightColor, shadowPlayerPos, shadowMapFalloff, blueNoise());
|
||||
|
||||
// Shadows = mix(LM_shadowMapFallback, Shadows, shadowMapFalloff2);
|
||||
@@ -754,7 +774,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
||||
vec3 DirectLightColor = WsunVec;
|
||||
float Shadows = 0.0;
|
||||
#endif
|
||||
|
||||
if(isWater) DirectLightColor *= WATER_SUN_REFLECTION_STRENGTH;
|
||||
vec3 specularReflections = specularReflections(viewPos, normalize(feetPlayerPos), WsunVec, vec3(blueNoise(), vec2(interleaved_gradientNoise_temporal())), worldSpaceNormal, roughness, f0, Albedo, FinalColor*gl_FragData[0].a, DirectLightColor * Shadows, lightmap.y, isHand, isWater, reflectance, flashLightSpecularData);
|
||||
|
||||
gl_FragData[0].a = gl_FragData[0].a + (1.0-gl_FragData[0].a) * reflectance;
|
||||
|
||||
@@ -181,6 +181,7 @@ void main() {
|
||||
// 0.9 = entity mask
|
||||
// 0.8 = reflective entities
|
||||
// 0.7 = reflective blocks
|
||||
// 0.6 = nether portal
|
||||
float mat = 0.0;
|
||||
|
||||
// water mask
|
||||
@@ -197,6 +198,8 @@ void main() {
|
||||
// translucent blocks
|
||||
if (mc_Entity.x >= 301 && mc_Entity.x <= 321) mat = 0.7;
|
||||
|
||||
if (mc_Entity.x == 320) mat = 0.6;
|
||||
|
||||
#if defined ENTITIES && defined IS_IRIS
|
||||
NAMETAG = 0;
|
||||
if (entityId == 1600) NAMETAG = 1;
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
|
||||
const bool colortex5MipmapEnabled = true;
|
||||
uniform float nightVision;
|
||||
uniform float frameTimeCounter;
|
||||
uniform float rainStrength;
|
||||
|
||||
#ifdef OVERWORLD_SHADER
|
||||
const bool shadowHardwareFiltering = true;
|
||||
@@ -39,6 +41,12 @@ uniform float nightVision;
|
||||
uniform sampler2D snowTexR;
|
||||
#endif
|
||||
|
||||
#if defined RIPPLE_PUDDLES && defined Puddles
|
||||
#include "/lib/ripples.glsl"
|
||||
#endif
|
||||
|
||||
#include "/lib/stars.glsl"
|
||||
|
||||
#ifdef REALMOON
|
||||
uniform sampler2D moon;
|
||||
#else
|
||||
@@ -128,9 +136,7 @@ uniform float eyeAltitude;
|
||||
flat varying vec2 TAA_Offset;
|
||||
|
||||
uniform int frameCounter;
|
||||
uniform float frameTimeCounter;
|
||||
|
||||
uniform float rainStrength;
|
||||
uniform int isEyeInWater;
|
||||
uniform ivec2 eyeBrightnessSmooth;
|
||||
|
||||
@@ -171,7 +177,6 @@ float convertHandDepth_2(in float depth, bool hand) {
|
||||
|
||||
#include "/lib/Shadow_Params.glsl"
|
||||
#include "/lib/Shadows.glsl"
|
||||
#include "/lib/stars.glsl"
|
||||
#include "/lib/sky_gradient.glsl"
|
||||
|
||||
#ifdef OVERWORLD_SHADER
|
||||
@@ -726,8 +731,23 @@ uniform float wetness;
|
||||
float wetnessStages = mix(puddles, 1.0, fullWet) * effectStrength;
|
||||
if(isWater) wetnessStages = 0.0;
|
||||
|
||||
normals = mix(normals, flatNormals, puddles * effectStrength * clamp(flatNormals.y,0.0,1.0));
|
||||
roughness = mix(roughness, snowR, wetnessStages * Puddle_Reflection_Strength);
|
||||
#ifdef RIPPLE_PUDDLES
|
||||
float viewDist = length(worldPos - cameraPosition);
|
||||
vec3 rippleNormal = flatNormals;
|
||||
|
||||
if(viewDist < 35 && rainStrength > 0.0) {
|
||||
vec3 ripple = ripples(1.2 * worldPos.xz);
|
||||
|
||||
ripple = ripple.xzy;
|
||||
rippleNormal = mix(flatNormals, ripple, smoothstep(35, 10, viewDist) * rainStrength);
|
||||
}
|
||||
|
||||
normals = mix(normals, rippleNormal, effectStrength * clamp(flatNormals.y,0.0,1.0));
|
||||
#else
|
||||
normals = mix(normals, flatNormals, puddles * effectStrength * clamp(flatNormals.y,0.0,1.0));
|
||||
#endif
|
||||
|
||||
roughness = mix(roughness, 0.5*(1+snowR), wetnessStages * Puddle_Reflection_Strength);
|
||||
|
||||
if(f0 < 229.5/255.0 ) albedo = pow(albedo * (1.0 - 0.08*wetnessStages), vec3(1.0 + 0.7*wetnessStages));
|
||||
}
|
||||
@@ -742,6 +762,8 @@ uniform float wetness;
|
||||
|
||||
vec3 snowA = pow(texture2D(snowTexA, snowCoords).rgb, vec3(2.0/(ShaderSnowStrength-0.1)));
|
||||
vec3 snowN = 2*texture2D(snowTexN, snowCoords).rgb - 1;
|
||||
|
||||
snowN = vec3(snowN.x, snowN.z, snowN.y);
|
||||
|
||||
float omSA = 1-snowAmount;
|
||||
|
||||
|
||||
+18
-9
@@ -544,15 +544,6 @@ screen.POM = Parallax Occlusion Mapping / POM
|
||||
|
||||
screen.Porosity = Porosity / Puddles
|
||||
option.Porosity = Porosity
|
||||
option.Puddles = Puddles
|
||||
option.Puddle_Size = Puddle Size Multiplier
|
||||
option.Puddle_Reflection_Strength = Puddle Reflection Strength
|
||||
option.ShaderSnow = Shader Snow Effect
|
||||
value.ShaderSnow.0 = Off
|
||||
value.ShaderSnow.1 = When snowing
|
||||
value.ShaderSnow.2 = When in snowy Biome
|
||||
value.ShaderSnow.3 = Always on
|
||||
option.ShaderSnowStrength = Shader Snow Strength
|
||||
|
||||
option.MATERIAL_AO = Material Ambient Occlusion
|
||||
|
||||
@@ -588,6 +579,8 @@ option.AEROCHROME_PINKNESS.comment = Higher = Pink. Lower = Red
|
||||
option.AEROCHROME_WOOL_ENABLED.comment = Technically wool things should be affected but it ruins a lot of builds. Enable to be more technically correct.
|
||||
|
||||
option.EMISSIVE_ORES = Emissive Ores
|
||||
option.PLANET_CURVATURE = Planet Curvature
|
||||
option.CURVATURE_AMOUNT = Curvature Amount
|
||||
|
||||
option.USE_CUSTOM_DIFFUSE_LIGHTING_COLORS = Custom Diffuse Colors
|
||||
option.DIRECTLIGHT_DIFFUSE_R = Sun R
|
||||
@@ -739,6 +732,22 @@ screen.World.comment = Configure settings for various things that happen in the
|
||||
|
||||
screen.Water_fog_color.comment = Configure colors of the water fog.
|
||||
|
||||
option.WATER_SUN_REFLECTION_STRENGTH = Water sun reflection strength
|
||||
|
||||
screen.World_Effects = World Effects
|
||||
option.Puddles = Puddles
|
||||
option.Puddle_Size = Puddle Size Multiplier
|
||||
option.Puddle_Reflection_Strength = Puddle Reflection Strength
|
||||
option.ShaderSnow = Shader Snow Effect
|
||||
value.ShaderSnow.0 = Off
|
||||
value.ShaderSnow.1 = When snowing
|
||||
value.ShaderSnow.2 = When in snowy Biome
|
||||
value.ShaderSnow.3 = Always on
|
||||
option.ShaderSnowStrength = Shader Snow Strength
|
||||
option.RIPPLE_WATER = Ripples on Water
|
||||
option.RIPPLE_PUDDLES = Ripples on Puddles
|
||||
option.RIPPLE_INTENSITY = Ripple Intensity
|
||||
|
||||
screen.Climate.comment = Configure settings related to the climate, like seasonal colors, daily weather, and biome specific fog.
|
||||
screen.Seasons.comment = Seasonal colors that cycle through, summer, fall, winter, and spring.
|
||||
option.Seasons.comment = Seasonal colors that cycle through, summer, fall, winter, and spring. §aPERFORMANCE COST:§r low
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
// RIPPLE CODE FROM https://www.shadertoy.com/view/ldfyzl
|
||||
|
||||
/*
|
||||
|
||||
A quick experiment with rain drop ripples.
|
||||
|
||||
This effect was written for and used in the launch scene of the
|
||||
64kB PC intro "H - Immersion", by Ctrl-Alt-Test.
|
||||
|
||||
> http://www.ctrl-alt-test.fr/productions/h-immersion/
|
||||
> https://www.youtube.com/watch?v=27PN1SsXbjM
|
||||
|
||||
--
|
||||
Zavie / Ctrl-Alt-Test
|
||||
|
||||
*/
|
||||
|
||||
// Return random noise in the range [0.0, 1.0], as a function of x.
|
||||
float hash12(vec2 p)
|
||||
{
|
||||
vec3 p3 = fract(vec3(p.xyx) * .1031);
|
||||
p3 += dot(p3, p3.yzx + 19.19);
|
||||
return fract((p3.x + p3.y) * p3.z);
|
||||
}
|
||||
|
||||
vec2 hash22(vec2 p)
|
||||
{
|
||||
vec3 p3 = fract(vec3(p.xyx) * vec3(.1031, .1030, .0973));
|
||||
p3 += dot(p3, p3.yzx+19.19);
|
||||
return fract((p3.xx+p3.yz)*p3.zy);
|
||||
|
||||
}
|
||||
|
||||
vec3 ripples(vec2 fragCoord) {
|
||||
float cell_density = 5 * RIPPLE_INTENSITY;
|
||||
|
||||
float size_compensation = cell_density / 5.0;
|
||||
|
||||
vec2 uv = fragCoord * cell_density;
|
||||
vec2 p0 = floor(uv);
|
||||
|
||||
int MAX_RADIUS = 1;
|
||||
|
||||
float wave_frequency = 21;
|
||||
|
||||
vec2 circles = vec2(0.);
|
||||
for (int j = -MAX_RADIUS; j <= MAX_RADIUS; ++j) {
|
||||
for (int i = -MAX_RADIUS; i <= MAX_RADIUS; ++i) {
|
||||
vec2 pi = p0 + vec2(i, j);
|
||||
|
||||
vec2 hsh = pi;
|
||||
|
||||
vec2 p = pi + hash22(hsh);
|
||||
|
||||
float t = fract(0.9 * frameTimeCounter + hash12(hsh));
|
||||
vec2 v = p - uv;
|
||||
|
||||
float d = length(v) - ( (float(MAX_RADIUS) + 1.) * t ) * size_compensation;
|
||||
|
||||
float h = 1e-2;
|
||||
float d1 = d - h;
|
||||
float d2 = d + h;
|
||||
float p1 = sin(wave_frequency*d1) * smoothstep(-0.6, -0.3, d1) * smoothstep(0., -0.3, d1);
|
||||
float p2 = sin(wave_frequency*d2) * smoothstep(-0.6, -0.3, d2) * smoothstep(0., -0.3, d2);
|
||||
circles += 0.5 * normalize(v) * ((p2 - p1) / (2. * h) * (1. - t) * (1. - t));
|
||||
}
|
||||
}
|
||||
circles /= float((MAX_RADIUS*2+1)*(MAX_RADIUS*2+1));
|
||||
|
||||
vec3 n = vec3(circles, sqrt(1.0 - dot(circles, circles)));
|
||||
return n;
|
||||
}
|
||||
@@ -24,6 +24,7 @@
|
||||
#define MINIMUM_WATER_ABSORBANCE -1 // [-1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 60 70 80 90 100]
|
||||
#define rayMarchSampleCount 2 // [1 2 3 4 6 8 12 16 32 64]
|
||||
#define Water_Top_Layer 62.90 // [0.90 1.90 2.90 3.90 4.90 5.90 6.90 7.90 8.90 9.90 10.90 11.90 12.90 13.90 14.90 15.90 16.90 17.90 18.90 19.90 20.90 21.90 22.90 23.90 24.90 25.90 26.90 27.90 28.90 29.90 30.90 31.90 32.90 33.90 34.90 35.90 36.90 37.90 38.90 39.90 40.90 41.90 42.90 43.90 44.90 45.90 46.90 47.90 48.90 49.90 50.90 51.90 52.90 53.90 54.90 55.90 56.90 57.90 58.90 59.90 60.90 61.90 62.90 63.90 64.90 65.90 66.90 67.90 68.90 69.90 70.90 71.90 72.90 73.90 74.90 75.90 76.90 77.90 78.90 79.90 80.90 81.90 82.90 83.90 84.90 85.90 86.90 87.90 88.90 89.90 90.90 91.90 92.90 93.90 94.90 95.90 96.90 97.90 98.90 99.90 100.90 101.90 102.90 103.90 104.90 105.90 106.90 107.90 108.90 109.90 110.90 111.90 112.90 113.90 114.90 115.90 116.90 117.90 118.90 119.90 120.90 121.90 122.90 123.90 124.90 125.90 126.90 127.90 128.90 129.90 130.90 131.90 132.90 133.90 134.90 135.90 136.90 137.90 138.90 139.90 140.90 141.90 142.90 143.90 144.90 145.90 146.90 147.90 148.90 149.90 150.90 151.90 152.90 153.90 154.90 155.90 156.90 157.90 158.90 159.90 160.90 161.90 162.90 163.90 164.90 165.90 166.90 167.90 168.90 169.90 170.90 171.90 172.90 173.90 174.90 175.90 176.90 177.90 178.90 179.90 180.90 181.90 182.90 183.90 184.90 185.90 186.90 187.90 188.90 189.90 190.90 191.90 192.90 193.90 194.90 195.90 196.90 197.90 198.90 199.90]
|
||||
#define WATER_SUN_REFLECTION_STRENGTH 1 // [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70]
|
||||
|
||||
#define FAKE_REFRACTION_EFFECT
|
||||
#define FAKE_DISPERSION_EFFECT
|
||||
@@ -283,9 +284,14 @@ const float entityShadowDistanceMul = 0.25; // [0.01 0.02 0.03 0.04 0.05 0.10 0.
|
||||
#define Puddles // yes
|
||||
#define Puddle_Size 1.0 // [0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5]
|
||||
#define Puddle_Reflection_Strength 0.9 // [0.7 0.75 0.8 0.85 0.9 0.95 1.0]
|
||||
|
||||
#define ShaderSnow 1 // [0 1 2 3]
|
||||
#define ShaderSnowStrength 1.0 // [0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5]
|
||||
|
||||
#define RIPPLE_WATER
|
||||
#define RIPPLE_PUDDLES
|
||||
#define RIPPLE_INTENSITY 0.85 // [0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1.0]
|
||||
|
||||
// #define MATERIAL_AO
|
||||
|
||||
|
||||
@@ -352,7 +358,7 @@ uniform int moonPhase;
|
||||
#define VOLUMETRIC_CLOUDS
|
||||
#define CLOUDS_QUALITY 0.5 // [0.1 0.125 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.9 1.0]
|
||||
|
||||
#define Cloud_Speed 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 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0]
|
||||
#define Cloud_Speed 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.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0]
|
||||
|
||||
#ifdef VOLUMETRIC_CLOUDS
|
||||
#ifndef ambientLight_only
|
||||
|
||||
@@ -1,14 +1,6 @@
|
||||
//Original star code : https://www.shadertoy.com/view/Md2SR3 , optimised
|
||||
|
||||
|
||||
|
||||
// Return random noise in the range [0.0, 1.0], as a function of x.
|
||||
float hash12(vec2 p)
|
||||
{
|
||||
vec3 p3 = fract(vec3(p.xyx) * 0.1031);
|
||||
p3 += dot(p3, p3.yzx + 19.19);
|
||||
return fract((p3.x + p3.y) * p3.z);
|
||||
}
|
||||
// 1 out, 3 in...
|
||||
float hash13(vec3 p3)
|
||||
{
|
||||
|
||||
@@ -167,7 +167,7 @@ alphaTest.gbuffers_water = false
|
||||
alphaTest.gbuffers_skybasic = false
|
||||
alphaTest.gbuffers_skytextured = false
|
||||
|
||||
sliders = CUSTOM_LIGHTNING_SCALE CUSTOM_LIGHTNING_R CUSTOM_LIGHTNING_G CUSTOM_LIGHTNING_B CUSTOM_LIGHTNING_TEX CUSTOM_LIGHTNING_POS_X CUSTOM_LIGHTNING_POS_Y CUSTOM_LIGHTNING_POS_Z CUMULONIMBUS_LIGHTNING_BRIGHTNESS CUMULONIMBUS_LIGHTNING_DELAY ShaderSnow ShaderSnowStrength BorderFogIntensity CAVE_DETECTION ON_FIRE_DISTORT_EFFECT_STRENGTH USE_CUSTOM_SKY_GROUND_LIGHTING_COLORS DIRECTLIGHT_DIFFUSE_R DIRECTLIGHT_DIFFUSE_G DIRECTLIGHT_DIFFUSE_B INDIRECTLIGHT_DIFFUSE_R INDIRECTLIGHT_DIFFUSE_G INDIRECTLIGHT_DIFFUSE_B DIRECTLIGHT_CLOUDS_R DIRECTLIGHT_CLOUDS_G DIRECTLIGHT_CLOUDS_B INDIRECTLIGHT_CLOUDS_R INDIRECTLIGHT_CLOUDS_G INDIRECTLIGHT_CLOUDS_B DIRECTLIGHT_FOG_R DIRECTLIGHT_FOG_G DIRECTLIGHT_FOG_B INDIRECTLIGHT_FOG_R INDIRECTLIGHT_FOG_G INDIRECTLIGHT_FOG_B SKY_GROUND_R SKY_GROUND_G SKY_GROUND_B DOF_DISPERSION_MULT FLASHLIGHT_BRIGHTNESS_MULT FLASHLIGHT_BRIGHTNESS_FALLOFF_MULT FLASHLIGHT_RANGE FLASHLIGHT_SIZE FLASHLIGHT_R FLASHLIGHT_G FLASHLIGHT_B LOW_HEALTH_EFFECT_START CRITICALLY_LOW_HEALTH_EFFECT_START CloudLayer2_scale CloudLayer0_scale CloudLayer1_scale CloudLayer3_scale CloudLayer0_tallness CloudLayer1_tallness EXPOSURE_DARKENING EXPOSURE_BRIGHTENING VIGNETTE_STRENGTH CURVATURE_AMOUNT MINIMUM_WATER_ABSORBANCE CHROMATIC_ABERRATION_STRENGTH SELECT_BOX_COL_R SELECT_BOX_COL_G SELECT_BOX_COL_B LPV_VL_FOG_ILLUMINATION_BRIGHTNESS minRayMarchSteps MOTION_BLUR_STRENGTH OVERDRAW_MAX_DISTANCE DAY0_l3_coverage DAY0_l3_density DAY1_l3_coverage DAY1_l3_density DAY2_l3_coverage DAY2_l3_density DAY3_l3_coverage DAY3_l3_density DAY4_l3_coverage DAY4_l3_density DAY5_l3_coverage DAY5_l3_density DAY6_l3_coverage DAY6_l3_density DAY7_l3_coverage DAY7_l3_density DAY8_l3_coverage DAY8_l3_density DAY9_l3_coverage DAY9_l3_density DAY0_l0_coverage DAY0_l1_coverage DAY0_l2_coverage DAY0_ufog_density DAY0_l0_density DAY0_l1_density DAY0_l2_density DAY0_cfog_density DAY1_l0_coverage DAY1_l1_coverage DAY1_l2_coverage DAY1_ufog_density DAY1_l0_density DAY1_l1_density DAY1_l2_density DAY1_cfog_density DAY2_l0_coverage DAY2_l1_coverage DAY2_l2_coverage DAY2_ufog_density DAY2_l0_density DAY2_l1_density DAY2_l2_density DAY2_cfog_density DAY3_l0_coverage DAY3_l1_coverage DAY3_l2_coverage DAY3_ufog_density DAY3_l0_density DAY3_l1_density DAY3_l2_density DAY3_cfog_density DAY4_l0_coverage DAY4_l1_coverage DAY4_l2_coverage DAY4_ufog_density DAY4_l0_density DAY4_l1_density DAY4_l2_density DAY4_cfog_density DAY5_l0_coverage DAY5_l1_coverage DAY5_l2_coverage DAY5_ufog_density DAY5_l0_density DAY5_l1_density DAY5_l2_density DAY5_cfog_density DAY6_l0_coverage DAY6_l1_coverage DAY6_l2_coverage DAY6_ufog_density DAY6_l0_density DAY6_l1_density DAY6_l2_density DAY6_cfog_density DAY7_l0_coverage DAY7_l1_coverage DAY7_l2_coverage DAY7_ufog_density DAY7_l0_density DAY7_l1_density DAY7_l2_density DAY7_cfog_density DAY8_l0_coverage DAY8_l1_coverage DAY8_l2_coverage DAY8_ufog_density DAY8_l0_density DAY8_l1_density DAY8_l2_density DAY8_cfog_density DAY9_l0_coverage DAY9_l1_coverage DAY9_l2_coverage DAY9_ufog_density DAY9_l0_density DAY9_l1_density DAY9_l2_density DAY9_cfog_density sss_density_multiplier sss_absorbance_multiplier MOTION_AMOUNT TONEMAP WATER_WAVE_SPEED WATER_CAUSTICS_BRIGHTNESS WATER_CAUSTICS_POWER DEBUG_VIEW entityShadowDistanceMul HANDHELD_LIGHT_RANGE CLOUD_SHADOW_STRENGTH CloudLayer0_coverage CloudLayer0_density CloudLayer0_height CloudLayer1_coverage CloudLayer1_density CloudLayer1_height CloudLayer2_coverage CloudLayer2_density CloudLayer2_height CloudLayer3_coverage CloudLayer3_density CloudLayer3_height PLANET_GROUND_BRIGHTNESS FOG_START_HEIGHT WATER_WAVE_STRENGTH SWAMP_UNIFORM_DENSITY SWAMP_CLOUDY_DENSITY SWAMP_R SWAMP_G SWAMP_B JUNGLE_UNIFORM_DENSITY JUNGLE_CLOUDY_DENSITY JUNGLE_R JUNGLE_G JUNGLE_B DARKFOREST_UNIFORM_DENSITY DARKFOREST_CLOUDY_DENSITY DARKFOREST_R DARKFOREST_G DARKFOREST_B NETHER_PLUME_DENSITY END_STORM_DENSTIY LIT_PARTICLE_BRIGHTNESS UPPER_CURVE LOWER_CURVE EMISSIVE_TYPE SCALE_FACTOR ambientsss_brightness SSS_TYPE Cloud_Speed Cloud_Speed_Rain Cloud_Speed_Thunder ORB_ColMult ORB_X ORB_Y ORB_Z ORB_R ORB_G ORB_B TOD_Fog_mult Morning_Uniform_Fog Noon_Uniform_Fog Evening_Uniform_Fog Night_Uniform_Fog Morning_Cloudy_Fog Noon_Cloudy_Fog Evening_Cloudy_Fog Night_Cloudy_Fog Summer_Leaf_R Summer_Leaf_G Summer_Leaf_B Fall_Leaf_R Fall_Leaf_G Fall_Leaf_B Winter_Leaf_R Winter_Leaf_G Winter_Leaf_B Spring_Leaf_R Spring_Leaf_G Spring_Leaf_B Summer_R Summer_G Summer_B Fall_R Fall_G Fall_B Winter_R Winter_G Winter_B Spring_R Spring_G Spring_B Season_Length CaveFogFallOff CaveFogColor_R CaveFogColor_G CaveFogColor_B indirect_effect GI_Strength ambient_brightness AmbientLight_R AmbientLight_G AmbientLight_B Rain_coverage Thunder_coverage Moon_temp Haze_amount RainFog_amount Sun_temp Puddle_Size Puddle_Reflection_Strength LabSSS_Curve Emissive_Curve Emissive_Brightness AO_Strength BLOOMY_FOG WAVY_SPEED WAVY_STRENGTH BLOOM_STRENGTH shadowDistance Sky_Brightness fog_coefficientMieR fog_coefficientMieG fog_coefficientMieB sun_illuminance sunColLine truncated
|
||||
sliders = WATER_SUN_REFLECTION_STRENGTH RIPPLE_INTENSITY CUSTOM_LIGHTNING_SCALE CUSTOM_LIGHTNING_R CUSTOM_LIGHTNING_G CUSTOM_LIGHTNING_B CUSTOM_LIGHTNING_TEX CUSTOM_LIGHTNING_POS_X CUSTOM_LIGHTNING_POS_Y CUSTOM_LIGHTNING_POS_Z CUMULONIMBUS_LIGHTNING_BRIGHTNESS CUMULONIMBUS_LIGHTNING_DELAY ShaderSnow ShaderSnowStrength BorderFogIntensity CAVE_DETECTION ON_FIRE_DISTORT_EFFECT_STRENGTH USE_CUSTOM_SKY_GROUND_LIGHTING_COLORS DIRECTLIGHT_DIFFUSE_R DIRECTLIGHT_DIFFUSE_G DIRECTLIGHT_DIFFUSE_B INDIRECTLIGHT_DIFFUSE_R INDIRECTLIGHT_DIFFUSE_G INDIRECTLIGHT_DIFFUSE_B DIRECTLIGHT_CLOUDS_R DIRECTLIGHT_CLOUDS_G DIRECTLIGHT_CLOUDS_B INDIRECTLIGHT_CLOUDS_R INDIRECTLIGHT_CLOUDS_G INDIRECTLIGHT_CLOUDS_B DIRECTLIGHT_FOG_R DIRECTLIGHT_FOG_G DIRECTLIGHT_FOG_B INDIRECTLIGHT_FOG_R INDIRECTLIGHT_FOG_G INDIRECTLIGHT_FOG_B SKY_GROUND_R SKY_GROUND_G SKY_GROUND_B DOF_DISPERSION_MULT FLASHLIGHT_BRIGHTNESS_MULT FLASHLIGHT_BRIGHTNESS_FALLOFF_MULT FLASHLIGHT_RANGE FLASHLIGHT_SIZE FLASHLIGHT_R FLASHLIGHT_G FLASHLIGHT_B LOW_HEALTH_EFFECT_START CRITICALLY_LOW_HEALTH_EFFECT_START CloudLayer2_scale CloudLayer0_scale CloudLayer1_scale CloudLayer3_scale CloudLayer0_tallness CloudLayer1_tallness EXPOSURE_DARKENING EXPOSURE_BRIGHTENING VIGNETTE_STRENGTH CURVATURE_AMOUNT MINIMUM_WATER_ABSORBANCE CHROMATIC_ABERRATION_STRENGTH SELECT_BOX_COL_R SELECT_BOX_COL_G SELECT_BOX_COL_B LPV_VL_FOG_ILLUMINATION_BRIGHTNESS minRayMarchSteps MOTION_BLUR_STRENGTH OVERDRAW_MAX_DISTANCE DAY0_l3_coverage DAY0_l3_density DAY1_l3_coverage DAY1_l3_density DAY2_l3_coverage DAY2_l3_density DAY3_l3_coverage DAY3_l3_density DAY4_l3_coverage DAY4_l3_density DAY5_l3_coverage DAY5_l3_density DAY6_l3_coverage DAY6_l3_density DAY7_l3_coverage DAY7_l3_density DAY8_l3_coverage DAY8_l3_density DAY9_l3_coverage DAY9_l3_density DAY0_l0_coverage DAY0_l1_coverage DAY0_l2_coverage DAY0_ufog_density DAY0_l0_density DAY0_l1_density DAY0_l2_density DAY0_cfog_density DAY1_l0_coverage DAY1_l1_coverage DAY1_l2_coverage DAY1_ufog_density DAY1_l0_density DAY1_l1_density DAY1_l2_density DAY1_cfog_density DAY2_l0_coverage DAY2_l1_coverage DAY2_l2_coverage DAY2_ufog_density DAY2_l0_density DAY2_l1_density DAY2_l2_density DAY2_cfog_density DAY3_l0_coverage DAY3_l1_coverage DAY3_l2_coverage DAY3_ufog_density DAY3_l0_density DAY3_l1_density DAY3_l2_density DAY3_cfog_density DAY4_l0_coverage DAY4_l1_coverage DAY4_l2_coverage DAY4_ufog_density DAY4_l0_density DAY4_l1_density DAY4_l2_density DAY4_cfog_density DAY5_l0_coverage DAY5_l1_coverage DAY5_l2_coverage DAY5_ufog_density DAY5_l0_density DAY5_l1_density DAY5_l2_density DAY5_cfog_density DAY6_l0_coverage DAY6_l1_coverage DAY6_l2_coverage DAY6_ufog_density DAY6_l0_density DAY6_l1_density DAY6_l2_density DAY6_cfog_density DAY7_l0_coverage DAY7_l1_coverage DAY7_l2_coverage DAY7_ufog_density DAY7_l0_density DAY7_l1_density DAY7_l2_density DAY7_cfog_density DAY8_l0_coverage DAY8_l1_coverage DAY8_l2_coverage DAY8_ufog_density DAY8_l0_density DAY8_l1_density DAY8_l2_density DAY8_cfog_density DAY9_l0_coverage DAY9_l1_coverage DAY9_l2_coverage DAY9_ufog_density DAY9_l0_density DAY9_l1_density DAY9_l2_density DAY9_cfog_density sss_density_multiplier sss_absorbance_multiplier MOTION_AMOUNT TONEMAP WATER_WAVE_SPEED WATER_CAUSTICS_BRIGHTNESS WATER_CAUSTICS_POWER DEBUG_VIEW entityShadowDistanceMul HANDHELD_LIGHT_RANGE CLOUD_SHADOW_STRENGTH CloudLayer0_coverage CloudLayer0_density CloudLayer0_height CloudLayer1_coverage CloudLayer1_density CloudLayer1_height CloudLayer2_coverage CloudLayer2_density CloudLayer2_height CloudLayer3_coverage CloudLayer3_density CloudLayer3_height PLANET_GROUND_BRIGHTNESS FOG_START_HEIGHT WATER_WAVE_STRENGTH SWAMP_UNIFORM_DENSITY SWAMP_CLOUDY_DENSITY SWAMP_R SWAMP_G SWAMP_B JUNGLE_UNIFORM_DENSITY JUNGLE_CLOUDY_DENSITY JUNGLE_R JUNGLE_G JUNGLE_B DARKFOREST_UNIFORM_DENSITY DARKFOREST_CLOUDY_DENSITY DARKFOREST_R DARKFOREST_G DARKFOREST_B NETHER_PLUME_DENSITY END_STORM_DENSTIY LIT_PARTICLE_BRIGHTNESS UPPER_CURVE LOWER_CURVE EMISSIVE_TYPE SCALE_FACTOR ambientsss_brightness SSS_TYPE Cloud_Speed Cloud_Speed_Rain Cloud_Speed_Thunder ORB_ColMult ORB_X ORB_Y ORB_Z ORB_R ORB_G ORB_B TOD_Fog_mult Morning_Uniform_Fog Noon_Uniform_Fog Evening_Uniform_Fog Night_Uniform_Fog Morning_Cloudy_Fog Noon_Cloudy_Fog Evening_Cloudy_Fog Night_Cloudy_Fog Summer_Leaf_R Summer_Leaf_G Summer_Leaf_B Fall_Leaf_R Fall_Leaf_G Fall_Leaf_B Winter_Leaf_R Winter_Leaf_G Winter_Leaf_B Spring_Leaf_R Spring_Leaf_G Spring_Leaf_B Summer_R Summer_G Summer_B Fall_R Fall_G Fall_B Winter_R Winter_G Winter_B Spring_R Spring_G Spring_B Season_Length CaveFogFallOff CaveFogColor_R CaveFogColor_G CaveFogColor_B indirect_effect GI_Strength ambient_brightness AmbientLight_R AmbientLight_G AmbientLight_B Rain_coverage Thunder_coverage Moon_temp Haze_amount RainFog_amount Sun_temp Puddle_Size Puddle_Reflection_Strength LabSSS_Curve Emissive_Curve Emissive_Brightness AO_Strength BLOOMY_FOG WAVY_SPEED WAVY_STRENGTH BLOOM_STRENGTH shadowDistance Sky_Brightness fog_coefficientMieR fog_coefficientLine truncated
|
||||
|
||||
screen.columns=2
|
||||
screen = \
|
||||
@@ -245,10 +245,13 @@ SHADER_VERSION_LABEL <empty> \
|
||||
|
||||
######## WORLD
|
||||
screen.World.columns=1
|
||||
screen.World = [Water] [Waving_Stuff] PLANET_CURVATURE CURVATURE_AMOUNT <empty> [Sky_coefficients] SKY_GROUND <empty> AEROCHROME_MODE AEROCHROME_PINKNESS AEROCHROME_WOOL_ENABLED EMISSIVE_ORES <empty> Puddles Puddle_Size Puddle_Reflection_Strength ShaderSnow ShaderSnowStrength
|
||||
screen.World = [Water] [Waving_Stuff] [World_Effects] PLANET_CURVATURE CURVATURE_AMOUNT <empty> [Sky_coefficients] SKY_GROUND <empty> AEROCHROME_MODE AEROCHROME_PINKNESS AEROCHROME_WOOL_ENABLED EMISSIVE_ORES
|
||||
### WAVING STUFF
|
||||
screen.Waving_Stuff.columns=1
|
||||
screen.Waving_Stuff = WAVY_PLANTS WAVY_STRENGTH WAVY_SPEED
|
||||
|
||||
screen.World_Effects.columns=1
|
||||
screen.World_Effects = Puddles Puddle_Size Puddle_Reflection_Strength <empty> ShaderSnow ShaderSnowStrength <empty> RIPPLE_WATER RIPPLE_PUDDLES RIPPLE_INTENSITY
|
||||
|
||||
######## CLIMATE
|
||||
screen.Climate.columns=1
|
||||
@@ -350,6 +353,7 @@ SHADER_VERSION_LABEL <empty> \
|
||||
REFRACTION_SMUDGE MINIMUM_WATER_ABSORBANCE \
|
||||
SNELLS_WINDOW Water_Top_Layer \
|
||||
WATER_WAVE_STRENGTH WATER_WAVE_SPEED \
|
||||
WATER_SUN_REFLECTION_STRENGTH <empty>
|
||||
|
||||
screen.Water_fog_color.columns=1
|
||||
screen.Water_fog_color = Dirt_Scatter_R Dirt_Scatter_G Dirt_Scatter_B Dirt_Absorb_R Dirt_Absorb_G Dirt_Absorb_B Water_Absorb_R Water_Absorb_G Water_Absorb_B
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 858 KiB After Width: | Height: | Size: 2.4 MiB |
Reference in new issue
Block a user