Шейдеры освещения

This commit is contained in:
2022-12-20 14:58:07 +03:00
parent 946cd5d082
commit 721dc90c0c
3 changed files with 64 additions and 20 deletions

View File

@@ -129,12 +129,14 @@ int main(void)
// Активируем базовый буфер кадра
FBO::useDefault();
// Шейдер для переноса текстуры на прямоугольник
ShaderProgram quadProgram;
// Шейдер для расчета освещенности
ShaderProgram lightShader;
// Загрузка и компиляция шейдеров
quadProgram.load(GL_VERTEX_SHADER, "shaders/quad.vert");
quadProgram.load(GL_FRAGMENT_SHADER, "shaders/quad.frag");
quadProgram.link();
lightShader.load(GL_VERTEX_SHADER, "shaders/quad.vert");
lightShader.load(GL_FRAGMENT_SHADER, "shaders/lighting.frag");
lightShader.link();
const char* gtextures_shader_names[] = {"gPosition", "gNormal", "gDiffuseP", "gAmbientSpecular"};
lightShader.bindTextures(gtextures_shader_names, sizeof(gtextures_shader_names)/sizeof(const char*));
glm::vec3 quadVertices[] = { {-1.0f, 1.0f, 0.0f}
, {-1.0f, -1.0f, 0.0f}
@@ -167,12 +169,15 @@ int main(void)
// Активируем базовый буфер кадра
FBO::useDefault();
// Подключаем шейдер для прямоугольника
quadProgram.use();
lightShader.use();
// Очистка буфера цвета и глубины
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Подключаем текстуру цветов
// Подключаем текстуры G-буфера
gPosition.use();
gNormal.use();
gDiffuseP.use();
// Рендерим прямоугольник
gAmbientSpecular.use();
// Рендерим прямоугольник с расчетом освещения
quadModel.render();
// Представление содержимого буфера цепочки показа на окно