diff --git a/src/libRender/RadiumNBR/Shaders/EmissivityPass/emissivitypass.vert.glsl b/src/libRender/RadiumNBR/Shaders/EmissivityPass/emissivitypass.vert.glsl
index 4e3af293b79b23df69cb2beb7cf25d1a3d035747..fde2a9a03acfc206848ae5c13497771be4b32fbe 100644
--- a/src/libRender/RadiumNBR/Shaders/EmissivityPass/emissivitypass.vert.glsl
+++ b/src/libRender/RadiumNBR/Shaders/EmissivityPass/emissivitypass.vert.glsl
@@ -1,16 +1,37 @@
 #include "TransformStructs.glsl"
 
 layout (location = 0) in vec3 in_position;
+layout (location = 1) in vec3 in_normal;
+layout (location = 2) in vec3 in_tangent;
+layout (location = 3) in vec3 in_bitangent;
 layout (location = 4) in vec3 in_texcoord;
+layout (location = 5) in vec4 in_color;
 
 uniform Transform transform;
 
+layout (location = 0) out vec3 out_position;
+layout (location = 1) out vec3 out_normal;
 layout (location = 2) out vec3 out_texcoord;
+layout (location = 3) out vec3 out_vertexcolor;
+layout (location = 4) out vec3 out_tangent;
 
 
 void main()
 {
     mat4 mvp = transform.proj * transform.view * transform.model;
     gl_Position = mvp * vec4(in_position, 1.0);
+
+    vec4 pos = transform.model * vec4(in_position, 1.0);
+    pos /= pos.w;
+
+    vec3 normal = mat3(transform.worldNormal) * in_normal;
+    vec3 tangent = mat3(transform.model) * in_tangent;
+
+    vec3 eye = -transform.view[3].xyz * mat3(transform.view);
+
+    out_position    = vec3(pos);
     out_texcoord    = in_texcoord;
+    out_normal      = normal;
+    out_tangent     = tangent;
+    out_vertexcolor = in_color.rgb;
 }
diff --git a/src/libRender/RadiumNBR/Shaders/EnvLightPass/envlightpass.vert.glsl b/src/libRender/RadiumNBR/Shaders/EnvLightPass/envlightpass.vert.glsl
index 07e139873d24517ca13c50913c11bdc036a27f20..7047d6b08cec38e91777e86108145ca0d861ed32 100644
--- a/src/libRender/RadiumNBR/Shaders/EnvLightPass/envlightpass.vert.glsl
+++ b/src/libRender/RadiumNBR/Shaders/EnvLightPass/envlightpass.vert.glsl
@@ -5,12 +5,14 @@ layout (location = 1) in vec3 in_normal;
 layout (location = 2) in vec3 in_tangent;
 layout (location = 3) in vec3 in_bitangent;
 layout (location = 4) in vec3 in_texcoord;
+layout (location = 5) in vec4 in_color;
 
 uniform Transform transform;
 
 layout (location = 0) out vec3 out_position;// Position in World Space
 layout (location = 1) out vec3 out_normal;
 layout (location = 2) out vec3 out_texcoord;// Used in case of normal mapping
+layout (location = 3) out vec3 out_vertexcolor;
 layout (location = 4) out vec3 out_tangent;
 layout (location = 5) out vec3 out_viewVector;
 
@@ -32,4 +34,5 @@ void main()
     out_normal      = normal;
     out_tangent     = tangent;
     out_viewVector  = vec3(eye - out_position);
+    out_vertexcolor = in_color.rgb;
 }
diff --git a/src/libRender/RadiumNBR/Shaders/LocalLightPass/lightpass.vert.glsl b/src/libRender/RadiumNBR/Shaders/LocalLightPass/lightpass.vert.glsl
index 907b72172bd5036e9518d53908f60f10a73c5624..ff94e0fe69ff1df276ffa0b5a83b4d08d85ab7bb 100644
--- a/src/libRender/RadiumNBR/Shaders/LocalLightPass/lightpass.vert.glsl
+++ b/src/libRender/RadiumNBR/Shaders/LocalLightPass/lightpass.vert.glsl
@@ -6,12 +6,14 @@ layout (location = 1) in vec3 in_normal;
 layout (location = 2) in vec3 in_tangent;
 layout (location = 3) in vec3 in_bitangent;
 layout (location = 4) in vec3 in_texcoord;
+layout (location = 5) in vec4 in_color;
 
 uniform Transform transform;
 
 layout (location = 0) out vec3 out_position;// Position in World Space
 layout (location = 1) out vec3 out_normal;
 layout (location = 2) out vec3 out_texcoord;// Used in case of normal mapping
+layout (location = 3) out vec3 out_vertexcolor;
 layout (location = 4) out vec3 out_tangent;
 layout (location = 5) out vec3 out_viewVector;
 layout (location = 6) out vec3 out_lightVector;
@@ -36,4 +38,5 @@ void main()
     out_tangent     = tangent;
     out_viewVector  = vec3(eye - out_position);
     out_lightVector = getLightDirection(light, out_position);
+    out_vertexcolor = in_color.rgb;
 }
diff --git a/src/libRender/RadiumNBR/Shaders/TransparencyPass/oitpass.vert.glsl b/src/libRender/RadiumNBR/Shaders/TransparencyPass/oitpass.vert.glsl
index 907b72172bd5036e9518d53908f60f10a73c5624..ff94e0fe69ff1df276ffa0b5a83b4d08d85ab7bb 100644
--- a/src/libRender/RadiumNBR/Shaders/TransparencyPass/oitpass.vert.glsl
+++ b/src/libRender/RadiumNBR/Shaders/TransparencyPass/oitpass.vert.glsl
@@ -6,12 +6,14 @@ layout (location = 1) in vec3 in_normal;
 layout (location = 2) in vec3 in_tangent;
 layout (location = 3) in vec3 in_bitangent;
 layout (location = 4) in vec3 in_texcoord;
+layout (location = 5) in vec4 in_color;
 
 uniform Transform transform;
 
 layout (location = 0) out vec3 out_position;// Position in World Space
 layout (location = 1) out vec3 out_normal;
 layout (location = 2) out vec3 out_texcoord;// Used in case of normal mapping
+layout (location = 3) out vec3 out_vertexcolor;
 layout (location = 4) out vec3 out_tangent;
 layout (location = 5) out vec3 out_viewVector;
 layout (location = 6) out vec3 out_lightVector;
@@ -36,4 +38,5 @@ void main()
     out_tangent     = tangent;
     out_viewVector  = vec3(eye - out_position);
     out_lightVector = getLightDirection(light, out_position);
+    out_vertexcolor = in_color.rgb;
 }
diff --git a/src/libRender/RadiumNBR/Shaders/ZPrepass/zprepass.vert.glsl b/src/libRender/RadiumNBR/Shaders/ZPrepass/zprepass.vert.glsl
index 938179c42282553b631697998a2ea72443ffec0a..fde2a9a03acfc206848ae5c13497771be4b32fbe 100644
--- a/src/libRender/RadiumNBR/Shaders/ZPrepass/zprepass.vert.glsl
+++ b/src/libRender/RadiumNBR/Shaders/ZPrepass/zprepass.vert.glsl
@@ -5,12 +5,14 @@ layout (location = 1) in vec3 in_normal;
 layout (location = 2) in vec3 in_tangent;
 layout (location = 3) in vec3 in_bitangent;
 layout (location = 4) in vec3 in_texcoord;
+layout (location = 5) in vec4 in_color;
 
 uniform Transform transform;
 
 layout (location = 0) out vec3 out_position;
 layout (location = 1) out vec3 out_normal;
 layout (location = 2) out vec3 out_texcoord;
+layout (location = 3) out vec3 out_vertexcolor;
 layout (location = 4) out vec3 out_tangent;
 
 
@@ -31,5 +33,5 @@ void main()
     out_texcoord    = in_texcoord;
     out_normal      = normal;
     out_tangent     = tangent;
-
+    out_vertexcolor = in_color.rgb;
 }