научная статья по теме ПРИМЕНЕНИЕ КОГЕРЕНТНОЙ ТРАССИРОВКИ ЛУЧЕЙ В ЗАДАЧАХ ФИЗИЧЕСКИ АККУРАТНОЙ ВИЗУАЛИЗАЦИИ Математика

Текст научной статьи на тему «ПРИМЕНЕНИЕ КОГЕРЕНТНОЙ ТРАССИРОВКИ ЛУЧЕЙ В ЗАДАЧАХ ФИЗИЧЕСКИ АККУРАТНОЙ ВИЗУАЛИЗАЦИИ»

КОМПЬЮТЕРНАЯ ГРАФИКА

УДК 6S1.3.G6

ПРИМЕНЕНИЕ КОГЕРЕНТНОЙ ТРАССИРОВКИ ЛУЧЕЙ В ЗАДАЧАХ ФИЗИЧЕСКИ АККУРАТНОЙ ВИЗУАЛИЗАЦИИ"

© 2008 г. Б. Х. Барладян, А. Г. Волобой, К. А. Востряков, В. А. Галактионов, Л. З. Шапиро

Институт прикладной математики им. М.В. Келдыша РАН 125047 Москва, Миусская пл., 4 E-mail: voloboy@gin.keldysh.ru Поступила в редакцию 30.11.2007 г.

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

1. ВВЕДЕНИЕ

Когерентная трассировка лучей (то есть трассировка нескольких когерентных лучей, выполняемая одновременно одним процессором) стала предметом научных исследований в последние годы. Современные микропроцессоры стали поддерживать ОКМД- (одна команда - много данных), или SIMD- (Single Instruction Multiple Data) расширения, которые позволяют выполнять арифметические и логические действия над несколькими числами с плавающей запятой одновременно. Различные процессоры имеют разные SIMD-расширения: Intel SSE (Streaming SIMD Extension) [1], AMD 3DNow! [2] и Motorola AltiVec [3]. Из всех этих расширений именно Intel SSE стало широко применяться для реализа-

* Работа была поддержана грантом Российского фонда фундаментальных исследований 05-01-00345 и компанией Integra Inc. (Токио, Япония).

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

Сегодня существует несколько проектов, использующих SSE-трассировку лучей. Наиболее известными являются проект института Макса Планка [4], который использует SSE для интерактивной трассировки лучей. Среди других проектов можно назвать проект Manta - интерактивный трассировщик лучей с открытым исходным кодом, созданный для визуализации огромных моделей на суперкомпьютерах с разделяемой памятью или многоядерных рабочих станциях [5].

Коллектив отдела компьютерной графики ИПМ им. М.В. Келдыша РАН имеет большой

67

5*

Рис. 1. Пример изображения, полученного в Inspirer2 с HDR панорамой.

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

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

Статья построена в следующем порядке. Раздел 2 кратко описывает архитектуру и дизайн

системы визуализации Inspirer2, на базе которой была построена когерентная визуализация, и обрисовывает главные контуры системы когерентной трассировки лучей. Раздел 3 посвящен собственно когерентной трассировке лучей. В разделах 4 и 5 рассказывается о когерентной обработке сложных материалов поверхностей, заданных двунаправленной функцией отражения (ДФО) в общем виде, а также описывается множество типов источников света для когерентной обработки. Раздел 6 посвящен оператору сжатия динамического диапазона. В разделе 7 описан адаптивный алгоритм устранения лестничного эффекта для четырехлучевой SSE-трасси-ровки. В разделах 8 и 9 приведены оценки производительности работы системы на некоторых конкретных сценах, даны выводы и указаны направления будущих разработок.

2. АРХИТЕКТУРА БАЗОВОЙ СИСТЕМЫ ВИЗУАЛИЗАЦИИ

Физически аккуратная визуализация с помощью когерентной трассировки лучей была реализована на основе системы визуализации Inspirer2 (ранее Fly) [10].

Эта система поддерживает как интерактивную визуализацию, так и построение высококачественных изображений в фоновом режиме. Интерактивный режим был реализован на основе OpenGL. В этом режиме система обеспечивает визуализацию сцен со скоростью, близкой

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

В режиме построения высококачественного изображения система обеспечивает моделирование освещенности и физически аккуратную визуализацию, используя двунаправленную трассировку лучей. В этом режиме корректно моделируются точечные, линейные и поверхностные источники света с гониодиаграммами, позволяющие задать практически любое реалистичное освещение. Была разработана возможность задания естественного освещения как непосредственно через географические параметры места и времени, так и через вычисление освещения, задаваемого изображениями с большим динамическим диапазоном - HDR- (High Dynamic Range) панорамой [11]. Пример изображения сцены, освещенной HDR-панорамой, показан на рис. 1. Также возможна спецификация материалов со сложными свойствами, заданными ДФО в наиболее общей, табличной форме. Табличное задание ДФО позволяет использовать данные, непосредственно измеренные на спектрофотометре [12]. Для учета зеркальных отражений и преломлений используется обратная трассировка лучей. Для расчета глобального освещения используется алгоритм прямой трассировки лучей методом Монте-Карло. Результаты расчета глобального освещения сохраняются в картах освещенности [13] и используются в обоих режимах визуализации.

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

Интерактивная визуализация

Изображение

Рис. 2. Архитектура системы Inspirer2. Иерархическое описание физических атрибутов сцены преобразуется в два пре-процессированных описания сцены: одно для OpenGL-визуализации, а другое для трассировки лучей (включая трассировку методом Монте-Карло).

ходе, обеспечивая физически аккуратные отражения и преломления поверх OpenGL-изображе-ния.

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

Когерентная трассировка лучей, как и другие компоненты системы, была реализована на языке C++. Ассемблер не использовался. Для того, чтобы использовать SSE-функциональность, были разработаны классы, которые представляют высокоуровневую оболочку над SSE-инт-ринсиками (специальными функциями, которые транслируются компилятором в SSE-код), поддерживаемыми Microsoft/Intel С++-компилято-

Моделирование освещения

Изображение

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

3. КОГЕРЕНТНАЯ ТРАССИРОВКА ЛУЧЕЙ

Трассировка лучей обычно рассматривается как наиболее затратная по времени часть любого физически аккуратного алгоритма визуализации. По оценке Уиттеда, время, затрачиваемое на трассировку лучей, составляет 95% общего времени визуализации [14]. Для физически аккуратного моделирования относительное время трассировки, однако, меньше, и составляет около 65-75%, согласно нашим оценкам [15]. Это ставит SSE-оптимизацию трассировки лучей по важности на первое место.

SSE-операции выполняются над четырьмя 32-битными числами с плавающей запятой одновременно. Таким образом, SSE-трассировка лучей позволяет трассировать четыре луча параллельно. Относительно однолу

Для дальнейшего прочтения статьи необходимо приобрести полный текст. Статьи высылаются в формате PDF на указанную при оплате почту. Время доставки составляет менее 10 минут. Стоимость одной статьи — 150 рублей.

Показать целиком