{"id":4008,"url":"\/distributions\/4008\/click?bit=1&hash=3e0e24714242dbbafe0bc5f0070ccccc83480de788b38ffe56426b16d15d7a5e","title":"\u0423\u0437\u043d\u0430\u043b\u0438, \u0447\u0435\u0433\u043e \u0436\u0434\u0443\u0442 \u043e\u0442 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430 \u043b\u044e\u0434\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u0439","buttonText":"","imageUuid":"","isPaidAndBannersEnabled":false}

Лабиринт отражений: история трассировки лучей в играх

Технология, которая уже десять лет идёт в «риалтайм».

У энтузиастов компьютерной графики раз в несколько лет обязательно возникает повод для бурных дискуссий: очередную технологию для заранее просчитанной графики удаётся «протащить» в игры — то есть начать обрабатывать в реальном времени.

Каждый такой сдвиг серьёзно разделяет поколения железа на «до» и «после». Когда-то такими водоразделами являлись шейдеры, бамп-мэппинг и нормал-мэппинг, имитации глобального освещения и даже продвинутые эффекты частиц.

Сегодня из шкафа обещаний вновь достали, наверное, самую заезженную легенду — трассировку лучей в реальном времени. Причём сделали это достаточно громко: Microsoft, NVIDIA, 4A Games, Epic и многие другие привезли на GDC сразу несколько демо-версий, где наглядно показали не столько плюсы технологии ray tracing, сколько в целом возможности её практической реализации в реальном времени. Достижение это, вне сомнения, историческое. Однако раскатывать губу пока не стоит.

Святой грааль

Суть трассировки лучей в 3D-графике достаточно проста: алгоритм имитирует движение лучей света, которые находятся в поле зрения камеры. Он следит за лучами (отсюда «трассировка«) и вносит коррективы в освещение сцены в зависимости от преломления, наличия отражающих поверхностей и объектов, которые стоят на пути лучей. В этом плане трассировка — это не очередной трюк, а весьма «честная» имитация того, как ведёт себя фотон в реальном мире в пределах обзора камеры.

Наглядная иллюстрация работы алгоритма трассировки лучей

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

Имитация преломления света с помощью трассировки лучей

По этим причинам трассировка ценится в архитектурных приложениях и промышленном дизайне. Технология помогает оценить, как будут взаимодействовать материалы интерьера с различным освещением, как будет смотреться тот или иной предмет в условиях «реального мира». Однако, за пределами статичных картинок, использование технологии трассировки нельзя назвать широким.

Лучистый Quake

Мы ещё вернёмся к успехам Microsoft и Nvidia, но перед этим будет не лишним рассказать про более ранние попытки привнести трассировку лучей в «риалтаймовую» графику.

В этом контексте нельзя не вспомнить демонстрацию Quake Wars: Ray Traced. Это проект корпорации Intel, который наглядно показывал плюсы частичной трассировки лучей на примере мультиплеерного шутера Quake Wars.

Тогда удалось продемонстрировать продвинутую воду, тени от объектов сквозь прозрачные поверхности и, естественно, преимущества трассировки при отображении стёкол и отражений. Код запускали на серверной ферме и прототипе видеокарты Larrabee.

При разрешении в 720p демо работало при 20-40 кадрах в секунду, что было очень достойным результатом для 2009 года. Развитием этой демонстрации стал проект Wolfenstein: Ray Traced, который воплощал «облачный» подход работы с технологией, но дальше технодемок у Intel дело не пошло. Ускоритель Larrabee отменили, а в свежие процессоры Intel и вовсе ставят графику от AMD.

Не забывают про «кваку» и энтузиасты. Вполне рабочий способ трассировки продемонстрировал в прошлом году моддер Эдд Бидулф, которому удалось наделить Quake 2 вполне «честными» отражениями. Минусом реализации трассировки от Бидулфа можно назвать сильные артефакты (цифровой «шум» картинки) и видеокарту уровня Titan XP в системных требованиях.

Консоли тоже робко делали подходы к «честным» техникам, пусть и совсем незаметно. Очень ограниченное использование трассировки лучей было реализовано в Killzone Shadowfall, где малую часть отражаемых объектов отрабатывал алгоритм «ray-trace 2.5D».

Это помогло Guerrilla избавиться от некоторых артефактов современных локальных отражений. В Horizon Zero Dawn этот способ развития не получил, так как там разработчики решили сэкономить на отражениях в первую очередь.

Killzone Shadowfall

Схожие техники коррекции локальных отражений использовал и Crysis 3.

Ну и было бы несправедливо забыть про NVIDIA и её набор библиотек OptiX, который используется в том же Adobe After Effects CC. Собственно, на его базе и будет реализована технология DXR на видеокартах Nvidia.

Почему никто до сих пор не использует трассировку лучей в реальном времени

Ответ на вопрос из подзаголовка лежит на поверхности — всё дело чудовищной прожорливости даже при заранее просчитанных сценариях.

Трассировка лучей имитирует поведение света попиксельно, что занимает невероятное количество машинного времени в сравнении с другими реализациями техник глобального освещения.

В «Тачках» трассировку использовали очень избирательно

Даже такой гигант как Pixar впервые широко использовал трассировку начиная с мультфильма «Тачки», где требовалось показать реалистичные отражения в машинах.

При этом даже здесь технология работала частично. Какие-то элементы сцены считались «честно» (часть теней, отражения на самих авто), а какие-то вещи отдавались на откуп более экономным способам отображения.

Система «трассировки по запросу» от Pixar под названием REYES или её аналоги часто используются в создании голливудских спецэффектов. Они позволяют сохранить достоверность сцены и при этом уложиться в приемлемые для кинопроизводства сроки.

Реальность такова, что трассировка лучей не используется на все сто даже в дорогих блокбастерах. Но что игры?

Сравнение SSR и продвинутой трассировки лучей

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

Артефакты локальных отражений — главный бич современной графики

В качестве примера поговорим о screen space reflections. Это постэффект, который позволяет получить щадящие для «бюджета» сцены и в меру «честные» отражения. При этом, он нагружает исключительно видеокарту и работает так быстро, что его можно в большом количестве использовать в любых ситуациях. Проблема SSR в том, что это достаточно локальный эффект. Как только отражаемый объект пропадает из поля зрения камеры, он пропадает и в отражении. Артефакты SSR — частое явление и разные разработчики решают проблему по-разному.

По мнению Digital Foundry, ближе всего к совершенству подобрались в Uncharted 4, где используется сразу несколько техник имитации, включая классические кубические карты. В проекте Naughty Dog они переключаются на лету и почти не режут глаз. Такой метод «дыма и зеркал» (простите за ужасный каламбур) широко распространен почти во всех играх ААА-класса.

Трассировка против классических карт теней: разница не так уж разительна

Как итог, современная игровая картинка так здорово научилась подделывать «честные» эффекты, что на их фоне прямые реализации той же трассировки не смотрятся так уж впечатляюще.

Что предлагают Microsoft и Nvidia

Под стать подходу Pixar, Microsoft DirectX Raytracing (DXR) и NVIDIA RTX не предлагают «трассировать» всю сцену. Решение использует гибридный подход, когда какие-то элементы кадра считаются классическим способом растеризации (грубо говоря — обманом), а какие-то элементы, вроде отражений и некоторых теней, отрабатывает трассировка лучей.

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

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

Пример игрового освещения с почти полной утилизацией трассировки. Это концепт. Играм на текущем витке таких отражений не светит.

Адекватная поддержка DXR (трассировка работает на всех DX 12.1 видеокартах, но медленно) появится лишь начиная с архитектуры NVIDIA Volta. Это автоматически отметает большинство современных карт, хотя мы все ещё ждём новости на тему DXR от AMD. Тем более мы знаем, что NVIDIA планирует реализовать RTX и в открытом API Vulkan.

Впечатляющее демо с Капитаном Фазмой просчитывали четыре профессиональных ускорителя на базе NVIDIA Volta. У самой NVIDIA Volta до сих пор нет ни одной анонсированной потребительской версии, так что уже заявленные возможности DXR/RTX в Metro: Exodus увидят единицы.

С другой стороны, DXR уже поддерживают самые популярные игровые движки — Unreal Engine и Unity. Это вне всякого сомнения существенно ускорит интеграцию технологий трассировки в современные игры, включая даже инди-проекты.

Так что в будущем

Если трассировка лучей и вправду «Святой Грааль» графики в реальном времени, то сегодня всем сопричастным удалось прикоснуться к нему лишь на пару мгновений. От полноценного воплощения мечты о честном освещении в играх нас отделяют многие годы и не меньшее количество терафлопс. Такова реальность и её прекрасно осознают и те, кто пытается продвинуть DXR/RTX.

Однако грустить тоже не стоит. На наших глазах ведётся большая и системная работа, которая через одно-два поколения видеокарт может приблизить картинку игр к недосягаемым доселе вершинам. Разве это плохо?

0
119 комментариев
Написать комментарий...
Максим Карпов

На мой взгляд давно пора снизить темпы развития графона и обратить свой взгляд на анимацию. Когда в Far Cry 5 анимация плавания на уровне первого Far Cry это стыдоба. Какой толк от реалистичной картинки, если все живые объекты в сцене двигаются как болванчики?

Ответить
Развернуть ветку
Двойной файл

Самое обидное, что со всеми этими технологическими свистоперделками начинают забывать про важность дизайна. Раньше включали хитрость на полную и создавали виды, от которых падала челюсть, с самыми скромными возможностями.

Ответить
Развернуть ветку
4 комментария
Golemming

может для начала хотя бы избавимся от клиппинга одежды и волос сквозь модели?

Ответить
Развернуть ветку
2 комментария
Аккаунт удален

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

Ответить
Развернуть ветку
17 комментариев
Tod Pickles

Да, часто бывает диссонанс между красивой картинкой и ужасной анимацией.

Ответить
Развернуть ветку
2 комментария
Anton Samoylenko

Вот именно, проблемы аниматоров а не технологии. Вспомнить тот же 4 Mass Effect.

Ответить
Развернуть ветку
3 комментария
BLOOD ELF

Поддерживаю. С приходом новых консолей общее качество анимации улучшилось, но все-равно есть куда двигаться. Очень понравились анимации в Dragon Age Inquisition. Анимации боя, каста, как персонажи идут в гору. А потом как вспомнишь анимации от третьего вида в Oblivion, Fallout 3 и становится плохо. Перепройти тот же Morrowind отпугивает не устаревшая картинка, а устаревшая и совершенно топорная анимация.
В анимациях сейчас нужно больше взаимодействия с окружающим миром, чтобы персонаж взаимодействовал со всеми неровностями поверхности, с преградами и прочим.

Ответить
Развернуть ветку
2 комментария
Вилии Вонка

Всё будет.

Ответить
Развернуть ветку
f10

Недавно отцу показывал Horizon Zero Down, офигел от графона, но сразу сказал что анимации сильно ниже уровнем.

Ответить
Развернуть ветку
Подземный томагавк_два

Этим занимаются разные люди, так что одно другому не мешает.
А развитие технологий графона и железа позволит меньше заниматься костыльной свистопляской с оптимизацией, когда нужно честный «красивый» результат сначала портить, а потом изобретать супер-хитрости, как его другими методами вернуть к прежнему виду. Лучше на творческие задачи это время потратить, потому что сроки, к сожалению, не особо проапгрейдишь:)

Ответить
Развернуть ветку
Дмитрий Бянкин

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

Ответить
Развернуть ветку
1 комментарий
comrade_778

Так те-же зелёные предложили использовать глубокое обучение для облегчения создания анимации...

Ответить
Развернуть ветку
Аккаунт заморожен

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

Ответить
Развернуть ветку
Alex

Игроделы разрываются между выбором: заменить болванчиков на "живых" - снятых актёров (потому как моделирование ещё только подходит к подобному реализму через помощь ИИ), а т.к. много с актёрами не на снимаешь, это значит превращать игры в мало интерактивное кино (как метко выразился один человек: "God of War, это где в перерывах между кином нам дают помахать топором?"), или же в угоду большей геймплейности пока продолжать показывать игрокам анимированых "буратин".

Ответить
Развернуть ветку
Сергей Чернышов

Осторожно шутка.

Ответить
Развернуть ветку
Antern

Но тут ведь на пека тоже есть мыло, хотя и в отражениях =)

Ответить
Развернуть ветку
1 комментарий
Дмитрий Фролов

С лучами кстати в браузере побаловаться можно: https://benedikt-bitterli.me/tantalum/tantalum.html

Ответить
Развернуть ветку
Andrey Apanasik

Что-то у меня после такого балования ноут сплавился D:

Ответить
Развернуть ветку
Lemony Ruy
Поддержка DXR появится лишь начиная с архитектуры NVIDIA Volta.

Так, давайте не будем путать. DXR - функционал DX12 и будет поддерживаться на любой видеокарте, которая поддерживает DX12, через обычные Compute-шейдеры. Собственно, уже есть семплы, которые можно собрать и посмотреть на красивый отрейтрейсеный треугольник на любой видеокарте
https://cdn1.savepice.ru/uploads/2018/3/21/2af6c44a94f38058ef899bb0de79d0f1-full.png
RTX - отдельная фича Нвидии, которая будет DXR хардварно ускорять. Это важная разница: запускаться DXR будет на всём, просто начиная с Вольты работать будет быстрее.

В демке Метро не просто так трейсят только АО и непрямой свет (даже отражения, которыми все вокруг кичатся, там скринспейсовые). Чтобы игра сносно работала и на видюхах без хардверной поддержки этого дела.

Ответить
Развернуть ветку
Максим Ханукецкий
Автор

Цели запутать не было, просто я не стал уточнять этот момент. Немного расширил, спасибо за фидбек.

Ответить
Развернуть ветку
Silno Ne Pinaite

Гонка за графонием ничего хорошо не даёт, кмк.
Это постоянное увеличение и без того немалых бюджетов.
Конечно, эволюция нужна. Однако, сейчас графика в играх продвинулась сильно и мне кажется, что нужно подтягивать остальные составляющие.
Да и ситуация, когда графоний завезли, а игру положить забыли - это явление довольно частое.

Так что все эти рассуждения - от лукавого, ибо профи будет смеяться над такими объяснениями ситуации, а обывателю - это не особо-то и нужно.

Ответить
Развернуть ветку
Demian

Это не только гонка за графоном, это ещё и значительное облегчение работы, как следствие - уменьшение тех самых бюджетов.
Когда честный трейсинг будет работать в риалтайме, очень много хаков для имитации качественного освещения уже не будут нужны, и это хорошо

Ответить
Развернуть ветку
2 комментария
Ilja Razinkov

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

так что технология, которая в перспективе обещает прорыв (рейтрейсинг - обещает) и требует много свежего GPU будет пропихиваться до победного

Ответить
Развернуть ветку
2 комментария
Pazzy Pazzov

Лучше бы физоном объектов занялись - а то в нулевых вышло пару игр с действительно годной разрушаемостью окружения и на этом забили. А вот трассировка лучей мне кажется не то чтобы не нужной, но избыточной, в смысле, есть же куча костылей, которые позволяют имитировать все эти отражения, блики и прочую радость - да, не идеально, но зачем тратить кучу ресурсов видюхи на просчёт того, что конечный пользователь вероятно и не заметит, если не будет задаваться целью? Может я какие-то неправильные технодемки смотрел, но желание запилить честные лучи света вроде отнюдь не ново, и то, что я видел ранее не делало графику прямо мега-крутой(с обывательской точки зрения, ясное дело).

Ответить
Развернуть ветку
Евгений Серегин

Самое смешное, что рядовой игрок не видит никакой разницы в этих крутых освещениях по честному и обманками. Только если 2 картинки рядом показывать и носом тыкать, где разница.

Ответить
Развернуть ветку
Kirill Nasedkin

Через 15 лет каждая дискретная карта будет маломальски в реалтайм считать трассировку лучей и тогда разрабы вспомнят о ещё более качественной технологии "трассировка фотонов" и опять из каждого утюга....

Ответить
Развернуть ветку
Проклятый парфюмер
разрабы вспомнят о

Дифракции, интерференции, поляризации волн)

Ответить
Развернуть ветку
3 комментария
Tricky Cacausian

Мне кто-нибудь объяснит почему в дюке или анриле первом были ок отражения, а тут вдруг нельзя стало, тяжело.

Ответить
Развернуть ветку
Проклятый парфюмер

тебе попроще или посложнее?

Ответить
Развернуть ветку
20 комментариев
Ivan Konev

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

Ответить
Развернуть ветку
Isador

Вот только ограничений у такого подхода ну слишком много. Зеркала такие в открытых пространствах не поставишь.

Ответить
Развернуть ветку
Аккаунт удален

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

Ответить
Развернуть ветку
Вячеслав Соколов

Я, честно говоря, вообще не особо понимаю, зачем в играх настолько морочиться с зеркалами. Чисто ради графики? Геймплейное применение зеркала сходу могу вспомнить только в Silent Hill 3 в больнице. Вот там да, всем применениям применение.

Ответить
Развернуть ветку
2 комментария
Danylo Rudenko

Они обычно так и реализуются.
Только через отзеркаливание координат против плоскости зеркала и стенсил маску.

Ответить
Развернуть ветку

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

Развернуть ветку
Danylo Rudenko

Алгоритмами отрисовки занимаются рендеринг-инженеры, если что

Ответить
Развернуть ветку
4 комментария
Константин Волков

Все что угодно сделают, чтобы затормозить ввод 120гц/фпс гейминга как стандарта.

Ответить
Развернуть ветку
Voen

Мерзкие производители матриц?

Ответить
Развернуть ветку
3 комментария
Александр Подгорный

В 1998 году должна была выйти игра от Human Soft под названием Seed в которой разработчики пытались реализовать подобную систему освещения, как бы странно и нереально сейчас бы это не звучало, но так или иначе разработчики в те стародавние времена продвигали данную технологию, как одну из отличительных особенностей игры. В интернетах найти инфу по игре сложно, но владельцы старых игровых журналов помнят :)

Ответить
Развернуть ветку
Kostya Bashmakov

Разница от стандартных эффектов затенений милипиздрическая
а комп нужен сверх мощный
Учитывая что игры вообще в открытых мирах эта технология не скоро доберётся до игр, но главное она там не сильно и нужна

Ответить
Развернуть ветку
Евгений Серегин

Занятно, когда мы видим на картинке крутую, высокотехнологичную трассировку лучей для классного освещения и съехавшие текстуры, угловатые цилиндры и прочую оптимизацию. Все равно, что старый запорожец с антигравитационной установкой вместо колес, но все с тем же старым чахлым движком на 65 лс.

Ответить
Развернуть ветку
BLOOD ELF

В Crysis 3 не плохо были реализованы отражения.
До сих пор передергивает, когда в играх в качестве отражения используется просто обычная текстура под стиль текущей карты. И обычна эта текстура не имеет ничего общего с тем, что сейчас перед тобой. Я так понял это и есть cubemap и это убого.

Ответить
Развернуть ветку
Ivan Konev

Ты не прав, никто не ставит текстуры, это делает сам движок и проблема заключается в артефактах при создании отражения во время создания текстуры движком, вручную тебе никто не будет создавать кубмап. Потому что долго и артефактов будет возможно больше, так как движок все же большими алгоритмами ее создает.

Ответить
Развернуть ветку
1 комментарий
Dimasik

Краеугольный камень всей игровой графики это реалистичные тени... он прямо через все новые технологии красной нитью идет.. все ради теней

Ответить
Развернуть ветку
дмитрий титов

Максим Ханукецкий, я рад что мы с тобой на одной волне ;)

Ответить
Развернуть ветку
Добрыня Чейн

Появится еще один показатель % использования рейтрейсинга рядом с счетчиком FPS. Дело в том, что технофилов уже не удивляет показатель фпс+разрешение, современные GPU перестают "будоражить" и стимулировать ожидание. А с поддержкой параметра RTX в качестве бенчмарка, задает новую планку в гонке за производительность и подчеркивает разницу в поколениях GPU.

Ответить
Развернуть ветку
Alex

Никто вам честный % показать не захочет. ;)

Ответить
Развернуть ветку
4 комментария
Globalist

Ждем Death Stranding Кодзима покажет вам что такое рейтрейсинг

Ответить
Развернуть ветку
Виктор Ворсин

Всё хорошо и интересно, но говорить про разницу ray traced-теней и cascaded шадоумапов, что она "не так уж разительна" -- это, простите, богохульство и глупость чистой воды. Причём, огромнейшая разница видна даже на картинке, представленной в статье.

Ответить
Развернуть ветку
Александр Волков

Как ни печально, но трассировка почти стопроцентно станет новым маркетинговым инструментом для пропихивания новых поколений карточек. Технология абсолютно не дает никакого "вау" на фоне симуляций, которые везде используют. Поработать с анимацией, разумеется налегать на геймдизайн и делать интересные проекты - вот что важно. Все эти дристоперделки это всего лишь инструмент. Видимо мы никогда не получим запаса мощности по железу - любую мощность сожрут какие-нибудь очередные технологии, которые особо то и не видны, но жрут заветные фпс со страшной силой.

Ответить
Развернуть ветку
Читать все 119 комментариев
null