Методы учета вклада статического освещения на динамических объектах - PullRequest
1 голос
/ 02 апреля 2019

В настоящее время я работаю над предварительным вычислением статического освещения для небольшого графического движка.

Вот мой текущий рабочий процесс:

  • У объектов и источников света есть тег мобильности (статический илидинамический)
  • Перед рендерингом световые карты вычисляются для статического освещения и статических объектов.
  • Расчеты динамического освещения выполняются с использованием модели отложенного затенения.
  • Статические объекты применяют свои карты освещенияво время геометрического прохода.

Проблема заключается в следующем:

В идеале статические источники света также освещают динамические объекты, а динамические источники света освещают статические объекты (все в отложенном шейдере).Проблема заключается в том, что вклады статического освещения в статические объекты будут «дважды учитываться» в отложенном шейдере, т.е. статические источники света будут освещать объекты, которые уже были освещены этими источниками света.Каковы некоторые методы учета этого?

Вот некоторые из идей, которые у меня были;однако все они не идеальны:

  • Делайте статические источники света не светящимися динамическими объектами (или наоборот: динамические источники света не освещайте статические объекты).
    • Вероятно, это будет мой последний выбор решения.
  • Передайте тег мобильности для каждого источника света отложенному шейдеру, а также сделайте тег мобильности частьюGBuffer.
    • Я действительно не хочу добавлять другую цель рендеринга для тега мобильности (я уже использую 4 для PBR!).
  • Избавиться от предварительно вычисленных световых карт длястатическая геометрия вообще?
    • Я тоже не хочу этого делать.

Есть ли другие возможные решения этой проблемы?

...