Index: code/branches/radarDreiD/data/gui/scripts/MiscConfigMenu.lua
===================================================================
--- code/branches/radarDreiD/data/gui/scripts/MiscConfigMenu.lua	(revision 9817)
+++ code/branches/radarDreiD/data/gui/scripts/MiscConfigMenu.lua	(revision 9818)
@@ -38,4 +38,5 @@
     table.insert(P.commandList, "HUDNavigation MarkerLimit_")
     table.insert(P.commandList, "HUDNavigation showDistance")
+    table.insert(P.commandList, "HUDRadar RadarMode_")
 
     P.nameList = {}
@@ -60,4 +61,5 @@
     table.insert(P.nameList, "Marker Limit")
     table.insert(P.nameList, "Show Distance next to cursor")
+    table.insert(P.nameList, "Set Radar on 3D mode")
 
     P.linesList = {}
Index: code/branches/radarDreiD/data/overlays/HUDTemplates3.oxo
===================================================================
--- code/branches/radarDreiD/data/overlays/HUDTemplates3.oxo	(revision 9817)
+++ code/branches/radarDreiD/data/overlays/HUDTemplates3.oxo	(revision 9818)
@@ -111,5 +111,5 @@
     <HUDRadar
      name          = "Radar"
-     backgroundtex = "radar.png"
+     background    = "Orxonox/Radar"
      correctaspect = true
      size          = "0.17, 0.17"
@@ -122,8 +122,12 @@
     />
     -->
-    
+   
+   
+  
     <HUDRadar
      name          = "Radar"
-     backgroundtex = "radar3D_2_0.png"
+     background    = "Orxonox/Radar3D"
+     material2D    = "Orxonox/Radar"
+     material3D    = "Orxonox/Radar3D"
      correctaspect = true
      size          = "0.17, 0.17"
@@ -133,6 +137,9 @@
      sensitivity   = 1.0
      halfDotSizeDistance = 3000
-     maximumDotSize      = 0.1
+     maximumDotSize = 0.1
+     maximumDotSize3D      = 0.07
     />
+
+
 
     <HUDTimer
Index: code/branches/radarDreiD/src/modules/overlays/hud/HUDNavigation.cc
===================================================================
--- code/branches/radarDreiD/src/modules/overlays/hud/HUDNavigation.cc	(revision 9817)
+++ code/branches/radarDreiD/src/modules/overlays/hud/HUDNavigation.cc	(revision 9818)
@@ -74,6 +74,6 @@
         OrxonoxOverlay(context)
     {
-        RegisterObject(HUDNavigation)
-;        this->setConfigValues();
+        RegisterObject(HUDNavigation);
+        this->setConfigValues();
 
         // Set default values
Index: code/branches/radarDreiD/src/modules/overlays/hud/HUDRadar.cc
===================================================================
--- code/branches/radarDreiD/src/modules/overlays/hud/HUDRadar.cc	(revision 9817)
+++ code/branches/radarDreiD/src/modules/overlays/hud/HUDRadar.cc	(revision 9818)
@@ -42,4 +42,5 @@
 #include "Scene.h"
 #include "Radar.h"
+#include "core/config/ConfigValueIncludes.h"
 
 namespace orxonox
@@ -51,4 +52,5 @@
     {
         RegisterObject(HUDRadar);
+        this->setConfigValues();
 
         this->marker_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
@@ -61,4 +63,5 @@
         this->setHalfDotSizeDistance(3000.0f);
         this->setMaximumDotSize(0.1f);
+        this->setMaximumDotSize3D(0.07f);
 
         this->shapeMaterials_[RadarViewable::Dot]      = "RadarDot.png";
@@ -82,4 +85,11 @@
     }
 
+
+
+    void HUDRadar::setConfigValues()
+       {
+           SetConfigValue(RadarMode_, true);
+       }
+
     void HUDRadar::XMLPort(Element& xmlelement, XMLPort::Mode mode)
     {
@@ -89,4 +99,7 @@
         XMLPortParam(HUDRadar, "halfDotSizeDistance", setHalfDotSizeDistance, getHalfDotSizeDistance, xmlelement, mode);
         XMLPortParam(HUDRadar, "maximumDotSize", setMaximumDotSize, getMaximumDotSize, xmlelement, mode);
+        XMLPortParam(HUDRadar, "maximumDotSize3D", setMaximumDotSize3D, getMaximumDotSize3D, xmlelement, mode);
+        XMLPortParam(HUDRadar, "Material2D", set2DMaterial, get2DMaterial, xmlelement, mode);
+        XMLPortParam(HUDRadar, "Material3D", set3DMaterial, get3DMaterial, xmlelement, mode);
     }
 
@@ -153,4 +166,18 @@
         // update the distances for all objects
         std::map<RadarViewable*,Ogre::PanelOverlayElement*>::iterator it;
+
+
+        if(RadarMode_)
+        {
+        	this->setBackgroundMaterial(material3D_);
+
+
+
+        }
+        else
+        	this->setBackgroundMaterial(material2D_);
+
+
+
         for( it = this->radarObjects_.begin(); it != this->radarObjects_.end(); ++it )
         {
@@ -166,22 +193,28 @@
             float distance = (wePointer->getWorldPosition() - this->owner_->getPosition()).length();
             // calculate the size with 1/distance dependency for simplicity (instead of exp(-distance * lambda)
-            float size = maximumDotSize_ * halfDotSizeDistance_ / (halfDotSizeDistance_ + distance) * it->first->getRadarObjectScale();
-
-
+
+            float size;
+            if(RadarMode_)
+            	size = maximumDotSize3D_ * halfDotSizeDistance_ / (halfDotSizeDistance_ + distance) * it->first->getRadarObjectScale();
+            else
+            	size = maximumDotSize_ * halfDotSizeDistance_ / (halfDotSizeDistance_ + distance) * it->first->getRadarObjectScale();
             it->second->setDimensions(size, size);
 
             // calc position on radar...
-            //Vector2 coord = get2DViewcoordinates(this->owner_->getPosition(), this->owner_->getOrientation() * WorldEntity::FRONT, this->owner_->getOrientation() * WorldEntity::UP, wePointer->getWorldPosition());
-            Vector2 coord = get3DProjection(this->owner_->getPosition(), this->owner_->getOrientation() * WorldEntity::FRONT, this->owner_->getOrientation() * WorldEntity::UP, wePointer->getWorldPosition(), 0.6435011, detectionLimit_);
-
-            // set zOrder on screen
-            bool overXZPlain = isObjectHigherThanShipOnMap(this->owner_->getPosition(), this->owner_->getOrientation() * WorldEntity::FRONT, this->owner_->getOrientation() * WorldEntity::UP, wePointer->getWorldPosition(), 0.6435011);
-
-            if(overXZPlain == false && (it->second->getZOrder() >  100 * this->overlay_->getZOrder())) // it appears that zOrder of attached Overlayelements is 100 times the zOrder of the Overlay
-            	it->second->_notifyZOrder(this->overlay_->getZOrder() * 100 - 1);
-            if(overXZPlain == true && (it->second->getZOrder() <= 100 * this->overlay_->getZOrder()))
-            	it->second->_notifyZOrder(this->overlay_->getZOrder() * 100 + 1);
-
-
+            Vector2 coord;
+            if(RadarMode_)
+            {
+            	coord = get3DProjection(this->owner_->getPosition(), this->owner_->getOrientation() * WorldEntity::FRONT, this->owner_->getOrientation() * WorldEntity::UP, wePointer->getWorldPosition(), 0.6435011, detectionLimit_);
+
+            	// set zOrder on screen
+            	bool overXZPlain = isObjectHigherThanShipOnMap(this->owner_->getPosition(), this->owner_->getOrientation() * WorldEntity::FRONT, this->owner_->getOrientation() * WorldEntity::UP, wePointer->getWorldPosition(), 0.6435011);
+
+            	if(overXZPlain == false && (it->second->getZOrder() >  100 * this->overlay_->getZOrder())) // it appears that zOrder of attached Overlayelements is 100 times the zOrder of the Overlay
+            		it->second->_notifyZOrder(this->overlay_->getZOrder() * 100 - 1);
+            	if(overXZPlain == true && (it->second->getZOrder() <= 100 * this->overlay_->getZOrder()))
+            		it->second->_notifyZOrder(this->overlay_->getZOrder() * 100 + 1);
+            }
+            else
+            	coord = get2DViewcoordinates(this->owner_->getPosition(), this->owner_->getOrientation() * WorldEntity::FRONT, this->owner_->getOrientation() * WorldEntity::UP, wePointer->getWorldPosition());
 
             coord *= math::pi / 3.5f; // small adjustment to make it fit the texture
Index: code/branches/radarDreiD/src/modules/overlays/hud/HUDRadar.h
===================================================================
--- code/branches/radarDreiD/src/modules/overlays/hud/HUDRadar.h	(revision 9817)
+++ code/branches/radarDreiD/src/modules/overlays/hud/HUDRadar.h	(revision 9818)
@@ -35,4 +35,5 @@
 #include <map>
 #include <vector>
+#include <string>
 
 #include "util/OgreForwardRefs.h"
@@ -51,4 +52,5 @@
         virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
         virtual void changedOwner();
+        void setConfigValues();
 
     private:
@@ -64,4 +66,13 @@
         float getMaximumDotSize() const { return this->maximumDotSize_; }
         void setMaximumDotSize(float size) { this->maximumDotSize_ = size; }
+
+        float getMaximumDotSize3D() const { return this->maximumDotSize3D_; }
+        void setMaximumDotSize3D(float size) { this->maximumDotSize3D_ = size;}
+
+        std::string get2DMaterial() const {return this->material2D_; }
+        void set2DMaterial(std::string material2D) { this->material2D_ = material2D; }
+
+        std::string get3DMaterial() const {return this->material3D_; }
+        void set3DMaterial(std::string material3D) { this->material3D_ = material3D; }
 
         float getRadarSensitivity() const { return this->sensitivity_; }
@@ -85,6 +96,12 @@
         Ogre::PanelOverlayElement* marker_;
 
+        bool RadarMode_; // Determines, if Radar runs in 3D or 2D Mode
+
         float halfDotSizeDistance_;
         float maximumDotSize_;
+        float maximumDotSize3D_;
+
+        std::string material2D_;
+        std::string material3D_;
 
         float sensitivity_;
