Трассировка лучей (рейтрейсинг) — один из методов геометрической оптики — исследование оптических систем путём отслеживания взаимодействия отдельных лучей с поверхностями. В узком смысле — технология построения изображения трёхмерных моделей в компьютерных программах, при которых отслеживается обратная траектория распространения луча (от экрана к источнику).
Трассировка лучей в компьютерных играх — это решение для создания реалистичного освещения, отражений и теней, обеспечивающее более высокий уровень реализма по сравнению с традиционными способами рендеринга. Turing стала первой архитектурой, позволяющей проводить трассировку лучей в реальном времени на GPU.
Достоинства:
— Возможность рендеринга гладких объектов без аппроксимации их полигональными поверхностями (например, треугольниками);
— Вычислительная сложность метода слабо зависит от сложности сцены;
— Высокая алгоритмическая распараллеливаемость вычислений — можно параллельно и независимо трассировать два и более лучей, разделять участки (зоны экрана) для трассирования на разных узлах кластера и так далее;
— Отсечение невидимых поверхностей, перспектива и корректное изменения поля зрения являются логическим следствием алгоритма.
Недостатки:
Серьёзным недостатком метода обратного трассирования является производительность. Метод растеризации и сканирования строк использует когерентность данных, чтобы распределить вычисления между пикселями. В то время как метод трассирования лучей каждый раз начинает процесс определения цвета пикселя заново, рассматривая каждый луч наблюдения в отдельности. Впрочем, это разделение влечёт появление некоторых других преимуществ, таких как возможность трассировать больше лучей, чем предполагалось для устранения контурных неровностей в определённых местах модели. Также это регулирует отражение лучей и эффекты преломления, и в целом — степень фотореалистичности изображения.
Свободное программное обеспечение:
— BRL-CAD
— Cycles (Blender)
— LuxRender
— Sunflow
— YafaRay
— POV-Ray
Проприетарное программное обеспечение:
— Arnold
— Brazil R/S
— BusyRay (плагин к 3DS MAX)
— finalRender
— Fryrender
— Gelato
— Holomatix Rendition (интерактивный рейтрейсер)
— Indigo Renderer
— Kerkythea
— Mantra (как часть пакета Houdini)
— Maxwell Render
— mental ray
— RenderMan (PhotoRealistic или PRMan)
— V-Ray
— bCAD
— SolidWorks
Мировой опыт |