Index: code/branches/mergeFS18/data/levels/BumpMap.oxw
===================================================================
--- code/branches/mergeFS18/data/levels/BumpMap.oxw	(revision 12197)
+++ code/branches/mergeFS18/data/levels/BumpMap.oxw	(revision 12197)
@@ -0,0 +1,82 @@
+<!-- Author: Philip Wiese <wiesep@student.ethz.ch> -->
+<LevelInfo
+ name = "BumpMap"
+ description = "A demonstration of bump maps (created HS18)"
+ tags = "test, showcase"
+ screenshot = "bumpMap.png"
+/>
+
+<?lua
+  include("stats.oxo")
+  include("HUDTemplates3.oxo")
+  include("templates/lodInformation.oxt")
+?>
+
+<?lua
+  include("templates/spaceshipEscort.oxt")
+?>
+
+<Level>
+  <templates>
+    <Template link=lodtemplate_default />
+  </templates>
+  <?lua include("includes/notifications.oxi") ?>
+
+  <Scene
+    ambientlight = "0.5, 0.5, 0.5"
+    skybox       = "Orxonox/Starbox"
+  >
+
+
+  <!--
+    <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
+  -->
+
+    <Light type=point position="100,30,300" lookat="0,0,0" diffuse="0.8, 0.8, 0.8, 1.0" specular="0.5, 0.9, 0.9, 1.0"/>
+    <Model position="100,30,200" mesh="rocket.mesh" scale="3" lookat="0,0,0"/>
+
+    <Light type=point position="-20,-30,-200" lookat="0,0,0" diffuse="0.8, 0.8, 0.8, 1.0" specular="0.5, 0.5, 0.5, 1.0"/>
+    <Model position="-20,-30,-200" mesh="rocket.mesh" scale="3" lookat="0,0,0"/>
+    
+    <Light type=point position="20,200,20" lookat="0,0,0" diffuse="0.3, 0.3, 0.3, 1.0" specular="0.5, 0.5, 0.5, 1.0"/>
+    <Model position="20,200,20" mesh="rocket.mesh" scale="3" lookat="0,0,0"/>
+<!--
+    <Light type=point position="100,200,0" lookat="0,0,0" diffuse="0.8, 0.7, 0.7, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
+    <Model position="100,200,0" mesh="Coordinates.mesh" scale="3" lookat="0,0,0"/>
+
+    <Light type=point position="20,-200,0" lookat="0,0,0" diffuse="0.8, 0.7, 0.7, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
+    <Model position="20,-200,0" mesh="Coordinates.mesh" scale="3" lookat="0,0,0"/>
+
+    <Light type=point position="200,0,0" lookat="0,0,0" diffuse="0.8, 0.7, 0.7, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
+    <Model position="200,0,0" mesh="Coordinates.mesh" scale="3" lookat="0,0,0"/>
+
+    <Light type=point position="-200,0,0" lookat="0,0,0" diffuse="0.8, 0.7, 0.7, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
+    <Model position="-200,0,0" mesh="Coordinates.mesh" scale="3" lookat="0,0,0"/>
+-->
+    <SpawnPoint team=0 position="-80,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
+
+    <!--<Model position="0, -50,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="Cube_Lava.mesh" />
+    <Model position="0, 0,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="Cube_Lava_Normal.mesh" />
+    <Model position="0, 12,0" yaw="90" pitch="-90" roll="0" scale="10" mesh="Cube_Lava_V2.mesh" />
+    <Model position="0, -12,0" yaw="90" pitch="-90" roll="0" scale="10" mesh="Cube_Lava_V2_Normal.mesh" />
+    -->
+
+    <MovableEntity position="0,0,40" rotationrate="30" rotationaxis="1,0,1">
+      <attached>
+          <Model position="0, 0,0" roll="45" scale="10" mesh="Cube_Lava.mesh" />
+      </attached>
+    </MovableEntity>
+
+    <MovableEntity position="0,0,0" rotationrate="30" rotationaxis="1,0,1">
+      <attached>
+          <Model position="0, 0,0" roll="45" scale="10" mesh="Cube_Lava_Normal.mesh" />
+      </attached>
+    </MovableEntity>
+    <MovableEntity position="0,0,-40" rotationrate="30" rotationaxis="1,0,1">
+      <attached>
+          <Model position="0, 0,0" roll="45" scale="10" mesh="Cube_Lava_Normal_Blank.mesh" />
+      </attached>
+    </MovableEntity>
+
+  </Scene>
+</Level>
Index: code/branches/mergeFS18/data/levels/kart_alpha0.1.oxw
===================================================================
--- code/branches/mergeFS18/data/levels/kart_alpha0.1.oxw	(revision 12196)
+++ 	(revision )
@@ -1,83 +1,0 @@
-<LevelInfo
- name = "kart_controlls"
- description = "Level for Minigame Hover"
- tags = "minigame"
- screenshot = "emptylevel.png"
-/>
-
-<?lua
-  include("stats.oxo")
-  include("HUDTemplates3.oxo")
-  include("templates/lodInformation.oxt")
-?>
-
-<?lua
-  include("templates/spaceshipPirate.oxt")
-  include("templates/spaceshipHover.oxt")
-  include("overlays/HoverHUD.oxo")
-?>
-
-<?lua
-MAZE_NUM_CELLS = 10
-MAZE_CELL_SIZE = 100
-MAZE_CELL_HEIGHT = 30
-MAZE_SIZE = MAZE_NUM_CELLS*MAZE_CELL_SIZE
-?>
-
-<Level
-plugins = hover
-gametype = Hover
->
-  <templates>
-    <Template link=lodtemplate_default />
-  </templates>
-  <?lua include("includes/notifications.oxi") ?>
-
-
-  <Scene
-    ambientlight = "0.8, 0.8, 0.8"
-    skybox       = "Orxonox/Starbox"
-    gravity      = "0, -200, 0"
-  >
-
-    <StaticEntity position="0,0,0" collisionType="static">
-      <attached>
-        <HoverOrigin
-          numCells="<?lua print(MAZE_NUM_CELLS)?>"
-          cellSize="<?lua print(MAZE_CELL_SIZE)?>"
-          cellHeight="<?lua print(MAZE_CELL_HEIGHT)?>"
-        />
-        <Model
-          position="<?lua print(MAZE_SIZE/2)?>,-16,<?lua print(MAZE_SIZE/2)?>"
-          scale3D="<?lua print(MAZE_SIZE/2)?>,16,<?lua print(MAZE_SIZE/2)?>"
-          mesh="CubeGround.mesh"
-        />
-      </attached> 
-      <collisionShapes>
-        
-        <BoxCollisionShape
-          position="<?lua print(MAZE_SIZE/2)?>,-1,<?lua print(MAZE_SIZE/2)?>"
-          halfExtents="<?lua print(MAZE_SIZE/2)?>,1,<?lua print(MAZE_SIZE/2)?>"
-        />
-      </collisionShapes>
-    </StaticEntity>
-
-    <Light
-      type=directional
-      position="-50,500,-50"
-      direction="0.577, -0.577, 0.577"
-      diffuse="1.0, 0.9, 0.9, 1.0"
-      specular="1.0, 0.9, 0.9, 1.0"
-    />
-    
-    <SpawnPoint
-      team=0
-      position="50,20,50"
-      lookat="100,20,100"
-      spawnclass=HoverShip
-      pawndesign=spaceshiphover
-    />
-    
-  </Scene>
-</Level>
-
Index: code/branches/mergeFS18/data/levels/tutorial.oxw
===================================================================
--- code/branches/mergeFS18/data/levels/tutorial.oxw	(revision 12196)
+++ code/branches/mergeFS18/data/levels/tutorial.oxw	(revision 12197)
@@ -55,8 +55,8 @@
     <?lua end ?>
 
-    <GlobalShader compositor="Bloom" visible=false>
+    <GlobalShader compositor="Bloom" visible=true>
       <events>
         <visibility>
-          <DistanceTrigger position="0,0,0" distance=30 target="Spectator" switch=true />
+          <DistanceTrigger position="0,0,0" distance=300 target="Spectator" switch=false />
         </visibility>
       </events>
Index: code/branches/mergeFS18/src/libraries/tools/Mesh.cc
===================================================================
--- code/branches/mergeFS18/src/libraries/tools/Mesh.cc	(revision 12196)
+++ code/branches/mergeFS18/src/libraries/tools/Mesh.cc	(revision 12197)
@@ -35,4 +35,5 @@
 #include <OgreSubEntity.h>
 #include <OgreSceneManager.h>
+#include <OgreHardwareVertexBuffer.h>
 
 #include "util/Convert.h"
@@ -64,4 +65,5 @@
             this->scenemanager_->destroyEntity(this->entity_);
 
+
         if (GameMode::showsGraphics())
         {
@@ -70,6 +72,22 @@
                 this->entity_ = this->scenemanager_->createEntity("Mesh" + multi_cast<std::string>(Mesh::meshCounter_s++), meshsource);
                 this->entity_->setCastShadows(this->bCastShadows_);
-            }
-            catch (...)
+
+
+                unsigned short src, dest;
+                try
+                {
+                    if (!this->entity_->getMesh()->suggestTangentVectorBuildParams(Ogre::VertexElementSemantic::VES_TANGENT, src, dest))
+                    {
+                        orxout() << "Generate Tanget for \"" << meshsource << '"' << endl;
+                        this->entity_->getMesh()->buildTangentVectors(Ogre::VertexElementSemantic::VES_TANGENT, src, dest);
+                        // this version cleans mirrored and rotated UVs but requires quality models
+                        // mesh->buildTangentVectors(VES_TANGENT, src, dest, true, true);
+                    }
+                } catch (...)
+                {
+                    orxout(internal_warning) << "Couldn't generat tangets for \"" << meshsource << '"' << endl;
+                }
+
+            } catch (...)
             {
                 orxout(internal_error) << "Couldn't load mesh \"" << meshsource << '"' << endl;
@@ -107,5 +125,5 @@
                 this->entity_->getSubEntity(index)->setMaterialName(name);
         }
-        else 
+        else
             orxout() << "ERROR at Index " << index << endl;
     }
