«Больше ресурсов тратится на подавление шума, чем на трассировку»: разработчики рассказали о создании Minecraft RTX

Как работает трассировка лучей и тонкости её внедрения в игру.

Алекс Баттагила из технического подразделения Eurogamer пообщался с Оли Райтом, Якубом Бокански, Полой Юкараинен и Яко Хаапасало — сотрудниками Nvidia, которые занимаются разработкой Minecraft RTX. Он подробнее узнал, как создавалась игра и как работает в ней трассировка лучей, а мы выбрали из разговора главное.

«Больше ресурсов тратится на подавление шума, чем на трассировку»: разработчики рассказали о создании Minecraft RTX
  • Разработка Minecraft RTX стартовала в начале 2019 года. Сами авторы уже не помнят, когда конкретно, но предполагают, что это произошло в марте.
  • В течение двух-трёх недель после начала разработки авторы уже получили первые результаты. В частности, к тому моменту в Minecraft появился Ambient Occlusion.
  • Minecraft был выбран для демонстрации технологии трассировки путей в частности из-за того, что мир этой игры не статичен — игрок может изменить в нём практически всё, поэтому разработчики не могут использовать запечённое освещение.
  • В Nvidia не считают, что визуальный стиль Minecraft делает её «более простой» игрой, чем ААА-тайтлы, потому что рендер изображения в ней такой же сложный, как и в других играх. Кроме того, бета Minecraft RTX поддерживает текстуры высокого разрешения.
  • Актуальная версия беты Minecraft RTX не поддерживает функцию DXR 1.1, доступную в DirectX 12 Ultimate и построена вокруг версии 1.0. Впрочем, разработчики не исключают, что добавят поддержку DXR 1.1 в будущем, хотя они до конца не уверены, что это серьёзно повлияет на игру.
  • В Minecraft RTX, в отличие от Quake II RTX, используется кэш освещённости, который позволяет хранить данные трассировки лучей в связке с геометрией мира. Это позволяет добиться более высокой производительности по сравнению с обычным рейтрейсингом, где высчитывается луч для каждого пикселя.
  • Кэш освещённости, в частности, помогает создавать эффект отражения света от одной поверхности к другой. В Minecraft RTX есть зависимость между гладкостью поверхности и тем, сколько раз от неё отразится свет. Так, зеркала отражают свет до восьми раз, а другие материалы могут ограничиваться двумя отражениями.
  • Проходя через цветное стекло, луч в Minecraft RTX меняет свой цвет — этот эффект создан с помощью Any-Hit Shader. Суть его заключается в том, луч обращается ко всем поверхностям, которые встречает на пути и получает от них информацию. В случае с полупрозрачными объектами вроде стёкол, он получает информацию о цвете, из-за чего встреченные им элементы уровня работают как цветные фильтры. Например, если луч пройдёт только через красное стекло, то ему будет присвоено 100% значение красного цвета — это значит, что в нём нет примесей зелёного и синего.
  • Minecraft RTX использует порядка 45% требуемых ей ресурсов системы на шумоподавление изображения — больше, чем на непосредственно трассировку лучей. Это связно с тем, что Minecraft передаёт весьма «шумный» сигнал, потому что глобальное освещение посылает лучи во все направления. Шумоподавление — итеративный процесс, картинка проходит через шесть фильтров, а потому это требует больших затрат ресурсов системы.
  • В Minecraft RTX используется сразу три «шумоподавителя»: для рассеянного света, отражений и теней. В первом и втором случаях такое решение было принято из-за того, что тени и отражения двигаются вместе с игроком. При этом «шумоподавитель» работает со световым сигналом, а не конечным изображением.
  • Шейдинг в Minecraft RTX не зависит от того, как далеко объект находится от игрока — никакого упрощения в зависимости от расстояния нет.
  • Первичная видимость в Minecraft RTX создана с помощью рейтрейсинга, а не растеризации, что требует больше ресурсов. Разработчики объяснили такое решение своей ленью — в случае, если бы они полагались на растеризацию, им бы пришлось серьёзно переписывать движок оригинальной Minecraft. Впрочем, выбор в пользу трассировки лучей оказался верным, потому что так легче создавать объекты вроде линз.
  • Говоря о будущем Minecraft RTX, разработчики из Nvidia заявили, что хотели бы добавить в игру подсветку объёмного тумана от окружающих объектов — сейчас он подсвечивается только глобальным освещением. Кроме того, авторы признают, что в бете довольно простая каустика под водой, поэтому они намерены поработать и над ней до полноценного релиза.
  • Сотрудники Nvidia считают, что технологии, которые они использовали в Minecraft RTX, применимы и в других играх.
6363
39 комментариев

Разработчики объяснили такое решение своей леньюЛогично, ведь лень – двигатель прогресса.

35
Ответить

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

19
Ответить

плюсую

5
Ответить

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

6
Ответить

Это когда МАЙНКРАФТ ругали за графон лел

Я наоборот ставлю ресурспаки, где текстуры альфы, и иногда вырубаю мягкое освещение потому что мне приятнее 

17
Ответить

Ругали за плохой графон явно недалёкие люди, не понимающие разницу между графоном и стилистикой.

16
Ответить

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

1
Ответить