Index: /data/trunk/shaders/cloud.frag
===================================================================
--- /data/trunk/shaders/cloud.frag	(revision 3939)
+++ /data/trunk/shaders/cloud.frag	(revision 3939)
@@ -0,0 +1,29 @@
+//
+// Fragment shader for producing animated clouds (mostly cloudy)
+//
+// Author: Randi Rost
+//
+// Copyright (c) 2002-2004 3Dlabs Inc. Ltd. 
+//
+// See 3Dlabs-License.txt for license information
+//
+
+varying float LightIntensity; 
+varying vec3  MCposition;
+
+uniform sampler3D Noise;
+uniform vec3 SkyColor;     // (0.0, 0.0, 0.8)
+uniform vec3 CloudColor;   // (0.8, 0.8, 0.8)
+uniform vec3 Offset;       // updated each frame by the application
+
+void main (void)
+{
+  vec4  noisevec  = texture3D(Noise, MCposition + Offset);
+
+  float intensity = (noisevec[0] + noisevec[1] + 
+      noisevec[2] + noisevec[3]) * 1.5;
+
+  vec3 color   = mix(SkyColor, CloudColor, intensity) * LightIntensity;
+
+  gl_FragColor = vec4 (color, 1.0);
+}
Index: /data/trunk/shaders/cloud.vert
===================================================================
--- /data/trunk/shaders/cloud.vert	(revision 3939)
+++ /data/trunk/shaders/cloud.vert	(revision 3939)
@@ -0,0 +1,25 @@
+//
+// Vertex shader for producing animated clouds (mostly cloudy)
+//
+// Authors: John Kessenich, Randi Rost
+//
+// Copyright (c) 2002-2004 3Dlabs Inc. Ltd. 
+//
+// See 3Dlabs-License.txt for license information
+//
+
+varying float LightIntensity;
+varying vec3  MCposition;
+
+uniform vec3  LightPos;
+uniform float Scale;
+
+void main(void)
+{
+  vec3 ECposition = vec3 (gl_ModelViewMatrix * gl_Vertex);
+  MCposition      = vec3 (gl_Vertex) * Scale;
+  vec3 tnorm      = normalize(vec3 (gl_NormalMatrix * gl_Normal));
+  LightIntensity  = dot(normalize(LightPos - ECposition), tnorm);
+  LightIntensity = 1.0;
+  gl_Position     = ftransform();
+}
Index: /data/trunk/shaders/mapped_water.frag
===================================================================
--- /data/trunk/shaders/mapped_water.frag	(revision 3938)
+++ /data/trunk/shaders/mapped_water.frag	(revision 3939)
@@ -10,11 +10,13 @@
 uniform sampler2D dudvMap;
 uniform sampler2D depthMap;
+uniform float kShine;
+uniform float shineStrength;
+uniform float reflStrength;
+uniform float kRefraction;
 uniform vec4 waterColor;
 
 void main()
 {
-	const float kShine = 128.0;
 	const float kDistortion = 0.015;
-	const float kRefraction = 0.009;
 
 	vec4 distOffset = texture2D(dudvMap, normCoords.xy) * kDistortion;
@@ -50,4 +52,4 @@
 	vec4 specular = vec4(pow(intensity, kShine));
 
-	gl_FragColor = refractionColor + reflectionColor + specular; 
+	gl_FragColor = refractionColor + reflStrength * reflectionColor + shineStrength * specular; 
 }
Index: /data/trunk/shaders/sky.frag
===================================================================
--- /data/trunk/shaders/sky.frag	(revision 3939)
+++ /data/trunk/shaders/sky.frag	(revision 3939)
@@ -0,0 +1,18 @@
+varying float intensity_sq, intensity;
+
+uniform sampler2D s_texture_0;
+uniform sampler2D s_texture_1;
+
+uniform vec4 horizon;
+
+void main()
+{
+   vec4 clouds_0 = texture2D(s_texture_0, gl_TexCoord[0].xy);
+   vec4 clouds_1 = texture2D(s_texture_1, gl_TexCoord[1].xy);
+	
+   vec4 clouds = (clouds_0 + clouds_1) * intensity_sq;
+
+   vec4 cloud_color = vec4((1.0 - intensity) * horizon.x, (1.0 - intensity) * horizon.y, intensity * horizon.z, 0.0);
+
+   gl_FragColor = cloud_color * (1.0 - clouds.x) + clouds;
+}
Index: /data/trunk/shaders/sky.vert
===================================================================
--- /data/trunk/shaders/sky.vert	(revision 3939)
+++ /data/trunk/shaders/sky.vert	(revision 3939)
@@ -0,0 +1,17 @@
+varying float intensity_sq, intensity;
+
+uniform vec4 bbox;
+uniform float time;
+
+void main()
+{
+   gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+   gl_TexCoord[0] = vec4(gl_Vertex.x / 2.0 + time,       gl_Vertex.z / 2.0, 0.0, 0.0);
+   gl_TexCoord[1] = vec4(gl_Vertex.x       + time / 2.0, gl_Vertex.z,       0.0, 0.0);
+
+// Get the vertex height and scale it to 0 - 1 range.
+   intensity    = gl_Vertex.y / bbox.y;
+   intensity    = exp(clamp(intensity, 0.0, 1.0)) / 1.8;
+   intensity_sq = intensity * intensity;
+}
Index: /data/trunk/worlds/mountainlake.oxw
===================================================================
--- /data/trunk/worlds/mountainlake.oxw	(revision 3938)
+++ /data/trunk/worlds/mountainlake.oxw	(revision 3939)
@@ -6,5 +6,4 @@
   <LoadScreen>
     <BackgroundImage>pictures/load_screens/default.jpg</BackgroundImage>
-
     <ElementCount>12</ElementCount>
     <BackgroundPS>0,0,1.01,1</BackgroundPS>
@@ -12,4 +11,5 @@
     <BarImage>pictures/load_screens/default_bar.png</BarImage>
   </LoadScreen>
+
   <WorldEntities>
     <Hover>
@@ -17,5 +17,50 @@
       <abs-coor>50, 100, 50</abs-coor>
     </Hover>
+    <!--<SkyBox>
+     <name>Sky</name>
+     <Materialset>pictures/sky/desert</Materialset>
+     <Size>10000</Size>
+    </SkyBox>-->
+    <Terrain>
+      <name>water</name>
+      <model>worlds/sea_ground.obj, 4</model>
+    </Terrain>
 
+    <SpaceShip>
+      <name>Player2</name>
+      <model>models/ships/reap_#.obj</model>
+      <abs-coor>50,460,300</abs-coor>
+    </SpaceShip>
+
+    <MappedWater>
+      <waterpos>0,0,-500</waterpos>
+      <watersize>500,500</watersize>
+      <wateruv>6</wateruv>
+      <waterflow>0.04</waterflow>
+      <lightpos>50,460,300</lightpos>
+      <!--<lightpos>50,460,300</lightpos>-->
+      <shinesize>58</shinesize>
+      <shinestrength>0.6</shinestrength>
+      <reflstrength>0.7</reflstrength>
+      <watercolor>0.0, 0.3, 0.4</watercolor>
+      <waterangle>0</waterangle>
+      <refraction>0.009</refraction>
+      <normalmapscale>0.25</normalmapscale>
+    </MappedWater>
+    <MappedWater>
+      <waterpos>-500,40,-500</waterpos>
+      <watersize>500,500</watersize>
+      <wateruv>6</wateruv>
+      <waterflow>0.04</waterflow>
+      <lightpos>50,460,300</lightpos>
+      <!--<lightpos>50,460,300</lightpos>-->
+      <shinesize>58</shinesize>
+      <shinestrength>0.6</shinestrength>
+      <reflstrength>0.7</reflstrength>
+      <watercolor>0.0, 0.3, 0.4</watercolor>
+      <waterangle>0</waterangle>
+      <refraction>0.009</refraction>
+      <normalmapscale>0.25</normalmapscale>
+    </MappedWater>
     <SkyBox>
      <name>Sky</name>
@@ -23,19 +68,4 @@
      <Size>10000</Size>
     </SkyBox>
-    <Terrain>
-      <name>water</name>
-      <model>worlds/sea_ground.obj, 4</model>
-    </Terrain>
-
-    <MappedWater>
-      <waterpos>-500,20,-500</waterpos>
-      <watersize>1000,1000</watersize>
-      <wateruv>9</wateruv>
-      <waterflow>0.08</waterflow>
-      <lightpos>10,15,10</lightpos>
-      <!--<lightPos>500,4850,4650</lightPos>-->
-    </MappedWater>
-
-
 </WorldEntities>
 
@@ -58,3 +88,25 @@
   </LightManager>
 
+	<!--<AtmosphericEngine>
+		<WeatherEffect>
+			<FogEffect>
+			</FogEffect>
+
+			<RainEffect>
+				<option>moverain</option>
+			</RainEffect>
+
+			<SnowEffect>
+			</SnowEffect>
+
+      <LightningEffect>
+			</LightningEffect>
+
+      <CloudEffect>
+        <option>activate</option>
+      </CloudEffect>
+
+		</WeatherEffect>
+	</AtmosphericEngine>-->
+
 </WorldDataFile>
Index: /data/trunk/worlds/vulcania.oxw
===================================================================
--- /data/trunk/worlds/vulcania.oxw	(revision 3938)
+++ /data/trunk/worlds/vulcania.oxw	(revision 3939)
@@ -1,143 +1,70 @@
 <WorldDataFile>
-  <name>Vulcania</name>
-  <menu-item-image>pictures/menu/se_vulcano_512x128.png</menu-item-image>
-  <screenshoot>pictures/menu/ss_vulcano_512x512.png</screenshoot>
+	<name>Vulcania</name>
+	<menu-item-image>pictures/menu/se_vulcano_512x128.png</menu-item-image>
+	<screenshoot>pictures/menu/ss_vulcano_512x512.png</screenshoot>
 
-  <LoadScreen>
-    <BackgroundImage>pictures/load_screens/default.jpg</BackgroundImage>
+	<LoadScreen>
+		<BackgroundImage>pictures/load_screen.jpg</BackgroundImage>
+		<ElementCount>12</ElementCount>
+		<BackgroundPS>0,0,1.01,1</BackgroundPS>
+		<BarPS>.65,.87,.3,.05</BarPS>
+		<BarImage>pictures/load_screen_bar.png</BarImage>
+	</LoadScreen>
 
-    <ElementCount>12</ElementCount>
-    <BackgroundPS>0,0,1.01,1</BackgroundPS>
-    <BarPS>.65,.87,.3,.05</BarPS>
-    <BarImage>pictures/load_screens/default_bar.png</BarImage>
-  </LoadScreen>
-  <WorldEntities>
-    <Helicopter>
-      <name>Player</name>
-      <abs-coor>50, 100, 50</abs-coor>
-    </Helicopter>
+	<WorldEntities>
+		<TurbineHover>
+			<name>Player</name>
+			<abs-coor>0, 10, 0</abs-coor>
+		</TurbineHover>
 
-    <SkyBox>
-     <name>Sky</name>
-     <Materialset>pictures/sky/desert</Materialset>
-     <Size>10000</Size>
-    </SkyBox>
-    <Terrain>
-      <name>HardCore</name>
-      <model>worlds/vulcania.obj</model>
-      <vegetation>worlds/vulcania_vegetation.obj</vegetation>
-    </Terrain>
+		<Terrain>
+			<name>HardCore</name>
+			<model>worlds/vulcania.obj</model>
+			<vegetation>worlds/vulcania_vegetation.obj</vegetation>
+		</Terrain>
+	</WorldEntities>
 
-    <ModelParticles>
-      <name>VulcanStoneSystem</name>
-      <model>models/vulcanic_stone.obj</model>
-      <life-span>6.0,2</life-span>
-      <radius>0,5,3</radius>
-      <mass>0,.1,0</mass>
-      <precache>5</precache>
-      <emitters>
-        <DotEmitter>
-          <name>VulcanStoneEmitter</name>
-          <emission-velocity>700,400</emission-velocity>
-          <rate>20</rate>
-          <type>cube</type>
-          <size>40</size>;
-          <rel-dir>1.51, 0,0,1</rel-dir>
-          <rel-coor>2460,105,606</rel-coor>
-          <spread>1,.5</spread>
-        </DotEmitter>
-      </emitters>
-    </ModelParticles>
+	<LightManager>
+		<ambient-color>1,1,1</ambient-color>
+		<Lights>
+			<Light>
+				<diffuse-color>1,1,1</diffuse-color>
+				<abs-coor>100,100,50</abs-coor>
+			</Light>
+			<Light>
+				<diffuse-color>1,1,1</diffuse-color>
+				<abs-coor>-100,0,100</abs-coor>
+			</Light>
+			<Light>
+				<diffuse-color>1,1,1</diffuse-color>
+				<abs-coor>-100,2000,50</abs-coor>
+			</Light>
+		</Lights>
+	</LightManager>
 
-    <SpriteParticles>
-     <name>VulcanFogSystem</name>
-     <max-count>2000</max-count>
-     <life-span>10,2</life-span>
-     <radius>0.0,20.0,10.0</radius>
-     <radius>0.2,50,30</radius>
-     <radius>1,200,100</radius>
-     <mass>0,1.0,.3</mass>
-     <color>0, 1, 1, 1, .5</color>
-     <color>.5, .6, .6, .6, .2</color>
-     <color>1.0, .0, .0, .0, .0</color>
-     <precache>5</precache>
-     <emitters>
-       <DotEmitter>
-        <name>VulcanFogEmitter</name>
-        <rel-dir>1.51, 0,0,1</rel-dir>
-        <type>cube</type>
-        <spread>.5,.3</spread>
-        <emission-velocity>150,50</emission-velocity>
-        <size>40</size>
-        <rate>150</rate>
-        <rel-coor>2460,105,606</rel-coor>
-       </DotEmitter>
-     </emitters>
-   </SpriteParticles>
+	<!-- <Music>sound/music/estorm.ogg</Music> -->
 
-   <SparkParticles>
-     <name>VulcanSparkSystem</name>
-     <max-count>5000</max-count>
-     <life-span>5,2</life-span>
-     <radius>0,.2,.1</radius>
-     <radius>1,0,0</radius>
-     <mass>0,1,.05</mass>
-     <color>0,1,0,0,.3</color>
-     <color>.5,1,1,0,.2</color>
-     <color>1,.0,.0,.0,.0</color>
-     <precache>5</precache>
-     <emitters>
-       <DotEmitter>
-        <name>VulcanSparkEmitter</name>
-        <rel-dir>1.51, 0,0,1</rel-dir>
-        <type>cube</type>
-        <spread>.5,.3</spread>
-        <emission-velocity>150,50</emission-velocity>
-        <size>40</size>
-        <rate>400</rate>
-        <rel-coor>2460,105,606</rel-coor>
-       </DotEmitter>
-    </emitters>
-  </SparkParticles>
+	<AtmosphericEngine>
+		<WeatherEffect>
 
-</WorldEntities>
+			<FogEffect>
+			</FogEffect>
 
-  <LightManager>
-    <ambient-color>1,1,1</ambient-color>
-    <Lights>
-      <Light>
-       <diffuse-color>1,1,1</diffuse-color>
-       <abs-coor>100,100,50</abs-coor>
-      </Light>
-      <Light>
-       <diffuse-color>1,1,1</diffuse-color>
-       <abs-coor>-100,0,100</abs-coor>
-      </Light>
-      <Light>
-       <diffuse-color>1,1,1</diffuse-color>
-       <abs-coor>-100,2000,50</abs-coor>
-      </Light>
-    </Lights>
-  </LightManager>
+			<RainEffect>
+				<option>moverain</option>
+			</RainEffect>
 
+			<SnowEffect>
+			</SnowEffect>
 
-  <PhysicsEngine>
-   <Fields>
-    <Gravity>
-     <name>gravity</name>
-     <magnitude>100</magnitude>
-    </Gravity>
-   </Fields>
-   <Connections>
-    <PhysicsConnection>
-     <subject>VulcanStoneSystem</subject>
-     <field>gravity</field>
-    </PhysicsConnection>
-    <PhysicsConnection>
-     <subject>VulcanSparkSystem</subject>
-     <field>gravity</field>
-    </PhysicsConnection>
-   </Connections>
-  </PhysicsEngine>
+      <LightningEffect>
+			</LightningEffect>
+
+			<CloudEffect>
+        <option>activate</option>
+			</CloudEffect>
+
+		</WeatherEffect>
+	</AtmosphericEngine>
 
 </WorldDataFile>
