Russian Qt Forum

Qt => OpenGL => Тема начата: qtkoder777 от Октябрь 25, 2017, 10:04



Название: Самый простой способ добавить тени
Отправлено: qtkoder777 от Октябрь 25, 2017, 10:04
Вот есть же простой алгоритм:
- Нарисовать сцену из позиции источника света
- Сохранить точки, которые не видны из позиции источника света
- Нарисовать сцену из позиции камеры
- Добавить тень в точках, которые из позиции камеры видны, а из позиции источника света не видны

Но реализация у него пугающая. Код длинный и непонятный, используются дополнительные библиотеки.
http://www.gamedev.ru/code/articles/ShadowMapGLSL

Можно ли его реализовать без шейдеров, без glew, без ARB и т.д.?


Название: Re: Самый простой способ добавить тени
Отправлено: Igors от Октябрь 25, 2017, 13:59
Вот есть же простой алгоритм:
- Нарисовать сцену из позиции источника света
- Сохранить точки, которые не видны из позиции источника света
- Нарисовать сцену из позиции камеры
- Добавить тень в точках, которые из позиции камеры видны, а из позиции источника света не видны
Ну вообще-то все не так. Источник рассматривается как (еще одна) камера, рендерим в текстуру сохраняя вместо цвета Z точки. Потом (на финальном рендере) эту текстуру бросаем пирамидой и, сравнивая сохраненное Z с текущим находим есть тень или нет

Но реализация у него пугающая. Код длинный и непонятный, используются дополнительные библиотеки.
http://www.gamedev.ru/code/articles/ShadowMapGLSL

Можно ли его реализовать без шейдеров, без glew, без ARB и т.д.?
Нет. Это самые дешевые/простые тени