Рендер теней от точечных источников в буфер кадра
This commit is contained in:
parent
8455e85605
commit
4f5c5ee0cb
17
src/main.cpp
17
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);
|
||||
// Активируем базовый буфер кадра
|
||||
|
|
Loading…
Reference in New Issue