From 17fbaf5fce1c6662ddf34e9fe6ff917e697a70a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Lemaire?= Date: Mon, 4 Jan 2016 22:46:40 +0100 Subject: [PATCH] opengl: Decrease water detail with distance --- src/render/opengl/shaders/water.frag | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/render/opengl/shaders/water.frag b/src/render/opengl/shaders/water.frag index df61d4d..357b66b 100644 --- a/src/render/opengl/shaders/water.frag +++ b/src/render/opengl/shaders/water.frag @@ -6,10 +6,13 @@ uniform float waterReflection; uniform float[4] waterNoise; out vec4 final_color; +float getDetail(vec3 location) { + return max(min(pow(length(location - cameraLocation) * 0.002, 2.0), 0.01), 0.000001); +} + void main(void) { - // TODO Increased detail near camera - vec3 normal = noiseNormal2d(waterNoise, unprojected.xz, 0.00001); + vec3 normal = noiseNormal2d(waterNoise, unprojected.xz, getDetail(unprojected)); final_color = applyLighting(unprojected, normal, waterMaterialColor, waterMaterialReflection, waterMaterialShininess, waterMaterialHardness);