Найти в Дзене
Статья студента

Как работает «трассировка лучей» и что это такое

Чтобы начать разговор о трассировке лучей необходимо разобраться, как свет «работает» в реальном мире. Если вкратце, то свет выходит из источника, а затем отражается, поглощается или рассеивается в зависимости от текстуры объекта, на который попадает. После серии «прыжков» от одного объекта к другому свет в конце концов достигает наших глаз и преобразуется в визуальную стимуляцию нашего мозга.
Общее количество лучей света, одновременно «прыгающих» с места на место, невозможно сосчитать. И любое изменение в положении объектов в пространстве будет на них влиять. Например, если мы поставим в комнате зеркало, свет будет отражаться от него, делая ее ярче. Поскольку в обычной ситуации имеется множество источников света, объектов и текстур, траектория световых лучей, как правило, бывает невероятно сложной. Суть трассировки лучей состоит в отслеживании пути, который проходит каждый луч света от человеческого глаза до источника света. Как мы отметили выше, имеется несчетное количество луче
Оглавление

Чтобы начать разговор о трассировке лучей необходимо разобраться, как свет «работает» в реальном мире. Если вкратце, то свет выходит из источника, а затем отражается, поглощается или рассеивается в зависимости от текстуры объекта, на который попадает. После серии «прыжков» от одного объекта к другому свет в конце концов достигает наших глаз и преобразуется в визуальную стимуляцию нашего мозга.
Общее количество лучей света, одновременно «прыгающих» с места на место, невозможно сосчитать. И любое изменение в положении объектов в пространстве будет на них влиять. Например, если мы поставим в комнате зеркало, свет будет отражаться от него, делая ее ярче. Поскольку в обычной ситуации имеется множество источников света, объектов и текстур, траектория световых лучей, как правило, бывает невероятно сложной.

На первом изображении нет трассировки лучей, а на втором есть
На первом изображении нет трассировки лучей, а на втором есть

Суть трассировки лучей состоит в отслеживании пути, который проходит каждый луч света от человеческого глаза до источника света. Как мы отметили выше, имеется несчетное количество лучей, одновременно «перескакивающих» с одних объектов на другие, и обработка такой информации – гигантская задача для компьютера. Например, расчет реалистичного освещения посредством трассировки лучей в анимационном фильме обычно занимает дни или даже месяцы. Вот почему этот метод нельзя было применять в компьютерных играх, ведь видеокарта должна выдавать в секунду до 60 кадров – и каждый кадр с идеальным освещением!

На этом изображении очень хорошо показано как это работает
На этом изображении очень хорошо показано как это работает

Благодаря развитию графических процессоров, примером чему является серия NVIDIA RTX, трассировка лучей со временем будет применяться во всем большем количестве игр. До этого момента 3D-рендеринг в основном осуществляется методом растеризации, который является более простым (впрочем, сам процесс рендеринга все равно остается достаточно сложным).

Растеризация наглядный пример
Растеризация наглядный пример

Что такое растеризация?

При растеризации трехмерные объекты создаются с помощью миллионов полигонов и треугольников. Каждый полигон или треугольник содержит информацию о своем положении в пространстве, цвете, текстуре и ориентации. И каждый треугольник, из которого состоит модель, преобразуется в пиксели определенного цвета на плоском экране.
Чтобы добиться более высокого качества изображения, при преобразовании трехмерных объектов в двухмерное изображение на экране применяются дополнительные приемы. Во-первых, это шейдинг, суть которого заключается в изменении цвета треугольника в зависимости от того, как на него падает свет, и как текстура объекта с этим светом взаимодействует. Как будто на трехмерную модель наносится слой краски, соответствующий определенному световому эффекту. Также в специальном буфере хранится информация о глубине, чтобы компьютер мог определить, какие части объектов следует отобразить на экране, а какие скрыты другими поверхностями или объектами и поэтому отображаться не должны.
Все это звучит достаточно сложно, но в целом достаточно просто: растеризация – это процесс определения того, какой цвет лучше всего подходит треугольникам в зависимости от расчета световых эффектов, положения треугольников, их цвета и текстуры. Вся эта информация о треугольниках преобразуется в пиксели на экране. Монитор, в свою очередь, играет роль художника, который использует данные, полученные в результате растеризации, чтобы окрасить те или иные участки экрана в нужный цвет.

Как давно используется трассировка лучей?

Трассировка лучей вот уже много лет используется во множестве областей, включая кино индустрию, архитектуру, дизайн интерьеров. Если вы – геймер, то, вероятно, обратили на нее внимание лишь после выпуска видеокарт NVIDIA серии RTX, в которых реализована поддержка этого метода. С развитием видеокарт мы будем видеть все больше игр, использующих трассировку лучей для создания реалистичного изображения.

Также рекомендую ознакомиться с видео, где показано отличия в игре с включенной трассировкой лучей и выключенной.

Спасибо за прочтение, ваш лайк поможет мне в развитии моего блога.