МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
____________________________
Кафедра ____________________________
РЕФЕРАТ
на тему: «Принципы работы трассировки лучей в рендеринге»
Выполнил(а): ____________________________
Группа: ____________________________
Проверил(а): ____________________________
2026
Содержание
- 3
- 5
- 7
- 9
1. Трассировка лучей: введение и контекст
Рендеринг, финальная стадия создания цифрового изображения, превращает абстрактные трёхмерные модели в пиксели на экране. Среди множества подходов к этому процессу трассировка лучей выделяется как метод, стремящийся не к имитации, а к моделированию самой физики света. Вместо того чтобы проецировать геометрию на плоскость, этот алгоритм прослеживает путь световых лучей от источника к наблюдателю, рассчитывая их взаимодействие с поверхностями объектов. Именно такой подход позволяет добиться фотореализма. Отражения, тени и преломления выглядят естественно, поскольку они являются результатом вычислений, а не художественных ухищрений.
Идея прослеживать лучи возникла задолго до появления мощных компьютеров. В 1968 году Артур Аппель впервые описал концепцию трассировки для визуализации теней. Через двенадцать лет Тёрнер Уиттед представил рекурсивный алгоритм, ставший фундаментом всей области. Однако ранние реализации требовали колоссальных вычислительных ресурсов. Один кадр мог просчитываться часами, что делало метод пригодным лишь для научных экспериментов. Потребовались десятилетия роста производительности процессоров и развития параллельных вычислений, чтобы трассировка лучей перестала быть теоретической диковинкой и превратилась в практический инструмент.
Принципиальное отличие трассировки от растеризации лежит в самой логике построения картинки. Растеризация работает «от объектов к пикселям»: она берёт треугольники, из которых состоит модель, и проецирует их на экран, определяя, какой пиксель закрасить. Этот процесс молниеносен, поэтому он десятилетиями доминировал в играх. Но у него есть цена: каждую точку приходится освещать отдельно, а корректные тени, отражения и преломления требуют сложных ухищрений и выглядят приблизительно. Трассировка работает в обратном направлении:
от пикселя к сцене. Для каждого пикселя экрана испускается виртуальный луч, который путешествует по сцене, сталкивается с объектами и собирает информацию об их цвете и освещении. Этот принцип позволяет естественным образом получать то, что растеризация делает с трудом: идеальные зеркальные поверхности, прозрачное стекло и резкие тени от сложных объектов. Плата за точность, огромная вычислительная нагрузка, исторически ограничивала применение метода статичными изображениями.
Сегодня границы применения трассировки лучей стремительно расширяются. Киноиндустрия стала главным полигоном: студии вроде Pixar и DreamWorks используют её для каждого кадра мультфильмов, где фотореализм или стилизация требуют безупречной работы света. Архитекторы и дизайнеры применяют её для визуализации проектов, позволяя клиентам увидеть будущее здание при естественном освещении ещё до начала строительства. А с выходом видеокарт с аппаратным ускорением лучей (например, серии NVIDIA RTX в 2018 году) метод начал проникать в игры реального времени. Гибридный рендеринг, сочетающий скорость растеризации с точностью трассировки для отдельных элементов вроде теней и отражений, стал стандартом для современных игровых движков. Эта эволюция продолжается, стирая грань между предварительно просчитанной кинематографичной картинкой и интерактивной графикой, работающей в реальном времени.
2. Физические основы и математический аппарат
Свет, это электромагнитная волна. Но описывать её волновую природу при расчёте каждого пикселя изображения практически невозможно. Поэтому трассировка лучей опирается на геометрическую оптику, где свет представляется бесконечными прямыми линиями, лучами. Такое приближение работает, когда размеры объектов сцены значительно больше длины волны света. В компьютерной графике это условие выполняется почти всегда. В рамках этого подхода распространение света подчиняется двум фундаментальным законам, известным ещё с XVII века.
Первый закон, закон отражения, утверждает, что угол падения луча равен углу отражения. Оба луча лежат в одной плоскости с нормалью к поверхности. Второй закон, закон преломления (или закон Снеллиуса), связывает углы падения и преломления с показателями преломления сред: n₁ sin θ₁ = n₂ sin θ₂. Именно эти соотношения позволяют вычислить направление вторичного луча после встречи с зеркалом или стеклом. Например, при переходе из воздуха (n ≈ 1,0) в стекло (n ≈ 1,5) луч отклоняется на заметный угол, что и создаёт эффект линзы. Без точного расчёта этих направлений невозможно получить корректное отражение в полированном металле или искажение за оконным стеклом.
Когда направление луча определено, встаёт вопрос о количестве света, который он несёт. Здесь на помощь приходит локальная модель освещения, предложенная Буи Туонгом Фонгом в 1975 году. Модель Фонга разбивает отражённый свет на три составляющие: фоновую (ambient), диффузную (diffuse) и зеркальную (specular). Диффузная компонента подчиняется закону Ламберта. Её интенсивность пропорциональна косинусу угла между направлением света и нормалью. Зеркальная составляющая зависит от положения наблюдателя и отвечает за блики. В 1977 году Джеймс Блинн модифицировал эту модель. Он заменил вычисление вектора отражения на половинный вектор между светом и
наблюдателем. Это ускорило расчёт и дало более гладкие блики. Данные модели не претендуют на физическую точность, однако дают визуально убедительный результат при малых вычислительных затратах.
Финальный этап расчёта цвета, это преобразование физической интенсивности света в значения, понятные монитору. Наиболее распространена модель RGB. В ней цвет кодируется тремя числами, соответствующими чувствительности колбочек человеческого глаза к красному, зелёному и синему свету. Но в реальности спектр отражённого света непрерывен, и RGB лишь приближённо его аппроксимирует. Более точный подход использует спектральное представление. В этом случае интенсивность света задаётся для множества длин волн. Такой метод позволяет корректно моделировать дисперсию. К примеру, разложение белого света в радугу через призму в RGB-модели потребовало бы сложных ухищрений. На практике большинство рендер-систем работают в RGB. Это проще и быстрее. Спектральные вычисления применяются лишь в задачах с высокой требовательностью к фотореализму. К ним относятся симуляция оптики или архитектурная визуализация. В итоге связка геометрической оптики, законов Снеллиуса и Фонга, а также цветовой модели образует тот математический каркас, на котором строится вся дальнейшая логика алгоритмов трассировки.
3. Алгоритм обратной трассировки лучей
После того как свет описан геометрически, а математический аппарат для работы с ним готов, остаётся главный вопрос: как превратить эти абстракции в конкретные цвета пикселей? Прямая симуляция всех фотонов, испущенных источниками, невозможна: подавляющее большинство из них никогда не попадёт в глаз наблюдателя. Алгоритм обратной трассировки лучей, предложенный Тёрнером Уиттедом в 1980 году, решает эту проблему радикальным образом. Он обращает процесс вспять.
Вместо того чтобы гоняться за светом от лампы, алгоритм испускает лучи из камеры. Через каждый пиксель виртуального экрана проходит ровно один первичный луч. Направление луча задаётся положением пикселя и ориентацией камеры. Если луч попадает в объект, мы знаем, что этот объект виден именно в этом пикселе. Если нет, пиксель окрашивается цветом фона или неба. Такой подход гарантирует, что каждый вычисленный луч даёт полезную информацию, а не пропадает впустую.
Ключевая операция здесь, поиск пересечения луча с геометрией сцены. Луч математически описывается точкой начала и направлением, то есть параметрическим уравнением. Задача сводится к нахождению наименьшего положительного значения параметра, при котором точка на луче удовлетворяет уравнению поверхности объекта. Для треугольных сеток, самой распространённой формы представления геометрии, широко используется алгоритм Мёллера-Трумбора. Он был опубликован в 1997 году и позволяет эффективно вычислять пересечение луча с треугольником, используя барицентрические координаты. Алгоритм находит параметр t, а также координаты u и v внутри треугольника, что сразу даёт информацию для интерполяции текстур и нормалей. Поскольку в сцене объектов много, лучи проверяются против всех треугольников, и выбирается тот, у которого значение t минимально. Это и есть ближайшее к камере пересечение.
Но нахождение точки на поверхности, лишь половина дела. Чтобы пиксель выглядел реалистично, нужно понять, сколько света приходит из этой точки. Здесь в игру вступает рекурсия. В точке пересечения алгоритм порождает вторичные лучи. Один луч идёт в направлении отражения, вычисленном по закону отражения, другой, если объект прозрачен, в направлении преломления по закону Снеллиуса. Каждый такой вторичный луч снова проверяется на пересечение со сценой, и в новой точке снова порождаются лучи. Такой процесс позволяет увидеть в отражении на металлической поверхности другие объекты, а через стекло, искажённое изображение того, что находится позади. Именно эта каскадность даёт ту самую фотореалистичность, которой славится трассировка лучей.
Рекурсия не может продолжаться бесконечно. Каждый уровень вложенности удваивает или утраивает количество вычислений. Поэтому глубина рекурсии жёстко ограничивается, обычно значениями от трёх до восьми. На практике этого достаточно: после третьего-четвёртого отражения вклад луча в итоговый цвет пикселя становится пренебрежимо малым. Дополнительно используется порог вклада: если интенсивность луча падает ниже определённого значения, рекурсия обрывается. Это необходимость, а не просто оптимизация. Без ограничений один пиксель с несколькими зеркальными поверхностями мог бы потребовать тысячи пересечений, что сделало бы рендеринг сцены непозволительно медленным. Алгоритм Уиттеда находит компромисс между точностью и вычислительной сложностью, и именно этот баланс позволил ему стать стандартом в индустрии на десятилетия.
4. Улучшения, ограничения и перспективы
Классический алгоритм обратной трассировки, описанный в предыдущей главе, хорошо справляется с зеркальными отражениями и прозрачными материалами. Но он игнорирует огромный пласт световых взаимодействий, которые мы видим каждый день. Свет, отразившийся от матовой стены и подсветивший тень, или сфокусированный стаканом воды на скатерти, для классической модели просто не существует. Это главный недостаток: отсутствие глобального освещения.
Каустика (блики от преломлённого света) и мягкие полутени требуют учёта множества непрямых путей света. Классический подход считает лишь прямое освещение от источников и одно-два отражения. В результате изображение выглядит стерильно, а тени получаются неестественно резкими, как в солнечный полдень, даже если сцена изображает пасмурный день.
Решением стала трассировка путей, предложенная Джеймсом Каджией в 1986 году. Вместо того чтобы отправлять один луч и обрывать его, алгоритм запускает множество лучей из камеры. Каждый из них после пересечения с поверхностью случайным образом порождает новый луч в случайном направлении. Так моделируется бесконечная цепочка отражений и рассеиваний, которая в итоге сходится к физически корректной картине. Каджия также разработал метод фотонных карт. Фотоны испускаются из источников света и сохраняются в сцене, что позволяет эффективно рассчитывать каустику, не тратя время на слепой поиск редких путей света через рекурсию.
За реализм приходится платить. Трассировка путей сходится медленно: изображение постепенно очищается от шума, а на каждый пиксель требуются тысячи, а иногда и миллионы лучей. В 1980-х один кадр мог считаться часами. Даже в начале 2000-х рендер короткометражного мультфильма студией Pixar занимал дни. Поэтому трассировка лучей
десятилетиями оставалась уделом киноиндустрии и архитектурной визуализации, где время не критично.
Перелом наступил в 2018 году с выходом видеокарт NVIDIA серии RTX. Они получили выделенные аппаратные блоки для расчёта пересечения лучей с геометрией. Важную роль сыграла и оптимизация структур данных. Метод ограничивающих объёмов, BVH, строит иерархическое дерево вокруг объектов сцены. Луч проверяется на пересечение не с каждым треугольником, а с крупными узлами дерева, отсекая целые группы объектов за одну операцию. Это снижает вычислительную сложность с линейной до логарифмической.
Сегодня индустрия движется к гибридному рендерингу. Растеризация, которая в разы быстрее, по-прежнему отвечает за базовое изображение. Трассировка лучей подключается точечно: для отражений, теней и глобального освещения в отдельных местах кадра. Такой подход уже используется в играх серии Cyberpunk 2077 и Battlefield V. Второй прорыв, нейросети для шумоподавления. Технология NVIDIA DLSS обучается на миллионах кадров и за один проход превращает зашумлённое изображение, полученное из нескольких лучей на пиксель, в чистую картинку, практически неотличимую от эталона с тысячами лучей.
Перспектива очевидна: через несколько лет аппаратная трассировка станет стандартом для массовых видеокарт. Уже сейчас консоли нового поколения поддерживают её в реальном времени. Полная замена растеризации в играх маловероятна в ближайшее десятилетие, но гибридные схемы и ИИ-фильтры размывают границу между офлайн-рендером и интерактивной графикой. Трассировка лучей перестаёт быть экзотикой и превращается в инструмент, доступный каждому разработчику.
Нужна такая же работа по своей теме? Соберём структуру, текст и источники в этом же оформлении.