УДК 004.925
И.В. Данилин, асп., (4872) 31-54-40, danilin. [email protected] (Россия, Тула, ТулГУ)
ИНТЕРАКТИВНЫЙ РАСЧЕТ ГЛОБАЛЬНОГО ОСВЕЩЕНИЯ НА ОСНОВЕ МЕТОДА МГНОВЕННОЙ ИЗЛУЧАТЕЛЬНОСТИ
Предложен метод расчета непрямого освещения на базе метода мгновенной излучательности; в качестве генератора VPL используется трассировка лучей на графическом ускорителе с использованием nVidia Optix; для оптимизации сэмплирования пространства путей используется анализ сцены в пространстве изображения; рендеринг сцены осуществляется методом отложенного освещения.
Ключевые слова: глобальное освещение, мгновенная излучательность, трассировка лучей, GPU, nVidia Optix
Введение. Расчет глобальной освещенности является сложной задачей для интерактивных методов визуализации, так как свет, отраженный от любой поверхности, потенциально влияет на освещенность всех других поверхностей сцены (согласно уравнению рендеринга [1]).
В последнее время было предложено множество методов интерактивного расчета глобального освещения. Это как традиционные алгоритмы вроде трассировки лучей, так и новые, использующие различные аппроксимации для отдельных типов сцен и требуемых эффектов. Большое развитие получил описанный в [2] метод мгновенной излучательности (Instant radiosity), представляющий непрямое освещение сцены как сумарную освещенность от множества слабых виртуальных источников света (Virtual point light, VPL). В оригинальной статье положение и характеристики источников света определялись методом Монте-Карло трассировки фотонов от источника света до их соударения с поверхностью, а их вклады в общую освещенность сцены суммировались в буфере накопления. В последующих работах было предложено множество оптимизаций, стимулированных в первую очередь бурным развитием графических ускорителей и появлением програмируемой модели шейдеров.
Одной из основных проблем, с которыми приходится сталкиваться при трассировке путей - это оптимальный выбор путей из множества всех возможных. В общем случае процесс трассировки стохастический, и для сходимости в сложных сценах может потребоваться расчет такого количества путей, которое заведомо выводит алгоритм из разряда интерактивных. Таким образом, поиск оптимального несмещенного метода сэмплирования путей является одним из наиболее актуальных направлений исследований.
В данной работе предлагается метод расчета глобального освещения на основе метода мгновенной излучательности, в котором вместо классической трассировки лучей используется алгоритм
сэмплирования пространства путей для оптимального выбора VPL на основе анализа сцены в пространстве изображения. Идея метода основана на том наблюдении, что непрямое освещение по своей природе меняется плавно, поэтому нет необходимости рассчитывать его для каждого пиксела изображения. Высокочастотные детали могут появляться лишь в местах резкого изменения поля нормалей или координат. Именно такие места требуют особенного внимания и должны быть в первую очередь исследованы с помощью трассировки лучей. Данный метод позволяет при том же количестве лучей на кадр получить лучшие по сравнению с классической реализацией результаты.
Трассировка лучей осуществляется средствами графического ускорителя - на основе программно-аппаратной среды nVidia Optix, что позволяет достичь интерактивности для сцен средней сложности.
Статья организована следующим образом: в разделе 1 дается обзор существующих алгоритмов расчета глобального освещения; в разделе 2 приводится описание предлагаемых оптимизаций метода; раздел 3 посвящен особенностям GPU-реализаций трассировки лучей; в разделе 4 показаны результаты работы метода.
1. Существующие алгоритмы. Исследователи изучали алгоритмы глобальной освещенности десятилетими, разрабатывая такие методы, как трассировка путей и излучательность (Radiosity) для расчета освещения высоких порядков. С годами усовершенствования обоих подходов значительно улучшили качество и повысили скорость расчетов, однако остались существенные различия. Метод трассировки путей склонен вносить шум, особенно в разреженных сценах, которые характерны для современных интерактивных приложений. Решения на основе излучательности с трудом справляются с недиффузными поверхностями и зачастую требуют предварительного разбиения сцены.
Предвычисленное распространение излучательности. Данный интерактивный вариант метода заранее вычисляет пути распространения света и сжимает их с помощью алгоритма сферических гармоник [3] или вейвлет-преобразования [4]. Но хотя это делает возможным динамическое освещение, локальные источники света, движущаяся геометрия представляют трудности для алгоритма.
Кэширование освещенности. Другой подход делает грубые выборки освещенности, используя различные алгоритмы сэмплирования [5]. Вычисленные значения хранятся в ускоряющей структуре и повторно используются. Качество и скорость работы зависят от метода сэмплирования и используемой ускоряющей структуры. Модификации сцены могут проявляться постепенно, так как расчет данных осуществляется зачастую асинхронно с отображением.
Интерактивные методы, основанные на трассировке лучей. За последнее десятилетие появилось множество методов интерактивной трас-
сировки лучей, поддерживающих глобальную освещенность. Ранние методы требовали мощных суперкомпьютеров или компьютерных кластеров, более современные используют графические ускорители для интерактивной работы на обычных компьютерах [6],[7]. К сожалению, некогерентные обращения к памяти, обычные для трассировки путей, ограничивают возможности интерактивного применения с ростом размеров сцены и разрешения.
Приближенное непрямое освещение. Зачастую можно заменить точный расчет освещенности дешевыми приближениями, особенно там, где важнее скорость работы, нежели реализм. Фоновое отсечение (Ambient occlusion) заменяет расчет глобальной освещенности на простые эвристики, рассчитывающие видимости объектов. Данная аппроксимация может быть упрощена еще для применения в интерактивных приложениях [8], и даже грубые приближения отсечения в пространстве изображения дают приемлемый результат.
Методы мгновенной излучательности. Многие из современных методов основаны на методе мгновенной излучательности.
Методы, основанные на отражающих теневых картах [9] создают виртуальные источники света на этапе растеризации с позиции источника света и отрисовывают, используя алгоритм собирания или рассеивания. Однако данные методы игнорируют видимость при расчетах непрямого освещения и могут учитывать лишь освещение первого порядка.
Прогрессивные и инкрементные варианты [10] каждый кадр обновляют видимость небольшого количества VPL, что работает хорошо, если сцена изменяется не слишком быстро. Несовершенные теневые карты [11] одновременно могут вычислять видимость 1024 источников света. Хотя это и несовершенно аппроксимирует видимость, обычно этого достаточно для расчета непрямого освещения.
Однако методы мгновенной излучательности все еще обладают следующими недостатками:
1) учет лишь диффузных отражений;
2) временная некогерентность из-за изменения VPL;
3) для простых алгоритмов сэмплирования пространства путей может давать некорректные результаты при жестком ограничении на количество VPL;
4) грубые приближения освещенности размывают высокочастотные детали. Хотя непрямое освещение обычно изменяется с небольшой частотой, высокие частоты могут вноситься поверхностями с большой кривизной.
Данная работа предлагает решение данных проблем путем комбинации двух идей: к стандартной трассировке добавляется этап анализа сцены на основе данных растеризации, что позволяет значительно уменьшить число лучей, необходимых для корректного учета освещения сцены,
а также улучшить временную когерентность за счет предсказуемой кластеризации VPL.
2. Трассировка лучей на основе анализа сцены в пространстве изображения. В качестве основы предлагаемого метода выступает метод мгновенной излучательности, т.е. итоговая непрямая освещенность сцены будет аппроксимироваться с помощью набора VPL.
Алгоритм можно разделить на несколько стадий:
1) расчет прямого освещения с помощью растеризации;
2) расчет позиций и характеристик VPL с помощью трассировки
лучей;
3) финальное объединение прямой и непрямой освещенности.
Для растеризации сцены и последующего объединения освещенности наилучшим вариантом является использование метода отложенного освещения (deferred shading). Суть метода состоит в том, что вычисление прямой освещенности происходит не сразу при обработке графических примитивов, а сохраняется в так называемом графическом буфере (G-buffer); обычно в отдельные текстуры сохраняется информация о позициях геометрии, нормалях, цветовых составляющих, параметрах материалов и другие необходимые для последующего отложенного вычисления освещенности данные. Затем для каждого источника света, извлекая информацию из G-buffer^, можно вычислить освещенность каждого фрагмента. Метод особенно эффективно работает с большим количеством источников света (сотни и тысячи), что особенно актуально для большого количества VPL.
В классической реализации стадии алгоритма независимы: растеризация осуществляется с помощью графического ускорителя, трассировка лучей работает с отдельным трехмерным представлением сцены. Однако можно заметить, что на выходе первой стадии уже есть некоторая информация о сцене, которая может быть эффективно использована для ускорения трассировки лучей.
И, действительно, после построения G-buffer^ для проекции сцены с позиции наблюдателя уже есть информация о геометрии сцены, которая заведомо попадает в кадр. По сути, это и есть первый сегмент пути от наблюдателя до объектов сцены для трассировки лучей. Для достаточно простых сцен этой информации уже может быть достаточно, уже получены данные для непрямого освещения первого порядка; таким образом, шаг трассировки лучей можно опустить. Эта идея является центральной для метода отражающих теневых карт. Данный подход имеет свои недостатки. Одной из очевидных трудностей является количество полученных таким способом VPL: оно равно количеству пикселов, и требуется дополнительный анализ для выборки только тех, которые вносят существенный вклад в результирующую освещенность. Также метод неприменим для сложных сцен, где освещения первого порядка
недостаточно: например, если в сцене присутствуют сложные конфигурации геометрии, очень яркие источники непрямого освещения либо значительное количество отражающих и преломляющих объектов.
Решением является возврат к использованию трассировки лучей, но с использованием полученной на первом этапе растеризации дополнительной информации о сцене.
Отмечено, что непрямое освещение по своей природе меняется плавно, поэтому нет необходимости рассчитывать его для каждого пиксела изображения. Высокочастотные детали могут появляться лишь в местах резкого изменения поля нормалей или координат. Именно такие места требуют особенного внимания и должны быть в первую очередь исследованы с помощью трассировки лучей. Таким образом, проанализировав карту нормалей, позиций и материалов из G-bufferX можно предсказать, в каких направлениях необходимо строить пути при трассировке. Очевидно, здесь приходится столкнуться с той же проблемой, что и в методе отражающих теневых карт: если анализировать каждый пиксел изображения, существенного ускорения это не даст. Методы решения данной проблемы состоит в кластеризации изображения на отдельные участки с плавно меняющейся освещенностью. С помощью фильтра выделения границ производится сегментация полученных в результате растеризации изображений на участки без резких изменений координат и нормалей. Такими участками, например, являются открытые участки стен, пола, плоские поверхности; именно такие участки, хотя и составляют большую часть изображения, не требуют особенного исследования и вносимая ими вторичная освещенность может быть аппроксимирована всего несколькими VPL. На границах же объектов могут возникать резкие изменения непрямого освещения, поэтому целесообразно исследовать такие участки более тщательно.
В методе сплэттинга в нескольких разрешениях (Multiresolution splatting) [15] предложен еще более эффективный алгоритм: для анализа используется текстура в нескольких разрешениях (результат аппаратной пирамидальной фильтрации при растеризации), что позволяет сократить объем вычислений, сразу выделяя большие однородные участки еще на грубых уровнях текстуры.
Также источником дополнительной информации может служить построенный таким же образом графический буфер с позиции источника света, который может использоваться для построения теней в сцене методом теневых карт. Объединив информацию и сцене с позиции источника света и с позиции наблюдателя, можно использовать ее для реализации более эффективной двунаправленной трассировки лучей [14], что повысит устойчивость метода для разных типов сцен. Рассмотрение метода выходит за рамки данной статьи и будет являться предметом дальнейшего исследования.
3. Трассировка лучей на GPU. Метод трассировки лучей является очень ресурсоемким. Как правило, для получения качественного изображения требуется просчет многих миллионов лучей, что может занимать часы и даже дни в зависимости от сложности сцены. Этот недостаток может быть отчасти скомпенсирован другой важной особенностью алгоритма: высокой степенью параллелизма. Действительно, для каждой точки изображения луч может трассироваться независимо, что активно используется в различных реализациях алгоритма.
До недавнего времени применение трассировки лучей в реальном времени было невозможным: необходимая производительность могла быть достигнута только на кластерах из высокопроизводительных систем. Однако с развитием графических ускорителей, обладающих высокой степенью аппаратного параллелизма, стало возможным адаптировать алгоритмы трассировки лучей для интерактивных приложений.
Идея использовать возможности GPU для хорошо распараллеливаемых задач возникла сразу после появления программируемой модели шейдеров. С развитием архитектуры CUDA стали очевидны преимущества использования массового параллелизма GPU, уже активно используемого во многих прикладных задачах, и для целей трассировки лучей.
Одним из программных решений, использующих GPU-трассировку лучей, является движок NVIDIA Optix [12], который предлагает высокоуровневую абстракцию алгоритма трассировки лучей. Эта среда предлагает разумный баланс гибкости и производительности, и в данной работе для GPU-трассировки лучей используется именно она.
Архитектура nVidia Optix. Optix - это программная архитектура, основанная на технологии CUDA, абстрагирующая низкоуровневые детали реализации алгоритма трассировки лучей. Optix оперирует на уровне отдельных лучей и графических примитивов с ассоциированными с ними ускоряющими структурами. Работа с лучами выделена в несколько этапов, каждый из которых может быть реализован отдельно на C-подобном языке в виде подпрограммы:
1) генерация лучей (ray generation program);
2) обработка ошибочных ситуаций (exception program);
3) расчет ограничивающих примитивов (bounding box program);
4) расчет пересечений (intersection program);
5) затенение (closest hit, any hit, miss program).
Для более подробного описания архитектуры Optix можно обратиться к официальному руководству [13]
4. Результаты. Для тестирования производительности были использованы стандартные сцены, применяемые для оценки методов компьютерной графики:
1) Cornell box (40 тыс. треугольников - с учетом тесселяции);
2) Conference room (280 тыс. треугольников).
Сцены являются характерными для демонстрации различных эффектов, присущих глобальному освещению: плавные тени, перенос цвета на соседние поверхности.
Так как геометрия сцены везде одинаковая и состоит из треугольников, для них используется стандартная программа генерации ограничивающих примитивов и нахождения пересечений. С точки зрения архитектуры Optix отличными для всех данных методов будут только программы генерации лучей и затенения (closest hit и any hit).
Сравнения проводились в разрешении 800x800 на видеокарте nVidia GTX260. Результаты замеров производительности представлены в таблице.
Замеры производительности методов в кадрах/сек, GTX260, 800х800
Cornell box Conference room
Адаптивная трассировка, кадров/сек 18.9 12.3
Классическая трассировка, кадров/сек 10.2 5.3
VPL 4096 4096
Заключение. Описанный метод расчета глобальной освещенности является достаточно эффективным и позволяет достичь интерактивности при визуализации сцен средней сложности. В отличие от методов, работающих только лишь в пространстве изображения, он является более гибким и не ограничен лишь непрямым освещением первого порядка. В то же время использование дополнительной информации о сцене при трассировке путей позволяет эффективно сократить количество лучей на кадр и показывает большую эффективность, чем использование классической Монте-Карло трассировки лучей в качестве генератора VPL.
Метод будет эффективным для многих сцен, хотя для самых простых сцен будет уступать методу отражающих теневых карт; очень сложные конфигурации сцен могут вызывать определенные проблемы, однако в любом случае эффективность метода будет не хуже, чем у метода мгновенной излучательности с использованием классической трассировки.
Перенос трассировки лучей на GPU позволяет резко ускорить этап алгоритма, связанный с расчетом непрямого освещения. В данном случае использование Optix вдвойне оправдано, так как метод не налагает столь жестких ограничений на количество лучей в секунду - в нем для расчета прямого освещения и теней используется растеризация.
174
Дальнейшими направлениями исследований будет адаптация метода для двунаправленной трассировки лучей с использованием информации с проекций сцены с позиции источников света, что должно повысить эффективность и устойчивость метода.
Список литературы
1. Kajiya J.T. The rendering equation // Computer Graphics (SIG-GRAPH'86 Proceedings). 1986. C. 143-150
2. Keller A. Instant radiosity // Proceedings of SIGGRAPH'97. 1997. C.
49-54.
3. Sloan P.-P., Kautz J., Snyder J.: Precomputed radiance transfer for real-time rendering in dynamic, lowfrequency lighting environments // ACM Transactions on Graphics 21, 3. 2002. C. 527-536.
4. Wavelet radiance transport for interactive indirect lighting / J. Kont-kahen [et al.] // In Proceeding of the Eurographics Symposium on Rendering. 2006. С. 161-171
5. Radiance cache splatting: a GPU-friendly global illumination algorithm / P. Gautron [et al.] // Proceedings of the Eurographics Symposium on Rendering. 2005. С. 55-64
6. Real-time ray tracing with CUDA / M. Shih [et al.] // ICA3PP '09: Proceedings of the 9th International Conference on Algorithms and Architectures for Parallel Processing (Berlin, Heidelberg, 2009), Springer-Verlag. С. 327-337.
7. Фролов В., Игнатенко А. Интерактивная трассировка лучей и фотонные карты на GPU // Graphicon'09 proceedings. 2009. С. 255-263
8. Bunnel M.: Dynamic Ambient Occlusion and Indirect Lighting // GPU Gems 2. 2005. С. 223-233
9. Dachsbacher C., Stamminger M. Reflective shadow maps // In I3D '05: Proceedings of the 2005 symposium on Interactive 3D graphics and games. 2005. С. 203-231.
10. Incremental instant radiosity for real-time indirect illumination / S. Laine [et al.] // Proceedings of Eurographics Symposium on Rendering. 2007.
11. Imperfect shadow maps for efficient computation of indirect illumination / Ritschel T. [et al.] // ACM Transactions on Graphics 27, 5. 2008.
12. A General Purpose Ray Tracing Engine. / S. G. Parker [et al.]. NVIDIA, Williams College.
13. NVIDIA CORPORATION: OptiX Ray Tracing Engine Programming Guide version 1.0. 2009.
14. Bidirectional instant radiosity / B. Segovia // In Proceedings of the
175
17th Eurographics Workshop on Rendering. 2006.
15. Nichols G., Wyman C. Multiresolution splatting for indirect illumination // Proceedings for the ACM Symposium on Interactive 3D Graphics and Games. 2009. C. 83-90
I.V. Danilin
INTERACTIVE GLOBAL ILLUMINATION BASED ON INSTANT RADIOSITY
Author introduces the indirect illumination method based on instant radiosity approach; GPU-accelerated ray tracing (via NVidia Optix engine) is used to generate VPLs; image-space scene analysis is used to reduce number of rays needed for correct computations; overall rendering pipeline exploits deferred shading approach.
Key words: global illumination, instant radiosity, ray tracing, GPU, nVidia Optix.
Получено 18.04.12
УДК 621.54
А.А. Кондрашов, асп., +79156813324, [email protected] (Россия, Тула, ТулГУ)
ЛИНЕЙНАЯ МОДЕЛЬ МУСКУЛЬНОЙ ПАРЫ В ФАЗОВОМ ПРОСТРАНСТВЕ
Предложена линейная модель мускульной пары в фазовом пространстве, рассмотрены установившиеся параметры, а также управляемость и наблюдаемость данной системы.
Ключевые слова: линейная модель в фазовом пространстве, пневмомускульная пара, управляемость, наблюдаемость.
На рис.1 каждый пневмомускул управляется двумя 3/2-пневмораспределителями, при помощи которых реализуются состояния впуска, задержки и выпуска. Таким образом, укомплектованный сустав имеет 2 пары переключающих клапанов, которые работают в каждом случае исключительно противофазно. Если в мускул 1 газ нагнетается, то из мускула 2 он спускается и наоборот. Согласно данному положению работу 4 спаренных переключающих клапанов можно описать при помощи модели гидроусилителя (сервоклапан). В таком случае широта импульса uPw будет пропорциональна степени открытия гидроусилителя.