Русский
Русский
English
Статистика
Реклама

Сильные стороны трассировки лучей с непрямым освещением

Привет, Хабр! Представляю вашему вниманию перевод статьи The Bright Side of Ray-Traced Global Illumination in Unity автора Rubn Torres Bonet.

Свет один из самых сильных приемов в визуальном искусстве. В симбиозе с музыкой, нарративом и всеми другими составляющими сцены он способен как усилить, так и ослабить результат. Опытные геймдизайнеры знают это и всегда выделяют свету особенную роль. Один из действенных методов непрямое освещение. Ниже кратко расскажу о преимуществах трассировки лучей с непрямым освещением в Unity.

Очевидные отличия

Рассмотрим разницу между Baked GI, Screen-space Raster GI и Screen-Space Ray-traced GI. Что не так со светом в этой сцене?

Верно, он либо слишком яркий, либо слишком темный, такого в реальной жизни не бывает. В это сцене использован принцип прямого освещения. А теперь посмотрите ниже. Используйте ползунок для более наглядного сравнения.

Рассмотрим очевидную разницу не в пользу прямого освещения более подробно.

Принцип отражения света

Световые лучи отражаются от поверхностей, меняют свои образующие факторы и в конечном итоге попадают на человеческий зрачок. При прямом освещении лучи отражаются от одного объекта. Давайте создадим простую сцену для сравнения прямого и непрямого освещения в Unity.

На схеме вы можете увидеть, что нижний зазор позволяет лучам достичь второй стены после отражения от пола. При прямом освещении тень на стене остается нетронутой, и вторичные световые лучи не проникают. Вот так это выглядит в Unity.

Давайте попробуем применить способ запекания лучей в отдельные фрагменты (Baked GI).

Это самый простой и дешевый вариант для освещения статики, но как раз большим минусом является тот факт, что это работает только с неподвижными объектами.

Как видите, получившийся результат более приемлем. Лучшей картинки можно добиться, используя световые зонды, но это сопряжено с большим количеством проблем и потерей времени. Посмотрим, как тот же алгоритм будет выглядеть с использованием растрового пространства (Raster GI). Это также вполне доступный вариант с точки зрения производительности.

Мало что изменилось. А теперь попробуем применить трассировку лучей с непрямым освещением (Screen-Space Ray-traced GI).

Сочно, отличный вариант. Трассировка лучей обеспечивает красивое непрямое освещение и отлично работает с динамическими объектами в реальном времени. Единственной проблемой остается производительность на Unity. Я работал со следующим железом.

  • Процессор: AMD Ryzen 2700X

  • Графический процессор: TITAN RTX beefy edition

  • Набор данных: 3000 кадров, снятых в редакторе

  • Сцена: шаблон HDRP

  • Версии: Unity 2020.2.0b7 + HDRP 10.0.1

Средний фреймтайм в Full HD:

  • Baked GI: 27,64 мс.

  • GI + SSGI (низкое качество): 28,19 мс.

  • Baked GI + SSGI (среднее качество): 30,36 мс.

  • Baked GI + SSGI (высокое качество): 32,96 мс.

  • Baked GI + SSGI с трассировкой лучей (режим производительности - низкое качество): 32,07 мс.

  • Baked GI + SSGI с трассировкой лучей (режим производительности - среднее качество): 32,88 мс.

  • Baked GI + SSGI с трассировкой лучей (режим производительности - высокое качество): 34,81 мс.

  • Baked GI + SSGI с трассировкой лучей (режим качества): 107,91 мс.Некоторые значения в 4K:

  • Baked GI: 106,21 мс.

  • Baked GI + SSGI (среднего качества): 114,56

  • Baked GI + SSGI с трассировкой лучей (режим производительности - среднее качество): 119,77 мс.

  • Baked GI + SSGI с трассировкой лучей (режим качества): 421 мс.

Я оставил Baked, потому что при удалении этой карты освещения вся сцена ломается.

Не стоит принимать эти цифры как абсолютные. Это конкретная сцена при конкретных настройках с конкретным софтом и железом. Но вы можете сравнить фреймтайм и увидеть, как масштабируется производительность в этой сцене.

По итогам эмпирического сравнения у нас есть два вывода мы не готовы использовать Screen-Space Ray-traced GI в 4K, но вполне можем применить этот вариант в 1080 p. В итоге единственной причиной отказаться от Screen-Space Ray-traced GI является снижение производительности. Других причин жертвовать реалистичным освещением я не вижу. Именно реалистичность дает сильный эмоциональный эффект, позволяет погрузить в сцену, заставить зрителя подсознательно поверить в происходящее и на выходе сгенерировать максимальное воздействие.

Источник: habr.com
К списку статей
Опубликовано: 29.11.2020 12:04:16
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Работа с видео

Работа с 3d-графикой

Unity

Рейтрейсинг

Raytracing

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru