From 74e707a989d688a1e384ed68f73d7b85905e5d75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Lemaire?= Date: Tue, 24 Dec 2013 11:48:06 +0100 Subject: [PATCH] Fixed water color in opengl rendering --- src/render/opengl/OpenGLWater.cpp | 6 ++++++ src/render/opengl/shaders/water.frag | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/render/opengl/OpenGLWater.cpp b/src/render/opengl/OpenGLWater.cpp index dddf6ec..6ef79b5 100644 --- a/src/render/opengl/OpenGLWater.cpp +++ b/src/render/opengl/OpenGLWater.cpp @@ -4,6 +4,9 @@ #include "OpenGLShaderProgram.h" #include "OpenGLSharedState.h" #include "WaterRenderer.h" +#include "Scenery.h" +#include "WaterDefinition.h" +#include "SurfaceMaterial.h" OpenGLWater::OpenGLWater(OpenGLRenderer *renderer): OpenGLPart(renderer) @@ -34,6 +37,9 @@ void OpenGLWater::update() { double water_height = renderer->getWaterRenderer()->getHeightInfo().max_height; renderer->getSharedState()->set("waterHeight", water_height); + + Color water_color = renderer->getScenery()->getWater()->material->_rgb; + renderer->getSharedState()->set("waterColor", water_color); } void OpenGLWater::render() diff --git a/src/render/opengl/shaders/water.frag b/src/render/opengl/shaders/water.frag index 9ef198a..a4318fc 100644 --- a/src/render/opengl/shaders/water.frag +++ b/src/render/opengl/shaders/water.frag @@ -1,6 +1,8 @@ +uniform vec4 waterColor; + void main(void) { - gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0); + gl_FragColor = waterColor; float yoffset = GROUND_OFFSET - waterHeight; vec3 camera = vec3(cameraLocation.x, max(cameraLocation.y + yoffset, 0.0), cameraLocation.z);