Трассировка лучей (графика)
В 3D-компьютерной графике трассировка лучей — это метод моделирования переноса света , используемый в самых разных алгоритмах рендеринга для создания цифровых изображений .
С точки зрения вычислительных затрат и визуальной точности методы рендеринга на основе трассировки лучей, такие как литье лучей , рекурсивная трассировка лучей , трассировка распределения лучей , картирование фотонов и трассировка пути , как правило, медленнее и более точны, чем методы рендеринга строк развертки . [ 1 ] Таким образом, трассировка лучей была впервые применена в приложениях, где можно было допустить относительно длительное время рендеринга, таких как неподвижные изображения CGI (VFX) для фильмов и телевидения , а также визуальные эффекты , но она менее подходила для приложений реального времени , таких как видеоигры. , где скорость имеет решающее значение при рендеринге каждого кадра . [ 2 ]
Однако с 2019 года аппаратное ускорение трассировки лучей в реальном времени стало стандартом для новых коммерческих видеокарт, и графические API последовали этому примеру, позволяя разработчикам использовать гибридную трассировку лучей и рендеринг на основе растеризации в играх и других приложениях реального времени с меньшее влияние на время рендеринга кадров.
Трассировка лучей способна имитировать различные оптические эффекты, [ 3 ] такие как отражение , преломление , мягкие тени , рассеяние , глубина резкости , размытие изображения , каустика , окружающая окклюзия и явления дисперсии (например, хроматическая аберрация ). Его также можно использовать для отслеживания пути звуковых волн аналогично световым волнам, что делает его жизнеспособным вариантом для более захватывающего звукового дизайна в видеоиграх за счет реалистичной реверберации и эха . [ 4 ] Фактически, любое физическое явление волны или частицы с приблизительно линейным движением можно смоделировать с помощью трассировки лучей .
Методы рендеринга на основе трассировки лучей, включающие выборку света по области, генерируют артефакты шума изображения , которые можно устранить путем отслеживания очень большого количества лучей или использования методов шумоподавления .
История
[ редактировать ]Идея трассировки лучей возникла еще в 16 веке, когда ее описал Альбрехт Дюрер , которому приписывают ее изобретение. [ 5 ] Дюрер описал несколько методов проецирования трехмерных сцен на плоскость изображения. Некоторые из них проецируют геометрию на плоскость изображения, как это происходит сегодня с растеризацией . Другие определяют, какая геометрия видна вдоль данного луча, как это делается с помощью трассировки лучей. [ 6 ] [ 7 ]
Использование компьютера для трассировки лучей для создания затененных изображений было впервые осуществлено Артуром Аппелем в 1968 году. [ 8 ] Аппель использовал трассировку лучей для первичной видимости (определяя ближайшую к камере поверхность в каждой точке изображения), прослеживая луч через каждую точку, которая должна быть затенена на сцене, чтобы идентифицировать видимую поверхность. Ближайшая поверхность, которую пересекал луч, была видимой. Этот нерекурсивный алгоритм рендеринга на основе трассировки лучей сегодня называется « приведение лучей ». Затем его алгоритм проследил вторичные лучи до источника света от каждой затеняемой точки, чтобы определить, находится ли эта точка в тени или нет.
Позже, в 1971 году, Гольдштейн и Нагель из MAGI (Mathematical Applications Group, Inc.) [ 9 ] опубликовал «3-D Visual Simulation», в котором трассировка лучей использовалась для создания затененных изображений твердых тел. В найденной точке пересечения луча и поверхности они вычислили нормаль к поверхности и, зная положение источника света, вычислили яркость пикселя на экране. В их публикации описывается короткий (30-секундный) фильм, «снятый с использованием дисплейного оборудования Университета Мэриленда, оснащенного 16-миллиметровой камерой. В фильме показан вертолет и простая наземная артиллерийская установка. Вертолет был запрограммирован на серию маневров, включая развороты, взлеты, посадки и т. д., пока в конечном итоге не был сбит и не разбился». CDC 6600 Использовался компьютер . В 1974 году компания MAGI выпустила анимационное видео под названием MAGI/SynthaVision Sampler . [ 10 ]
Еще один ранний пример применения лучей произошел в 1976 году, когда Скотт Рот создал анимацию в виде раскладывающейся книги на Боба Спроулла курсе компьютерной графики в Калифорнийском технологическом институте . Отсканированные страницы показаны в виде видео справа. Компьютерная программа Рота отмечала крайнюю точку в месте пикселя, если луч пересекал ограниченную плоскость, отличную от плоскости его соседей. Конечно, луч мог пересекать несколько плоскостей в пространстве, но видимой была отмечена только точка поверхности, ближайшая к камере. Платформой была DEC PDP-10 , дисплей Tektronix с трубкой хранения и принтер, который создавал изображение дисплея на рулонной термобумаге. Рот расширил концепцию, ввел термин «кастинг лучей» в контексте компьютерной графики и твердотельного моделирования и в 1982 году опубликовал свою работу в GM Research Labs. [ 11 ]
Тернер Уиттед был первым, кто продемонстрировал рекурсивную трассировку лучей для зеркального отражения и преломления через полупрозрачные объекты с углом, определяемым показателем преломления твердого тела, и использовал трассировку лучей для сглаживания . [ 12 ] Уиттед также продемонстрировал тени с трассировкой лучей. Он продюсировал фильм с рекурсивной трассировкой лучей под названием «Совершенный рыболов». [ 13 ] в 1979 году, когда работал инженером в Bell Labs. Глубоко рекурсивный алгоритм трассировки лучей Уиттеда превратил рендеринг из вопроса определения видимости поверхности в вопрос транспортировки света. Его статья вдохновила других на серию последующих работ, которые включали трассировку распределения лучей и, наконец, трассировку несмещенных путей , которая обеспечивает структуру уравнений рендеринга , которая позволяет сгенерированным на компьютере изображениям быть верными реальности.
На протяжении десятилетий глобальное освещение в крупных фильмах с использованием компьютерных изображений аппроксимировалось дополнительным освещением. Рендеринг на основе трассировки лучей в конечном итоге изменил ситуацию, включив физический перенос света. Ранние художественные фильмы, полностью созданные с использованием трассировки пути, включают «Дом монстров» (2006), «Облачно, возможны осадки в виде фрикаделек» (2009), [ 14 ] и Университет монстров (2013). [ 15 ]
Обзор алгоритма
[ редактировать ]Трассировка оптических лучей описывает метод создания визуальных изображений, созданных в средах трехмерной компьютерной графики , с большей фотореалистичностью, чем методы лучевого анализа или развертки . Он работает, прослеживая путь от воображаемого глаза через каждый пиксель виртуального экрана и вычисляя цвет объекта, видимого через него.
Сцены трассировки лучей математически описываются программистом или художником (обычно с использованием промежуточных инструментов). Сцены также могут включать данные изображений и моделей, снятых с помощью цифровых фотографий.
Обычно каждый луч необходимо проверять на пересечение с некоторым подмножеством всех объектов сцены. Как только ближайший объект будет идентифицирован, алгоритм оценит падающий свет в точке пересечения, исследует свойства материала объекта и объединит эту информацию для расчета окончательного цвета пикселя. Определенные алгоритмы освещения и отражающие или полупрозрачные материалы могут потребовать повторного попадания в сцену большего количества лучей.
На первый взгляд может показаться нелогичным или «обратным» направлением лучей от камеры, а не внутрь нее (как это происходит в реальности), но это на много порядков эффективнее. Поскольку подавляющее большинство световых лучей от данного источника света не попадает прямо в глаз зрителя, «прямое» моделирование потенциально может привести к потере огромного количества вычислений на путях света, которые никогда не записываются.
Таким образом, при трассировке лучей проще всего предположить, что данный луч пересекает рамку обзора. После достижения максимального количества отражений или после прохождения луча определенного расстояния без пересечения луч перестает двигаться, и значение пикселя обновляется.
Рассчитать лучи для прямоугольного видового экрана
[ редактировать ]На входе имеем (в расчете используем векторную нормализацию и векторное произведение ):
- положение глаз
- целевая позиция
- поле зрения - для человека, можно предположить
- количество квадратных пикселей в окне просмотра по вертикали и горизонтали
- количество реальных пикселей
- вертикальный вектор, который указывает, где находится верх и низ, обычно - компонент вращения , определяющий вращение области просмотра вокруг точки C (где осью вращения является сечение ET)
Идея состоит в том, чтобы найти положение центра каждого пикселя области просмотра. что позволяет нам найти линию, идущую от глаза через этот пиксель и, наконец, получить луч, описываемый точкой и вектор (или его нормализация ). Сначала нам нужно найти координаты нижнего левого пикселя области просмотра. и найдите следующий пиксель, сделав сдвиг в направлениях, параллельных окну просмотра (векторы я ), умноженный на размер пикселя. Ниже мы вводим формулы, включающие расстояние между глазом и окном просмотра. Однако это значение будет уменьшено во время нормализации лучей. (так что вы могли бы также принять это и исключить его из расчетов).
Предварительные расчеты: найдем и нормализуем вектор и векторы которые параллельны окну просмотра (все изображены на рисунке выше)
обратите внимание, что центр области просмотра , затем мы вычисляем размеры области просмотра разделить на 2, включая обратное соотношение сторон
а затем мы вычисляем векторы сдвига следующего пикселя вдоль направлений, параллельных окну просмотра ( ) и центр левого нижнего пикселя
Расчеты: примечание и луч так
Подробное описание компьютерного алгоритма трассировки лучей и его происхождения.
[ редактировать ]Что происходит в природе (упрощенно)
[ редактировать ]В природе источник света излучает луч света, который в конечном итоге достигает поверхности, прерывая его движение. Этот «луч» можно представить как поток фотонов, движущихся по одному и тому же пути. В идеальном вакууме этот луч будет прямой линией (без учета релятивистских эффектов ). С этим световым лучом может произойти любая комбинация четырех вещей: поглощения , отражения , преломления и флуоресценции . Поверхность может поглощать часть светового луча, что приводит к потере интенсивности отраженного и/или преломленного света. Он также может отражать весь луч света или его часть в одном или нескольких направлениях. Если поверхность имеет какие-либо прозрачные или полупрозрачные свойства, она преломляет часть светового луча в себя в другом направлении, поглощая при этом часть (или весь) спектра ( и, возможно, изменяя цвет). Реже поверхность может поглощать некоторую часть света и флуоресцентно переизлучать свет более длинноволнового цвета в случайном направлении, хотя это достаточно редко, поэтому его можно не учитывать в большинстве приложений рендеринга. Необходимо учитывать весь поступающий свет между поглощением, отражением, преломлением и флуоресценцией, и не более того. Поверхность не может, например, отражать 66% падающего светового луча и преломлять 50%, поскольку в сумме эти два показателя составят 116%. Отсюда отраженные и/или преломленные лучи могут попадать на другие поверхности, где их поглощающие, преломляющие, отражательные и флуоресцентные свойства снова влияют на распространение входящих лучей. Некоторые из этих лучей движутся таким образом, что попадают в наши глаза, заставляя нас видеть сцену и тем самым внося свой вклад в окончательное визуализированное изображение.
Алгоритм приведения лучей
[ редактировать ]Идея метода распределения лучей, предшественника рекурсивной трассировки лучей, заключается в том, чтобы отслеживать лучи из глаза, по одному на пиксель, и находить ближайший объект, блокирующий путь этого луча. Представьте себе изображение как дверь-ширму, где каждый квадрат на экране представляет собой пиксель. Это объект, который глаз видит через этот пиксель. Используя свойства материала и эффект освещения в сцене, этот алгоритм может определить затенение этого объекта. Делается упрощающее предположение, что если поверхность обращена к источнику света, свет достигнет этой поверхности и не будет блокироваться или находиться в тени. Затенение поверхности рассчитывается с использованием традиционных моделей затенения трехмерной компьютерной графики. Одним из важных преимуществ raycasting по сравнению со старыми алгоритмами развертки была его способность легко обрабатывать неплоские поверхности и твердые тела, такие как конусы и сферы . Если математическую поверхность можно пересечь лучом, ее можно визуализировать с помощью преобразования лучей. Сложные объекты можно создавать с помощью методов твердотельного моделирования и легко визуализировать.
Алгоритм объемного луча
[ редактировать ]В методе объемного распределения лучей каждый луч отслеживается так, что цвет и/или плотность можно отбирать вдоль луча, а затем объединять в окончательный цвет пикселя. Это часто используется, когда объекты невозможно легко представить с помощью явных поверхностей (например, треугольников), например, при рендеринге облаков или 3D-медицинских сканированиях.
Алгоритм марширования лучей SDF
[ редактировать ]При маршировании лучей SDF или трассировке сфер [ 16 ] каждый луч трассируется в несколько этапов для аппроксимации точки пересечения луча и поверхности, определяемой функцией расстояния со знаком (SDF). SDF оценивается для каждой итерации, чтобы иметь возможность делать как можно большие шаги, не пропуская ни одной части поверхности. Порог используется для отмены дальнейшей итерации при достижении точки, достаточно близкой к поверхности. Этот метод часто используется для трехмерного фрактального рендеринга. [ 17 ]
Алгоритм рекурсивной трассировки лучей
[ редактировать ]Более ранние алгоритмы отслеживали лучи из глаза в сцену до тех пор, пока они не попадали на объект, но определяли цвет луча без рекурсивного отслеживания большего количества лучей. Рекурсивная трассировка лучей продолжает этот процесс. Когда луч попадает на поверхность, могут возникнуть дополнительные лучи из-за отражения, преломления и тени: [ 18 ]
- Луч отражения прослеживается в направлении зеркального отражения. Ближайший объект, с которым он пересекается, — это то, что будет видно в отражении.
- Преломляющий луч, проходящий через прозрачный материал, работает аналогичным образом, с тем дополнением, что преломляющий луч может входить в материал или выходить из него. Тернер Уиттед расширил математическую логику лучей, проходящих через прозрачное твердое тело, включив в него эффекты преломления. [ 19 ]
- Теневой луч прослеживается к каждому источнику света. Если между поверхностью и источником света обнаружен какой-либо непрозрачный объект, поверхность находится в тени и свет ее не освещает.
Эти рекурсивные лучи добавляют больше реализма изображениям с трассировкой лучей.
Преимущества перед другими методами рендеринга
[ редактировать ]Популярность рендеринга на основе трассировки лучей обусловлена тем, что в его основе лежит реалистичное моделирование переноса света по сравнению с другими методами рендеринга, такими как растеризация , которая больше ориентирована на реалистичное моделирование геометрии. Такие эффекты, как отражения и тени , которые сложно смоделировать с помощью других алгоритмов, являются естественным результатом работы алгоритма трассировки лучей. Вычислительная независимость каждого луча делает трассировку лучей доступной для базового уровня распараллеливания . [ 20 ] но расхождение траекторий лучей делает достижение высокого коэффициента использования при параллельности весьма затруднительным на практике. [ 21 ]
Недостатки
[ редактировать ]Серьезным недостатком трассировки лучей является производительность (хотя теоретически она может быть быстрее, чем традиционный рендеринг строк развертки, в зависимости от сложности сцены и количества пикселей на экране). До конца 2010-х годов трассировка лучей в реальном времени обычно считалась невозможной на потребительском оборудовании для решения нетривиальных задач. Алгоритмы развертки и другие алгоритмы используют согласованность данных для разделения вычислений между пикселями, в то время как трассировка лучей обычно запускает процесс заново, обрабатывая каждый глазной луч отдельно. Однако такое разделение дает и другие преимущества, такие как возможность снимать больше лучей по мере необходимости для выполнения пространственного сглаживания и улучшения качества изображения там, где это необходимо.
Рекурсивная трассировка лучей в стиле Уиттеда обрабатывает взаимное отражение и оптические эффекты, такие как преломление, но в целом не является фотореалистичной . Улучшение реализма достигается при полной оценке уравнения рендеринга , поскольку оно концептуально включает в себя все физические эффекты светового потока. Однако это неосуществимо, учитывая необходимые вычислительные ресурсы и ограничения на точность геометрического и материального моделирования. Трассировка пути — это алгоритм оценки уравнения рендеринга, который обеспечивает более высокую точность моделирования реального освещения.
Обратное направление обхода сцены лучами
[ редактировать ]Процесс направления лучей от глаза к источнику света для рендеринга изображения иногда называют обратной трассировкой лучей , поскольку на самом деле фотоны движутся в противоположном направлении. Однако в этой терминологии существует путаница. Ранняя трассировка лучей всегда выполнялась глазами, и ранние исследователи, такие как Джеймс Арво, использовали термин « обратная трассировка лучей» , означая съемку лучей от источников света и сбор результатов. Таким образом, более четко различать трассировку лучей на основе глаз и трассировку лучей на основе света .
Хотя прямое освещение, как правило, лучше всего измеряется с помощью трассировки лучей на основе глаз, некоторые косвенные эффекты могут быть улучшены за счет лучей, генерируемых источниками света. Каустики — это яркие узоры, вызванные фокусировкой света от широкой отражающей области на узкой области (почти) диффузной поверхности. Алгоритм, который направляет лучи непосредственно от источников света на отражающие объекты, прослеживая их путь к глазу, лучше исследует это явление. Эта интеграция лучей, основанных на глазах и свете, часто выражается как двунаправленная трассировка пути, при которой пути прослеживаются как от глаза, так и от света, а пути впоследствии соединяются соединительным лучом после некоторой длины. [ 22 ] [ 23 ]
Фотонное картирование — это еще один метод, в котором используется трассировка лучей как на основе света, так и на основе глаз; На начальном этапе энергичные фотоны отслеживаются вдоль лучей от источника света, чтобы вычислить оценку лучистого потока как функции трехмерного пространства (сама одноименная фотонная карта). При последующем проходе лучи прослеживаются от глаза до сцены для определения видимых поверхностей, а карта фотонов используется для оценки освещенности в точках видимой поверхности. [ 24 ] [ 25 ] Преимущество картирования фотонов по сравнению с двунаправленным отслеживанием пути заключается в возможности добиться значительного повторного использования фотонов, сокращая объем вычислений за счет статистической погрешности.
Дополнительная проблема возникает, когда свет должен проходить через очень узкую апертуру, чтобы осветить сцену (представим затемненную комнату со слегка приоткрытой дверью, ведущей в ярко освещенную комнату), или сцену, в которой большинство точек не имеют прямой линии света. -вид на любой источник света (например, светильники, направленные на потолок, или торшеры ). В таких случаях только очень небольшое подмножество путей будет транспортировать энергию; Световой транспорт Метрополиса — это метод, который начинается со случайного поиска пространства путей, а когда энергетические пути найдены, повторно использует эту информацию, исследуя близлежащее пространство лучей. [ 26 ]
Справа находится изображение, показывающее простой пример пути лучей, рекурсивно генерируемых от камеры (или глаза) к источнику света с использованием приведенного выше алгоритма. Рассеянная поверхность отражает свет во всех направлениях.
Сначала луч создается в точке глаза и проходит через пиксель в сцену, где он попадает на диффузную поверхность. От этой поверхности алгоритм рекурсивно генерирует луч отражения, который проходит через сцену и попадает на другую диффузную поверхность. Наконец, генерируется еще один луч отражения, который проходит через сцену, где он попадает на источник света и поглощается. Цвет пикселя теперь зависит от цвета первой и второй диффузной поверхности и цвета света, излучаемого источником света. Например, если источник света излучал белый свет, а две рассеивающие поверхности были синими, то результирующий цвет пикселя будет синим.
Пример
[ редактировать ]В качестве демонстрации принципов трассировки лучей рассмотрим, как можно найти пересечение луча и сферы. Это просто математические вычисления, лежащие в основе пересечения линии и сферы и последующего определения цвета вычисляемого пикселя. Конечно, общий процесс трассировки лучей включает в себя гораздо больше, но это демонстрирует пример используемых алгоритмов.
В векторных обозначениях уравнение сферы с центром и радиус является
Любая точка луча, начинающаяся с точки с направлением (здесь — единичный вектор ) можно записать как
где это его расстояние между и . В нашей проблеме мы знаем , , (например, положение источника света) и , и нам нужно найти . Поэтому мы заменяем на :
Позволять для простоты; затем
Зная, что 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. [ 27 ]
Граничные объемы
[ редактировать ]Включение групп объектов в наборы иерархических ограничивающих объемов уменьшает объем вычислений, необходимых для трассировки лучей. Литой луч сначала проверяется на пересечение с ограничивающим объёмом , а затем, если пересечение есть, объём рекурсивно делится до тех пор, пока луч не встретится с объектом. Лучший тип ограничивающего объема будет определяться формой лежащего в основе объекта или объектов. Например, если объекты длинные и тонкие, то сфера будет заключать в себе преимущественно пустое пространство по сравнению с коробкой. Кроме того, в блоках проще создавать иерархические ограничивающие объемы.
Обратите внимание, что использование такой иерархической системы (при условии, что это сделано осторожно) меняет время вычисления пересечения с линейной зависимости от количества объектов на нечто среднее между линейной и логарифмической зависимостью. Это связано с тем, что в идеальном случае каждый тест на пересечение делит возможности на два и приводит к структуре типа двоичного дерева. Методы пространственного подразделения, обсуждаемые ниже, пытаются достичь этой цели.
Кей и Каджия приводят список желаемых свойств для иерархических ограничивающих объемов:
- Поддеревья должны содержать объекты, находящиеся рядом друг с другом, и чем дальше по дереву, тем ближе должны быть объекты.
- Объем каждого узла должен быть минимальным.
- Сумма объемов всех ограничивающих объемов должна быть минимальной.
- Больше внимания следует уделять узлам возле корня, поскольку обрезка ветки возле корня удалит больше потенциальных объектов, чем одна, расположенная дальше по дереву.
- Время, затрачиваемое на построение иерархии, должно быть значительно меньше времени, сэкономленного при ее использовании.
Интерактивная трассировка лучей
[ редактировать ]Первой реализацией интерактивного трассировщика лучей стала система компьютерной графики LINKS-1, построенная в 1982 году в Осаки профессорами Омурой Коичи, Сиракавой Исао и Каватой Тору с 50 студентами. Инженерной школе Университета [ нужна ссылка ] Это была система с массовой параллельной обработкой компьютерная с 514 микропроцессорами (257 Zilog Z8001 и 257 iAPX 86 ), используемая для трехмерной компьютерной графики с высокоскоростной трассировкой лучей. По данным Общества обработки информации Японии : «В основе рендеринга трехмерных изображений лежит вычисление яркости каждого пикселя, составляющего визуализированную поверхность, с учетом заданной точки обзора, источника света и положения объекта. Система LINKS-1 была разработана для реализовать методологию рендеринга изображений, в которой каждый пиксель может обрабатываться независимо друг от друга параллельно с использованием трассировки лучей. Разработав новую методологию программного обеспечения специально для высокоскоростного рендеринга изображений, LINKS-1 смог быстро визуализировать очень реалистичные изображения». Он использовался для создания раннего трехмерного , видео неба, похожего на планетарий полностью созданного с помощью компьютерной графики. Видео было представлено в павильоне Fujitsu на Международной выставке 1985 года в Цукубе ». [ 28 ] Это была вторая система, сделавшая это после Evans & Sutherland Digistar в 1982 году. В 1984 году дизайнеры объявили LINKS-1 самым мощным компьютером в мире. [ 29 ]
Следующий интерактивный трассировщик лучей, первый из которых, как известно, был назван «в реальном времени», был отмечен на конференции по компьютерной графике SIGGRAPH 2005 года как инструменты REMRT/RT, разработанные в 1986 году Майком Мууссом для системы твердотельного моделирования BRL-CAD . Первоначально опубликованный в 1987 году на сайте USENIX , трассировщик лучей BRL-CAD представлял собой раннюю реализацию параллельной сетевой распределенной системы трассировки лучей, которая обеспечивала производительность рендеринга несколько кадров в секунду. [ 30 ] Такая производительность была достигнута с помощью высокооптимизированного, но независимого от платформы механизма трассировки лучей LIBRT в BRL-CAD и использования твердой неявной геометрии CSG на нескольких параллельных машинах с общей памятью в стандартной сети. Трассировщик лучей BRL-CAD, включая инструменты REMRT/RT, по-прежнему доступен и разрабатывается сегодня как программное обеспечение с открытым исходным кодом . [ 31 ]
С тех пор были предприняты значительные усилия и исследования по реализации трассировки лучей на скоростях в реальном времени для различных целей в автономных конфигурациях настольных компьютеров. Эти цели включают интерактивные трехмерные графические приложения, такие как постановки демосцен , компьютерные и видеоигры , а также рендеринг изображений. Некоторые программные 3D-движки реального времени, основанные на трассировке лучей, разрабатываются программистами- любителями с конца 1990-х годов. [ 32 ]
В 1999 году команда из Университета Юты под руководством Стивена Паркера продемонстрировала интерактивную трассировку лучей вживую на Симпозиуме 1999 года по интерактивной 3D-графике. Они визуализировали 35-миллионную сферическую модель с разрешением 512 на 512 пикселей и частотой примерно 15 кадров в секунду на 60 процессорах. [ 33 ]
Проект Open RT включал высокооптимизированное программное ядро для трассировки лучей, а также API-интерфейс, подобный OpenGL , чтобы предложить альтернативу текущему подходу, основанному на растеризации, для интерактивной трехмерной графики. Аппаратное обеспечение трассировки лучей , такое как экспериментальный блок обработки лучей, разработанный Свеном Вупом из Саарского университета , было разработано для ускорения некоторых вычислительно-интенсивных операций трассировки лучей.
Идея о том, что видеоигры могут отслеживать графику в реальном времени, привлекла внимание средств массовой информации в конце 2000-х годов. За это время исследователь по имени Даниэль Пол под руководством профессора графики Филиппа Слусаллека и в сотрудничестве с Эрлангенским университетом и Саарским университетом в Германии оснастил Quake III и Quake IV движком , который он запрограммировал сам, который Саарский университет затем продемонстрировал на выставке ЦеБИТ 2007. [ 34 ] Intel , покровитель Саара, была настолько впечатлена, что наняла Пола и приступила к исследовательской программе, посвященной графике с трассировкой лучей, которая, по ее мнению, оправдывала увеличение количества ядер ее процессоров. [ 35 ] : 99–100 [ 36 ] 12 июня 2008 года Intel продемонстрировала специальную версию Enemy Territory: Quake Wars под названием Quake Wars: Ray Traced , использующую трассировку лучей для рендеринга и работающую в базовом разрешении HD (720p). ETQW работал со скоростью 14–29 кадров в секунду на 16-ядерной (4 процессора, 4 ядра) системе Xeon Tigerton, работающей на частоте 2,93 ГГц. [ 37 ]
На SIGGRAPH 2009 компания Nvidia анонсировала OptiX , бесплатный API для трассировки лучей в реальном времени на графических процессорах Nvidia. API предоставляет семь программируемых точек входа в конвейер трассировки лучей, что позволяет использовать пользовательские камеры, пересечения лучей, шейдеры, затенение и т. д. Такая гибкость обеспечивает двунаправленную трассировку пути, передачу света Metropolis и многие другие алгоритмы рендеринга, которые невозможно реализовать с помощью хвостовая рекурсия. [ 38 ] Рендереры на основе OptiX используются в Autodesk Arnold, Adobe AfterEffects , Bunkspeed Shot, Autodesk Maya , 3ds max и многих других рендерерах.
В 2014 году демо-версия для PlayStation 4 видеоигры The Tomorrow Children , разработанная Q-Games и Japan Studio , продемонстрировала новые методы освещения, разработанные Q-Games, в частности, каскадную воксельную трассировку конусных лучей, которая имитирует освещение в реальном времени и использует более реалистичные отражения, а не отражения в пространстве экрана . [ 39 ]
Nvidia представила свои графические процессоры GeForce RTX и Quadro RTX в сентябре 2018 года, основанные на архитектуре Turing , которая обеспечивает аппаратно-ускоренную трассировку лучей. Аппаратное обеспечение Nvidia использует отдельный функциональный блок, публично называемый «ядро RT». Этот блок в некоторой степени сравним с текстурным блоком по размеру, задержке и интерфейсу с ядром процессора. Модуль обеспечивает обход BVH , декомпрессию сжатого узла BVH, тестирование пересечения лучей и AABB и тестирование пересечений лучей и треугольников. [ 40 ] GeForce RTX в виде моделей 2080 и 2080 Ti стала первой ориентированной на потребителя видеокартой, способной выполнять трассировку лучей в реальном времени. [ 41 ] а в ноябре 2018 года от Electronic Arts стала Battlefield V первой игрой, воспользовавшейся возможностями трассировки лучей, которых она достигает с помощью нового API Microsoft DirectX Raytracing . [ 42 ] AMD, которая уже предлагала интерактивную трассировку лучей поверх OpenCL через свой Radeon ProRender , [ 43 ] [ 44 ] В октябре 2020 года на онлайн-мероприятии представила серию Radeon RX 6000 , графические процессоры Navi второго поколения с поддержкой аппаратно-ускоренной трассировки лучей. [ 45 ] [ 46 ] [ 47 ] [ 48 ] [ 49 ] С тех пор появились последующие игры, которые визуализировали графику такими средствами, что было связано с улучшениями в аппаратном обеспечении и усилиями по созданию большего количества API и игровых движков, совместимых с этой технологией. [ 50 ] Современные домашние игровые консоли реализуют в своих графических процессорах специальные аппаратные компоненты трассировки лучей для создания эффектов трассировки лучей в реальном времени, которые начались с девятого поколения консолей PlayStation 5 , Xbox Series X и Series S. [ 51 ] [ 52 ] [ 53 ] [ 54 ] [ 55 ]
4 ноября 2021 г. компания Imagination Technologies анонсировала графический процессор IMG CXT с аппаратно-ускоренной трассировкой лучей. [ 56 ] [ 57 ] 18 января 2022 года Samsung анонсировала SoC Exynos 2200 AP с аппаратно-ускоренной трассировкой лучей. [ 58 ] 28 июня 2022 года компания Arm анонсировала Immortalis-G715 с аппаратно-ускоренной трассировкой лучей. [ 59 ] 16 ноября 2022 года Qualcomm анонсировала Snapdragon 8 Gen 2 с аппаратно-ускоренной трассировкой лучей. [ 60 ] [ 61 ] 12 сентября 2023 года Apple анонсировала свой Apple A17 с аппаратно-ускоренной трассировкой лучей. [ 62 ]
Вычислительная сложность
[ редактировать ]Для некоторых формулировок задачи трассировки лучей были доказаны результаты различной сложности. В частности, если вариант решения задачи трассировки лучей определяется следующим образом [ 63 ] – учитывая начальное положение и направление светового луча, а также некоторую фиксированную точку, достигает ли луч в конечном итоге этой точки, тогда в указанной статье доказываются следующие результаты:
- Трассировка лучей в трехмерных оптических системах с конечным набором отражающих или преломляющих объектов, представленных системой рациональных квадратных неравенств, неразрешима .
- Трассировка лучей в трехмерных оптических системах с конечным набором преломляющих объектов, представленных системой рациональных линейных неравенств, неразрешима.
- Трассировка лучей в трехмерных оптических системах с конечным набором прямоугольных отражающих или преломляющих объектов неразрешима.
- Трассировка лучей в трехмерных оптических системах с конечным набором отражающих или частично отражающих объектов, представленных системой линейных неравенств, некоторые из которых могут быть иррациональными, неразрешима.
- Трассировка лучей в трехмерных оптических системах с конечным набором отражающих или частично отражающих объектов, представленных системой рациональных линейных неравенств, является PSPACE -трудной.
- Для любой размерности, равной или превышающей 2, трассировка лучей с конечным набором параллельных и перпендикулярных отражающих поверхностей, представленных рациональными линейными неравенствами, находится в PSPACE.
См. также
[ редактировать ]- Трассировка луча
- Трассировка конуса
- Распределенная трассировка лучей
- Глобальное освещение
- Растушевка по Гуро
- Список программного обеспечения для трассировки лучей
- Параллельные вычисления
- Отслеживание пути
- Затенение Фонга
- Прогрессивная доработка
- Затенение
- Зеркальное отражение
- Тесселяция
- Попиксельное освещение
- GPUОткрыть
- NVIDIA GameWorks
- Металл (API)
- Вулкан
- ДиректХ
Ссылки
[ редактировать ]- ^ Ширли, Питер (9 июля 2003 г.). Реалистичная трассировка лучей . АК Петерс/CRC Press; 2-е издание. ISBN 978-1568814612 .
- ^ «Спонсируемая функция: изменение игры — экспериментальная облачная трассировка лучей» . www.gamasutra.com . Проверено 18 марта 2021 г.
- ^ «Дисней объясняет, почему их 2D-анимация выглядит такой реалистичной» . Engadget . Проверено 18 марта 2021 г.
- ^ «Следующие большие шаги в звуковом дизайне игр» . www.gamasutra.com . 28 января 2010 года . Проверено 18 марта 2021 г.
- ^ Георг Райнер Хофманн (1990). «Кто изобрел трассировку лучей?». Визуальный компьютер . 6 (3): 120–124. дои : 10.1007/BF01911003 . S2CID 26348610 . .
- ^ Стив Люкинг (2013). «Дюрер, рисунок и цифровое мышление — Конференция FATE 2013» . Брайан-Кёртис.com . Проверено 13 августа 2020 г.
- ^ Стив Люкинг. «Стивен Джей Люкинг» . Проверено 13 августа 2020 г.
- ^ Аппель, Артур (30 апреля 1968 г.). «Некоторые методы затенения машинной визуализации твердых тел». Материалы весенней совместной компьютерной конференции AFIPS '68 (весна) (PDF) , состоявшейся 30 апреля — 2 мая 1968 г. . стр. 37–45. дои : 10.1145/1468075.1468082 . S2CID 207171023 .
- ^ Гольдштейн, Роберт; Нагель, Роджер (январь 1971 г.), «Визуальное трехмерное моделирование», Simulation , 16 (1): 25–31, doi : 10.1177/003754977101600104 , S2CID 122824395
- ^ Сэмплер Syntha Vision . 1974 — через Интернет-архив .
- ^ Рот, Скотт Д. (февраль 1982 г.), «Ray Casting для моделирования твердых тел», Компьютерная графика и обработка изображений , 18 (2): 109–144, doi : 10.1016/0146-664X(82)90169-1
- ^ Уиттед Т. (1979) Улучшенная модель освещения для затененного дисплея . Материалы 6-й ежегодной конференции «Компьютерная графика и интерактивные технологии».
- ^ Настоящий рыболов . Лаборатории Белла. 1978 — через Интернет-архив .
- ^ «Пища для смеха» . Мир компьютерной графики .
- ^ Г-жа (28 мая 2013 г.). «Эта анимированная жизнь: Lightspeed от Pixar проливает новый свет на Университет монстров» . Эта анимированная жизнь . Проверено 26 мая 2020 г.
- ^ Харт, Джон К. (июнь 1995 г.), «Трассировка сфер: геометрический метод трассировки лучей со сглаживанием неявных поверхностей» (PDF) , The Visual Computer
- ^ Харт, Джон К.; Сандин, Дэниел Дж.; Кауфман, Луи Х. (июль 1989 г.), «Детерминированные трехмерные фракталы трассировки лучей» (PDF) , Компьютерная графика , 23 (3): 289–296, doi : 10.1145/74334.74363
- ^ Томас Никодим (июнь 2010 г.). «Алгоритм трассировки лучей для интерактивных приложений» (PDF) . Чешский технический университет, ФЭУ . Архивировано из оригинала (PDF) 3 марта 2016 г.
- ^ Уиттед, Т. (1979). «Улучшенная модель освещения для затененного дисплея» . Материалы 6-й ежегодной конференции «Компьютерная графика и интерактивные технологии» . CiteSeerX 10.1.1.156.1534 . ISBN 0-89791-004-4 .
- ^ Чалмерс, А.; Дэвис, Т.; Рейнхард, Э. (2002). Практический параллельный рендеринг . АК Петерс. ISBN 1-56881-179-9 .
- ^ Айла, Тимо; Лайне, Самулий (2009). «Понимание эффективности прохождения лучей на графических процессорах». HPG '09: Материалы конференции по высокопроизводительной графике 2009 . стр. 145–149. дои : 10.1145/1572769.1572792 . ISBN 9781605586038 . S2CID 15392840 .
- ^ Эрик П. Лафортюн и Ив Д. Виллемс (декабрь 1993 г.). «Двунаправленное отслеживание пути» . Proceedings of Compugraphics '93 : 145–153.
- ^ Петер Дорнбах (1998). «Реализация алгоритма двунаправленной трассировки лучей» (PDF) . Проверено 11 июня 2008 г.
- ^ Глобальное освещение с использованием фотонных карт. Архивировано 8 августа 2008 г. в Wayback Machine.
- ^ «Фотонное картирование — Зак Уотерс» .
- ^ Вич, Эрик; Гибас, Леонидас Дж. (1997). «Метрополис Легкий Транспорт». SIGGRAPH '97: Материалы 24-й ежегодной конференции по компьютерной графике и интерактивным методам . стр. 65–76. дои : 10.1145/258734.258775 . ISBN 0897918967 . S2CID 1832504 .
- ^ Холл, Рой А.; Гринберг, Дональд П. (ноябрь 1983 г.). «Испытательный стенд для синтеза реалистичных изображений». IEEE Компьютерная графика и приложения . 3 (8): 10–20. CiteSeerX 10.1.1.131.1958 . дои : 10.1109/MCG.1983.263292 . S2CID 9594422 .
- ^ «【Университет Осаки 】 Система компьютерной графики LINKS-1» . Компьютерный музей IPSJ . Общество обработки информации Японии . Проверено 15 ноября 2018 г.
- ^ Дефанти, Томас А. (1984). Достижения компьютеров. Том 23 (PDF) . Академическая пресса . п. 121. ИСБН 0-12-012123-9 .
- ^ См. материалы 4-го семинара по компьютерной графике, Кембридж, Массачусетс, США, октябрь 1987 г. Usenix Association, 1987. стр. 86–98.
- ^ «О БРЛ-САПР» . Проверено 18 января 2019 г.
- ^ Пьеро Фоскари. «Сфера трассировки лучей в реальном времени» . Транзакции ACM с графикой . Проверено 17 сентября 2007 г.
- ^ Паркер, Стивен; Мартин, Уильям (26 апреля 1999 г.). «Интерактивная трассировка лучей» . Материалы симпозиума 1999 года по интерактивной трехмерной графике . I3D '99. Том. 5. С. 119–126. CiteSeerX 10.1.1.6.8426 . дои : 10.1145/300523.300537 . ISBN 1581130821 . S2CID 4522715 . Проверено 30 октября 2019 г.
- ^ Марк Уорд (16 марта 2007 г.). «Лучи освещают реалистичную графику» . Новости Би-би-си . Проверено 17 сентября 2007 г.
- ^ Педди, Джон (2019). Трассировка лучей: инструмент для всех . Шпрингер Природа Швейцария . ISBN 978-3-030-17490-3 . Проверено 2 ноября 2022 г.
- ^ Аби-Чахла, Феди (22 июля 2009 г.). «Когда трассировка лучей заменит растеризацию?» . Аппаратное обеспечение Тома . Архивировано из оригинала 3 ноября 2022 года . Проверено 4 ноября 2022 г.
- ^ Валич, Тео (12 июня 2008 г.). «Intel преобразует ET: Quake Wars в трассировку лучей» . ТГ Дейли. Архивировано из оригинала 2 октября 2008 года . Проверено 16 июня 2008 г.
- ^ Nvidia (18 октября 2009 г.). «Нвидиа Оптикс» . Нвидиа . Проверено 6 ноября 2009 г.
- ^ Катберт, Дилан (24 октября 2015 г.). «Создание прекрасной, революционной графики The Tomorrow Children на PS4» . Блог PlayStation . Проверено 7 декабря 2015 г.
- ^ Килгарифф, Эммет; Мортон, Генри; Стэм, Ник; Белл, Брэндон (14 сентября 2018 г.). «Подробное описание архитектуры NVIDIA Turing» . Разработчик Нвидиа . Архивировано из оригинала 13 ноября 2022 года . Проверено 13 ноября 2022 г.
- ^ Такахаши, декан (20 августа 2018 г.). «Nvidia представляет графические чипы GeForce RTX для игр с трассировкой лучей в реальном времени» . ВенчурБит . Архивировано из оригинала 13 ноября 2022 года . Проверено 13 ноября 2022 г.
- ^ Чакос, Брэд (14 ноября 2018 г.). «RTX включен! Battlefield V становится первой игрой, поддерживающей трассировку лучей в реальном времени DXR» . ПКМир . Архивировано из оригинала 13 ноября 2022 года . Проверено 13 ноября 2018 г.
- ^ «Трассировка лучей в реальном времени с помощью Radeon ProRender» . GPUОткрыть . 20 марта 2018 года. Архивировано из оригинала 13 ноября 2022 года . Проверено 13 ноября 2022 г.
- ^ Харада, Такахиро (23 ноября 2020 г.). «Аппаратное ускорение трассировки лучей в AMD Radeon™ ProRender 2.0» . GPUОткрыть . Архивировано из оригинала 13 ноября 2022 года . Проверено 13 ноября 2022 г.
- ^ Гарреффа, Энтони (9 сентября 2020 г.). «28 октября компания AMD представит видеокарты следующего поколения Big Navi RDNA 2» . ТвикТаун . Проверено 9 сентября 2020 г.
- ^ Лайлс, Тейлор (9 сентября 2020 г.). «Процессоры AMD Zen 3 следующего поколения и графический процессор Radeon RX 6000 Big Navi будут представлены в следующем месяце» . Грань . Проверено 10 сентября 2020 г.
- ^ «AMD сообщает показатели производительности карты Radeon RX 6000: нацелены на 3080?» . anandtech.com . АнандТех . 8 октября 2020 г. Проверено 25 октября 2020 г.
- ^ «AMD объявляет о презентациях Ryzen «Zen 3» и Radeon «RDNA2» в октябре: новое путешествие начинается» . anandtech.com . АнандТех . 9 сентября 2020 г. . Проверено 25 октября 2020 г.
- ^ Джадд, Уилл (28 октября 2020 г.). «AMD представляет три видеокарты Radeon 6000 с трассировкой лучей и производительностью, превосходящей RTX» . Еврогеймер . Проверено 28 октября 2020 г.
- ^ Маррс, Адам; Ширли, Питер ; Вальд, Инго (2021). Ray Tracing Gems II: рендеринг нового поколения в реальном времени с помощью DXR, Vulkan и OptiX . Апресс . стр. 213–214, 791–792. hdl : 20.500.12657/50334 . ISBN 9781484271858 .
- ^ Уоррен, Том (8 июня 2019 г.). «Microsoft намекает на Xbox следующего поколения Scarlet в тизерах E3» . Грань . Проверено 8 октября 2019 г.
- ^ Хаим, Гартенберг (8 октября 2019 г.). «Sony подтверждает название PlayStation 5 и дату выпуска в 2020 году» . Грань . Проверено 8 октября 2019 г.
- ^ Уоррен, Том (24 февраля 2020 г.). «Microsoft раскрывает дополнительные характеристики Xbox Series X и подтверждает производительность графического процессора 12 терафлопс» . Грань . Проверено 25 февраля 2020 г.
- ^ Уоррен, Том (9 сентября 2020 г.). «Microsoft раскрывает характеристики Xbox Series S и обещает в четыре раза большую вычислительную мощность, чем Xbox One» . Грань . Проверено 9 сентября 2020 г.
- ^ Вандервелл, Энди (4 января 2020 г.). «Разбираемся в безудержной мельнице слухов о Xbox Series X» . Проводной . Архивировано из оригинала 13 ноября 2022 года . Проверено 13 ноября 2022 г.
- ^ 93digital (4 ноября 2021 г.). «Imagination запускает самый совершенный графический процессор с трассировкой лучей» . Воображение . Проверено 17 сентября 2023 г.
{{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка ) - ^ «Трассировка лучей» . Воображение . Проверено 17 сентября 2023 г.
- ^ «Samsung представляет процессор Exynos 2200, меняющий правила игры, с графическим процессором Xclipse на базе архитектуры AMD RDNA 2» . news.samsung.com . Проверено 17 сентября 2023 г.
- ^ «Новые графические процессоры Arm повышают игровую производительность - Анонсы - Блоги сообщества Arm - Сообщество Arm» . сообщество.arm.com . 28 июня 2022 г. . Проверено 17 сентября 2023 г.
- ^ «Snapdragon 8 Gen 2 определяет новый стандарт для смартфонов премиум-класса» . www.qualcomm.com . Проверено 17 сентября 2023 г.
- ^ «Новый Snapdragon 8 Gen 2: представлено 8 необычных мобильных возможностей» . www.qualcomm.com . Проверено 17 сентября 2023 г.
- ^ Боншор, Райан Смит, Гэвин. «Прямой блог о осеннем мероприятии Apple iPhone 2023 (начинается в 10:00 по тихоокеанскому времени/17:00 по всемирному координированному времени)» . www.anandtech.com . Проверено 17 сентября 2023 г.
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ «Вычислимость и сложность трассировки лучей» (PDF) . CS.Duke.edu .