Графику современных компьютерных игр уже почти невозможно отличить от реальности. И дело тут не только в количестве пикселей, плавности движений и качестве текстур — большое значение имеет построение сцен методом трассировки лучей (Ray Tracing). Именно этой технологии мы обязаны за естественные тени и реалистичное освещение в происходящем на экране.
Довольно долго при создании компьютерных игр применялась растеризация. При использовании этой технологии наблюдаемый объект сначала целиком окрашивается в заданный цвет, а потом алгоритм отображает необходимые пиксели наблюдателю. Технология совершенствуется десятки лет и позволяет получать неплохие результаты. Самое главное, для ее реализации нужно задействовать не так много вычислительных мощностей. Однако для получения действительно реалистичной картинки растеризации точно недостаточно. Именно тогда на помощь и приходит технология трассировки лучей.
При использовании этого метода, в отличие от растеризации, сначала окрашиваются отдельные пиксели, которые потом идентифицируются с объектами. Проще говоря, алгоритм моделирует поведение реального светового луча в пространстве – рассчитывая в реальном времени его движение, отражение и преломление от находящихся вокруг объектов. Таким образом, пользователь видит только те части изображения, на которые попали лучи света, как и в жизни.
Слева — без применения трассировки лучей, справа — с трассировкой лучей. Изображение: NVIDIA
Для создания реалистичной сцены необходимо имитировать тысячи лучей и просчитать, как они будут взаимодействовать между собой. Конечно, для таких расчетов требуется гораздо больше ресурсов. Однако при таком подходе и картинка по настоящему оживает, особенно это заметно по теням – их очертания становятся более мягкими, изображение приобретает истинную реалистичность.
Трассировка лучей уже давно используется для создания визуальных эффектов в кинематографе. Однако в индустрии компьютерных игр она получила массовое распространение лишь несколько лет назад, когда NVIDIA выпустила на рынок семейство видеокарт GeForce RTX, поддерживающих технологию. Кстати, не так давно появились и видеокарты AMD семейства RX 6000 с поддержкой трассировки лучей.
Тем не менее, пока вычислительных мощностей современного оборудования все равно не хватает для рендеринга всей игры с трассировкой лучей. Поэтому сейчас в играх используют эту технологию только для определённых эффектов, остальное же по-прежнему растеризуется.