diff --git a/src/main.cpp b/src/main.cpp index f1ae68d..038daac 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -118,6 +118,27 @@ int main(void) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); // Использование уменьшенных версий mipmap + // Создадим буфер кадра и сделаем его активным + GLuint fbo; + glGenFramebuffers(1, &fbo); + glBindFramebuffer(GL_FRAMEBUFFER, fbo); + // Создадим текстуры для буфера кадра + Texture colors(WINDOW_WIDTH, WINDOW_HEIGHT, GL_COLOR_ATTACHMENT0); + Texture normals(WINDOW_WIDTH, WINDOW_HEIGHT, GL_COLOR_ATTACHMENT1, 0, GL_RGBA16F); + // Укажем буферу используемые точки привязки текстур + GLuint attachments[] = { GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1 }; + glDrawBuffers(sizeof(attachments) / sizeof(GLuint), attachments); + // Создадим буфер рендера под буфер глубины и привяжем его + unsigned int rbo; + glGenRenderbuffers(1, &rbo); + glBindRenderbuffer(GL_RENDERBUFFER, rbo); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, WINDOW_WIDTH, WINDOW_HEIGHT); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, rbo); + // Базовый буфер кадра + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + + // Пока не произойдет событие запроса закрытия окна while(!glfwWindowShouldClose(window)) {