ДонНТУ   Портал магистров

Реферат по теме выпускной работы

Содержание

Введение

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

Поиск решения проблемы синтеза фотореалистичных изображений привел к разработке различных алгоритмов расчета освещения сцены.

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

1. Актуальность темы

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

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

2. Цель и задачи исследования, планируемые результаты

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

Основные задачи исследования:

  1. Анализ существующих методов трассировки лучей, тем самым отобрать из них те методы, которые дают возможность получить высококачественное реалистичное изображение.
  2. Разработка модифицированных методов трассировки луча.
  3. Отображение методов на архитектуре параллельных компьютерных систем, в частности, используя средства GPGPU – CUDA.

Объект исследования: фотореалистичный рендеринг.

Предмет исследования: модификация точных-unbiased методов, с целью уменьшения времени рендеринга на один кадр, и отображение их на архитектуру GPU.

3. Обзор исследований и разработок

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

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

Рисунок 1 – Процесс рендеринга методом трассировкой луча
(анимация: 5 кадров, 5 циклов повторения, 28.1 килобайт)

3.1 Обзор международных источников

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

Модель глобального освещения описанной в работе "An Improved Illumination Model for Shaded Display" (Turner Whitted, Bell Laboratories, Holmdel, New Jersey, 1980) [1] учитывает закон Ламберта, согласно которому яркость, рассеивающей свет диффузной поверхности одинакова во всех направлениях. Этот закон применяется для примитивных поверхностей, для более сложных моделей поверхности используется модель Фонга. Последняя модель предполагает, что каждый источник света расположен в точке бесконечно удаленной от объектов на сцене. Данная модель не подходит для объектов, «поведение» которых похоже на источник света или для света который отражается от объекта к объекту. Здесь освещена модель Блинна-Фонга для зеркального отражения окружающей среды объекта на сам объект. Модель глобального освещения в работе Уиттеда предполагает имитацию теней. Точка на поверхности лежит в тени, если она видима для наблюдателя, но невидима для источника света. Рассмотрено прохождение луча света сквозь прозрачные объекты.

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

Метод распределенной трассировки лучей [2]. Предпосылками нововведения являлось недостаток эффектов алгоритмов трассировки лучей, таких как размытие изображения, глубина резкости изображаемого пространства, мягкие полутени, нечеткие отражения. Ввиду того, что направления лучей четко определены, это ограничивает возможности метода трассировки лучей. Следствием этого являются резкие тени, отражения и преломления. Для четкого понимания идеи распределенной трассировки лучей необходимо понять, что такое сэмплирование. Сэмпл – это значение функции в некоторой точке, а сэмплирование – это способ вычисления некоторой функции на множестве с использованием сэмплов. При помощи надлежащего сглаживания (aliasing), лучи могут сэмплировать размытие, линзы камеры. Идея метода состоит в распределении направления лучей согласно аналитической функции, которая сэмплируется по этим направлениям, способна реализовать нечеткие явления (размытие, глубина резкости и т.д.). Благодаря сэмплированию в методе распределенной трассировки лучей возможны такие эффекты:

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

В работе [3] рассмотрен метод прямой и обратной трассировки луча. Идея состоит в генерировании лучей, следующих от источника света, и ударяющихся об объекты сцены, до камеры. Проблема состоит в том, что большинство лучей так и не достигают камеры. Эти лучи никак не влияют на картинку, поэтому симулирование такого алгоритма бессмысленно. Скорость визуализации сцены таким методом очень мала, в связи с этим нигде не используется. Для решения такой проблемы призван метод обратной трассировки лучей.

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

В работе [4] изложен метод излучательности (radiosity) и алгоритм полукуба для расчета форм-факторов, который предназначается для вычисления диффузных отражений от объекта к объекту в сложной среде, содержащую скрытые поверхности и тени. Для выполнения расчетов требуется спецификация взаимного расположения объектов сцены, и при этом положение наблюдателя не учитывается. Метод излучательности описывает баланс равновесия энергии внутри замкнутого пространства. Заранее установлено, что все процессы отражения идеально диффузные. Однако, прошлая история или направление луча теряется после отражения об поверхность. Свет, исходящий от поверхности (излучательность) состоит из самоиспускающего света и отраженного или проходящего смежного света. На первом шаге этого метода все поверхности сцены разбиваются на патчи. Патч – элементарная единица поверхности. Дискретизация поверхности на патчи позволяет заменить интеграл в уравнении освещенности на конечную сумму интегралов специального вида. Каждый такой интеграл, называемый форм-фактором, задает взаимное влияние двух отдельных патчей. Зная значение каждого форм-фактора, процесс синтеза изображений сводится к решению системы линейных алгебраических уравнений. Основная трудность в алгоритме – расчет форм-факторов. Алгоритм полукуба для расчета форм-факторов, согласно такому подходу форм-фактор может быть рассчитан геометрическим способом по аналогии Нуссельта.

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

Автор статьи "The rendering equation" Джеймс Каджия формализовал задачу визаулизации [5]. Уравнение рендеринга – интегральное уравнение, обобщающее множество известных алгоритмов визуализации. Алгоритм визуализации расширяет спектр оптических явлений, которые могут эффективно моделироваться. Уравнение гласит, что передающаяся интенсивность света от одной точки поверхности к другой – это просто сумма излучаемого света и общей интенсивности света, которая отбрасывается по оси х от всех других точек поверхностей. В отличие от уравнения излучательности, здесь не делается никаких предположений относительно характеристик отражения от поверхностей.

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

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

Идея метода Монте-Карло прямой трассировки лучей состоит в статистическом воспроизведении механизма распространения света путем моделирования всевозможных траекторий лучей. Траектории световых частиц (фотонов) прослеживаются на всех этапах существования, от момента их генерации источниками света до поглощения или выхода из сцены. Направление, в котором испускается фотон, и стартовая позиция на источнике света определяются стохастически согласно фотометрическому распределению энергии источника и его геометрической форме. Траектория фотона трассируется до пересечения с поверхностью. При взаимодействии фотона с поверхностью, он может быть поглощен, диффузно отражен (преломлен) с равномерной плотностью распределения по полусфере, отражен (преломлен) в зеркальном направлении, или отражен (преломлен) согласно заданной плотности распределения. При выборе дальнейшего поведения фотона согласно свойствам поверхности (например, диффузного или зеркального отражения) используется принцип рулетки. Метод не зависит от положения глаза наблюдателя и не осуществляет непосредственного вывода изображения на экран, а лишь предоставляет данные об освещенности для алгоритмов закраски изображений, т.е. строит так называемую карту освещенности, которая является решением задачи глобальной освещенности. Метод естественным образом поддерживает все типы поверхностей, включая произвольные сочетания диффузных и зеркальных свойств как при отражении света от поверхностей, так и при его пропускании через прозрачные и полупрозрачные материалы. Для задания нетривиальных оптических свойств поверхности может использоваться двунаправленная функция, описывающая плотность распределения отражений и преломлений. Полная информация о приемах методов Монте – Карло изложена в работе [6].

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

Стратегия выборки по значимости для трассировки лучей методом Монте-Карло, в которой грубая оценка интенсивности сияния построена на основе фотонных карт и локальной модели отражений, позволяет конструировать более эффективные вероятностные функции плотности. Эти функции могут использоваться в схеме выборки по значимости. Алгоритм, представленный в [7] дает на выходе результаты без допущений, поддерживает модели отражений и эффективен в сценах с неоднородным непрямым освещением. Достоинства метода Монте-Карло: процедурная геометрия сцен, легкое воспроизведение зеркальных отражений, низкое потребление памяти, точность контролируется на уровне пикселя, легко реализуется.

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

Двунаправленная трассировка пути – это усовершенствованный метод Монте-Карло [8]. Тестовые результаты показывают сравнительно лучшее качество изображения для сцен замкнутого типа, где важную роль играет непрямое освещение. Основная идея метода состоит в одновременном лучеиспускании из выбранного источника света и виртуального глаза. Создаются отрезки пути, начиная с виртуального глаза и другие отрезки пути, которые берут свое начало из источника света. Длины каждого из отрезков пути определяется исходя из длины максимального пути, либо с помощью метода русской рулетки, который случайно остановит путь после определенного критерия. При наличии двух скомбинированных путей, которые образуют ребра между концами каждого отрезка пути, создается один путь от виртуального глаза до источника света. Для проверки правильности составленного пути, точки пересечения путей луча с объектами сцена идущего от виртуального глаза и из источника света соединяются между собой с помощью теневыми лучами. Используя такой подход, различные световые комбинации берутся во внимание, не только из первичных источников, но и из вторичных, третичных, и т.д. источников света.

Metropolis Light Transport, алгоритм без допущений, и непредвзятый алгоритм Монте-Карло, предназначенный для решения проблем глобального освещения, таких как: сильное непрямое освещение, каустики, малые геометрические отверстия. Ключевой идеей метода является повторное использование путей передачи света с целью получений так называемого вклада в итоговое изображение.

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

Особенности принятия вероятностей, этапа инициализации, выбора подходящей мутации, обзор стратегий мутации [9,10]. Достоинства: Использование малого объема памяти, пространство путей исследуется локально с помощью предпочтительных мутирований, которые вносят небольшие изменения в текущий путь. Наиболее подходит для сцен с ярким рассеянным освещением. Недостатки: данный алгоритм нельзя считать универсальным средством решения всех проблем глобального освещения. Применение: пример расширения метода MLT [11], где рассматривается подход к реализации таких объемных эффектов как: туман, дым, облака (participating media). Эти эффекты обобщаются в категорию анизотропного рассеивания в неоднородной среде. Расширение метода основано на внесении изменений в стратегию мутации.

Метод фотонных карт – это универсальный алгоритм, способный моделировать глобальное освещение включая эффект каустики, диффузные межотражения. Этот метод обеспечивает такую же гибкость, как и общие методы трассировки лучей на основе метода Монте-Карло, при этом используется только доля времени вычисления. Постановка задачи метода фотонных карт сводится к вычислению интеграла освещенности. Сами фотоны представляют собой частицы, транспортирующие определенную порцию световой энергии. Далее, при соприкосновении фотона с некоторой поверхностью, фотон может отразиться диффузно/зеркально, пройти сквозь или поглотиться.

Алгоритм метода фотонных карт начинается с генерирования из источника света фотонов. Количество фотонов зависит от распределения световой энергии данного источника света. После завершения трассировки фотонов составляется фотонная карта, что представляет собой структуру пространственного разбиения. Это необходимо для выборки определенного количества фотонов в произвольной точке пространства. Для хранения фотонов используются kd-деревья (бинарные деревья, разбивающие пространство плоскостями, параллельные осям координат). После построения фотонной карты начинается этап сбора освещенности. Здесь используется либо распределенная трассировка лучей, либо константный радиус сбора.

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

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

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

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

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

3.2 Обзор национальных источников

В Харьковской академии городского хозяйства Ю. О. Васильевой, и Е. Н. Ляшенко выполнен анализ современных методов физически корректного моделировани распространения света с применением метода Монте-Карло и показана их эффективность для получения фотореалистичных изображений при проектировании систем освещения [16].

И.Н. Егоровой и М.А. Потеминым (Харьковский национальный университет радиоэлектроники) приведен анализ различных алгоритмов расчета освещения сцены. Исследованы наиболее эффективные модели визуализации, позволяющие получить высококачественные синтезированные изображения при создании визуальных образов средствами трехмерной графики [17].

3.3 Обзор локальных источников

В Донецком национальном техническом университете (кафедра компьютерной инженерии) Р.В. Мальчевой и А.А. Сереженко велась разработка оптимизации и применения метода трассировки лучей в 3D-графике. Кратко описан алгоритм, структура, возможности, применение и пример использования [18].

4. Реализация методов трассировки луча на различной архитектуре

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

Альтернативным подходом к реализации метода трассировки лучей в реальном времени является использование GPU. Графическое аппаратное обеспечение эволюционировало от Graphics Rendering Pipeline (конвейер, этапы которого проходит видеокарта для построения финального изображения) оптимизированного для визуализации треугольников с картами текстур до GRP с программируемыми вершинными и фрагментарными этапами.

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

Отображение метода трассировки лучей на потоковую модель (рис. 2) [19]. Изначально предполагается, что геометрия сцены представляется треугольниками, которые хранятся в ускоряющих структурах данных. Потоковый трассировщик лучей разделен на четыре ядра: производит поток видимых лучей. Каждый видимый луч – генерирование лучей из камеры, сетки пересечений, пересечений луча и треугольника, затенение. Генератор лучей из камеры это отдельный луч, соответствующий пикселю изображения. Ядро пересечений считывает поток лучей, произведенных генератором лучей. Это ядро последовательно направляет лучи сквозь сетку, пока луч не столкнется с вокселем, содержащий треугольники. Следующее ядро пересечений отвечает за тестирование пересечений луча со всеми треугольниками внутри вокселя. Ядро затенения вычисляет цвет, генерирует вторичные лучи или теневые лучи.

Потоковая модель рейтрейсера

Рисунок 2 – Потоковая модель для рейтрейсера

Применение: Быстрый аппроксимирующий метод для нахождения точки пересечения отраженного или преломленного луча. Расчеты основаны на величинах расстояний, которые хранятся в текселях карт окружающей среды. Аппроксимация используется для локализации отражений и преломления, представленных картами окружающей среды, чтобы сделать их независимыми там, где они попадаются. С другой стороны, размещая виртуальный глаз в источнике света, этот метод хорошо сработает для генерирования каустики в реальном времени. Данный метод подходит для сцен, состоящий из больших плоских граней. Метод описанный в [20] подходит для GPU архитектуры, и применяется в игровой индустрии.

В работе [21] рассматривается система Razor, которая поддерживает динамические сцены с высококачественными эффектами (мягкие тени, несфокусированное размытие). Эта система выполняется на программируемой многоядерной архитектуре и предназначается для трассировки лучей в реальном времени. Система трассировки лучей Razor, использует многопоточность с одним главным потоком и рабочими потоками для каждого ядра CPU. Первичные лучи организовываются в 2D-блоки, которые помещаются в рабочую очередь и отображаются на рабочие потоки. Как показано на рис. 3 Razor поддерживает видимость с помощью специальной структуры kd-дерева, построенного для каждого кадра, а также использует так называемый «крупно-зерновой» параллелизм, с помощью декомпозиции областей кадров на ячейки. Кроме того, здесь используется параллелизм с помощью пакетной трассировки лучей одновременным пусканием множества лучей, как показано на рис.4. Вычисления материальных затенений отделены от расчетов пересечений, так как они существенно отличаются. На рисунке 3 представлена аппаратная организация многоядерной системы.

Обзор многоядерной системы

Рисунок 3 – Обзор многоядерной системы

Аппаратная организация многоядерной системы

Рисунок 4 – Аппаратная организация многоядерной системы

Аппаратная архитектура – это крупно-масштабируемый многоядерный процессор с приватным кэшем второго уровня, многопоточность для скрытия латентности доступа к памяти, и ограниченная когерентность кэша. Такая организация дает возможность легкого масштабируемости на тысячи ядер. Проведенные исследования показали 8-ядерная плитка может быть полностью использована на 100% и поддерживать 10 миллионов лучей/сек. 16 таких плиток могут уместиться на чипе (240mm2, технология 22 nm), и таким образом, без проблем реализовывать трассировку лучей в реальном времени.

С появлением технологий CUDA NVIDIA и AMD Stream начался пересмотр концепций реализации трассировки лучей на GPU. В работе [22] рассматривается реализация обратной трассировки лучей на GPU с поддержкой теней, отражений, преломлений, прозрачности объектов и текстурирования. Графическая платформа – OpenGL, язык шейдеров – GLSL (обеспечение кроссплатформенности). Особенностями этой реализации являются: представление всех объектов сцены в виде треугольников, использование регулярной сетки с «облаком близости» в качестве ускоряющей структуры, улучшенные алгоритмы пересечения «луч-примитив». Необходимые для расчетов данные передаются текстурами и специальными глобальными переменными. Каждый тексель текстуры содержит смещение в текстуре вершин, число треугольников и др. Специальные глобальные переменные хранят данные камеры и источников света.

В работе [23] рассматриваются варианты реализации рекурсивной трассировки лучей на CUDA. Когда лучи бросаются в сцену, их конечной целью является – возврат цвета пикселя и значение цвета пикселя не определяется по значению цвета соседнего пикселя. Ввиду того, что наименьшим независимым элементом в трассировке лучей является – пиксель, то именно на нем построен весь параллелизм вычислений. На CUDA к каждому пикселю привязывается отдельный поток GPU. Этот поток производит все расчеты освещения, затенения, проверку пересечений объект/луч для всех объектов. В сущности, это означает что каждый поток имеет доступ к полной характеристике сцены.

Так как трассировка лучей является ресурсозатратным процессом, постоянно возникает задача его ускорения на графическом процессоре. Для решения такой проблемы используют такие ускоряющие структуры, как рекурсивные структуры пространственного разбиения (kd, BVH деревья). Как показал опыт реализации методов трассировки лучей на GPU, данная технология имеет некоторые недостатки. К ним относится отсутствие стека, недостаточное количество регистров GPU, неизмеримость скорости работы частей алгоритма. В статье [24] эти недостатки компенсируются высокой степенью параллелизма, разделение алгоритма на несколько ядер и их множественным переключением. Учитывая недостатки технологии CUDA в работе [24], задачу трассировки лучей декомпозировали на три подзадачи: поиск в kd-дереве, подсчет пересечений, затенение. При таком подходе удалось измерить скорость частей алгоритма, все части программы независимы друг от друга, ядро затенения может быть любым по сложности, что не отразится на производительности системы. Некоторые алгоритмические аспекты фотонных карт затрудняют реализации на GPU, что отражается на производительности системы. Решением стало – группировка фотонов, в каждой из которой фотоны немного расходятся друг от друга. Для следующего этапа, сбора освещенности, применяется выборка некоторого фиксированного радиуса сбора и оценки освещения всех фотонов, которые попадают в заданный радиус, что экономит ресурсы GPU. Более подробно о проблеме хранения фотонов на GPU (CUDA) в ходе многопроходного алгоритма и ее разрешении в работе [24, c.6].

Альтернативный подход к ускорению метода трассировки лучей на GPU описан в работе [25], где предлагается сортировка фотонной карты (с целью получения эффекта каустики) так, чтобы уменьшить время доступа к ближайшим фотонам в области точки соударения. Для этого применяется пространственная хэш-функция и битоническая сортировка.

В работе [26] представлен движок NVIDIA OptiX для трассировки лучей, спроектированный для графических процессоров NVIDIA. Данный движок был разработан исходя из одного важного наблюдения, что большинство алгоритмов трассировки лучей могут быть реализованы с помощью малого набора программируемых операций. Ядро движка OptiX представляет собой предметно-ориентированный динамический компилятор, который генерирует настраиваемые ядра трассировки лучей, сочетая пользовательские программы для генерирования лучей, затенения, пересечений с объектами и др. Этот движок отличается высокой производительностью за счет аккуратной объектной модели, а также своей гибкостью, что позволяет настраивать и адаптировать движок к определенным задачам, поддержкой рекурсии. Данные, которые несет и собирает луч полностью настраиваемые, что упрощает расчеты для одного луча в единицу времени. Программируемый графический конвейер OptiX представлен на рисунке 5 [26, c.3, figure 2].

Графический конвейер OptiX (граф вызовов)

Рисунок 5 – Графический конвейер OptiX (граф вызовов)

Сцена хранится и обрабатывается как граф, в [26, c.3, figure 2] показан пример разбиения на граф определенный сферы (рис.6).

Граф сцены

Рисунок 6 – Граф сцены

Управление потоком основного приложения OptiX [26, c.6, figure 5] (рис. 7).

Поток управления приложением

Рисунок 7 – Поток управления приложением

Также OptiX осуществляет поддержку графических API (OpenGL). Функции OptiX: параллелизм внутри GPU, между GPU и CPU, использование kd, BVH деревьев и других обходных алгоритмов, контроль использования мощностей GPU с помощью встроенного модуля по балансировке нагрузки.

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

В работе [27] предлагается реализация методов трассировки путей, двунаправленной трассировки путей, а также MLT на GPU (CUDA), с целью показать, что вычисления на GPU намного лучше, чем на СPU. Экспериментальные данные были получены на аппаратуре Intel CoreTMi7 CPU 920 and NVIDIA GeForce GTX 480 (рис. 8).

Сравнение производительности между CPU и GPU

Рисунок 8 – Сравнение производительности между CPU и GPU

Выводы

Проанализировав методы трассировки лучей, выделим группу методов по критерию высокого качества и точности выходного изображения. Обратная трассировка лучей балансирует между качеством и быстродействием, и так как, этот метод является основой для многих других, то не будем его относить в категорию фотореалистичных методов. Распределенная трассировка лучей обладает широким рядом достоинств в плане фотореалистичных эффектов, поэтому отбираем его в группу точных методов. Трассировка лучей на основе метода Монте-Карло и прямая трассировка лучей лежат в основе многопроходных методов. Двунаправленная трассировка путей, Metropolis Light Transport и метод фотонных карт выдерживают фильтр по точности и высокому качеству. Метод объемной трассировки лучей не подходит по выбранному критерию. Таким образом, к методом фотореалистичной визуализации относятся методы: распределенная трассировка лучей, метод фотонных карт, двунаправленная трассировка путей и Metropolis Light Transport.

Магистерская работа посвящена актуальной научной задаче синтеза фотореалистичных изображений. В рамках проведенных исследований выполнено:

  1. Проведен анализ существующих методов трассировки луча.
  2. Выбраны точные методы фотореалистичной визуализации.
  3. Исследованны особенности отображения отобранных методов на архитектуру GPU.

Дальнейшие исследования направлены на следующие аспекты:

  1. Выполнение программной реализации методов на CUDA.
  2. Получение экспериментальных характеристик быстродействия и качества.
  3. Оптимизация методов для уменьшения времени визуализации сцены.

При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: декабрь 2013 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.

Список источников

  1. Whitted, Turner. An improved illumination model for shaded display. Communications of the ACM 6, 23, (June 1980), 343-349.
  2. Cook, Robert L.: "Distributed Ray Tracing". Computer Graphics 18 (3), pp. 137- 145, 1984.
  3. Glassner Andrew S. An introduction to ray tracing, Academic Press Inc, San Diego,1989.-327 p.
  4. Cohen Michael F., Greenberg Donald P., “The hemi-cube, A radiosity solution for complex environment”, Cornell University, Ithaca, N.Y., 1985.
  5. Kajiya James T., “The rendering equation”, Dallas, August, Vl 20, N.4, 1986.
  6. H. W. Jensen, J. Arvo, P. Dutre, A. Keller, A. Owen, M. Pharr, and P. Shirley. Monte carlo ray tracing. In ACM SIGGRAPH Course Notes 44, 2003.
  7. Jensen H. W. Importance driven path tracing using the photon map //Rendering Techniques’ 95. – Springer Vienna, 1995. – С. 326-335.
  8. Adamsen Mikkel, “Bidirectional path tracing”, July 19, 2009.
  9. Hakkinen P., "Metropolis Light Transport", 2008.
  10. VEACH, E., AND GUIBAS, L. J. Metropolis light transport. In SIGGRAPH ’97 (August 1997), pp. 65–76.
  11. M. Pauly, T. Kollig, and A. Keller, Metropolis Light Transport for Participating Media, Rendering Techniques 2000 (Proc. 11th Eurographics Workshop on Rendering), Springer, 2000, pp. 11–22.
  12. JENSEN, H, Global Illumination using Photon Maps, Eurographics Workshop on Rendering 1996, 21-30.
  13. Jensen H. W. et al. A practical guide to global illumination using photon mapping //SIGGRAPH 2002 Course Notes CD-ROM. – 2002.
  14. Jensen, Henrik Wann: "Importance Driven Path Tracing using the Photon Map". In "Rendering Techniques '95". Eds. P.M. Hanrahan and W. Purgathofer, Springer-Verlag, pp. 326-335, 1995.
  15. Sobierajski, L. M. Kaufman, A. E. [1994]. Volumetric ray tracing, 1994 Symposium on Volume Visualization, Washington, D.C., pp. 11–18.
  16. Васильева Ю. О., Ляшенко Е. Н. Вычисление глобальной освещенности методом Монте-Карло //Міжнародний науково-технічний журнал "Світлотехніка та Електроенергетика". – 2010. – №. 3, 4. – С. 16-20.
  17. Егорова И.Н., Потемин М.А., «Технология синтеза фотореалистичных изображений» // Восточно-европейский журнал передовых технологий. - 2006. - №. 6/2, (24). - С. 66-69.
  18. Сереженко А.А., Мальчева Р.В. «Оптимизация метода трассировки лучей» 2009. 5я Международная научно-техническая конференция студентов, аспирантов и молодых учёных «Информатика и компьютерные технологии – 2010.»
  19. Purcell T. J. et al. Ray tracing on programmable graphics hardware //ACM Transactions on Graphics (TOG). – 2002. – Т. 21. – №. 3. – С. 703-712.
  20. Szirmay Kalos L. et al. Approximate Ray Tracing on the GPU with Distance Impostors //Computer Graphics Forum. – Blackwell Publishing, Inc, 2005. – Т. 24. – №. 3. – С. 695-704.
  21. Govindaraju V. et al. Toward a multicore architecture for real-time ray-tracing //Proceedings of the 41st annual IEEE/ACM International Symposium on Microarchitecture. – IEEE Computer Society, 2008. – С. 176-187.
  22. Боголепов Д.К., Турлапов В.Е. – Интерактивная трассировка лучей на графическом процессоре. Труды международной научной конференции по Компьютерной Графике и Зрению ГрафиКон 2009 - 2009. - С. 263–266.
  23. Britton A. D. Full CUDA Implementation Of GPGPU Recursive Ray-Tracing. – 2010.
  24. Фролов В., Игнатенко А. Интерактивная трассировка лучей на графическом процессоре с применением технологии CUDA // GraphiCon 2008. – 2008. – С. 311-312.
  25. Ульянов Д.Я. Об одной реализации метода фотонных карт для визуализации каустик // Труды международной научной конференции Графикон 2010. -2010. - С. 328-359.
  26. Parker S. G. et al. Optix: a general purpose ray tracing engine //ACM Transactions on Graphics (TOG). – 2010. – Т. 29. – №. 4. – С. 66.
  27. van Antwerpen D. Improving SIMD efficiency for parallel Monte Carlo light transport on the GPU //Proceedings of the ACM SIGGRAPH Symposium on High Performance Graphics. – ACM, 2011. – С. 41-50.