Трассировка лучей (графика) - Ray tracing (graphics)

Эта рекурсивная трассировка лучей отражающих цветных сфер на белой поверхности демонстрирует эффекты мелких глубина резкости, "площадные" источники света и диффузное взаимное отражение.

В 3D компьютерная графика, трассировка лучей это рендеринг техника для создания изображение отслеживая путь свет в качестве пиксели в плоскость изображения и моделирование эффектов его встреч с виртуальными объектами. Эта техника способна обеспечить высокую степень визуального реализма, более чем типичную. рендеринг строки развертки методы, но в большей вычислительная стоимость. Это делает трассировку лучей наиболее подходящей для приложений, в которых допускается относительно продолжительное время рендеринга, например, в неподвижных компьютерных изображениях, а также в фильмах и на телевидении. визуальный эффект (VFX), но хуже подходит для в реальном времени такие приложения, как видеоигры, куда скорость имеет решающее значение в оказании каждой Рамка.

Трассировка лучей позволяет имитировать различные оптический эффекты, такие как отражение и преломление, рассеяние, и разброс явления (такие как Хроматическая аберрация ).

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

История

Эта гравюра на дереве Альбрехт Дюрер с 1525 года показывает использование двери Дюрера.
Это изображение Альбрехта Дюрера от 1532 года показывает человека, использующего сетку для создания изображения. Считается, что немецкий художник эпохи Возрождения первым описал эту технику.

Идея трассировки лучей возникла еще в 16 веке, когда ее описал Альбрехт Дюрер, которому приписывают его изобретение.[1] В Четыре книги по измерениям, он описал аппарат, названный Дверь Дюрера с помощью нити, прикрепленной к концу стилуса, которую помощник перемещает по контурам объекта для рисования. Нить проходит через дверную коробку, а затем через крючок на стене. Нить образует луч, а крючок действует как центр проекции и соответствует положению камеры при трассировке лучей.[2][3]

История компьютеризированной «трассировки лучей» для рендеринга изображений в основном отслеживает развитие компьютерного оборудования. Первые системы были пакетными (компьютерные перфокарты или магнитная лента) и работали на относительно медленных компьютерах с основной памятью. Теперь графические процессоры (графические процессоры ) поддерживают трассировку лучей для дополнительного реализма в динамичных трехмерных компьютерных играх.

Использование компьютера для «трассировки лучей» для создания закрашенных изображений было разработано Голдштейном и Нагелем из MAGI (Mathematics Applications Group, Inc.)[4]. В их работе цитируется более ранняя работа по «визуальному моделированию трехмерных объектов» Артур Аппель[5] который «использует« количественную невидимость »для устранения скрытых линий и дополнительную программу для получения вывода в градациях серого», поэтому на самом деле это не «трассировка лучей». В статье Голдсейна и Нагеля «Трехмерное визуальное моделирование» трассировка лучей используется для создания закрашенных изображений твердых тел путем имитации фотографического процесса в обратном порядке. Для каждого элемента изображения (пикселя) на экране они пропускают через него луч света в сцену, чтобы идентифицировать видимую поверхность. Поверхность, пересекаемая лучом, найденная путем «прослеживания» по нему, была видимой. В найденной точке пересечения луча и поверхности они вычислили нормаль к поверхности и, зная положение источника света, вычислили яркость пикселя на экране. В их публикации описывается короткий (30-секундный) фильм, «снятый с использованием аппаратного обеспечения Мэриленда, оснащенного 16-миллиметровой камерой. В фильме показан вертолет и простая установка орудия с уровня земли. Вертолет был запрограммирован на выполнение ряда маневров, включая повороты, взлет, посадку и т. Д., Пока в конечном итоге он не был сбит и разбился ». Использовался компьютер CDC 6600.

Расширяя этот метод, MAGI разработала коммерческую систему CAD / CAM под названием SynthaVision, которая создавала закрашенные изображения и линейные чертежи, вычисляла массовые характеристики и проверяла невмешательство в операции обработки с ЧПУ. К сожалению, из-за вычислительной мощности компьютера в то время это была дорогая пакетная система. МАГИ выпустила анимационный видеоролик под названием Сэмплер MAGI / SynthaVision в 1974 г .: [1].

Flip book: ранняя трассировка лучей

В 1976 году Скотт Рот создал анимационную книжку-книжку в Боб Спроул курс компьютерной графики в Калифорнийском технологическом институте с использованием трассировки лучей с простым модель камеры-обскуры. Отсканированные страницы отображаются в виде видео справа. Компьютерная программа Рота отметила крайнюю точку в местоположении пикселя, если луч пересекал ограниченную плоскость, отличную от плоскости его соседей. Конечно, луч мог пересекать несколько плоскостей в пространстве, но только ближайшая к камере точка поверхности была отмечена как видимая. Края неровные, потому что только грубое разрешение было практичным с вычислительной мощностью DEC с разделением времени. PDP-10 использовал. «Терминал» был Tektronix дисплей трубки хранения для текста и графики. К дисплею был прикреплен принтер, который создавал изображение дисплея на [катящейся] термобумаге. (Хотя нормаль к поверхности могла быть вычислена на каждом пересечении луча и поверхности для рендеринга в оттенках серого, пиксели дисплея были только двоичными: зелеными или черными.) Рот расширил структуру, введя термин лучей в контексте компьютерная графика и твердотельное моделирование.

Рот изобрел термин "лучей "до того, как услышал о" трассировке лучей ", но по сути они такие же.[6] в GM Research Labs произошла одновременно с Тернер Уиттед Работа по трассировке лучей в Bell Labs[7]. Для каждого пикселя изображения в сцену отбрасывается луч, идентифицируется видимая поверхность, вычисляется нормаль к поверхности в видимой точке и вычисляется интенсивность видимого света. Для моделирования теней, прозрачности и общей зеркальности (например, зеркал) используются дополнительные лучи.

Уиттед выпустил пленку с трассировкой лучей, названную Завершенный рыболов[2] в 1979 году работал инженером в Bell Labs. Он смоделировал преломление для прозрачных пленок в видео, создав вторичный луч из точки видимой поверхности под углом, определяемым показателем преломления твердого тела. Затем вторичный луч обрабатывается как зеркальный луч.

До 2013 г. глобальное освещение в основных фильмах с использованием компьютерных изображений имитировалось дополнительное освещение. 2013 год Pixar фильм Университет монстров был первым анимационным фильмом, в котором трассировка лучей использовалась для освещения и затенения.[8]

Обзор алгоритма

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

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

Сцены в трассировке лучей математически описываются программистом или художником-оформителем (обычно с использованием промежуточных инструментов). Сцены также могут включать данные из изображений и моделей, снятых с помощью таких средств, как цифровая фотография.

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

Поначалу может показаться нелогичным или "обратным" посылать лучи прочь с камеры, а не в это (как настоящий свет в действительности), но это на много порядков эффективнее. Поскольку подавляющее большинство световых лучей от данного источника света не попадают непосредственно в глаз зрителя, «прямое» моделирование потенциально может тратить огромное количество вычислений на световые пути, которые никогда не записываются.

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

Расчет лучей для прямоугольного окна просмотра

На входе имеем (при расчете используем вектор нормализация и перекрестное произведение ):

  • положение глаз
  • целевая позиция
  • поле зрения - для человека мы можем предположить
  • количество квадратных пикселей в области просмотра по вертикали и горизонтали
  • количество фактических пикселей
  • вертикальный вектор, который указывает, где вверх и вниз, обычно (не видно на картинке) - рулон компонент, который определяет вращение окна просмотра вокруг точки C (где осью вращения является секция ET)

Схема окна просмотра, пиксели, глаз E и цель T, центр области просмотра C

Идея состоит в том, чтобы найти положение центра пикселей каждого окна просмотра. что позволяет нам найти линию, идущую от глаза через этот пиксель и, наконец, получить луч, описанный точкой и вектор (или его нормализация ). Для начала нам нужно найти координаты пикселя левого нижнего окна просмотра. и найдите следующий пиксель, сделав сдвиг по направлениям, параллельным области просмотра (векторы я ) умножить на размер пикселя. Ниже мы вводим формулы, которые включают расстояние между глазом и окном просмотра. Однако это значение будет уменьшено во время нормализации лучей. (так что вы можете принять это и убрать из расчетов).

Предварительные расчеты: найдем и нормализуем вектор и векторы которые параллельны окну просмотра (все изображено на картинке выше)

обратите внимание, что центр просмотра , далее мы вычисляем размеры области просмотра делится на 2, включая соотношение сторон

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

Расчеты: примечание и луч так

Вышеуказанная формула была протестирована в этом проект javascript (работает в браузере).

Подробное описание компьютерного алгоритма трассировки лучей и его происхождения.

Что происходит в (упрощенной) природе

В природе источник света испускает луч света, который в конечном итоге попадает на поверхность, которая прерывает его движение. Этот «луч» можно представить себе как поток фотоны путешествуя по тому же пути. В идеальном вакууме этот луч будет прямой (без учета релятивистские эффекты ). С этим световым лучом может произойти любая комбинация четырех вещей: поглощение, отражение, преломление и флуоресценция. Поверхность может поглощать часть светового луча, что приводит к потере интенсивности отраженного и / или преломленного света. Он также может отражать весь или часть светового луча в одном или нескольких направлениях. Если на поверхности есть прозрачный или же полупрозрачный свойств, он преломляет часть светового луча в себя в другом направлении, поглощая при этом часть (или все) спектр (и, возможно, изменение цвета). Реже поверхность может поглощать некоторую часть света и флуоресцентно переизлучать свет более длинноволновым цветом в случайном направлении, хотя это бывает достаточно редко, поэтому его можно исключить из большинства приложений визуализации. Между поглощением, отражением, преломлением и флуоресценцией необходимо учитывать весь входящий свет, и не более того. Например, поверхность не может отражать 66% падающего светового луча и преломлять 50%, так как в сумме они составят 116%. Отсюда отраженные и / или преломленные лучи могут попадать на другие поверхности, где их поглощающие, преломляющие, отражающие и флуоресцентные свойства снова влияют на прохождение входящих лучей. Некоторые из этих лучей движутся таким образом, что попадают в наш глаз, заставляя нас видеть сцену и тем самым вносить свой вклад в окончательное визуализированное изображение.

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

Трассировка лучей позволяет создавать фотореалистичные изображения.
Помимо высокой степени реалистичности, трассировка лучей может имитировать эффекты камеры из-за глубина резкости и отверстие форма (в данном случае шестиугольник ).
Количество отражений или отскоков, которые может сделать «луч», и то, как на него влияет каждый раз, когда он встречается с поверхностью, контролируется настройками в программном обеспечении. На этом изображении каждый луч отражал до 16 раз. Таким образом, в этих сферах можно увидеть множественные «отражения отражений». (Изображение создано с помощью Кобальт.)
Количество преломления может образоваться «луч» и как на него воздействовать каждый раз, когда он сталкивается с поверхностью, которая позволяет передача света, управляется настройками в программе. Здесь каждый луч был настроен на преломление или отражение ("глубина") до 9 раз. Отражения Френеля были использованы и каустика видны. (Изображение создано с помощью V-Ray.)

Когда луч падает на поверхность, дополнительные лучи могут испускаться из-за отражения, преломления и тени.[9]:

  • Луч отражения прослеживается в направлении зеркального отражения. Ближайший объект, который он пересекает, будет виден в отражении.
  • Луч преломления, проходящий через прозрачный материал, работает аналогично, с той лишь разницей, что преломляющий луч может входить в материал или выходить из него. Тернер Уиттед расширил математическую логику прохождения лучей через прозрачное твердое тело, включив в него эффекты преломления. (См. «Улучшенная модель освещения для затемненного дисплея»[10] (1979).
  • К каждому источнику света направляется теневой луч. Если между поверхностью и источником света находится какой-либо непрозрачный объект, поверхность находится в тени и свет не освещает ее.

Эти рекурсивные лучи добавляют больше реализма изображениям с трассировкой лучей.

Преимущества перед другими методами рендеринга

Популярность рендеринга на основе трассировки лучей объясняется тем, что он основан на реалистичном моделировании легкий транспорт, по сравнению с другими методами рендеринга, такими как растеризация, который больше ориентирован на реалистичное моделирование геометрии. Такие эффекты, как отражения и тени, которые сложно смоделировать с помощью других алгоритмов, являются естественным результатом алгоритма трассировки лучей. Вычислительная независимость каждого луча делает трассировку лучей доступной на базовом уровне распараллеливание,[11][12] но из-за расхождения траекторий лучей на практике довольно сложно добиться высокого использования при параллелизме.[13]

Недостатки

Серьезным недостатком трассировки лучей является производительность (хотя теоретически она может быть быстрее, чем традиционный рендеринг строк развертки, в зависимости от сложности сцены и количества пикселей на экране). До конца 2010-х годов трассировка лучей в реальном времени обычно считалась невозможной на потребительском оборудовании для нетривиальных задач. Алгоритмы развертки и другие алгоритмы используют согласованность данных для разделения вычислений между пикселями, тогда как трассировка лучей обычно запускает процесс заново, обрабатывая каждый луч глаза отдельно. Однако это разделение дает другие преимущества, такие как возможность испускать больше лучей по мере необходимости для выполнения пространственное сглаживание и улучшите качество изображения там, где это необходимо.

Хотя она точно обрабатывает взаимное отражение и оптические эффекты, такие как преломление, традиционная трассировка лучей также не обязательно фотореалистичный. Настоящий фотореализм возникает, когда уравнение рендеринга приближен или полностью реализован. Реализация уравнения рендеринга дает настоящий фотореализм, поскольку уравнение описывает каждый физический эффект светового потока. Однако это обычно невозможно с учетом требуемых вычислительных ресурсов.

Реалистичность всех методов рендеринга можно оценить как приближение к уравнению. Трассировка лучей, если она ограничена алгоритмом Уиттеда, не обязательно будет наиболее реалистичной. Методы, отслеживающие лучи, но включают дополнительные методы (фотонное отображение, трассировка пути ), дают гораздо более точное моделирование реального освещения.

Обратное направление обхода сцены лучами

Процесс попадания лучей от глаза к источнику света для визуализации изображения иногда называют обратная трассировка лучей, поскольку фотоны движутся в противоположном направлении. Однако в этой терминологии возникает путаница. Ранняя трассировка лучей всегда производилась от глаза, и ранние исследователи, такие как Джеймс Арво, использовали термин обратная трассировка лучей означать стрельбу лучей от источников света и сбор результатов. Поэтому четче различать на основе глаз против световой трассировка лучей.

В то время как прямое освещение обычно лучше всего измеряется с помощью трассировки лучей на основе глаз, некоторые косвенные эффекты могут выиграть от лучей, генерируемых источниками света. Каустики это яркие узоры, вызванные фокусировкой света от широкой отражающей области на узкую область (почти) диффузной поверхности. Алгоритм, который направляет лучи непосредственно от источников света на отражающие объекты, отслеживая их пути к глазу, лучше отразит это явление. Эта интеграция лучей на основе глаз и света часто выражается как двунаправленное отслеживание пути, при котором пути отслеживаются как от глаза, так и от источников света, а пути впоследствии соединяются соединяющим лучом после некоторой длины.[14][15]

Фотонное отображение это еще один метод, который использует трассировку лучей как по свету, так и по глазам; на начальном проходе энергетические фотоны прослеживаются вдоль лучей от источника света, чтобы вычислить оценку лучистого потока как функцию трехмерного пространства (сама одноименная карта фотонов). В последующем проходе лучи прослеживаются от глаза к сцене для определения видимых поверхностей, а фотонная карта используется для оценки освещенности в точках видимой поверхности.[16][17] Преимущество картирования фотонов по сравнению с двунаправленным отслеживанием пути заключается в возможности добиться значительного повторного использования фотонов, сокращая объем вычислений за счет статистической погрешности.

Дополнительная проблема возникает, когда свет должен проходить через очень узкое отверстие, чтобы осветить сцену (рассмотрим затемненную комнату со слегка приоткрытой дверью, ведущей в ярко освещенную комнату) или сцену, в которой большинство точек не имеют прямой линии освещения. -зрение к любому источнику света (например, с потолочными светильниками или торшеры ). В таких случаях только очень небольшое подмножество путей будет транспортировать энергию; Легковой транспорт Метрополис - это метод, который начинается со случайного поиска в пространстве путей, а когда энергетические пути обнаруживаются, повторно использует эту информацию, исследуя близлежащее пространство лучей.[18]

Изображение, показывающее рекурсивно генерируемые лучи от "глаза" (и через плоскость изображения) к источнику света после встречи с двумя диффузные поверхности.

Справа находится изображение, показывающее простой пример пути лучей, рекурсивно генерируемых от камеры (или глаза) к источнику света с использованием вышеуказанного алгоритма. Рассеянная поверхность отражает свет во всех направлениях.

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

Пример

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

В векторные обозначения, уравнение сферы с центром и радиус является

Любая точка луча, начинающаяся с точки с направлением (здесь это единичный вектор ) можно записать как

куда это расстояние между и . В нашей проблеме мы знаем , , (например, положение источника света) и , и нам нужно найти . Поэтому подставляем вместо :

Позволять для простоты; тогда

Знание того, что d - единичный вектор, позволяет нам сделать это небольшое упрощение:

Этот квадратное уровненеие есть решения

Два значения найдены путем решения этого уравнения два таких, что точки пересечения луча со сферой.

Любое отрицательное значение лежит не на луче, а наоборот. полупрямая линия (т.е. тот, который начинается с с противоположным направлением).

Если количество под квадратным корнем ( дискриминант ) отрицательно, то луч не пересекает сферу.

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

Нормаль к сфере просто

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

Таким образом, отраженный луч имеет уравнение

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

Адаптивный контроль глубины

Адаптивное управление глубиной означает, что средство визуализации прекращает генерировать отраженные / проходящие лучи, когда вычисленная интенсивность становится меньше определенного порога. Всегда должна быть установлена ​​максимальная глубина, иначе программа генерирует бесконечное количество лучей. Но не всегда нужно идти на максимальную глубину, если поверхности не обладают высокой отражающей способностью. Чтобы проверить это, трассировщик лучей должен вычислить и сохранить произведение глобальных коэффициентов и коэффициентов отражения по мере трассировки лучей.

Пример: пусть Kr = 0,5 для набора поверхностей. Тогда от первой поверхности максимальный вклад составляет 0,5, для отражения от второй: 0,5 × 0,5 = 0,25, третьей: 0,25 × 0,5 = 0,125, четвертой: 0,125 × 0,5 = 0,0625, пятой: 0,0625 × 0,5 = 0,03125. и т. д. Кроме того, мы можем реализовать коэффициент затухания на расстоянии, такой как 1 / D2, который также уменьшит вклад интенсивности.

Для проходящего луча мы могли бы сделать нечто подобное, но в этом случае расстояние, пройденное через объект, вызвало бы еще более быстрое уменьшение интенсивности. В качестве примера Холл и Гринберг обнаружили, что даже для очень отражающей сцены использование этого с максимальной глубиной 15 привело к средней глубине дерева лучей 1,7.[19]

Граничные объемы

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

Обратите внимание, что использование подобной иерархической системы (при условии, что это сделано осторожно) изменяет время вычисления пересечения с линейной зависимости от количества объектов на что-то среднее между линейной и логарифмической зависимостью. Это потому, что в идеальном случае каждый тест на пересечение делит возможности на два и приводит к структуре типа двоичного дерева. Этого можно добиться с помощью методов пространственного подразделения, обсуждаемых ниже.

Kay & Kajiya приводят список требуемых свойств для иерархических ограничивающих объемов:

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

Интерактивная трассировка лучей

Первой реализацией интерактивного трассировщика лучей была Система компьютерной графики ЛИНКС-1 построен в 1982 году на Осакский университет Инженерная школа профессоров Омура Коуичи, Сиракава Исао и Кавата Тору с 50 студентами.[нужна цитата ] Это было массивно параллельный обработка компьютер система с 514 микропроцессоры (257 Зилог Z8001 и 257 iAPX 86 's), используется для рендеринга реалистичного 3D компьютерная графика с высокоскоростной трассировкой лучей. Согласно Общество обработки информации Японии: "Ядро рендеринга трехмерных изображений - это вычисление яркости каждого пикселя, составляющего визуализированную поверхность, с заданной точки обзора, источник света, и положение объекта. Система LINKS-1 была разработана для реализации методологии рендеринга изображения, в которой каждый пиксель может обрабатываться параллельно независимо с использованием трассировки лучей. Разработав новую программную методологию специально для высокоскоростной визуализации изображений, LINKS-1 смогла быстро визуализировать очень реалистичные изображения ». Она использовалась для создания первых трехмерных изображений. планетарий -подобное видео небеса выполнен полностью с использованием компьютерной графики. Ролик был представлен на Fujitsu павильон на Международной выставке 1985 г. в г. Цукуба."[20] Это была вторая система, которая сделала это после Эванс и Сазерленд Digistar в 1982 году. Сообщалось, что LINKS-1 был самым мощным компьютером в мире в 1984 году.[21]

Самый ранний публичный отчет о трассировке лучей «в реальном времени» с интерактивным рендерингом (т.е. обновлениями со скоростью более одного кадра в секунду) был отмечен в 2005 году. СИГГРАФ конференция по компьютерной графике как инструменты REMRT / RT, разработанные в 1986 г. Майк Муусс для BRL-CAD система твердотельного моделирования. Впервые опубликовано в 1987 г. USENIX, трассировщик лучей BRL-CAD был ранней реализацией параллельной сетевой распределенной системы трассировки лучей, которая обеспечивала производительность рендеринга несколько кадров в секунду.[22] Эта производительность была достигнута с помощью высокооптимизированного, но независимого от платформы движка трассировки лучей LIBRT в BRL-CAD, а также с помощью твердого неявного CSG геометрия на нескольких параллельных машинах с общей памятью в товарной сети. Трассировщик лучей BRL-CAD, включая инструменты REMRT / RT, по-прежнему доступен и развивается сегодня как Открытый исходный код программного обеспечения.[23]

С тех пор были предприняты значительные усилия и исследования по внедрению трассировки лучей в реальном времени для различных целей в конфигурациях автономных настольных компьютеров. Эти цели включают интерактивные приложения 3D-графики, такие как демосценовые постановки, компьютерные и видеоигры, и рендеринг изображений. Некоторые программные 3D-движки реального времени, основанные на трассировке лучей, были разработаны любителями. демо-программисты с конца 1990-х гг.[24]

В 1999 году команда из Университет Юты под руководством Стивена Паркера продемонстрировала интерактивную трассировку лучей вживую на Симпозиуме по интерактивной трехмерной графике 1999 года. Они визуализировали модель из 35 миллионов сфер с разрешением 512 на 512 пикселей, работающую со скоростью примерно 15 кадров в секунду на 60 процессорах.[25]

Проект OpenRT включал высокооптимизированное программное ядро ​​для трассировки лучей вместе с OpenGL -подобный API, чтобы предложить альтернативу текущему растеризация основанный подход к интерактивной 3D-графике. Оборудование для трассировки лучей, например экспериментальный Блок обработки лучей разработан Sven Woop в Саарский университет, был разработан для ускорения некоторых ресурсоемких операций трассировки лучей. 16 марта 2007 года Саарский университет представил реализацию высокопроизводительного движка трассировки лучей, который позволял рендерить компьютерные игры с помощью трассировки лучей без интенсивного использования ресурсов.[26]

12 июня 2008 г. Intel продемонстрировала специальную версию Вражеская территория: Quake Wars под названием Quake Wars: Трассировка лучей, с использованием трассировки лучей для рендеринга, работающего в базовом разрешении HD (720p). ETQW работал со скоростью 14–29 кадров в секунду. Демонстрация прошла на 16-ядерной (4 сокета, 4 ядра) системе Xeon Tigerton, работающей на частоте 2,93 ГГц.[27]

На SIGGRAPH 2009 Nvidia объявила OptiX, бесплатный API для трассировки лучей в реальном времени на графических процессорах Nvidia. API предоставляет семь программируемых точек входа в конвейере трассировки лучей, позволяя настраивать камеры, пересечения лучей, шейдеры, затенение и т. Д. хвостовая рекурсия.[28] Рендереры на основе OptiX используются в Autodesk Арнольд, Adobe After Effects, Bunkspeed Shot, Autodesk Maya, 3ds max, и многие другие средства визуализации.

Воображение Технологии предлагает бесплатный API называется OpenRL что ускоряет хвостовой рекурсивный алгоритмы рендеринга на основе трассировки лучей и, вместе с их проприетарным оборудованием трассировки лучей, работает с Autodesk Maya предоставить то, что 3D мир называет «трассировку лучей в реальном времени для обычного художника».[29]

В 2014 году демонстрация PlayStation 4 видео игра Дети завтрашнего дня, разработан Q-игры и SIE Japan Studio, продемонстрировали новые освещение методы, разработанные Q-Games, особенно каскадные воксель конус трассировка лучей, которая имитирует освещение в реальном времени и использует более реалистичные размышления скорее, чем экранное пространство размышления.[30]

Nvidia предлагает трассировку лучей с аппаратным ускорением в своих GeForce RTX и графические процессоры Quadro RTX, в настоящее время основанные на Архитектура Тьюринга. Аппаратное обеспечение Nvidia использует отдельный функциональный блок, публично называемый «ядром RT». Этот блок несколько сравним с текстурным блоком по размеру, задержке и интерфейсу с ядром процессора. Устройство включает обход BVH, декомпрессию сжатого узла BVH, тестирование пересечения лучей с AABB и тестирование пересечения лучей и треугольников.

AMD предлагает интерактивную трассировку лучей поверх OpenCL на видеокартах Vega через Radeon ProRender.[31] В октябре 2020 года компания представила Radeon RX 6000 серии, это второе поколение Графические процессоры Navi с поддержкой трассировки лучей с аппаратным ускорением на онлайн-мероприятии.[32][33][34][35][36]

В PlayStation 5, Xbox Series X и Series S поддержка посвященная компоненты оборудования для трассировки лучей в своих графических процессорах для эффектов трассировки лучей в реальном времени.[37][38][39][40]

Вычислительная сложность

Для некоторых формулировок задачи трассировки лучей были доказаны результаты различной сложности. В частности, если вариант решения задачи трассировки лучей определяется следующим образом[41] - учитывая начальное положение и направление светового луча и некоторую фиксированную точку, достигает ли луч в конце концов этой точки, тогда в упомянутой статье подтверждаются следующие результаты:

  • Трассировка лучей в трехмерных оптических системах с конечным набором отражающих или преломляющих объектов, представленных системой рациональных квадратичных неравенств, неразрешима.
  • Трассировка лучей в трехмерных оптических системах с конечным набором преломляющих объектов, представленных системой рациональных линейных неравенств, неразрешима.
  • Трассировка лучей в трехмерных оптических системах с конечным набором прямоугольных отражающих или преломляющих объектов неразрешима.
  • Трассировка лучей в трехмерных оптических системах с конечным набором отражающих или частично отражающих объектов, представленных системой линейных неравенств, некоторые из которых могут быть иррациональными, неразрешимы.
  • Трассировка лучей в трехмерных оптических системах с конечным набором отражающих или частично отражающих объектов, представленных системой рациональных линейных неравенств, является PSPACE -жесткий.
  • Для любого размера, равного или превышающего 2, трассировка лучей с конечным набором параллельных и перпендикулярных отражающих поверхностей, представленных рациональными линейными неравенствами, находится в PSPACE.

Смотрите также

Рекомендации

  1. ^ Георг Райнер Хофманн (1990). «Кто изобрел трассировку лучей?». Визуальный компьютер. 6 (3): 120–124. Дои:10.1007 / BF01911003. S2CID  26348610..
  2. ^ Стив Люкинг (2013). «Дюрер, рисунок и цифровое мышление - конференция FATE 2013». brian-curtis.com. Получено 13 августа, 2020.
  3. ^ Стив Люкинг. "Стивен Дж. Люкинг". Получено 13 августа, 2020.
  4. ^ Гольдштейн, Роберт; Нагель, Роджер (январь 1971 г.), «3-D визуальное моделирование», Моделирование, 16 (1): 25–31
  5. ^ Аппель А. (1968) Некоторые методы создания теней для машинной визуализации твердых тел. AFIPS Conference Proc. 32 с. 37-45
  6. ^ Рот, Скотт Д. (февраль 1982 г.), "Ray Casting для моделирования твердых тел", Компьютерная графика и обработка изображений, 18 (2): 109–144, Дои:10.1016 / 0146-664X (82) 90169-1
  7. ^ Уиттед Т. (1979) Улучшенная модель освещения для затемненного дисплея. Материалы 6-й ежегодной конференции «Компьютерная графика и интерактивные техники».
  8. ^ M.s (28 мая 2013 г.). «Эта анимированная жизнь: Lightspeed от Pixar приносит новый свет в Университет монстров». Эта одушевленная жизнь. Получено 26 мая, 2020.
  9. ^ Томас Никодим (июнь 2010 г.). «Алгоритм трассировки лучей для интерактивных приложений» (PDF). Чешский технический университет, FEE.
  10. ^ Уиттед Т. (1979) Улучшенная модель подсветки для затемненного дисплея. Материалы 6-й ежегодной конференции по компьютерной графике и интерактивным техникам.
  11. ^ Ж.-К. Небель. Новый параллельный алгоритм на основе модели времени вычислений, семинар Eurographics по параллельной графике и визуализации, 24-25 сентября 1998 г., Ренн, Франция.
  12. ^ А. Чалмерс, Т. Дэвис, Э. Рейнхард. Практический параллельный рендеринг, ISBN  1-56881-179-9. АК Петерс, ООО, 2002.
  13. ^ Айла, Тимо и Самули Лайне, Понимание эффективности обхода лучей на графических процессорах, High Performance Graphics 2009, New Orleans, LA.
  14. ^ Эрик П. Лафортюн и Ив Д. Виллемс (декабрь 1993 г.). «Двунаправленное отслеживание пути». Труды Compugraphics '93: 145–153.
  15. ^ Петер Дорнбах. «Реализация алгоритма двунаправленной трассировки лучей». Получено 11 июня, 2008.
  16. ^ Глобальное освещение с использованием фотонных карт В архиве 2008-08-08 на Wayback Machine
  17. ^ Фотонная карта - Зак Уотерс
  18. ^ http://graphics.stanford.edu/papers/metro/metro.pdf
  19. ^ Холл, Рой А.; Гринберг, Дональд П. (ноябрь 1983 г.). «Стенд для синтеза реалистичных изображений». Компьютерная графика и приложения IEEE. 3 (8): 10–20. CiteSeerX  10.1.1.131.1958. Дои:10.1109 / MCG.1983.263292. S2CID  9594422.
  20. ^ «【Университет Осаки】 Система компьютерной графики LINKS-1». Компьютерный музей IPSJ. Общество обработки информации Японии. Получено 15 ноября, 2018.
  21. ^ Дефанти, Томас А. (1984). Достижения в компьютерах. Том 23 (PDF). Академическая пресса. п. 121. ISBN  0-12-012123-9.
  22. ^ См. Материалы 4-го семинара по компьютерной графике, Кембридж, Массачусетс, США, октябрь 1987 г., Usenix Association, 1987. pp 86–98.
  23. ^ «О БРЛ-САПР». Получено 18 января, 2019.
  24. ^ Пьеро Фоскари. "Сфера трассировки лучей в реальном времени". Транзакции ACM на графике. Получено 17 сентября, 2007.
  25. ^ Паркер, Стивен; Мартин, Уильям (26 апреля 1999 г.). «Интерактивная трассировка лучей». I3D '99 Труды симпозиума 1999 г. по интерактивной 3D-графике (Апрель 1999 г.): 119–126. CiteSeerX  10.1.1.6.8426. Дои:10.1145/300523.300537. ISBN  1581130821. S2CID  4522715. Получено 30 октября, 2019.
  26. ^ Марк Уорд (16 марта 2007 г.). «Лучи озаряют реалистичную графику». Новости BBC. Получено 17 сентября, 2007.
  27. ^ Тео Валич (12 июня 2008 г.). «Intel переводит ET: Quake Wars на трассировку лучей». TG Daily. Получено 16 июня, 2008.
  28. ^ Nvidia (18 октября 2009 г.). «Nvidia OptiX». Nvidia. Получено 6 ноября, 2009.
  29. ^ "3DWorld: Обзор оборудования: карта ускорителя трассировки лучей Caustic Series2 R2500". Получено 23 апреля, 2013.3D World, апрель 2013 г.
  30. ^ Катберт, Дилан (24 октября 2015 г.). «Создание прекрасных новаторских визуальных эффектов для The Tomorrow Children на PS4». Блог PlayStation. Получено 7 декабря, 2015.
  31. ^ GPUOpen Трассировка лучей в реальном времени
  32. ^ Гарреффа, Энтони (9 сентября 2020 г.). «28 октября AMD представит видеокарты нового поколения Big Navi RDNA 2». TweakTown. Получено 9 сентября, 2020.
  33. ^ Лайлс, Тейлор (9 сентября 2020 г.). «В следующем месяце будут представлены процессоры AMD Zen 3 следующего поколения и графический процессор Radeon RX 6000 'Big Navi'». Грани. Получено 10 сентября, 2020.
  34. ^ «AMD дразнит цифры производительности карты Radeon RX 6000: стремитесь к 3080?». anandtech.com. АнандТех. 8 октября 2020 г.. Получено 25 октября, 2020.
  35. ^ «AMD объявляет о презентациях Ryzen« Zen 3 »и Radeon« RDNA2 »в октябре: новое путешествие начинается». anandtech.com. АнандТех. 9 сентября 2020 г.. Получено 25 октября, 2020.
  36. ^ Джадд, Уилл (28 октября 2020 г.). «AMD представляет три видеокарты Radeon 6000 с трассировкой лучей и высочайшей производительностью RTX». Eurogamer. Получено 28 октября, 2020.
  37. ^ Уоррен, Том (8 июня 2019 г.). «Microsoft намекает на Xbox следующего поколения« Scarlet »в тизерах E3». Грани. Получено 8 октября, 2019.
  38. ^ Хаим, Гартенберг (8 октября 2019 г.). «Sony подтверждает название PlayStation 5, дата выпуска - праздничный 2020 год». Грани. Получено 8 октября, 2019.
  39. ^ Уоррен, Том (24 февраля 2020 г.). «Microsoft раскрывает больше спецификаций Xbox Series X, подтверждает, что графический процессор 12 терафлопс». Грани. Получено 25 февраля, 2020.
  40. ^ Уоррен, Том (9 сентября 2020 г.). «Microsoft раскрывает спецификации Xbox Series S и обещает в четыре раза большую вычислительную мощность, чем Xbox One». Грани. Получено 9 сентября, 2020.
  41. ^ «Вычислимость и сложность трассировки лучей». https://www.cs.duke.edu/~reif/paper/tygar/raytracing.pdf

внешняя ссылка