Index: branches/mountain_lake/src/world_entities/environments/mapped_water.cc
===================================================================
--- branches/mountain_lake/src/world_entities/environments/mapped_water.cc	(revision 8859)
+++ branches/mountain_lake/src/world_entities/environments/mapped_water.cc	(revision 8866)
@@ -61,5 +61,7 @@
   delete color_uni;
   delete light_uni;
-  delete shine_uni;
+  delete shineSize_uni;
+  delete shineStrength_uni;
+  delete refr_uni;
 }
 
@@ -78,5 +80,7 @@
   this->setNormalMapScale(0.25f);
   this->setWaterColor(0.1f, 0.2f, 0.4f);
-  this->setShininess(128);
+  this->setShineSize(128);
+  this->setShineStrength(0.7);
+  this->setRefraction(0.009f);
 
   // initialization of the texture coords, speeds etc...
@@ -151,6 +155,12 @@
   light_uni->set(lightPos.x, lightPos.y, lightPos.z, 1.0f);
   // Set the variable "shine"
-  shine_uni = new Shader::Uniform(shader, "kShine");
-  shine_uni->set(this->shininess);
+  shineSize_uni = new Shader::Uniform(shader, "kShine");
+  shineSize_uni->set(this->shineSize);
+  // Set the variable "shineStrength"
+  shineStrength_uni = new Shader::Uniform(shader, "shineStrength");
+  shineStrength_uni->set(this->shineStrength);
+  // Set the variable "refraction"
+  refr_uni = new Shader::Uniform(shader, "kRefraction");
+  refr_uni->set(this->refraction);
   // uniform for the camera position
   cam_uni = new Shader::Uniform(shader, "cameraPos");
@@ -189,5 +199,5 @@
 
   this->shader->deactivateShader();
-};
+}
 
 /**
@@ -195,14 +205,44 @@
  * @param shine new value for the shininess
  */
-void MappedWater::resetShininess(float shine)
-{
-  this->shader->activateShader();
-  this->shininess = shine;
+void MappedWater::resetShineSize(float shine)
+{
+  this->shader->activateShader();
+  this->shineSize = shine;
 
   // Set the variable "shine"
-  shine_uni->set(this->shininess);
-
-  this->shader->deactivateShader();
-};
+  shineSize_uni->set(this->shineSize);
+
+  this->shader->deactivateShader();
+}
+
+/**
+ * @brief resets the strength of the specular reflection in the Shader
+ * @param strength new value for the strength of the specular reflection
+ */
+void MappedWater::resetShineStrength(float strength)
+{
+  this->shader->activateShader();
+  this->shineStrength = strength;
+
+  // Set the variable "shine"
+  shineStrength_uni->set(this->shineStrength);
+
+  this->shader->deactivateShader();
+}
+
+/**
+ * @brief resets the refraction in the Shader
+ * @param refraction new value for the refraction
+ */
+void MappedWater::resetRefraction(float refraction)
+{
+  this->shader->activateShader();
+  this->refraction = refraction;
+
+  // Set the variable "shine"
+  refr_uni->set(this->refraction);
+
+  this->shader->deactivateShader();
+}
 
 /**
@@ -221,5 +261,5 @@
 
   this->shader->deactivateShader();
-};
+}
 
 /**
@@ -239,5 +279,7 @@
   LoadParam(root, "waterangle", this, MappedWater, setWaterAngle);
   LoadParam(root, "watercolor", this, MappedWater, setWaterColor);
-  LoadParam(root, "shininess", this, MappedWater, setShininess);
+  LoadParam(root, "shinesize", this, MappedWater, setShineSize);
+  LoadParam(root, "shinestrength", this, MappedWater, setShineStrength);
+  LoadParam(root, "refraction", this, MappedWater, setRefraction);
 }
 
Index: branches/mountain_lake/src/world_entities/environments/mapped_water.h
===================================================================
--- branches/mountain_lake/src/world_entities/environments/mapped_water.h	(revision 8859)
+++ branches/mountain_lake/src/world_entities/environments/mapped_water.h	(revision 8866)
@@ -12,5 +12,7 @@
   <waterangle>0</waterangle>
   <normalmapscale>0.25</normalmapscale><!-- you won't see a big differnce if you change that -->
-  <shininess>128</shininess><!-- the bigger the value, the smaller the specular reflection point -->
+  <shineSize>128</shineSize><!-- the bigger the value, the smaller the specular reflection point -->
+  <shineStrength>0.7</shineStrength>
+  <refraction>0.009</refraction>
   <watercolor>0.1, 0.2, 0.4</watercolor>
 </MappedWater>
@@ -51,5 +53,7 @@
   void setWaterFlow(float flow) { this->waterFlow = flow; };
   void setNormalMapScale(float scale) { this->kNormalMapScale = scale; }
-  void setShininess(float shine) { this->shininess = shine; }
+  void setShineSize(float shine) { this->shineSize = shine; }
+  void setShineStrength(float strength) { this->shineStrength = strength; }
+  void setRefraction(float refraction) { this->refraction = refraction; }
   void setWaterColor(float r, float g, float b) { this->waterColor = Vector(r,g,b); this->newWaterColor = this->waterColor; }
 
@@ -57,5 +61,7 @@
   // to reset waterUV and waterFlow just use the normal set functions
   void resetWaterColor(float r, float g, float b);
-  void resetShininess(float shine);
+  void resetShineSize(float shine);
+  void resetShineStrength(float strength);
+  void resetRefraction(float refraction);
   void resetLightPos(float x, float y, float z);
   void resetWaterPos(float x, float y, float z) { this->setWaterPos(x, y, z); this->calcVerts(); }
@@ -88,5 +94,7 @@
   float               normalUV;
   float               kNormalMapScale;
-  float               shininess;              //!< the bigger the value, the smaller the specular reflection point
+  float               shineSize;              //!< the bigger the value, the smaller the specular reflection point
+  float               shineStrength;
+  float               refraction;
 
   int                 textureSize;            //!< height and width of the texture
@@ -96,6 +104,7 @@
   Shader::Uniform*    light_uni;              //!< uniform that is used for the light position
   Shader::Uniform*    color_uni;              //!< uniform that is used for the watercolor
-  Shader::Uniform*    shine_uni;              //!< uniform that is used for the specular shininessd of the water
-
+  Shader::Uniform*    shineSize_uni;          //!< uniform that is used for the specular shininessd of the water
+  Shader::Uniform*    shineStrength_uni;      //!< uniform that is used for the strenght of the specular reflection
+  Shader::Uniform*    refr_uni;               //!< uniform that is used for the strength of the refraction
 
 
