diff --git a/src/main.cpp b/src/main.cpp index d59ebf6..dfd1a57 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -383,6 +383,23 @@ int main(void) scene.render(sunShadowShader, material_data); rectangle.render(sunShadowShader, material_data); + // Изменим размер вывода для стороны кубической карты точечного источника + glViewport(0, 0, pointShadow_resolution, pointShadow_resolution); + // Активируем буфер кадра для теней от солнца + pointShadowBuffer.use(); + // Подключим шейдер для расчета теней + pointShadowShader.use(); + // Очистка буфера глубины + glClear(GL_DEPTH_BUFFER_BIT); + // Для каждого источника вызывается рендер сцены + for (int i = 0; i < Light::getCount(); i++) + { + glUniform1i(pointShadowShader.getUniformLoc("light_i"), i); + // Рендерим геометрию в буфер глубины + scene.render(pointShadowShader, material_data); + rectangle.render(pointShadowShader, material_data); + } + // Изменим размер вывода для окна glViewport(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT); // Активируем базовый буфер кадра