diff --git a/assets/voxygen/shaders/fluid-frag/shiny.glsl b/assets/voxygen/shaders/fluid-frag/shiny.glsl index 90402d2065..8b9e8681ce 100644 --- a/assets/voxygen/shaders/fluid-frag/shiny.glsl +++ b/assets/voxygen/shaders/fluid-frag/shiny.glsl @@ -132,7 +132,11 @@ void main() { float wave10 = wave_height(wave_pos + vec3(0.1, 0, 0)); float wave01 = wave_height(wave_pos + vec3(0, 0.1, 0)); - float slope = abs(wave00 - wave10) * abs(wave00 - wave01); + // Possibility of div by zero when slope = 0, + // however this only results in no water surface appearing + // and is not likely to occur (could not find any occurrences) + float slope = abs(wave00 - wave10) * abs(wave00 - wave01); + vec3 nmap = vec3( -(wave10 - wave00) / 0.1, -(wave01 - wave00) / 0.1, @@ -151,7 +155,7 @@ void main() { float f_alt = f_pos.z; #endif - float fluid_alt = max(ceil(f_pos.z), floor(f_alt));// f_alt;//max(f_alt - f_pos.z, 0.0); + float fluid_alt = mix(f_pos.z, f_alt, f_norm.z == 0); const float alpha = 0.255/*/ / 4.0*//* / 4.0 / sqrt(2.0)*/; const float n2 = 1.3325; const float R_s2s0 = pow((1.0 - n2) / (1.0 + n2), 2); diff --git a/voxygen/src/hud/settings_window.rs b/voxygen/src/hud/settings_window.rs index e4bb4222bc..03738ab9b2 100644 --- a/voxygen/src/hud/settings_window.rs +++ b/voxygen/src/hud/settings_window.rs @@ -2064,18 +2064,14 @@ impl<'a> Widget for SettingsWindow<'a> { .color(TEXT_COLOR) .set(state.ids.fluid_mode_text, ui); - // FIXME: Add shiny water back to the UI once we fix the bug on nVidia cards. - let mode_list = [ - FluidMode::Cheap, - // FluidMode::Shiny - ]; + let mode_list = [FluidMode::Cheap, FluidMode::Shiny]; let mode_label_list = [ &self .localized_strings .get("hud.settings.fluid_rendering_mode.cheap"), - /* &self - .localized_strings - .get("hud.settings.fluid_rendering_mode.shiny"), */ + &self + .localized_strings + .get("hud.settings.fluid_rendering_mode.shiny"), ]; // Get which fluid rendering mode is currently active diff --git a/voxygen/src/render/mod.rs b/voxygen/src/render/mod.rs index fce129283f..9aadf43031 100644 --- a/voxygen/src/render/mod.rs +++ b/voxygen/src/render/mod.rs @@ -171,7 +171,7 @@ pub enum FluidMode { } impl Default for FluidMode { - fn default() -> Self { FluidMode::Cheap } + fn default() -> Self { FluidMode::Shiny } } /// Lighting modes