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