diff --git a/shaders/quad.frag b/shaders/quad.frag new file mode 100644 index 0000000..d466432 --- /dev/null +++ b/shaders/quad.frag @@ -0,0 +1,12 @@ +#version 420 core + +in vec2 texCoord; + +uniform sampler2D tex; + +out vec4 color; + +void main() +{ + color = texture(tex, texCoord); +} \ No newline at end of file diff --git a/shaders/quad.vert b/shaders/quad.vert new file mode 100644 index 0000000..fb0683c --- /dev/null +++ b/shaders/quad.vert @@ -0,0 +1,11 @@ +#version 420 core + +layout(location = 0) in vec3 pos; + +out vec2 texCoord; + +void main() +{ + gl_Position = vec4(pos, 1.0); + texCoord = (pos.xy + vec2(1.0)) / 2; // Переход от [-1;1] к [0;1] +} \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 038daac..e5e074a 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -137,7 +137,12 @@ int main(void) // Базовый буфер кадра glBindFramebuffer(GL_FRAMEBUFFER, 0); - + // Шейдер для переноса текстуры на прямоугольник + ShaderProgram quadProgram; + // Загрузка и компиляция шейдеров + quadProgram.load(GL_VERTEX_SHADER, "shaders/quad.vert"); + quadProgram.load(GL_FRAGMENT_SHADER, "shaders/quad.frag"); + quadProgram.link(); // Пока не произойдет событие запроса закрытия окна while(!glfwWindowShouldClose(window))