Сегодня стартовала 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 на английском
Комментарии (15)
Barafu
20.03.2018 13:30Всё это давно можно пощупать в последних версиях Блендера, где они используются для предпросмотра сцены без рендера. Гуглить Blender Eevee.
Azoh
20.03.2018 13:42Насколько я понимаю, Blender Eevee не использует трассировку лучей для рендеринга. Если я не прав, можете показать, где почитать про их рендер?
1vanK
21.03.2018 00:13Blender Cycles в режиме превью, шумновато, но реалтайм (в принципе тут видео тоже с шумами)
perfect_genius
20.03.2018 15:25Хоть бы слово про частоту кадров. Если есть хотя бы стабильные 30 без раздражающего шума, то это большой прогресс.
kosmos89
20.03.2018 17:41research.nvidia.com/publication/interactive-reconstruction-monte-carlo-image-sequences-using-recurrent-denoising
www.youtube.com/watch?v=YjjTPV2pXY0perfect_genius
20.03.2018 18:25Они ожидают, что в будущем нейросеть будет в реальном времени убирать шум? О_о
Ну, если аппаратная, то…
Alert123
20.03.2018 15:45+1Что то в демо ролике множество отражающих поверхностей лишь добавляет визуального шума и бликов. Смотрится «грязно».
acsel31
20.03.2018 18:21Насколько я помню, красивыми всегда были лишь вот такие демки. А, как доходило до промышленного, использования, то везде картинка так себе. А, зачастую, увлечение подобным еще и картинку делало вырвиглазной. Посмотрите те же тесты 3D Mark, где есть природа и освещение и сравните картинку с картинкой того же фаркрая или кризиса.
Ivnika
21.03.2018 09:43Интересно, почему в первой части видео (с солнечным освещением) тени от солнца движутся вместе с камерой? Если это такая «замедленная съемка», то как то смысл теряется…
Marui
Вот выйдут игры, тогда и приходите (с)
zedalert
Да, демки всегда красивые, а игры получаются либо с графонием, либо фпс местами до 10 падает.
VioletGiraffe
Чтоб они вышли, их сначала кто-то должен сделать.
Поддержка новых технологий в популярных движках, теоретически, могла бы привести к более реалистичной картинке в существующих проектах.
Marui
Чувак, на земле около десятка ААА студий с вырвиглазным теком и новый двиг под каждую новую игру. Всё это давно уже юзается в статике. Ясно, что вкатывают в реалтаим. Ждём.