diff --git a/Shaders/Projector/Projector.frag b/Shaders/Projector/Projector.frag
index 22a6025b6dffb4db56381adce8abfe6f1d6b52ef..cafa84e149e79bfb0da127a1ea90efc5ae4a007d 100644
--- a/Shaders/Projector/Projector.frag
+++ b/Shaders/Projector/Projector.frag
@@ -1,15 +1,19 @@
 #version 330 core
-uniform sampler2D projMap_forCam1;
+uniform sampler2D image;
+
+out vec4 FragColor;
+
+in vec4 TexCoords;
 
 void main (void)
 {
-    vec4 final_color = vec4(0.0, 0.0, 0.0, 1.0);
-    if( gl_TexCoord[0].q > 0.0 )
-    {
-		vec4 ProjMapColor_forCam1 = texture2DProj(projMap_forCam1, gl_TexCoord[0]);
+	vec4 final_color;
+    if( TexCoords.q > 0.0 )
+    {    
+		vec2 finalCoords = TexCoords.st / TexCoords.q;
+		vec4 ProjMapColor_forCam1 = texture(image, finalCoords);
 		final_color = ProjMapColor_forCam1;			
     }
 
-		
-    gl_FragColor = final_color;			
+    FragColor = final_color;
 }
\ No newline at end of file
diff --git a/Shaders/Projector/Projector.vert b/Shaders/Projector/Projector.vert
index 256d22f8173a1e4fa6f02bc099f241bc31b4e40b..0082afb510821ea7eabedabc7fb56d82b627c880 100644
--- a/Shaders/Projector/Projector.vert
+++ b/Shaders/Projector/Projector.vert
@@ -1,19 +1,20 @@
 #version 330 core
-uniform mat4 TexGenMatCam0;
-uniform mat4 ViewMat;
+layout (location = 0) in vec3 aPos;
+
+out vec4 TexCoords;
 
+uniform mat4 TexGenMatCam0;
 uniform mat4 model;
 uniform mat4 view;
 uniform mat4 projection;
 
 void main()
-{
-	mat4 InvViewMat = inverse(ViewMat);	
-	
-	vec4 posEye =  gl_ModelViewMatrix * gl_Vertex;
-	vec4 posWorld = InvViewMat * posEye;
+{	
+	vec3 FragPos = vec3(model * vec4(aPos, 1.0));
+	vec4 VertexPos_eye =  model * view * vec4(aPos, 1.0);
+	vec4 VertexPos_world = inverse(view) * VertexPos_eye;
 		
-	gl_TexCoord[0] = TexGenMatCam0 * posWorld;
+	TexCoords = TexGenMatCam0 * VertexPos_world;
 
-	gl_Position = ftransform();		
+	gl_Position = projection * view * vec4(FragPos, 1.0);
 }
\ No newline at end of file