[Работа с видео, Работа с 3D-графикой, Unity] Сильные стороны трассировки лучей с непрямым освещением (перевод)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 4 месяца
Сообщений: 27286
Привет, Хабр! Представляю вашему вниманию перевод статьи «The Bright Side of Ray-Traced Global Illumination in Unity» автора Rubén Torres Bonet.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/ecaf9fa4b2268e610629e1822d097e36.jpg)
Свет — один из самых сильных приемов в визуальном искусстве. В симбиозе с музыкой, нарративом и всеми другими составляющими сцены он способен как усилить, так и ослабить результат. Опытные геймдизайнеры знают это и всегда выделяют свету особенную роль. Один из действенных методов — непрямое освещение. Ниже кратко расскажу о преимуществах трассировки лучей с непрямым освещением в Unity. Очевидные отличияРассмотрим разницу между Baked GI, Screen-space Raster GI и Screen-Space Ray-traced GI. Что не так со светом в этой сцене?![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/6ee0f1d5589d5b0f9ae9841a31dce570.png)
Верно, он либо слишком яркий, либо слишком темный, такого в реальной жизни не бывает. В это сцене использован принцип прямого освещения. А теперь посмотрите ниже. Используйте ползунок для более наглядного сравнения.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/42516d8db1af937aeb91b87b64739d07.png)
Рассмотрим очевидную разницу не в пользу прямого освещения более подробно. Принцип отражения света Световые лучи отражаются от поверхностей, меняют свои образующие факторы и в конечном итоге попадают на человеческий зрачок. При прямом освещении лучи отражаются от одного объекта. Давайте создадим простую сцену для сравнения прямого и непрямого освещения в Unity.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/aa5567e67a73900f8de43982afc92c12.png)
На схеме вы можете увидеть, что нижний зазор позволяет лучам достичь второй стены после отражения от пола. При прямом освещении тень на стене остается нетронутой, и вторичные световые лучи не проникают. Вот так это выглядит в Unity.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/2fc1e35a8876d58f03bc7f9487d76d19.png)
Давайте попробуем применить способ запекания лучей в отдельные фрагменты (Baked GI).Это самый простой и дешевый вариант для освещения статики, но как раз большим минусом является тот факт, что это работает только с неподвижными объектами.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/51fd1b3c3c6720baa40d7475f9836273.png)
Как видите, получившийся результат более приемлем. Лучшей картинки можно добиться, используя световые зонды, но это сопряжено с большим количеством проблем и потерей времени. Посмотрим, как тот же алгоритм будет выглядеть с использованием растрового пространства (Raster GI). Это также вполне доступный вариант с точки зрения производительности.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/3b73dd5087a6a2f5d21bac5e4936f1be.png)
Мало что изменилось. А теперь попробуем применить трассировку лучей с непрямым освещением (Screen-Space Ray-traced GI).![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/2b1bac33712c7b56541971a069294d7c.png)
Сочно, отличный вариант. Трассировка лучей обеспечивает красивое непрямое освещение и отлично работает с динамическими объектами в реальном времени. Единственной проблемой остается производительность на 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
===========
===========
Автор оригинала: Rubén Torres Bonet
===========Похожие новости:
- [Программирование, Разработка игр, C#, Unity] Базовые концепции Unity для программистов (перевод)
- [Работа с 3D-графикой, Unreal Engine, Развитие стартапа, Разработка под AR и VR, AR и VR] Заходят как-то в бар Мандалорец, Генлок и СКМ…
- [Работа с 3D-графикой] API Vulkan получило кроссплатформенную поддержку Ray Tracing
- [Delphi, Разработка игр, Unity] Math Invasion. Мой долгострой
- [Работа с видео, Гаджеты, Компьютерное железо, Научно-популярное, Процессоры] Apple M1. Если Intel ничего не предпримет, то мы можем увидеть его закат
- [Программирование, C++, ООП, Профессиональная литература] О C++ и объектно-ориентированном программировании (перевод)
- [Работа с 3D-графикой, Робототехника, 3D-принтеры, DIY или Сделай сам] Как я делал свой самолёт
- [Open source, Работа с видео, Законодательство в IT, История IT, Софт] Как появилась на свет программа youtube-dl (перевод)
- [Разработка игр, Google App Engine, Разработка под Android, Unity, DevOps] OPPO, Huawei, Xiaomi. Chinese app stores join forces to take on Google
- [Работа с 3D-графикой, Обработка изображений, Компьютерная анимация, Научно-популярное] Image Processing изображений из космоса для CG
Теги для поиска: #_rabota_s_video (Работа с видео), #_rabota_s_3dgrafikoj (Работа с 3D-графикой), #_unity, #_rejtrejsing (рейтрейсинг), #_raytracing, #_rabota_s_video (
Работа с видео
), #_rabota_s_3dgrafikoj (
Работа с 3D-графикой
), #_unity
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 04-Июл 14:41
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 4 месяца |
|
Привет, Хабр! Представляю вашему вниманию перевод статьи «The Bright Side of Ray-Traced Global Illumination in Unity» автора Rubén 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. Я работал со следующим железом.
=========== Источник: habr.com =========== =========== Автор оригинала: Rubén Torres Bonet ===========Похожие новости:
Работа с видео ), #_rabota_s_3dgrafikoj ( Работа с 3D-графикой ), #_unity |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 04-Июл 14:41
Часовой пояс: UTC + 5