diff --git a/Gui/CMakeLists.txt b/Gui/CMakeLists.txt
index eaa14c95138f323c6bf84f94618a4967821e4728..457b4679edcca1430c278f82b92a498a48cdf656 100644
--- a/Gui/CMakeLists.txt
+++ b/Gui/CMakeLists.txt
@@ -5,6 +5,11 @@ INCLUDE( ${VTK_USE_FILE} )
 
 SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO  "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /ZI /Od /Ob0")
 
+IF(VTKFBXCONVERTER_FOUND)
+	ADD_DEFINITIONS(-DVTKFBXCONVERTER_FOUND)
+	INCLUDE_DIRECTORIES(${VTKFBXCONVERTER_INCLUDE_DIRS})
+ENDIF()
+
 # Add subprojects
 ADD_SUBDIRECTORY( Base )
 ADD_SUBDIRECTORY( DataView/StratView )
diff --git a/Gui/DataExplorer.cmake b/Gui/DataExplorer.cmake
index 9286cce52ebe4542bf4cfcdef61c125f7d000cce..aeb46fb1154b9f2de0bd8344c2691d3f60264580 100644
--- a/Gui/DataExplorer.cmake
+++ b/Gui/DataExplorer.cmake
@@ -124,6 +124,10 @@ IF (OGS_USE_OPENSG)
 	TARGET_LINK_LIBRARIES( ogs-gui OgsOpenSG )
 ENDIF (OGS_USE_OPENSG)
 
+IF(VTKFBXCONVERTER_FOUND)
+	TARGET_LINK_LIBRARIES(ogs-gui ${VTKFBXCONVERTER_LIBRARIES})
+ENDIF()
+
 IF(OGS_USE_VRPN)
 	INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/Gui/Vrpn ${CMAKE_BINARY_DIR}/Gui/Vrpn )
 	TARGET_LINK_LIBRARIES( ogs-gui ${VRPN_LIBRARIES} OgsVrpn )
diff --git a/Gui/VtkVis/VtkVisPipelineItem.cpp b/Gui/VtkVis/VtkVisPipelineItem.cpp
index aae33aea245f2aff8a311eb277e580f00d0fa305..7d6684d06c3ae7b3ac67599648e023d8a6b49226 100644
--- a/Gui/VtkVis/VtkVisPipelineItem.cpp
+++ b/Gui/VtkVis/VtkVisPipelineItem.cpp
@@ -35,6 +35,16 @@
 #include <OpenSG/OSGSceneFileHandler.h>
 #endif
 
+#ifdef VTKFBXCONVERTER_FOUND
+#include "ThirdParty/VtkFbxConverter/VtkFbxConverter.h"
+#include "Common.h"
+#include <fbxsdk.h>
+
+
+extern FbxManager* lSdkManager;
+extern FbxScene* lScene;
+#endif
+
 VtkVisPipelineItem::VtkVisPipelineItem(
         vtkAlgorithm* algorithm, TreeItem* parentItem,
         const QList<QVariant> data /*= QList<QVariant>()*/)
@@ -126,6 +136,38 @@ int VtkVisPipelineItem::writeToFile(const std::string &filename) const
 #endif
 			return 0;
 		}
+#ifdef VTKFBXCONVERTER_FOUND
+		else if (filename.substr(filename.size() - 4).find("fbx") != std::string::npos)
+		{
+			if(!dynamic_cast<vtkImageActor*>(_actor))
+			{
+				bool lResult;
+				InitializeSdkObjects(lSdkManager, lScene);
+
+				VtkFbxConverter fbxConverter(static_cast<vtkActor*>(_actor), lScene);
+				fbxConverter.convert(filename.c_str());
+				fbxConverter.convertZUpAxis();
+				FbxNode* node = fbxConverter.getNode();
+				if(node)
+				{
+					lScene->GetRootNode()->AddChild(node);
+					// Get the file format. Use either "FBX [6.0] binary (*.fbx)" or "FBX [6.0] ascii (*.fbx)"
+					int fbxFormat = lSdkManager->GetIOPluginRegistry()
+						->FindWriterIDByDescription("FBX 6.0 binary (*.fbx)");
+					// Embed only works in "FBX 6.0 binary (*.fbx)"
+					const bool fbxEmbed = true;
+					SaveScene(lSdkManager, lScene, filename.c_str(), fbxFormat, fbxEmbed);
+					lScene->Clear();
+				}
+			}
+			else
+				QMessageBox::warning(NULL, "Conversion to FBX not possible",
+					"It is not possible to convert an vtkImageData based object \
+					to OpenSG. If you want to convert raster data import it via \" \
+					File / Import / Raster Files as PolyData\"!");
+			return 0;
+		}
+#endif // VTKFBXCONVERTER_FOUND
 
 		return callVTKWriter(this->algorithm(), filename);
 	}
diff --git a/Gui/VtkVis/VtkVisPipelineView.cpp b/Gui/VtkVis/VtkVisPipelineView.cpp
index f8eafc0b6af9a9dd98ff02bedfbeb26165d3fead..37cd300877d8fcc8aaded972fcf30ae5e64af2be 100644
--- a/Gui/VtkVis/VtkVisPipelineView.cpp
+++ b/Gui/VtkVis/VtkVisPipelineView.cpp
@@ -104,6 +104,9 @@ void VtkVisPipelineView::contextMenuEvent( QContextMenuEvent* event )
 		menu.addSeparator();
 		QAction* exportVtkAction = menu.addAction("Export as VTK");
 		QAction* exportOsgAction = menu.addAction("Export as OpenSG");
+#ifdef VTKFBXCONVERTER_FOUND
+		QAction* exportFbxAction = menu.addAction("Export as Fbx");
+#endif
 		QAction* removeAction = NULL;
 		if (!isSourceItem || vtkProps->IsRemovable())
 		{
@@ -117,6 +120,10 @@ void VtkVisPipelineView::contextMenuEvent( QContextMenuEvent* event )
 		        SLOT(exportSelectedPipelineItemAsVtk()));
 		connect(exportOsgAction, SIGNAL(triggered()), this,
 		        SLOT(exportSelectedPipelineItemAsOsg()));
+#ifdef VTKFBXCONVERTER_FOUND
+		connect(exportFbxAction, SIGNAL(triggered()), this,
+		        SLOT(exportSelectedPipelineItemAsFbx()));
+#endif
 
 		menu.exec(event->globalPos());
 	}
@@ -154,6 +161,24 @@ void VtkVisPipelineView::exportSelectedPipelineItemAsOsg()
 	}
 }
 
+#ifdef VTKFBXCONVERTER_FOUND
+void VtkVisPipelineView::exportSelectedPipelineItemAsFbx()
+{
+	QSettings settings("UFZ", "OpenGeoSys-5");
+	QModelIndex idx = this->selectionModel()->currentIndex();
+	QString filename = QFileDialog::getSaveFileName(this, "Export object to Fbx file",
+	                                                settings.value("lastExportedFileDirectory").
+	                                                toString(), "Fbx file (*.fbx)");
+	if (!filename.isEmpty())
+	{
+		static_cast<VtkVisPipelineItem*>(static_cast<VtkVisPipeline*>(this->model())->
+		                                 getItem(idx))->writeToFile(filename.toStdString());
+		QDir dir = QDir(filename);
+		settings.setValue("lastExportedFileDirectory", dir.absolutePath());
+	}
+}
+#endif // VTKFBXCONVERTER_FOUND
+
 void VtkVisPipelineView::removeSelectedPipelineItem()
 {
 	emit requestRemovePipelineItem(selectionModel()->currentIndex());
diff --git a/Gui/VtkVis/VtkVisPipelineView.h b/Gui/VtkVis/VtkVisPipelineView.h
index c3d6870b811597de42f28c9215929241704cf678..958c3a1e08c3cffc4dcb8e3bed83fe9d6a30edaa 100644
--- a/Gui/VtkVis/VtkVisPipelineView.h
+++ b/Gui/VtkVis/VtkVisPipelineView.h
@@ -59,6 +59,11 @@ private slots:
 	/// Exports the currently selected item as an OpenSG file
 	void exportSelectedPipelineItemAsOsg();
 
+#ifdef VTKFBXCONVERTER_FOUND
+	/// Exports the currently selected item as a Fbx file.
+	void exportSelectedPipelineItemAsFbx();
+#endif // VTKFBXCONVERTER_FOUND
+
 	/// Sends an requestRemovePipelineItem() signal to remove
 	/// the currently selected item.
 	void removeSelectedPipelineItem();
diff --git a/Gui/main.cpp b/Gui/main.cpp
index 9f95e98abd3516094c7d1a0ebf35da4b494a092b..a8c40cec051a7ab97ac038659fc880df4c5be5af 100644
--- a/Gui/main.cpp
+++ b/Gui/main.cpp
@@ -6,11 +6,20 @@
 #endif
 #include "logog/include/logog.hpp"
 #include "LogogSimpleFormatter.h"
+#ifdef VTKFBXCONVERTER_FOUND
+#include <fbxsdk.h>
+#include "Common.h"
+FbxManager* lSdkManager = NULL;
+FbxScene* lScene = NULL;
+#endif
 
 int main(int argc, char* argv[])
 {
 #ifdef OGS_USE_OPENSG
 	OSG::osgInit(argc, argv);
+#endif
+#ifdef VTKFBXCONVERTER_FOUND
+	InitializeSdkObjects(lSdkManager, lScene);
 #endif
 	LOGOG_INITIALIZE();
 	logog::Cout* logogCout = new logog::Cout;
@@ -30,6 +39,9 @@ int main(int argc, char* argv[])
 	delete formatter;
 	delete logogCout;
 	LOGOG_SHUTDOWN();
+#ifdef VTKFBXCONVERTER_FOUND
+	DestroySdkObjects(lSdkManager);
+#endif
 #ifdef OGS_USE_OPENSG
 	OSG::osgExit();
 #endif // OGS_USE_OPENSG
diff --git a/Gui/mainwindow.cpp b/Gui/mainwindow.cpp
index 5fb72930215901d88fd0f345109d6bfe6f69a1a5..e38ffd0e3b1a548f7517e6ef374513d8c661724a 100644
--- a/Gui/mainwindow.cpp
+++ b/Gui/mainwindow.cpp
@@ -735,7 +735,7 @@ QMenu* MainWindow::createImportFilesMenu()
 	QAction* rasterFiles = importFiles->addAction("&Raster Files...");
 	connect(rasterFiles, SIGNAL(triggered()), _signal_mapper, SLOT(map()));
 	_signal_mapper->setMapping(rasterFiles, ImportFileType::RASTER);
-#ifdef OGS_USE_OPENSG
+#if defined OGS_USE_OPENSG || defined VTKFBXCONVERTER_FOUND
 	QAction* rasterPolyFiles = importFiles->addAction("R&aster Files as PolyData...");
 	connect(rasterPolyFiles, SIGNAL(triggered()), this, SLOT(map()));
 	_signal_mapper->setMapping(rasterPolyFiles, ImportFileType::POLYRASTER);
diff --git a/ThirdParty/CMakeLists.txt b/ThirdParty/CMakeLists.txt
index 25d27330e5168e06a17405e8b5e2b5f02f69ee37..db423b9c620c6108e3d2fbefc5e99abb80dc53f3 100644
--- a/ThirdParty/CMakeLists.txt
+++ b/ThirdParty/CMakeLists.txt
@@ -9,3 +9,10 @@ SET_PROPERTY(TARGET test-logog PROPERTY FOLDER "logog")
 ADD_SUBDIRECTORY(zlib)
 
 ADD_SUBDIRECTORY(gtest)
+
+# VtkFbxConverter
+#SET(VtkFbxConverter_DIR ${CMAKE_CURRENT_SOURCE_DIR}/VtkFbxConverter)
+IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/VtkFbxConverter/CMakeLists.txt)
+	ADD_SUBDIRECTORY(VtkFbxConverter)
+	SET(VTKFBXCONVERTER_FOUND ON CACHE BOOL "Is the VtkFbxConverter submodule checked out?")
+ENDIF()
\ No newline at end of file
diff --git a/scripts/cmake/ProjectSetup.cmake b/scripts/cmake/ProjectSetup.cmake
index b6a44fd93486e19a8664d97b407a9cdf0b1f8ef7..d7b47c118f7081185e1d5a22d813de9fe3c545e1 100644
--- a/scripts/cmake/ProjectSetup.cmake
+++ b/scripts/cmake/ProjectSetup.cmake
@@ -18,4 +18,6 @@ ELSE()
 ENDIF() # NOT DEFINED OGS_LOG_LEVEL
 
 # Enable Visual Studio project folder grouping
-SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
\ No newline at end of file
+SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
+
+INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR} )
\ No newline at end of file