Шейдеры для G-буфера

This commit is contained in:
2022-12-20 14:49:07 +03:00
parent a36b2e7030
commit 553830964d
4 changed files with 52 additions and 65 deletions

View File

@@ -84,15 +84,15 @@ int main(void)
// Включаем проверку по буферу глубины
glEnable(GL_DEPTH_TEST);
// Базовый шейдер
ShaderProgram base;
// Шейдер для G-буфера
ShaderProgram gShader;
// Загрузка и компиляция шейдеров
base.load(GL_VERTEX_SHADER, "shaders/shader.vert");
base.load(GL_FRAGMENT_SHADER, "shaders/shader.frag");
base.link();
gShader.load(GL_VERTEX_SHADER, "shaders/gshader.vert");
gShader.load(GL_FRAGMENT_SHADER, "shaders/gshader.frag");
gShader.link();
// Установим значения текстур
const char* textures_base_shader_names[] = {"tex_diffuse", "tex_ambient", "tex_specular"};
base.bindTextures(textures_base_shader_names, sizeof(textures_base_shader_names)/sizeof(const char*));
gShader.bindTextures(textures_base_shader_names, sizeof(textures_base_shader_names)/sizeof(const char*));
// Загрузка сцены из obj файла
@@ -155,12 +155,12 @@ int main(void)
// Активируем буфер кадра
fbo.use();
// Используем шейдер с освещением
base.use();
gShader.use();
// Очистка буфера цвета и глубины
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Тут производится рендер
scene.render(base, material_data);
scene.render(gShader, material_data);
// Активируем базовый буфер кадра
FBO::useDefault();