Реферат по теме выпускной работы
Содержание
Рост компьютерных технологий происходит интенсивными темпами. Расширяются сферы их применения. Повышается потребность их улучшения и развития. Одной из таких областей является компьютерная графика. Компьютерная графика начала свое развитие с 50-х годов. С каждым годом она принимала все большую значимость. Появлялись новые технологии и алгоритмы. На сегодняшний день существует множество способов визуализации для достижения различных эффектов в зависимости от поставленных задач.
1. Аппаратно-программная поддержка трассировки лучей
При помощи метода трассировки лучей достигается получение изображений с высокой реалистичностью. С его помощью легко реализуются такие эффекты, как отражение, прозрачность, затемнение и множество других. И при этом метод позволяет отслеживать лучи, что расширяет его применение не только для простого построения изображений, но и для моделирования разнообразных процессов.
Целью работы является уменьшение аппаратурных затрат на формирование лучей и поиск их пересечений с объектами сцены при реализации алгоритма обратной трассировки лучей. Для достижения цели в работе решаются следующие задачи:
Предмет исследования – синтез изображений на основе метода трассировки лучей.
Объект исследования – аппаратурные решения при реализации трассировщика лучей.
Научное значение работы состоит в дальнейшем развития теории и практики проектирования графических систем синтеза изображений и их использования для совершенствования алгоритмических и архитектурных решений, ориентированных на функционирование в реальном масштабе времени.
2. Особенности трассировки лучей
Итак, что же такое трассировка лучей? Трассировки лучей – это процесс прослеживания путей от заданной точки в сцене и оценки влияния на эту точку материала других точек из трехмерного окружения. Результатом является измененный цвет анализируемой точки. Таким образом можно просчитывать тени, отражения, преломления и прямую освещенность объекта [1].
При прямой трассировке лучей (излучательности) из источника света (1) выходит пучок лучей. Их траектория отслеживается и при попадании на объект (2). Далее отслеживается траектория из этой точки к зрителю (4), при этом получаем значения пикселя на сцене (3) (рисунок 1).
Рисунок 1 – Пример получения значения пикселя методов излучательности
Метод излучательности основывается на предположении диффузного отражения света, что позволяет предварительно, на этапе препроцессирования, рассчитать энергетические параметры поверхностей отображаемых объектов и тем самым исключить этап расчета параметров освещенности с рабочей стадии и объединить этапы геометрических преобразований, расслоения/растрирования и удаления невидимых элементов. В результате решения системы формируются значения плотности потока энергии, для каждого участка перечисляются в интенсивности участков, значение которых не зависят от положения наблюдателя. Для построения изображения значения интенсивностей пересчитываются в узлы аппроксимации граней участками, а на этапе отрисовки выполняется линейная или билинейна интерполяция интенсивностей ближайших к точке пересечения луча визирования с гранью узлов. Метод излучательности состоит из четырех вычислительных шагов:
При этом первые три шага могут быть выполнены на стадии препроцесирования и только последний – на рабочей стадии.
Данный метод имеет серьезный недостаток: множество лишних расчетов. Из источника света до объектов доходит лишь часть лучей. При этом затрачивается время на расчет лучей, которые в итоге не достигнут объектов и не будут играть роли для визуализации определенной сцены. Поэтому существует метод обратной трассировки лучей.
2.2 Обратная трассировка лучей
При обратной трассировке отслеживаются лучи, которые попадают в глаз наблюдателя. От глаза испускаются лучи. При пересечении таким лучом объекта сцены отслеживается: видна ли эта точка одному из источников света (если их несколько). Для этого из этой точки испускаются лучи к каждому источнику света. Если луч находит пересечение с другим объектом прежде, чем достигнет источника, то такая точка находится в тени и освещать ее не нужно. Если же луч достиг источников, то освещенность данной точки буде равна сумме освещенностей от каждого такого источника. Если же объект имеет еще и отражающие свойства, то для отраженного луча повторяется аналогичная трассировка. Такой метод автоматически сокращает вычислительную нагрузку.
3. Значение аппаратурной поддержки
Для реализации алгоритма трассировки лучей в реальном времени необходима его аппаратурная поддержка. При визуализации изображения приходится выполнять большое число расчетов. При этом их число можно сократить, если принимать смежные пиксели равными. Для этого используют метод интерполяции. Например, если для изображения 1024×1024 провести интерполяцию по блокам 4×4, то число процессов уменьшится в 7 раз [2].
Не смотря на всевозможные модификации данного алгоритма количество расчетов для высококачественной визуализации оставляет желать лучшего. Но при этом данный алгоритм имеет высокую способность к распараллеливанию. Эта способность ограничена лишь техническими возможностями современных графических карт и систем. Поэтому для обычных пользователей трассировка лучей доступна только частично. Графические системы с использованием данного метода являются дорогостоящими. Поэтому их могут позволить себе использовать лишь крупные компании, которые профессионально занимаются компьютерной графикой или исследованиями с использованием моделирования.
Рассмотрим пример распараллеливания алгоритма на примере математического выражения для поиска пересечения луча с полигональным объектом. Луч задан параметрическим уравнением (1). Каждая грань объекта – массивами координат вершин {x[n], y[n], z[n]} и нормальным вектором N={nx , ny, nz }, заданными в системе координат объекта (СКО).
где – координата начала луча в СКО;
– параметры луча (вектора) в СКО.
Параметр t определяет пересечение луча с многогранником и определяется отношением (2) числителя (dev) к знаменателю (div), взятому с обратным знаком.
Знаменатель представляет собой скалярное произведение вектора луча на нормальный вектор грани (выражение 3).
Числитель есть подстановка точки начала луча в уравнение плоскости грани (5). При этом свободный член уравнения плоскости, d, определяется из выражения (4) подстановкой координат любой вершины грани в уравнение.
UML позволяет создать платформу для независимого описания, которое затем может быть использовано для принятия решений о программной (микропрограммной) или аппаратной реализации той или иной части системы. UML поддерживается значительной частью инструментальных средств [3]. Для построения UML-диаграмм выделим блоки элементарных вычислений (рисунок 2).
Рисунок 2 – UML представление блоков элементарных вычислений EBL: а) Sub-machine M1, b) Sub-machine A1, c) Sub-machine В1
Реализация выражения (3) требует 3-х умножений и 2-х сложений (рисунок 3), такой блок назовем P0BL. Используя введенные выше блоки элементарных вычислений получаем UML-диаграмма блока вычисления скалярного произведения.
Рисунок 3 – UML-диаграмма блока вычисления скалярного произведения (P0BL)
Блок вычисления числителя имеет ту же организацию, но в Sub-machine A1 вместе с Res2 нужно подать значение d. Обозначим такой блок P1BL. Делимое и делитель независимы и, следовательно, могут вычисляться параллельно. При этом для числителя необходимо предварительно вычислить параметр d. Рисунок 4 показывает такой порядок вычислений.
Рисунок 4 – UML-диаграмма последовательно–параллельной реализации выражений (3)–(5)
Если для вычисления dev вместо блока с P1BL структурой применить блок с P0BL структурой, а затем к результату (dev0) прибавить параметр d (выражения 6), то выражения (3), (4) и первая часть из (6) могут быть рассчитаны параллельно (рисунок 5).
Рисунок 5 – UML-диаграмма параллельной реализации выражений (3)–(5)
Таким образом можно наглядно оценить реализацию различными способами и выбрать оптимальное решение поставленной задачи.
4. Анализ современного состояния использования метода
Из-за того, что с помощью метода трассировки лучей достигаются очень реалистичные изображения, то заинтересованность в этом методе довольно высока. Его используют для компьютерной графики в мультфильмах и кино. Такая компания, как PIXAR (рисунок 6) давно сотрудничает с NVIDIA и создает новые мультипликации с меньшими затратами времени и с качественной графикой.
Рисунок 6 – Использование NVIDIA OptiX и Katana в реальном времени (PIXAR) (анимация: 306×146px, 5 кадров, 10 циклов, 146kb)
NVIDIA активно разрабатывает разнообразные технологии (CUDA, Iray) и графические процессоры (GeForce, Quadro и Tesla) для ускорения вычислений методом трассировки лучей.
Imagination Technologies продемонстрировала работу своих аппаратных ускорителей трассировки лучей. Специализированные ускорители Caustic 2500 (с двумя чипами RT2 и 16 Гбайт памяти DDR2) и Caustic 2100 (один чип RT2 и 8 Гбайт памяти DDR2) (рисунок 7) были представлены в январе 2013 года [4].
Рисунок 7 – Плата с ускорителем трассировки лучей Caustic 2500, размещённом под видеокартой
Ещё в 2014 году Imagination Technologies представили PowerVR GR6500, который стал первым мобильным GPU, содержащим выделенный блок Ray Tracing Unit (RTU), который отвечает именно за формирование изображения методом трассировки лучей. Правда, до потребительского сегмента эта технология всё ещё не добралась, хотя профессиональные настольные ускорители продаются уже достаточно давно[5]. На Mobile World Congress2016 компания представила серию графических процессоров для бюджетного сегмента с новой GPU-архитектурой – Series8XE (рисунок 8). Она будет использоваться в смартфонах, планшетах, телевизорах, оборудовании для потокового вещания и автомобилях [6].
Рисунок 8 – Imagination Technologies Series8XE
Не отстает от них и AMD. В 2016 году компания открыла исходные тексты библиотеки построения трёхмерных изображений методом трассировки лучей FireRays 2.0 и публикации её исходных текстов. Библиотека может использовать различные бэкенды (OpenCL GPU, OpenCL CPU, Embree и скоро Vulkan) для ускорения расчёта взаимодействия лучей с поверхностями и поддерживает работу в Linux, OS X и Windows. Кроме видеокарт AMD FirePro (видеокарты для рабочих станций) и Radeon (видеокарты для настольных ПК и ноутбуков), аппаратное ускорение также обеспечивается для GPU Intel (HD 4300, HD 5300) и NVIDIA (GeForce GTX970 и Titan X). Код открыт под лицензией MIT и передан под покровительство проекта GPUOpen [7].
В свою очередь в INTEL существуют разработки без использования GPU. OSPRay (open source, scalable, and portable ray tracing) – движок для высокой производительности визуализации высокой точности на базе архитектуры INTEL CPU. OSPRay полностью основан на CPU, и работает на любом ноутбуке, рабочей станции или вычислительном узле в системах для высокопроизводительных вычислений. OSPRay построен в первую очередь на Embree и ISPC (INTEL SPMD Program Compiler) , и полностью использует современные наборы инструкций, таких как INTEL SSE, AVX, AVX2 и AVX-512 для достижения высокой производительности рендеринга [8]. Embree представляет собой набор воспроизводительных ядер трассировки лучей, разработанных в INTEL [9].
Примером нетрадиционного использования технологий NVIDIA является решение проблемы, возникшей с возведенной в Лондоне башней. Оказалось, что изогнутое стекло, за которое 37-этажный небоскреб прозвали Walkie-Talkie (т.е. рацией), способно создавать опасные концентрации солнечных лучей. Это здание уже расплавило припаркованный рядом Jaguar XJ и буквально сварило шампунь в магазинчике неподалеку. На ежегодной конференции NVIDIA по GPU-технологиям GTC 2015 с помощью графических процессоров NVIDIA было показано, каким образом пятое по высоте здание в мире превратилось в опасного поджигателя. Смоделировав ситуацию с лондонским небоскребом, исследователи обнаружили, что отраженные от Walkie-Talkie солнечные лучи могли причинить еще больший вред. Стеклянные изгибы создают на поверхности точки, в которых температура может подниматься до 93 градусов Цельсия. Если еще чуть изменить изгиб поверхности, это здание могло бы растопить и свинец.
Вместе с компанией Honda NVIDIA продемонстрировали первую интерактивную визуализацию целого автомобиля. В процессе демонстрации не просто крутили цифровой прототип автомобиля. Показали, как снимать слои, чтобы добраться до внутренностей машины, включая провода и пружины сидений. Представленная технология обещает решить многие известные проблемы. И некоторые малоизвестные.
До последнего времени моделирование отраженного света занимало крайне много времени. Поэтому обычно им занимались на этапе презентации заказчику практически законченных проектов, используя специфические условия освещения. Чаще всего презентовались избранные ракурсы модели, а не интерактивное моделирование взаимодействия объекта с изменяющейся окружающейся средой (рисунок 9). Новая технология рендеринга Iray 2015 изменяет процесс. В паре с видеокартой Quadro M6000, новым флагманом линейки профессиональных решений NVIDIA, Iray 2015 моделирует взаимодействие света с объектами в сцене по мере изменения макета дизайнерам [10]. Такой подход позволит моделировать отражение лучей не только для построения изображений, но и для изучения их влияния.
Рисунок 9 – Моделирование в реальном времени при помощи технологии NVIDIA Iray
Реализация метода трассировки лучей продолжает свое активное развитие. В современных видеокартах для пользователей может осуществляться частичная трассировка изображений, но при этом увеличиваются затраты времени. Главной проблемой на сегодняшний день является то, что графические системы с реализацией данного метода остаются дорогостоящими, и трассировка в реальном времени не доступна большинству пользователей. Но процесс визуализации можно ускорить за счет интерполяции и распараллеливания вычислений, что значительно ускорит затраты времени. Уменьшить стоимость подобных систем можно уменьшением аппаратурных затрат, что и предстоит исследовать в данной работе.
При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: июль 2017 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.