Последние презентации Nvidia, AMD и других технологических гигантов показывают новую технологию вывода изображения в играх и прочих виртуальных сценах. Это технология трассировки лучей, с применением которой качество картинок является настолько высоким, что их почти невозможно отличить от реальности. Производители намекают, что уже скоро мы получим эту разработку в наших гаджетах, но эксперты считают, что эта технология не настолько близко, как говорят вендоры. Попробуем разобраться, что такое трассировка лучей и как она обеспечивает гиперреалистичную графику.
Концепция технологии трассировки лучей довольно проста. Центром виртуальной сцены является источник света. Он испускает лучи, которые двигаются и отражаются от объектов и поверхностей по известным законам физики. Остается только проследить каждый выпущенный луч и обсчитать изменение его траектории, когда он натыкается на препятствие. Это изображение не является фотографией – это виртуальная модель комнаты, которую создали с помощью технологии трассировки лучей:
Реализовать простую концепцию трассировки лучей мешало слабое «железо», и чаще всего ее использовали при обработке сцен в видеороликах и фильмах. Такой контент позволяет потратить дни или недели на обсчет движения миллионов лучей.
Компьютерные игры не могли использовать трассировку лучей, поскольку каждый кадр в них необходимо обсчитывать в реальном времени. Поэтому чаще всего игры используют различные упрощения и ухищрения в виде растрирования, которые позволяют получить приемлемый результат при меньшей вычислительной мощности. Однако на выставке GDC 2018 NVIDIA и Microsoft показали, что сегодня «железо» является достаточно производительным для трассировки лучей в реальном времени.
Показанная Microsoft и NVIDIA технология трассировки лучей в играх называется DXR. Она добавляет программную поддержку трассировки в DirectX 12 – именно его используют игры для взаимодействия с видеокартой. Поддержка DXR и аппаратное ускорение его алгоритмов доступно в линейке видеокарт на базе чипов поколения NVIDIA Volta. AMD также заявила о поддержке DXR в своих драйверах и обновлении собственной технологии трассировки лучей Radeon Rays.
Главным препятствием на пути трассировки лучей все еще остается нехватка вычислительной мощности. Показанные демо-ролики не обязательно означают, что видеокарты обычных ПК смогут воспроизвести эту технологию с приемлемой скоростью. Но когда видеокарты достигнут нужной для трассировки лучей производительности, они смогут воспроизводить еще более детальные сцены с использованием растрирования. Это заставит разработчиков выбирать: упрощенная детализация, но чрезвычайно реалистичный вид или больше деталей и объектов в сцене за счет меньшей реалистичности.