mirror of
https://github.com/Merlin1809/Eclipse-Shader.git
synced 2026-10-10 13:03:06 +08:00
Double wave simulation distance
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user