Трассировка лучей

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Raytracing reflection.png

Трассировка лучей (англ. Ray tracing; рейтрейсинг) — один из методов геометрической оптики — исследование оптических систем путём отслеживания взаимодействия отдельных лучей с поверхностями. В узком смысле — технология построения изображения трёхмерных моделей в компьютерных программах, при которых отслеживается обратная траектория распространения луча (от экрана к источнику).

Трассировка лучей в компьютерных играх — это решение для создания реалистичного освещения, отражений и теней, обеспечивающее более высокий уровень реализма по сравнению с традиционными способами рендеринга. Turing от Nvidia стала первой архитектурой (лето 2018), позволяющей проводить трассировку лучей в реальном времени на GPU.[1] Другие области применения трассировки лучей - это аурализация и высокочастотные технологии.

Происхождение и значение[править | править код]

До того, как была разработана трассировка лучей, молодая область трехмерной компьютерной графики по существу состояла из серии «программных приемов», имитирующих затенение освещенных объектов. Трассировка лучей была первым алгоритмом в этой области, имевшим физический смысл.

Первое изображение с трассировкой лучей было отображено на экране, подобном осциллографу, в Университете Мэриленда в 1963 году . [2] В качестве разработчиков алгоритма трассировки лучей часто видели Артура Аппеля , Роберта Голдштейна и Роджера Нагеля , опубликовавших в конце 1960-х годов алгоритм.[3][4][5] Другими исследователями, которые в то время занимались методами трассировки лучей, были Херб Стейнберг , Марти Коэн и Юджин Трубецкой . [6] Трассировка лучей основана на геометрической оптике,где под светом понимается группа лучей. Методы, используемые при трассировке лучей, использовались гораздо раньше, в том числе производителями оптических систем . Сегодня многие средства визуализации (компьютерные программы для создания изображений из 3D-сцены) используют трассировку лучей, возможно, в сочетании с другими процессами.

Простые формы трассировки лучей рассчитывают только прямое освещение, то есть свет, поступающий непосредственно от источников света. Однако трассировка лучей значительно расширилась в несколько раз с тех пор, как впервые была использована в компьютерной графике. Более развитые формы также учитывают непрямой свет, отраженный от других объектов; затем говорят о методе глобального освещения .

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

Достоинства и недостатки текущих реализаций метода[править | править код]

Алгоритм трассировки лучей

Достоинства[править | править код]

  • возможность рендеринга гладких объектов без аппроксимации их полигональными поверхностями (например, треугольниками);
  • вычислительная сложность метода слабо зависит от сложности сцены;
  • высокая алгоритмическая распараллеливаемость вычислений — можно параллельно и независимо трассировать два и более лучей, разделять участки (зоны экрана) для трассирования на разных узлах кластера и т.д;
  • отсечение невидимых поверхностей, перспектива и корректное изменения поля зрения являются логическим следствием алгоритма.

Недостатки[править | править код]

Серьёзным недостатком метода обратного трассирования является производительность. Метод растеризации и сканирования строк использует когерентность данных, чтобы распределить вычисления между пикселями. В то время как метод трассирования лучей каждый раз начинает процесс определения цвета пикселя заново, рассматривая каждый луч наблюдения в отдельности. Впрочем, это разделение влечёт появление некоторых других преимуществ, таких как возможность трассировать больше лучей, чем предполагалось для устранения контурных неровностей в определённых местах модели. Также это регулирует отражение лучей и эффекты преломления, и в целом — степень фотореалистичности изображения.

Программное обеспечение[править | править код]

Свободное[править | править код]

Проприетарное[править | править код]

См. также[править | править код]

Примечания[править | править код]

  1. Встречайте видеокарты с архитектурой NVIDIA Turing (рус.), NVIDIA. Дата обращения 21 августа 2018.
  2. Terrence Masson: CG 101: A Computer Graphics Industry Reference. S. 267. Digital Fauxtography 2007, ISBN 0-9778710-0-2
  3. Arthur Appel: Some Techniques for Shading Machine Renderings of Solids. In Proceedings of the Spring Joint Computer Conference 1968. S. 37–45. AFIPS Press, Arlington
  4. Mathematical Applications Group, Inc.: 3-D Simulated Graphics Offered by Service Bureau. Datamation 13, 1 (Feb. 1968): 69, ISSN 0011-6963
  5. Robert Goldstein, Roger Nagel: 3-D Visual Simulation. Simulation 16, 1 (Jan. 1971): 25–31, ISSN 0037-5497
  6. Terrence Masson: CG 101: A Computer Graphics Industry Reference. In: Digital Fauxtography, 2007, ISBN 0-9778710-0-2, S. 162.

Ссылки[править | править код]


Программное обеспечение[править | править код]