diff --git a/.gitignore b/.gitignore
index 3be7689e0a..b345e9d619 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,4 @@ plugins.cfg
 openmw.cfg
 Doxygen
 .thumbnails
+resources
diff --git a/extern/caelum/CMakeLists.txt b/extern/caelum/CMakeLists.txt
old mode 100644
new mode 100755
index c0fea8257d..4226d8d4a1
--- a/extern/caelum/CMakeLists.txt
+++ b/extern/caelum/CMakeLists.txt
@@ -8,3 +8,50 @@ file(GLOB_RECURSE CAELUM_HDR include/*)
 
 set(SOURCES ${CAELUM_SRC} ${CAELUM_HDR})
 add_library(caelum STATIC ${SOURCES})
+
+#
+# Resources
+#
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/AtmosphereDepth.png "${OpenMW_BINARY_DIR}/resources/caelum/AtmosphereDepth.png" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/CaelumGroundFog.cg "${OpenMW_BINARY_DIR}/resources/caelum/CaelumGroundFog.cg" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/CaelumLayeredClouds.cg "${OpenMW_BINARY_DIR}/resources/caelum/CaelumLayeredClouds.cg" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/CaelumPhaseMoon.cg "${OpenMW_BINARY_DIR}/resources/caelum/CaelumPhaseMoon.cg" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/CaelumPointStarfield.cg "${OpenMW_BINARY_DIR}/resources/caelum/CaelumPointStarfield.cg" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/CaelumSkyDome.cg "${OpenMW_BINARY_DIR}/resources/caelum/CaelumSkyDome.cg" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/CloudCoverLookup.png "${OpenMW_BINARY_DIR}/resources/caelum/CloudCoverLookup.png" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/DepthComposer.cg "${OpenMW_BINARY_DIR}/resources/caelum/DepthComposer.cg" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/DepthComposer.compositor "${OpenMW_BINARY_DIR}/resources/caelum/DepthComposer.compositor" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/DepthComposer.material "${OpenMW_BINARY_DIR}/resources/caelum/DepthComposer.material" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/DepthRender.program "${OpenMW_BINARY_DIR}/resources/caelum/DepthRender.program" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/EarthClearSky2.png "${OpenMW_BINARY_DIR}/resources/caelum/EarthClearSky2.png" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/GroundFog.material "${OpenMW_BINARY_DIR}/resources/caelum/GroundFog.material" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/GroundFog.program "${OpenMW_BINARY_DIR}/resources/caelum/GroundFog.program" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/Haze.program "${OpenMW_BINARY_DIR}/resources/caelum/Haze.program" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/LayeredClouds.material "${OpenMW_BINARY_DIR}/resources/caelum/LayeredClouds.material" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/MinimalCompositorVP.cg "${OpenMW_BINARY_DIR}/resources/caelum/MinimalCompositorVP.cg" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/MinimalCompositorVP.program "${OpenMW_BINARY_DIR}/resources/caelum/MinimalCompositorVP.program" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/moon.material "${OpenMW_BINARY_DIR}/resources/caelum/moon.material" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/moon_disc.dds "${OpenMW_BINARY_DIR}/resources/caelum/moon_disc.dds" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/noise1.dds "${OpenMW_BINARY_DIR}/resources/caelum/noise1.dds" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/noise2.dds "${OpenMW_BINARY_DIR}/resources/caelum/noise2.dds" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/noise3.dds "${OpenMW_BINARY_DIR}/resources/caelum/noise3.dds" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/noise4.dds "${OpenMW_BINARY_DIR}/resources/caelum/noise4.dds" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/PointStarfield.material "${OpenMW_BINARY_DIR}/resources/caelum/PointStarfield.material" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/Precipitation.cg "${OpenMW_BINARY_DIR}/resources/caelum/Precipitation.cg" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/Precipitation.compositor "${OpenMW_BINARY_DIR}/resources/caelum/Precipitation.compositor" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/Precipitation.material "${OpenMW_BINARY_DIR}/resources/caelum/Precipitation.material" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/precipitation_drizzle.png "${OpenMW_BINARY_DIR}/resources/caelum/precipitation_drizzle.png" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/precipitation_hail.png "${OpenMW_BINARY_DIR}/resources/caelum/precipitation_hail.png" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/precipitation_icecrystals.png "${OpenMW_BINARY_DIR}/resources/caelum/precipitation_icecrystals.png" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/precipitation_icepellets.png "${OpenMW_BINARY_DIR}/resources/caelum/precipitation_icepellets.png" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/precipitation_rain.png "${OpenMW_BINARY_DIR}/resources/caelum/precipitation_rain.png" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/precipitation_smallhail.png "${OpenMW_BINARY_DIR}/resources/caelum/precipitation_smallhail.png" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/precipitation_snow.png "${OpenMW_BINARY_DIR}/resources/caelum/precipitation_snow.png" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/precipitation_snowgrains.png "${OpenMW_BINARY_DIR}/resources/caelum/precipitation_snowgrains.png" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/SkyDome.material "${OpenMW_BINARY_DIR}/resources/caelum/SkyDome.material" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/sphere.mesh "${OpenMW_BINARY_DIR}/resources/caelum/sphere.mesh" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/Starfield.jpg "${OpenMW_BINARY_DIR}/resources/caelum/Starfield.jpg" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/Starfield.material "${OpenMW_BINARY_DIR}/resources/caelum/Starfield.material" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/Sun.material "${OpenMW_BINARY_DIR}/resources/caelum/Sun.material" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/SunGradient.png "${OpenMW_BINARY_DIR}/resources/caelum/SunGradient.png" COPYONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/sun_disc.png "${OpenMW_BINARY_DIR}/resources/caelum/sun_disc.png" COPYONLY)
diff --git a/resources/caelum/AtmosphereDepth.png b/extern/caelum/resources/AtmosphereDepth.png
similarity index 100%
rename from resources/caelum/AtmosphereDepth.png
rename to extern/caelum/resources/AtmosphereDepth.png
diff --git a/resources/caelum/CaelumGroundFog.cg b/extern/caelum/resources/CaelumGroundFog.cg
similarity index 100%
rename from resources/caelum/CaelumGroundFog.cg
rename to extern/caelum/resources/CaelumGroundFog.cg
diff --git a/resources/caelum/CaelumLayeredClouds.cg b/extern/caelum/resources/CaelumLayeredClouds.cg
similarity index 100%
rename from resources/caelum/CaelumLayeredClouds.cg
rename to extern/caelum/resources/CaelumLayeredClouds.cg
diff --git a/resources/caelum/CaelumPhaseMoon.cg b/extern/caelum/resources/CaelumPhaseMoon.cg
similarity index 100%
rename from resources/caelum/CaelumPhaseMoon.cg
rename to extern/caelum/resources/CaelumPhaseMoon.cg
diff --git a/resources/caelum/CaelumPointStarfield.cg b/extern/caelum/resources/CaelumPointStarfield.cg
similarity index 100%
rename from resources/caelum/CaelumPointStarfield.cg
rename to extern/caelum/resources/CaelumPointStarfield.cg
diff --git a/resources/caelum/CaelumSkyDome.cg b/extern/caelum/resources/CaelumSkyDome.cg
similarity index 100%
rename from resources/caelum/CaelumSkyDome.cg
rename to extern/caelum/resources/CaelumSkyDome.cg
diff --git a/resources/caelum/CloudCoverLookup.png b/extern/caelum/resources/CloudCoverLookup.png
similarity index 100%
rename from resources/caelum/CloudCoverLookup.png
rename to extern/caelum/resources/CloudCoverLookup.png
diff --git a/resources/caelum/DepthComposer.cg b/extern/caelum/resources/DepthComposer.cg
similarity index 100%
rename from resources/caelum/DepthComposer.cg
rename to extern/caelum/resources/DepthComposer.cg
diff --git a/resources/caelum/DepthComposer.compositor b/extern/caelum/resources/DepthComposer.compositor
similarity index 100%
rename from resources/caelum/DepthComposer.compositor
rename to extern/caelum/resources/DepthComposer.compositor
diff --git a/resources/caelum/DepthComposer.material b/extern/caelum/resources/DepthComposer.material
similarity index 100%
rename from resources/caelum/DepthComposer.material
rename to extern/caelum/resources/DepthComposer.material
diff --git a/resources/caelum/DepthRender.program b/extern/caelum/resources/DepthRender.program
similarity index 100%
rename from resources/caelum/DepthRender.program
rename to extern/caelum/resources/DepthRender.program
diff --git a/resources/caelum/EarthClearSky2.png b/extern/caelum/resources/EarthClearSky2.png
similarity index 100%
rename from resources/caelum/EarthClearSky2.png
rename to extern/caelum/resources/EarthClearSky2.png
diff --git a/resources/caelum/GroundFog.material b/extern/caelum/resources/GroundFog.material
similarity index 100%
rename from resources/caelum/GroundFog.material
rename to extern/caelum/resources/GroundFog.material
diff --git a/resources/caelum/GroundFog.program b/extern/caelum/resources/GroundFog.program
similarity index 100%
rename from resources/caelum/GroundFog.program
rename to extern/caelum/resources/GroundFog.program
diff --git a/resources/caelum/Haze.program b/extern/caelum/resources/Haze.program
similarity index 100%
rename from resources/caelum/Haze.program
rename to extern/caelum/resources/Haze.program
diff --git a/resources/caelum/LayeredClouds.material b/extern/caelum/resources/LayeredClouds.material
similarity index 100%
rename from resources/caelum/LayeredClouds.material
rename to extern/caelum/resources/LayeredClouds.material
diff --git a/resources/caelum/MinimalCompositorVP.cg b/extern/caelum/resources/MinimalCompositorVP.cg
similarity index 100%
rename from resources/caelum/MinimalCompositorVP.cg
rename to extern/caelum/resources/MinimalCompositorVP.cg
diff --git a/resources/caelum/MinimalCompositorVP.program b/extern/caelum/resources/MinimalCompositorVP.program
similarity index 100%
rename from resources/caelum/MinimalCompositorVP.program
rename to extern/caelum/resources/MinimalCompositorVP.program
diff --git a/resources/caelum/PointStarfield.material b/extern/caelum/resources/PointStarfield.material
similarity index 100%
rename from resources/caelum/PointStarfield.material
rename to extern/caelum/resources/PointStarfield.material
diff --git a/resources/caelum/Precipitation.cg b/extern/caelum/resources/Precipitation.cg
similarity index 100%
rename from resources/caelum/Precipitation.cg
rename to extern/caelum/resources/Precipitation.cg
diff --git a/resources/caelum/Precipitation.compositor b/extern/caelum/resources/Precipitation.compositor
similarity index 100%
rename from resources/caelum/Precipitation.compositor
rename to extern/caelum/resources/Precipitation.compositor
diff --git a/resources/caelum/Precipitation.material b/extern/caelum/resources/Precipitation.material
similarity index 100%
rename from resources/caelum/Precipitation.material
rename to extern/caelum/resources/Precipitation.material
diff --git a/resources/caelum/SkyDome.material b/extern/caelum/resources/SkyDome.material
similarity index 100%
rename from resources/caelum/SkyDome.material
rename to extern/caelum/resources/SkyDome.material
diff --git a/resources/caelum/Starfield.jpg b/extern/caelum/resources/Starfield.jpg
similarity index 100%
rename from resources/caelum/Starfield.jpg
rename to extern/caelum/resources/Starfield.jpg
diff --git a/resources/caelum/Starfield.material b/extern/caelum/resources/Starfield.material
similarity index 100%
rename from resources/caelum/Starfield.material
rename to extern/caelum/resources/Starfield.material
diff --git a/resources/caelum/Sun.material b/extern/caelum/resources/Sun.material
similarity index 100%
rename from resources/caelum/Sun.material
rename to extern/caelum/resources/Sun.material
diff --git a/resources/caelum/SunGradient.png b/extern/caelum/resources/SunGradient.png
similarity index 100%
rename from resources/caelum/SunGradient.png
rename to extern/caelum/resources/SunGradient.png
diff --git a/resources/caelum/moon.material b/extern/caelum/resources/moon.material
similarity index 100%
rename from resources/caelum/moon.material
rename to extern/caelum/resources/moon.material
diff --git a/resources/caelum/moon_disc.dds b/extern/caelum/resources/moon_disc.dds
similarity index 100%
rename from resources/caelum/moon_disc.dds
rename to extern/caelum/resources/moon_disc.dds
diff --git a/resources/caelum/noise1.dds b/extern/caelum/resources/noise1.dds
similarity index 100%
rename from resources/caelum/noise1.dds
rename to extern/caelum/resources/noise1.dds
diff --git a/resources/caelum/noise2.dds b/extern/caelum/resources/noise2.dds
similarity index 100%
rename from resources/caelum/noise2.dds
rename to extern/caelum/resources/noise2.dds
diff --git a/resources/caelum/noise3.dds b/extern/caelum/resources/noise3.dds
similarity index 100%
rename from resources/caelum/noise3.dds
rename to extern/caelum/resources/noise3.dds
diff --git a/resources/caelum/noise4.dds b/extern/caelum/resources/noise4.dds
similarity index 100%
rename from resources/caelum/noise4.dds
rename to extern/caelum/resources/noise4.dds
diff --git a/resources/caelum/precipitation_drizzle.png b/extern/caelum/resources/precipitation_drizzle.png
similarity index 100%
rename from resources/caelum/precipitation_drizzle.png
rename to extern/caelum/resources/precipitation_drizzle.png
diff --git a/resources/caelum/precipitation_hail.png b/extern/caelum/resources/precipitation_hail.png
similarity index 100%
rename from resources/caelum/precipitation_hail.png
rename to extern/caelum/resources/precipitation_hail.png
diff --git a/resources/caelum/precipitation_icecrystals.png b/extern/caelum/resources/precipitation_icecrystals.png
similarity index 100%
rename from resources/caelum/precipitation_icecrystals.png
rename to extern/caelum/resources/precipitation_icecrystals.png
diff --git a/resources/caelum/precipitation_icepellets.png b/extern/caelum/resources/precipitation_icepellets.png
similarity index 100%
rename from resources/caelum/precipitation_icepellets.png
rename to extern/caelum/resources/precipitation_icepellets.png
diff --git a/resources/caelum/precipitation_rain.png b/extern/caelum/resources/precipitation_rain.png
similarity index 100%
rename from resources/caelum/precipitation_rain.png
rename to extern/caelum/resources/precipitation_rain.png
diff --git a/resources/caelum/precipitation_smallhail.png b/extern/caelum/resources/precipitation_smallhail.png
similarity index 100%
rename from resources/caelum/precipitation_smallhail.png
rename to extern/caelum/resources/precipitation_smallhail.png
diff --git a/resources/caelum/precipitation_snow.png b/extern/caelum/resources/precipitation_snow.png
similarity index 100%
rename from resources/caelum/precipitation_snow.png
rename to extern/caelum/resources/precipitation_snow.png
diff --git a/resources/caelum/precipitation_snowgrains.png b/extern/caelum/resources/precipitation_snowgrains.png
similarity index 100%
rename from resources/caelum/precipitation_snowgrains.png
rename to extern/caelum/resources/precipitation_snowgrains.png
diff --git a/resources/caelum/sphere.mesh b/extern/caelum/resources/sphere.mesh
similarity index 100%
rename from resources/caelum/sphere.mesh
rename to extern/caelum/resources/sphere.mesh
diff --git a/resources/caelum/sun_disc.png b/extern/caelum/resources/sun_disc.png
similarity index 100%
rename from resources/caelum/sun_disc.png
rename to extern/caelum/resources/sun_disc.png