Генерация буфера

This commit is contained in:
parent 9dc496c4e8
commit 8485ceb2e4
1 changed files with 13 additions and 0 deletions

View File

@ -17,6 +17,7 @@ Texture* pgNormal = NULL;
Texture* pgDiffuseP = NULL; Texture* pgDiffuseP = NULL;
Texture* pgAmbientSpecular = NULL; Texture* pgAmbientSpecular = NULL;
RBO* pgrbo = NULL; RBO* pgrbo = NULL;
Texture* pssaoTexture = NULL;
// Размеры окна // Размеры окна
int WINDOW_WIDTH = 800; int WINDOW_WIDTH = 800;
int WINDOW_HEIGHT = 600; int WINDOW_HEIGHT = 600;
@ -38,6 +39,9 @@ void framebuffer_size_callback(GLFWwindow* window, int width, int height)
// И буфера глубины // И буфера глубины
if (pgrbo) if (pgrbo)
pgrbo->reallocate(width, height); pgrbo->reallocate(width, height);
// SSAO
if (pssaoTexture)
pssaoTexture->reallocate(width, height, 6, GL_RED, GL_RED);
// Запомним новые размеры окна // Запомним новые размеры окна
WINDOW_WIDTH = width; WINDOW_WIDTH = width;
@ -242,6 +246,15 @@ int main(void)
pointShadowShader.load(GL_FRAGMENT_SHADER, "shaders/point_shadow.frag"); pointShadowShader.load(GL_FRAGMENT_SHADER, "shaders/point_shadow.frag");
pointShadowShader.link(); pointShadowShader.link();
// Создадим буфер для вычисления SSAO
GLuint attachments_ssao[] = { GL_COLOR_ATTACHMENT0 };
FBO ssaoBuffer(attachments_ssao, sizeof(attachments_ssao) / sizeof(GLuint));
// Создадим текстуры для буфера кадра
Texture ssaoTexture(WINDOW_WIDTH, WINDOW_HEIGHT, GL_COLOR_ATTACHMENT0, 6, GL_RED, GL_RED);
pssaoTexture = &ssaoTexture;
// Активируем базовый буфер кадра
FBO::useDefault();
// Модель прямоугольника // Модель прямоугольника
Model rectangle; Model rectangle;