Правда о трассировке лучей и видеокартах сегодня

Советуется к прочтению тем кто хочет понимать что происходит.

Фотореалистичное освещение в Unreal Engine 4 по методам растеризации
Фотореалистичное освещение в Unreal Engine 4 по методам растеризации

Заранее прошу прощения за немного чопорный технический язык изложения. Начну с преамбулы и окончу ясными выводами.

Я уверен, что сегодня, в 2018 году трассировка лучей не особо актуальная тема, учитывая, что трассировка лучей (просчёт всех лучей/отражений/преломления света и попадания его в камеру) уверенно выигрывала визуально перед растеризацией ("искусственная" имитация естественного поведения света и тени) 5 и более лет назад, когда технологии растеризации (в играх особенно) были довольно примитивными далёкими от натуралистичности. Трассировка уже очень давно имеет один уверенный плюс, если это доступно технически, то она гораздо проще со стороны кодинга - не требует кропотливой работы 3D-дизайнеров для получения реалистичной картинки. Требуется лишь время работы рендер-фермы, по этому трассировка уже давно пользуется уверенной популярностью в кинопроизводстве, где почти нет проблемы крайне ограниченных машинных ресурсов и не нужно просчитывать графику в реальном времени. Великое множество студий, специализирующихся на CG, вроде Blur, постоянно используют метод трассировки лучей при работе над заказами.

Но сегодня, в 2018 году, современный уровень развития технологий растеризации догнал трассировку лучей, как по качеству взаимного преломления, отражения, взаимодействия с материалами, искажений света, так и по теням с их естественными свойствами. В последнее время перестала быть особой проблемой даже динамическая смена времени суток и подобные виды "живого" света в играх, построенных на растеризации, к примеру в мультиплатформенной Everybody's Gone to the Rapture, где это возведено в одну из главных визуальных фишек проекта.

Грубо говоря чтобы нарисовать +/- фотореалистичное освещение в игре раньше можно было включить трассировку лучей например, накатив соответствующий мод на Кваку и всё, а растеризация (искусственные эффекты, имитирующие свойства света) не показывала такой же реалистичности. Сегодня же ситуация такова, что трассировка по принципу своей работы почти не изменившаяся с момента изобретения (это очень простая технология, но очень ресурсозатратная) от топовой растеризации почти не отличается, зато жрёт в 3-5 раз больше хардверных ресурсов (даже только в рамках видимого кадра) для достижения аналогичного качества по методам современной растеризации, совершенствующейся постоянно. Например при должном уровне знаний и усердия, все до одного эффекты, продемонстрированные DICE с рейтрейсингом в последнем демо можно симулировать на современном наборе шейдерных моделей, но это потребует не мало времени работы хороших специалистов в 3D-моделировании. Очень важно понимать что для всех нас, конечных потребителей, игроков, главное в этом вопросе - финальный результат, итоговое изображение, а не то, какими методами оно достигается.

Metro Exodus, включена трассировка лучей
Metro Exodus, включена трассировка лучей
Uncharted 4, полностью построена на современной растеризации
Uncharted 4, полностью построена на современной растеризации

Мы все со сравнительно недавних пор живём в эпоху технологической сингулярности, когда обычные люди не поспевают за достаточным пониманием устройства и природы повсеместно вводимых новых технологий. И крупнейшие мировые корпорации умело используют это положение в продвижении своих продуктов. С учётом современного уровня развития растеризации, тем игровым разработчикам, которые ограничены в окне использования хардверного потенциала (например разработчики игр под определенные платформы) гораздо выгоднее продолжать пользоваться растеризацией в своих играх. Лучше пустить высвободившиеся ресурсы на иные аспекты картинки, например поднять детализацию или дальность прорисовки. При этом совершенно без каких-либо отставаний в качестве по сравнению с трассировкой лучей. Так что на уровне простых потребителей это не совсем честный по отношению к людям маркетинг видеокарт - чтобы пользователи их покупали для своих компьютеров, ведясь на непонятные слова в названиях технологий. Это уже не просто бартер в духе "шило на мыло", а натуральная и ловкая игра на свойствах психологии масс, вынуждающая людей отдавать многие десятки тысяч честно заработанных рублей за потенциально сопоставимый (в руках толковых разработчиков) результат.

Unreal Paris, бенчмарк доступен бесплатно в Google Play. Фотореализм на вашем смартфоне . Никакой трассировки. Загрузите и посмотрите сами.
Unreal Paris, бенчмарк доступен бесплатно в Google Play. Фотореализм на вашем смартфоне . Никакой трассировки. Загрузите и посмотрите сами.
11K11K открытий
156 комментариев

Так то же освещение в Uncharted 4 или Unreal Paris как достигается? Я так понимаю, сперва рассчитывается с помощью той же трассировки, а потом запекается в лайтмапы, которые по сути дополнительные текстуры с данными об освещенности, только во первых они статичны, во вторых чем лучше их качество, тем больше они жрут памяти, вот и получается, что они подходят в основном только для коридорных игр (Uncharted 4, The Order: 1886), а для динамического освещения и для игр с открытым миром нужно дополнительно применять другие методы, которые дают худший результат. А трассировка в перспективе позволит выдавать натуральное статическое и, главное, динамическое освещение, вне зависимости от размеров сцены.

Лучше пустить высвободившиеся ресурсы на иные аспекты картинки, например поднять детализацию или дальность прорисовки.

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

вынуждающая людей отдавать многие десятки тысяч честно заработанных рублей за потенциально сопоставимый (в руках толковых разработчиков) результат.

Забавно звучит "вынуждающая", будто бы кто-то с пистолетом у виска стоит и заставляет покупать новые карты, когда старые еще справляются неплохо, к тому же эту трассировку никто включать не заставляет.

Ответить

Это всё будет работать так.
-- Мы добавили трассировку лучей! Ура! Теперь везде честный рефлекшн!
-- Но в реальном мире практически ничего не отражает свет? Кроме зеркал. Да и PBR + HDR + HD Textures + Reflection Probes работает нормально.
-- Новую карту купил! Жива!!!!

Ответить

Анчартед не корридор

Ответить

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

Ответить

Угу, вот как эта моделька Porshe, казалось бы, браузер, а откуда такая красивая картинка?
Так там заранее всё просчитано и оптимизировано под конкретные условия, захочешь сменить освещение, так всё сразу начнёт выглядеть ужасно, никакой динамичности.

Ответить

Комментарий недоступен

Ответить

все конечно верно...НО а как вы представляете себе переход о растеризации к рейстрейсингу, который рано или поздно бы случился?
типа выпускают карты без какой-либо оптимизации по рейтрей, рейтрей фичи не вводят в API и потом резко так в один день "мы рады вам видеокарту, которая тянет в 4к 60фпс фул рейтрей без растреризации вообще, а так же разработчики перенесли все новинки на фулрейтрей с растеризации и в них сможете поиграть уже завтра".
смешно же, ну.
а вот то что я вижу сейчас со стороны нвидии(и других) -это вполне логичные действия. начинаем потихоньку внедрять поддержку RT как в железо, так и в софт, причем с каждым годом степень внедрения будет увеличиваться и в один прекрасный момент RT появится на консолях, возможно даже выйдут игры, юзающие рейтрей на всю катушку.

Ответить