{"id":3843,"url":"\/distributions\/3843\/click?bit=1&hash=d0b9071c1d51ff8dd5fb0c35f42f4694a7ad9533adc9c6fcd790aa99ecda7c05","title":"\u0414\u043e\u0440\u043e\u0433\u0438\u0435 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u044b\u0435 \u0440\u043e\u0431\u043e\u0442\u044b vs. \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u0438\u0435 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u044b\u0435 \u0440\u043e\u0431\u043e\u0442\u044b","buttonText":"","imageUuid":"","isPaidAndBannersEnabled":false}
Gamedev
Никита Васильев

Программист из Санкт-Петербурга добавил RTX в Serious Sam и DOOM — поговорили с ним об этом, а ещё о работе в геймдеве Статьи редакции

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

Так вышло, что на DTF Сультима Цырендашиева называют не иначе как «программистом из Санкт-Петербурга», хотя на самом деле родом он из Читы, а в городе на Неве только получил высшее образование. Сейчас Сультим и вовсе работает в одной из британских игровых компаний.

В интернете, причём не только русскоязычном, но и международном, программист прославился своими модификациями, добавляющими трассировку лучей в старые игры: так RTX уже появился в Serious Sam и классическом DOOM — второй мод даже разбирали специалисты из Digital Foundry, технического подразделения Eurogamer.

Ещё в планах внедрить рейтрейсинг в оригинальную Half-Life, трейлер с первыми результатами можно посмотреть на YouTube.

Мы связались с Сультимом, чтобы подробнее узнать о технических аспектах модификаций, о том, повлияла ли их популярность на его жизнь, и, разумеется, выяснили, как он вообще добыл себе RTX-видеокарту — их же днём с огнём не сыщешь!

Ты уже видел обзор своей модификации DOOM от Digital Foundry? Для меня это редкая возможность узнать — как такие анализы воспринимают сами разработчики. Очень интересно, на самом деле. Специалисты всё правильно поняли, оценили, по фактике не ошиблись?

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

Вообще, видеть себя в новостях — это как-то сюрреалистично.

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

Так вот, невероятно приятно (и неожиданно), что игровые издания обратили внимание на мою работу. Причём у Digital Foundry большой опыт в анализе игровой графики, так что я их оценке доверяю.

В своём обзоре они объяснили всё как есть. Единственное, насколько я понял, они косвенно намекают, что источники света расставлены автоматически, но в действительности же я руками, впопыхах, расставлял источники света на каждом уровне за 2-3 недели до релиза, так как не смог найти решения — как элегантно интерпретировать оригинальные данные об освещении.

К слову, выход мода именно 1 апреля — не случайность. Два месяца назад я размышлял, какими проектами могу занять себя в будущем: DOOM с трассировкой показался очень нелепой и смешной идеей, но я пробежался по исходному коду, и стало ясно — моду быть. А когда ему быть? Конечно 1 апреля! Ведь люди, увидев такое в такой день, подумают, что это очередная несмешная шутка... и это почти так. Только шутка в том, что мод существует и работает!

Некоторые считают, что RTX качественно преображает только старые игры. А вот в современных тайтлах надобности в технологии мало: трассировка сильно вредит производительности, но картинку не так уж и красит. На твой субъективный взгляд, рейтрейсинг — это всё-таки важная и нужная веха в развитии компьютерных игр или скорее необязательная примочка, вроде NVIDIA HairWorks?

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

Потому-то и разница с рейтрейсингом не сильно бросается в глаза.

В общем-то скажу, что трассировка лучей полезна больше разработчикам — для значительного ускорения разработки.

Вся сложность расчёта освещения происходит в реальном времени, а не в процессе компоновки игры.

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

Трассировкой, мне кажется, должны быть очень довольны дизайнеры, ведь конечный результат теперь можно увидеть мгновенно, без длительной предварительной компиляции. Да и разработчикам графики с ней удобнее, так как многие сложнейшие алгоритмы растеризации (для теней и др.) с трассировкой могут быть реализованы более элегантно.

Например, для динамических отражений не нужно рендерить 6 сторон кубмапа из какой-то одной специальной точки, не нужно переиспользовать картинку с экрана (screen-space reflections), теряя часть деталей. Достаточно запустить луч от точки на блестящей поверхности — и вот уже есть корректное отражение с корректной геометрией в самом отражении.

Как вообще можно взять и добавить в игру поддержку новой технологии, не задуманной там изначально? Прозвучу глупо, прости, но объясни, пожалуйста, как происходит процесс интеграции RTX? Как «выключается» старый «запечённый» свет и вкручиваются новые лампочки с трассировкой?

С помощью огромного желания и некоторых интересных слов!

А если серьёзно, то от игры необходима, грубо говоря, только геометрия, текстуры (материалы), да источники света. Для этого я и создал систему RTGL1 — она абстрагирует всю сложность освещения и взаимодействия с видеокартой внутри себя.

RTGL1 — это моя разработка. Библиотека для упрощения добавления трассировки лучей в игры. Она была моей выпускной квалификационной работой в вузе. Система работает уже в трёх играх: Serious Sam, Doom, Half-Life. Я её всё ещё разрабатываю, добавляю новые фичи и пытаюсь кое-как улучшить конечную картинку.

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

На один пиксель хотелось бы тратить сотни тысяч лучей, но с текущим поколением видеокарт для приемлемой производительности можно использовать 3-5 штук...

Поэтому картинка после трассировки получается шумной. Чтобы этот шум устранить используются алгоритмы, например, Adaptive Spatio-Temporal Variance Guided Filter.

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

В итоге, я бы описал процесс интеграции трассировки в пяти шагах.

Шаг первый — понять, как геометрия обрабатывается, какие свойства у каждой её части (например, вода ли это, стекло), как извлечь вершины каждой трехмерной модели.

Шаг второй — посмотреть, какие источники света предоставляет игра. DOOM в этом плане был очень неудобным: «настоящих» источников света на уровнях мало, пришлось импровизировать. В «Сэме» тоже много искусственных источников, кое-как их отсёк, но всё равно пришлось лезть и вручную ставить.

Шаг третий — разобраться с материалами. В старых играх на одну поверхность приходилась только одна текстура, в современных есть альбедо (текстура без освещения), карта металличности (насколько материал является металлом в данном пикселе), карта шероховатости (насколько шероховатая или гладкая поверхность), карты нормалей и другие.

В «Сэме» некоторые тени были нарисованы прямо на текстурах!

Пришлось страдать и убирать их. Да и самому рисовать все эти металличности и шероховатости для самых часто встречаемых текстур: оружия, явно металлических объектов и так далее.

Шаг четвёртый — пробежаться по уровням, посмотреть, насколько они проходимы в плане геймплея: можно ли заметить, например, переключатель или проход. Если нет, нужно это решать, может акцентировать на них внимание с помощью света.

Шаг пятый — отправить билд тестерам. Глаз очень «замыливается» во время разработки. Прогресс-то плавный, фичи добавляются постепенно. С каждым пробегом по игре всё больше и больше привыкаешь к встреченным багам освещения или рендеринга — они уже не кажутся чем-то странным.

Много ошибок допустил, когда модифицировал Serious Sam, какие сейчас бы уже не повторил? И какой опыт ты вынес из мода для DOOM? Поделись советами, которые дал бы самому себе из прошлого.

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

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

Поэтому новая система должна предоставлять инструменты для модификации освещения: пусть будет выглядеть по-иному, но всё равно сбалансировано. Если когда-нибудь займусь модификацией Serious Sam: The Second Encounter, то постараюсь сделать редактор для нового освещения, вместо того, чтобы пытаться интерпретировать оригинальные данные «по-хардкору».

Использую дедукцию — у тебя ведь в компьютере установлена RTX-видеокарта? Какая модель? Как ты её достал? Просто купил за бешеные деньги или есть история?

MSI GeForce RTX 3070 Gaming X Trio. И да, история есть.

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

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

Но я не сдался — продолжал сидеть и кликать по кнопке обновления страницы. Так прошло ещё полчаса. Появилась информация, что видеокарты продают в Казани и Екатеринбурге. Я подумал было купить там и оплатить доставку, но опоздал. Деваться некуда, продолжил обновлять страницу, так провёл ещё полчаса... и вдруг, она! Одна единственная RTX 3070!

Быстро её кладу в корзину, перехожу к оплате — ошибка, товар распродан. Кто-то оказался быстрее. Нервничаю, ищу уже другие модели — они появились, но их нет в наличии. Ну и ладно. Всё ещё не теряю надежду, ещё 10 минут перезагружаю сайт. Не зря — в продаже появилась модель за 55 000 рублей. И её купил не я, опять не пустило дальше корзины.

Проходит совсем чуть-чуть времени, в каталоге появляется карта за 64 000. И мне уже всё равно, решаю, что лучше уж переплачу, чем останусь совсем без ничего. И успеваю! Покупаю ту самую MSI GeForce RTX 3070 Gaming X Trio.

После этого полгода на смотрел на цены видеокарт, потому что не хотел расстраиваться — я ж переплатил, официальная цена на старте была $500, а я отдал больше $800... но когда увидел 130 000 рублей за ту же карту, что у меня, то, мягко говоря, удивился. Я думал, что цены за полгода упадут, а тут такое.

Что, кстати, думаешь насчёт цен на RTX-видеокарты? Они хоть чуть-чуть оправданы?

Лично мне смотреть на них всё ещё страшно :D

RTX-модификации — это твоё хобби, да? А почему? Есть какие-то причины помимо того, что хотелось освежить графику ностальгических игр? Может решение таких задач оттачивает какие-то полезные скиллы?

Это хобби, да. Делаю в свободное время, используя, в большинстве, лёгкие пути решения проблем (например, совсем не задействую многопоточность ЦПУ).

Почему этим занялся?

Я был абсолютно поражён Quake 2 RTX и тому, как в принципе логичен расчёт освещения с помощью трассировки.

Так что с 2019 хотел сделать так же, но в Serious Sam. Понемногу начал изучать движок: перевёл Serious Engine 1.10 с OpenGL/DirectX на Vulkan API.

В основном такие задачки помогают изучать графику. Но я бы выделил ещё такую пользу — ты постепенно привыкаешь к чувству «ничего не понятно, но как-то сделать надо».

Чтобы добавить RTX в DOOM явно пришлось много с чем заморочиться, но какая из заморочек оказалась самой сложной?

Во-первых, выбор source-порта. Изначально он казался очевидным — GZDoom. Он поддерживает Vulkan API, к нему есть огромное количество модов. И я даже повозился с ним полторы недели! Но из-за того, что в коде GZDoom есть весьма неудобные абстракции функциональности графического движка и того, что у меня оставалось маловато времени до 1 апреля, я решил присмотреться к source-портам попроще.

Попроще оказался PrBoom: чистый C, нет суровых интеракций между объектами — писать код в нём гораздо приятнее.

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

А вот вообще, если можешь, представь, что тебе заказали добавить RTX в какую-то готовую игру. Такая ситуация в вакууме. Богач-геймер хочет украсить свой любимый Star Wars: KOTOR или типа того. Какой бы ценник выставил?

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

Благодаря этим модификациям ты точно сделал себе имя. Только у нас на DTF новости о твоих работах собирают по десять, по двадцать тысяч просмотров. А пишем же не только мы. Это тебе как-то помогло по жизни?

Я получил текущую работу благодаря сырому билду «Сэма» с трассировкой. Работаю сейчас программистом графики в компании-разработчике игр.

Конечно, такую популярность очень приятно вписывать в резюме.

В апреле 2021, когда проходил интервью, билд выглядел коряво, обесцвечено, но техническую часть оценили. Всё-таки трассировка и устранение шума уже работали в кое-каком виде.

В твоём профиле Linkedin указано, что ты работаешь в Red Kite Games — британской игровой студии. Можешь это подтвердить?

Подтвердить могу.

Работа как-нибудь связана с Hogwarts Legacy, с которой Red Kite Games помогает Portkey?

Эх, не могу, к сожалению, сказать, над чем я работаю — NDA...

Ну... Тогда такой пространный вопрос: как тебе вообще вселенная «Гарри Поттера»? Читал книги, смотрел фильмы, делал по ней игры?

С «Гарри Поттером» не знаком совсем...

Последний вопрос — что там с RTX для Half-Life? Когда ждать?

Да, это ответ Сультима
0
40 комментариев
Написать комментарий...
grensul k
Ответить
Развернуть ветку
Хороший человек

В голове у программиста

Ответить
Развернуть ветку
Роман Ерёмин

Автору стоит почитать уже другую книгу)

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

А может у него и твиттера нету? Ишь, умник какой! Нет, вы поглядите на него, чего этот ирод задумал: собрался наслаждаться реальной жизнью!

Ответить
Развернуть ветку
Статистический вентилятор
В общем-то скажу, что трассировка лучей полезна больше разработчикам — для значительного ускорения разработки.

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

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

Нет, не поможет. Пока трассиров очка требует больших мощностей, чем традиционные методы отрисовки для компьютерных игр, она так и будет эксклюзивом отдельных игр.
Пока что это просто способ продать карточки подороже.
И да, отсутствие трассировки как-то не помешало иметь хороший уровень взаимодействия с окружением в Half-Life 2, в серии Battlefield, в Besiege, в Magicka.
Единственная игра, в которой без трассировки не обойтись - Teardown.
Post Scriptum: современную картинку можно сделать и на "устаревших" мощностях (смотрите Crysis 3 как пример), просто для этого придётся постараться всем отделам одновременно.

Ответить
Развернуть ветку
Уважаемый космос

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

Ответить
Развернуть ветку
Воздушный Данила
Единственная игра, в которой без трассировки не обойтись - Teardown.

Это еще почему?

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

Потому что там весь мир (за исключением воды и земли) разрушаемый, состоит из вокселей. Благодаря трассировке лучей там реализуются отражения.

Ответить
Развернуть ветку
Воздушный Данила

Освещение там, конечно, красивое, но играли бы спокойно и без него. Основная механика и фишка, всё таки, разрушения и физика, нет?

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

Да.

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

Сейчас на старте развития технологии и ее освоения разработчиками — да, требует мощностей. Но есть отличное сравнение: качество графики на заре поколения PS4 и на его закате, например, TLOU2.

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

В третьих трассировка это не только графика. Благодаря технологии да и голой мощности RTX карт можно много чего реализовать, что раньше было либо заскриптовано, либо вовсе невозможно.

Ответить
Развернуть ветку
Всевозможный файл

Что раньше расставляли руками, а сегодня просчитывается автоматически и запекается? Модно пример? А то мне кажется, что у этого поинта проблемы с формальной логикой)

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

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

Развернуть ветку
andy

На самом деле рекомендую ему обратить внимание на dark engine, есть исходники и много культовых игр на нём, thief 1-2 и system shock 2. В воре особенно интересно как бы рейтрейсинг выглядел бы.

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

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

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

Разве? На C++ же написан, плюс есть много фанатских форков типа newdark(используется сейчас всеми как патч для оригинальных игр) или opendark

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

Проверил, да, c++. Просто в памяти отложилось что это весьма проблемный движок почему то, из видосов по Looking glass или типа того

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

Мб я извращенец, но очень жду RT в Doom 3 )

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

Ну вот там кстати он будет смотреться куда логичнее. Хотя дум 3 сам выглядит в наши дни вполне неплохо. Ну если в дум 3, то тогда и ХЛ2-2.1-2.2 тоже было бы неплохо добавить

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

В Doom 3 разве что модели персонажей обновить, как и анимации, в остальном действительно неплохо смотрится.

Ответить
Развернуть ветку
Роман Ерёмин

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

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

Ну там где упоминают Doom 3, то надо обязательно и FEAR и Condemned.

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

У Doom 3 достаточно хорошая система освещения. Есть подозрения, что такого вау-эффекта, как с Q2 не будет - картинка так разительно не преобразится. Я бы с большим интересом глянул, к примеру Thief или какой-нибудь другой старый стелс, где изначально свет ставился так, чтобы играться с тенями.

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

Я б предпочёл олдовые Aliens VS Predator

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

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

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

Если сравнивать с ванильным DOOM 3 то да, если с RBDOOM 3, то вау эффект будет не сильный, т.к. там много чего уже есть: PCF тени, SSAO, SSGI. Да даже поддержка PBR текстурирования есть, нет людей, которые эти текстуры перересуют.
SSR я пытался на скорую к порту прикрутить (в RBDOOM этого пока нет, но вроде в планах), как и некоторые другие штуки, чисто для изучения.

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

Учитывая, что движок doom 3 имеет открытый исходный код, вполне возможно.

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

https://github.com/jmarshall23/DoomRTX
Состоянием проекта не интересовался. Были его видео на ютьюб но он скрыл их.

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

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

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

Quake 2 RTX вырос из другого проекта. Если проспонсирует таже NVIDIA всё возможно.

Ответить
Развернуть ветку
Дмитрий Карнов
Ответить
Развернуть ветку
Никита Васильев
Автор

Не понял шутку(

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

Офигенная статья) Даже диплом почитал, сохранил) Спасибо за работу, и за статью)

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

Спасибо за приятный комментарий)

Ответить
Развернуть ветку
Шизофрения не знаю

Хорошие интервью, с самого начала как ртх 2070 появилась так до 3060ти пробую разные ртх демки и игры, жаль конечно что именно хороших игр с ртх мало

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

Тоже брал RTX-карту с верой, что таких игр выйдет вагон, но вот после Control как-то и не увидел нигде, что трассировка прям МЕНЯЛА картинку(

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

майнкрафт)

Ответить
Развернуть ветку
Шизофрения не знаю

Меняет прямо много где, а вот чтобы ещё игра хорошая была нету

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

Крутой гость. Интересная статья

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

Очень крутой. Круто было с ним пообщаться)

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