Double wave simulation distance

This commit is contained in:
Merlin1809
2025-09-05 00:59:59 +02:00
parent 0f15ed9873
commit 514a8a2669
6 changed files with 50 additions and 36 deletions
+12 -8
View File
@@ -320,17 +320,19 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
vec3 waterNormals = worldSpaceNormals;
if(iswater && abs(worldSpaceNormals.y) > 0.1){
vec3 waterPos = (playerPos+cameraPosition).xzy;
#ifndef Vanilla_like_water
if(iswater && abs(worldSpaceNormals.y) > 0.1){
vec3 waterPos = (playerPos+cameraPosition).xzy;
vec3 bump = normalize(getWaveNormal(waterPos, playerPos));
vec3 bump = normalize(getWaveNormal(waterPos, playerPos));
float bumpmult = WATER_WAVE_STRENGTH;
float bumpmult = WATER_WAVE_STRENGTH;
bump = bump * vec3(bumpmult, bumpmult, bumpmult) + vec3(0.0f, 0.0f, 1.0f - bumpmult);
bump = bump * vec3(bumpmult, bumpmult, bumpmult) + vec3(0.0f, 0.0f, 1.0f - bumpmult);
waterNormals.xz = bump.xy;
}
waterNormals.xz = bump.xy;
}
#endif
normals = worldToView(waterNormals);
@@ -346,7 +348,9 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
vec3 Albedo = toLinear(gl_FragData[0].rgb);
#ifndef WhiteWorld
#ifndef Vanilla_like_water
#ifdef Vanilla_like_water
if (iswater) Albedo *= sqrt(luma(Albedo));
#else
if (iswater){
Albedo = vec3(0.0);
gl_FragData[0].a = 1.0/255.0;
+10 -10
View File
@@ -608,7 +608,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
vec3 rippleBump = vec3(0.0);
vec2 lightmap = lmtexcoord.zw;
#if !defined HAND
#if !defined HAND && !defined Vanilla_like_water
if (isWater){
vec3 playerPos = shadowPlayerPos;
vec3 waterPos = playerPos;
@@ -665,11 +665,11 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
#ifdef PIXELATED_WAVES
#if WATER_SIM_SCALE == 0
float NORMAL_SCALE = 40.0;
float NORMAL_SCALE = 20.0;
#elif WATER_SIM_SCALE == 1
float NORMAL_SCALE = 80.0;
float NORMAL_SCALE = 40.0;
#else
float NORMAL_SCALE = 160.0;
float NORMAL_SCALE = 80.0;
#endif
ivec2 normalSize = imageSize(waveSim2);
@@ -680,16 +680,16 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
vec4 waves = imageLoad(waveSim2, ivec2(centeredUV));
#else
#if WATER_SIM_DISTANCE == 1
float NORMAL_SCALE = 0.08;
#elif WATER_SIM_DISTANCE == 2
float NORMAL_SCALE = 0.04;
#elif WATER_SIM_DISTANCE == 3
float NORMAL_SCALE = 0.03;
#else
#elif WATER_SIM_DISTANCE == 2
float NORMAL_SCALE = 0.02;
#elif WATER_SIM_DISTANCE == 3
float NORMAL_SCALE = 0.015;
#else
float NORMAL_SCALE = 0.01;
#endif
vec2 waveUV = (worldPos.xz - previousCameraPositionWave2.xz)*NORMAL_SCALE+0.5;
vec2 waveUV = (worldPos.xz - previousCameraPositionWave2.xz) * NORMAL_SCALE + 0.5;
if(length(waveUV) < 1.5 && abs(worldSpaceNormal.y) > 0.5 && !noSimOngoing) {
vec4 waves = texture2D(waveSim2Sampler, waveUV);
#endif
+9 -9
View File
@@ -54,11 +54,11 @@ uniform vec3 relativeEyePosition;
vec2 getPlayerMovementOffset() {
vec2 currentPos = cameraPosition.xz-relativeEyePosition.xz;
vec2 previousPos = previousCameraPositionWave2.xz;
vec2 movement = (currentPos - previousPos)*60.0;
vec2 movement = currentPos - previousPos;
#if WATER_SIM_SCALE == 0
return -1.36*movement*0.5;
return -20.0 * movement;
#else
return -1.36*movement*WATER_SIM_SCALE;
return -40.0 * movement * WATER_SIM_SCALE;
#endif
}
@@ -80,7 +80,7 @@ void main() {
float dist = length(imgCoord-0.5*resolution);
if (dist >= resolution.x) return;
ivec2 movementOffset = ivec2(getPlayerMovementOffset());
ivec2 movementOffset = ivec2(round(getPlayerMovementOffset()));
ivec2 sampledCoord = imgCoord - movementOffset;
sampledCoord = clamp(sampledCoord, ivec2(1), resolution - ivec2(1));
@@ -117,7 +117,7 @@ void main() {
pressure += delta * pVel;
// "Spring" motion. This makes the waves look more like water waves and less like sound waves.
pVel -= 0.00185 * delta * pressure;
pVel -= 0.0014 * delta * pressure;
// Velocity damping so things eventually calm down
pVel *= 1.0 - 0.003 * delta;
@@ -132,13 +132,13 @@ void main() {
velocity.y *= 1.15;
float speed = length(velocity);
float size = 20.0;
float size = 10.0;
if(inBoat) {
size += 52.0 * smoothstep(0.0, 10.0, speed);
size += 26.0 * smoothstep(0.0, 10.0, speed);
} else if (inShip) {
size += 122.0 * smoothstep(0.0, 10.0, speed);
size += 61.0 * smoothstep(0.0, 10.0, speed);
} else {
size += 20.0 * smoothstep(0.1, 13.0, speed);
size += 10.0 * smoothstep(0.1, 13.0, speed);
}
#if WATER_SIM_SCALE == 0
size *= 0.5;
+5 -5
View File
@@ -104,7 +104,7 @@ void main() {
pressure += delta * pVel;
// "Spring" motion. This makes the waves look more like water waves and less like sound waves.
pVel -= 0.00185 * delta * pressure;
pVel -= 0.0014 * delta * pressure;
// Velocity damping so things eventually calm down
pVel *= 1.0 - 0.003 * delta;
@@ -119,13 +119,13 @@ void main() {
velocity.y *= 1.15;
float speed = length(velocity);
float size = 20.0;
float size = 10.0;
if(inBoat) {
size += 52.0 * smoothstep(0.0, 10.0, speed);
size += 26.0 * smoothstep(0.0, 10.0, speed);
} else if (inShip) {
size += 122.0 * smoothstep(0.0, 10.0, speed);
size += 61.0 * smoothstep(0.0, 10.0, speed);
} else {
size += 20.0 * smoothstep(0.1, 13.0, speed);
size += 10.0 * smoothstep(0.1, 13.0, speed);
}
#if WATER_SIM_SCALE == 0
size *= 0.5;
+5 -2
View File
@@ -1,6 +1,6 @@
option.SHADER_VERSION_LABEL = §dECLIPSE§r - A Bliss Edit
prefix.SHADER_VERSION_LABEL = V
value.SHADER_VERSION_LABEL.482 = 2.0.0
value.SHADER_VERSION_LABEL.482 = 2.1.0
# if you're here to translate, this is not a joke, these do what they say
profile.POTATO=§4Potato
@@ -86,7 +86,10 @@ screen.EndLighting = End Lighting
option.STARS_AMOUNT = Stars Amount
option.STARS_BRIGHTNESS = Stars Brightness
screen.Misc_Settings = §cDebugging§r/Experimental Settings
screen.Misc_Settings = Other Settings
screen.EXPERIMENTAL_STUFF = Experimental Stuff
screen.DEBUG_STUFF = §cDebug Settings§r
screen.LEGACY_STUFF = Legacy Settings
screen.Mod_support = Settings For Supported Mods
option.RESOURCEPACK_SKY = Resource Pack Sky §c(slightly bugged)
+9 -2
View File
@@ -469,9 +469,16 @@ SHADER_VERSION_LABEL <profile> \
######## MISC SETTINGS
screen.Misc_Settings.columns = 2
screen.Misc_Settings = [EXPERIMENTAL_STUFF] DEBUG_VIEW [the_end_orb] display_LUT WhiteWorld SSS_view ambientLight_only LIGHTNING_FLASH DISABLE_ENCHANT_GLINT DISABLE_VANILLA_EMISSIVES PARTICLE_RENDERING_FIX TRANSLUCENT_ENTITIES LIGHTING_EFFECTS_BLUR_FILTER [selection_box_outline] ISOLATE_RESOURCEPACK_SKY [scene_controller] AEROCHROME_MODE AEROCHROME_PINKNESS AEROCHROME_WOOL_ENABLED
screen.Misc_Settings = [EXPERIMENTAL_STUFF] [DEBUG_STUFF] [LEGACY_STUFF] TRANSLUCENT_ENTITIES [selection_box_outline] [scene_controller] <empty> <empty> AEROCHROME_MODE AEROCHROME_PINKNESS AEROCHROME_WOOL_ENABLED
screen.EXPERIMENTAL_STUFF = CAVE_DETECTION BLOOMY_PARTICLES ORIGINAL_CHOCAPIC_SKY BIOME_TINT_WATER HYPER_DETAILED_WAVES OLD_BLOOM PLANET_GROUND_BRIGHTNESS LIT_PARTICLE_BRIGHTNESS WATER_CAUSTICS_BRIGHTNESS WATER_CAUSTICS_POWER OLD_CAVE_DETECTION FORCE_TRANSLUCENT_GLASS LARGE_WAVE_DISPLACEMENT OLD_INDIRECT_SSS Vanilla_like_water INCLUDE_UNLISTED_ENTITIES ALTERNATE_POWDER_EFFECT CLOUD_PHASE OLD_STARS
screen.EXPERIMENTAL_STUFF.columns = 2
screen.EXPERIMENTAL_STUFF = BLOOMY_PARTICLES BIOME_TINT_WATER HYPER_DETAILED_WAVES PLANET_GROUND_BRIGHTNESS LIT_PARTICLE_BRIGHTNESS WATER_CAUSTICS_BRIGHTNESS WATER_CAUSTICS_POWER FORCE_TRANSLUCENT_GLASS LARGE_WAVE_DISPLACEMENT Vanilla_like_water INCLUDE_UNLISTED_ENTITIES
screen.DEBUG_STUFF.columns = 2
screen.DEBUG_STUFF = [the_end_orb] DEBUG_VIEW display_LUT WhiteWorld SSS_view ambientLight_only LIGHTNING_FLASH DISABLE_ENCHANT_GLINT DISABLE_VANILLA_EMISSIVES PARTICLE_RENDERING_FIX ISOLATE_RESOURCEPACK_SKY CAVE_DETECTION
screen.LEGACY_STUFF.columns = 2
screen.LEGACY_STUFF = ORIGINAL_CHOCAPIC_SKY OLD_BLOOM OLD_CAVE_DETECTION OLD_INDIRECT_SSS ALTERNATE_POWDER_EFFECT CLOUD_PHASE OLD_STARS
screen.the_end_orb.columns = 1
screen.the_end_orb = THE_ORB ORB_X ORB_Y ORB_Z ORB_ColMult ORB_R ORB_G ORB_B