Сегодня стартовала GDC 2018, и первый серьезный анонс на ней сделала Microsoft совместно со своими партнерами.
В графическое API DirectX 12 будет добавлена новая важная функциональная часть — DirectX Raytracing (DXR). Под этим названием скрывается новое стандартное API для трассировки лучей под DirectX с поддержкой аппаратного и программного ускорения.
Как известно, трассировка лучей (ray tracing) долгое время считалась слабо применимой в приложениях реального времени (например, в играх) технологией в силу низкой практической производительности. Если обычный растровый рендер переводит 3D-сцену в 2D-изображение, применяя различные шейдеры и слои для эмуляции освещения, то в случае трассировки лучей (ray tracing) происходит моделирование взаимодействия отдельных лучей с поверхностями и отслеживается обратная траектория распространения луча, вследствие чего моделируются все связанные с лучами отражения и т.д. (bounces, refractions, reflections). Что ж, видимо, время наконец-то настало.
В свою очередь, NVIDIA анонсировала технологию RTX для трассировки лучей на графических процессорах Volta и выше, которая будет полностью поддерживаться DXR (подразумеваем, что в таком случае вся функциональность RTX доступна в виде графического API).
Самое главное: всё это уже можно пощупать — ссылки на скачивание пакета экспериментального SDK доступна внизу поста, примеры идут в комплекте. Вам потребуется участие в Windows Insider Program и билд Windows 10 Redstone 4 (RS4).
Набор команд DXR будет поддерживать новое и существующее «железо», а также позволит всем писать рейтрейсеры, оптимизированные под GPU. В силу того, что DXR будет расширением уже существующей функциональности DirectX 12, DXR тесно интегрирован с растеризацией — разработчики смогут смешивать две технологии рендеринга для своих нужд, чтобы достигать необходимых результатов и производительности.
Для выпущенных на данный момент видеокарт, поддерживающих DirectX 12, DXR будет работать в режиме полного fallback. Делается это для того, чтобы все могли начать разработку под новое API прямо сегодня, а заодно — убедиться, что использующие API приложения можно будет запускать на «старых» видеокартах. Полноценный релиз API запланирован на осень и наверняка состоится до конца этого года.
DXR будет работать с программным ускорением на видеокартах до Volta, и с аппаратным — для всех карт, начиная с Volta. AMD в данный момент работает над драйвером для поддержки технологии.
Относительно технологии RTX от NVIDIA нужно заметить, что на данный момент её технические подробности еще не раскрыты. Само собой, поддержка RTX будет добавлена во все основные игровые движки, а также появится поддержка рейтресинга в GameWorks. Сам анонс NVIDIA успел утечь с брифинга несколько дней назад.
DirectX 12 был анонсирован на GDC 2014 и стал частью релиза Windows 10, однако до сих пор по-прежнему находится в стадии "early adoption"; причины тому известны, их несколько, и одна из них состоит в том, что DirectX 12 заложил лишь основу низкоуровневого API. Теперь причины подобного шага становятся яснее — предположительно, команда DirectX будет продолжать надстройку новых API поверх этой основы в будущем.
Остальные подробности мы наверняка узнаем уже вскоре: у Microsoft запланировано несколько докладов на GDC, которые будут затрагивать DXR — наибольшее внимание среди них привлекает DirectX: Evolving Microsoft's Graphics Platform. Кроме того, многие игровые студии и компании, занимающиеся созданием компьютерных движков, наверняка поделятся информацией на своих презентациях (у них был приблизительно год на то, чтобы познакомиться с технологией) — ведь среди них Epic Games, Futuremark, DICE, Unity, Electronic Arts, Remedy и 4A Games.
Официальный анонс DirectX Raytracing API
Пост со ссылками на скачивание SDK
Подробный анонс DirectX Raytracing API
Подробный анонс NVIDIA RTX
Статья от Remedy (авторы Max Payne, Alan Wake и Quantum Break, в прошлом — демосценеры)
Слайды от Remedy с GDC 2018
Краткий обзор DirectX Raytracing API на английском
Автор: HotWaterMusic