> > > > Quake 2 полностью рассчитывается через трассировку лучей

Quake 2 полностью рассчитывается через трассировку лучей

Опубликовано:

ray-tracingNVIDIA не устает подчеркивать преимущества технологии RTX, когда эффекты и освещение просчитываются методом трассировки лучей. Конечно, можно долго спорить об аппаратных требованиях для расчета отражений в Battlefield V, но визуально игра ставит новые стандарты. Мы уже рассматривали подробности реализации трассировки лучей в Battlefield V в нашем тесте.

Q2VKPT - реализация Quake 2, которая полностью опирается на трассировку лучей. Выход видеокарт GeForce RTX от NVIDIA позволил выполнять подобные вычисления в реальном времени. Q2VKPT относится к так называемой пробной реализации (Proof of Concept), которая доказывает работу технологий, но не претендует на полноту по контенту и геймплею. Кроме того, в игре используется не трассировка лучей в полном понимании, а трассировка путей (path tracing).

На первый взгляд кажется, что трассировка лучей рассчитывает лучи от источников света. На самом деле в компьютерной графике используется обратная трассировка, то есть от плоскости экрана до источника. Поэтому используется соответствующий термин Backward Ray Tracing. Трассировка путей, с другой стороны, рассчитывает луч не от плоскости экрана, а как раз от источников света. Трассировку лучей можно ограничить определенными поверхностями и эффектами (в случае Battlefield V - отражения, в Metro Exodus мы получим уже трассировку освещения), трассировка пути всегда просчитывает окружение целиком, поскольку сцена видна только благодаря источникам света и лучам от них. И вместо предварительно просчитанных карт освещения и теней, сцена полностью рассчитывается в реальном времени.

Подробности можно прочитать в нашей статье "Как работает трассировка лучей?"

Q2VKPT опирается на Vulcan API. С видеокартой GeForce RTX 2080 Ti в разрешении 2.560 x 1.440 пикселей производительность составляет порядка 60 fps. Впрочем, для полной трассировки путей производительности недостаточно. Как и в случае трассировки лучей, не просчитанные лучи превращаются в шум. Используется временной фильтр, который помогает максимально его подавить.

Еще один пример сложности расчетов: в Q2VKPT на пиксель рассчитывается не меньше четырех лучей. И половина лучей рассчитываются в обратном направлении от плоскости экрана к одному или нескольким источникам света. При разрешении 2.560 x 1.440 пикселей мы получаем не меньше 884.736.000 лучей в секунду. Для ускорения вычислений Q2VKPT опирается на интерфейс RTX видеокарт GeForce RTX через Vulkan API.

Репозиторий Q2VKPT можно посмотреть и скачать на Github. Также можно скачать исполняемый файл под Windows. Но для его работы в системе должны быть файлы игры Quake 2. Которые не опубликованы в открытом коде.

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

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

Дополнительные сведения о Q2VKPT можно найти на сайте проекта.