(Realtime-) Начальная точка глобального освещения [закрыто]

10

На какие приемы следует обращать внимание при получении глобального освещения в реальном времени (для сценариев динамического освещения)?

Трудно получить реальный контроль над различными упомянутыми методами, не зная ничего о предмете. Если бы я хотел включить GI в свой графический движок, с чего мне начать читать как основу? Какие алгоритмы могут быть реализованы в разумные сроки кем-то новым (то есть не узкоспециализированным алгоритмом, который дает незначительную производительность за месяцы работы) и которые не полностью устарели к настоящему времени (то есть прямо заменены чем-то более красивым и быстрым)?

Картирование фотонов, похоже, очень популярно, и я читал о таких вещах, как трассировка воксельных конусов и более конкретные алгоритмы, например, этот метод, используемый в CryEngine 3 . Однако, почти ничего не зная о поле, трудно решить, с чего начать.

Какие общие методы стоит изучить?

TravisG
источник
Вы специально ищете динамическое глобальное освещение? Есть много хорошо понятых и задокументированных алгоритмов для статического (или предварительно вычисленного) глобального освещения, но у меня такое ощущение, что вы их не ищете.
Chewy Gumball
1
Несмотря на интересную тему, этот вопрос, по сути, представляет собой «Что учить дальше», и на самом деле нет правильного ответа. Вместо этого я вижу только генерирование списка тем (которые, я считаю, именно то, что вам нужно). Это, конечно, крутая тема, но это тема для обсуждения, и, вероятно, не подходит для сайта.
MichaelHouse
1
Вопрос о том, каково текущее состояние техники, будет сильно локализован во времени.
1
9 голосов против и закрыто? Ты серьезно? @ Byte56
ashes999
1
@JoshPetrie Возможно, если сформулировать его как современное состояние, но этот вопрос может иметь очень полезные ответы, и причина для закрытия, кажется, довольно поверхностна.
Chewy Gumball

Ответы:

6

Почему бы тебе не заглянуть в мою магистерскую диссертацию ?

Очевидно, что результат был слишком тяжелым для SIGGRAPH, чтобы принять его (они отклонили мою работу), и я не участвовал ни в каких других конференциях. Но он все же представляет собой хорошее введение в GI, написанное с типичной понятностью бобобо (на самом деле некоторые разделы идут слишком глубоко, но, эй).

Вы захотите взглянуть на раздел 2.4, который очень быстро и со ссылками проходит через некоторые из новых алгоритмов ги в реальном времени, включая

  • трассировка лучей в реальном времени
  • излучение в реальном времени (просветить / bf3)
  • методы отложенного затенения и пространства экрана (ssdo, ssao)
  • предварительно вычисленный перенос сияния и сферические гармоники

Это все, что я получил в своем опросе. Отказ от ответственности, что я, возможно, что-то пропустил.

Во всяком случае, у вас действительно нет надежды реализовать все это за 3 месяца. Я бы сказал, выбрать один и работать с ним. Трассировка лучей в реальном времени, безусловно, самая захватывающая для меня , потому что это настоящий метод ги. В отличие от методов экранного пространства, rtrt не является «взломом» - он не страдает от странных эффектов, которые делает ssdo:

введите описание изображения здесь

bobobobo
источник
> В любом случае, у вас действительно нет надежды на реализацию всего этого за 3 месяца. Я бы сказал, выбрать один и работать с ним. <Это разочаровывает. Я не уверен, как бы я подошел к одному алгоритму таким образом, который стоит тезис бакалавра. Я думаю, просто реализовать это, чтобы увидеть, как это выглядит, недостаточно. И я не думаю, что я способен придумать свои собственные усовершенствования конкретного алгоритма (просто ничего не знаю о поле). Ну, по крайней мере, я бы хотел не рисковать, потратив на изучение еще 6 месяцев.
TravisG
Хорошо, поговорите со своим руководителем. Вы написали raytracer раньше? В основе любого из них обычно находится raytracer. Фотонное картирование «паркует» фотоны в сцене (по сути, направляя лучи от источника света в сцену), и после этого сцена отслеживается. Честно говоря, я считаю, что RTRT - лучший кандидат, потому что поднять базовый raytracer не так уж сложно, и вы можете добавлять / вырезать функции, если позволяет время. С некоторыми из более продвинутых алгоритмов (таких как тот, который вы связали), они очень сложны и имеют высокий барьер для входа.
Бобобобо
Этот пример made by evan является хорошим примером работы rtrt в вашем браузере.
Бобобобо