Index: code/branches/lod/data/levels/templates/lodinformation.oxt
===================================================================
--- code/branches/lod/data/levels/templates/lodinformation.oxt	(revision 6786)
+++ code/branches/lod/data/levels/templates/lodinformation.oxt	(revision 6786)
@@ -0,0 +1,7 @@
+<Template name=lodtemplate_default>
+  <Level>
+	<lodinformation>
+	  <MeshLodInformation mesh=ast1.mesh lodQuality=1 />
+	</lodinformation>
+  </Level>
+</Template>
Index: code/branches/lod/src/orxonox/Level.cc
===================================================================
--- code/branches/lod/src/orxonox/Level.cc	(revision 6785)
+++ code/branches/lod/src/orxonox/Level.cc	(revision 6786)
@@ -141,15 +141,17 @@
     
     //LoD
-    void Level::addLodInfo(const MeshLodInformation* lodInformation)
+    void Level::addLodInfo(MeshLodInformation* lodInformation)
     {
 //		std::pair<std::map<std::string,MeshLodInformation*>::iterator,bool> it 
 //		    = new std::pair<lodInformation->getMeshName(),lodInformation>;
-        this->lodInformation_.insert(std::pair<lodInformation->getMeshName(),lodInformation>);
+		std::string meshName = lodInformation->getMeshName();
+        this->lodInformation_.insert(std::make_pair(meshName,lodInformation));
+		//this->lodInformation_[std::make_pair<meshName,lodInformation>);
     }
 
-    MeshLodInformation* Level::getLodInfo(string meshName) const
+    const MeshLodInformation* Level::getLodInfo(std::string meshName) const
     {
-        if(this->lodInformation_.find(meshName)!=std::map::end)
-            return this->lodInformation_.find(meshName);
+        if(this->lodInformation_.find(meshName)!=this->lodInformation_.end())
+            return this->lodInformation_.find(meshName)->second;
         
         return 0;
Index: code/branches/lod/src/orxonox/Level.h
===================================================================
--- code/branches/lod/src/orxonox/Level.h	(revision 6785)
+++ code/branches/lod/src/orxonox/Level.h	(revision 6786)
@@ -62,6 +62,7 @@
             BaseObject* getObject(unsigned int index) const;
 
-            void addLodInfo(const MeshLodInformation* object);
-            MeshLodInformation* getLodInfo(unsigned int index) const;
+            void addLodInfo(MeshLodInformation* object);
+            const MeshLodInformation* getLodInfo(std::string meshName) const;
+//            MeshLodInformation* getLodInfo(unsigned int index) const;
 
             void setGametypeString(const std::string& gametype);
Index: code/branches/lod/src/orxonox/graphics/MeshLodInformation.cc
===================================================================
--- code/branches/lod/src/orxonox/graphics/MeshLodInformation.cc	(revision 6785)
+++ code/branches/lod/src/orxonox/graphics/MeshLodInformation.cc	(revision 6786)
@@ -40,5 +40,6 @@
     CreateFactory(MeshLodInformation);
 
-    MeshLodInformation::MeshLodInformation(BaseObject* creator) : StaticEntity(creator)
+    MeshLodInformation::MeshLodInformation(BaseObject* creator) 
+	: BaseObject(creator), lodLevel_(-1)
     {
         RegisterObject(MeshLodInformation);
@@ -56,11 +57,25 @@
     }
     
-    std::string getMeshName()
+    std::string MeshLodInformation::getMeshName()
     {
-        if(mesh!=null)
-            return mesh;
-        return "";
+		return MeshLodInformation::getMeshSource();
     }
-
+	
+	void MeshLodInformation::setLodLevel(unsigned int lodLevel)
+	{
+		lodLevel_=lodLevel;
+	}
+	int MeshLodInformation::getLodLevel()
+	{
+		return lodLevel_;
+	}
+	void MeshLodInformation::setMeshSource(std::string meshSource)
+	{
+		meshSource_ = meshSource;
+	}
+	std::string MeshLodInformation::getMeshSource()
+	{
+		return meshSource_;
+	}
  
 }
Index: code/branches/lod/src/orxonox/graphics/MeshLodInformation.h
===================================================================
--- code/branches/lod/src/orxonox/graphics/MeshLodInformation.h	(revision 6785)
+++ code/branches/lod/src/orxonox/graphics/MeshLodInformation.h	(revision 6786)
@@ -40,4 +40,12 @@
     class _OrxonoxExport MeshLodInformation : public BaseObject
     {
+		private:
+			void setLodLevel(unsigned int lodLevel);
+			int getLodLevel();
+			void setMeshSource(std::string meshSource);
+			std::string getMeshSource();
+			std::string meshSource_;
+			int lodLevel_;
+		
         public:
             MeshLodInformation(BaseObject* creator);
Index: code/branches/lod/src/orxonox/graphics/Model.cc
===================================================================
--- code/branches/lod/src/orxonox/graphics/Model.cc	(revision 6785)
+++ code/branches/lod/src/orxonox/graphics/Model.cc	(revision 6786)
@@ -102,16 +102,18 @@
 #endif
 
-                    distList.push_back(70.0f*scaleFactor);
-                    distList.push_back(140.0f*scaleFactor);
-                    distList.push_back(170.0f*scaleFactor);
-                    distList.push_back(200.0f*scaleFactor);
-                    distList.push_back(230.0f*scaleFactor);
-                    distList.push_back(250.0f*scaleFactor);
-                    distList.push_back(270.0f*scaleFactor);
-                    distList.push_back(290.0f*scaleFactor);
-                    distList.push_back(310.0f*scaleFactor);
-                    distList.push_back(330.0f*scaleFactor);
+					float factor = scaleFactor*scaleFactor*scaleFactor*scaleFactor;
 
-                    float reductionValue = 0.2f;
+                    distList.push_back(70.0f*factor);
+                    distList.push_back(140.0f*factor);
+                    distList.push_back(170.0f*factor);
+                    distList.push_back(200.0f*factor);
+                    distList.push_back(230.0f*factor);
+                    distList.push_back(250.0f*factor);
+                    distList.push_back(270.0f*factor);
+                    distList.push_back(290.0f*factor);
+                    distList.push_back(310.0f*factor);
+                    distList.push_back(330.0f*factor);
+
+                    float reductionValue = 0.5f;
 
                     
