8-я Международная Конференция по Компьютерной Графике и Визуализации ГрафиКон’98 Москва, 7-11 сентября 1998 г. Учебный курс Вейвлет-анализ и его приложения Авторы: Леонид Левкович-Маслюк, ИПМ РАН, Москва, [email protected] Антон Переберин, ИПМ РАН, Москва, [email protected] Л. Левкович-Маслюк, А.Переберин. «Вейвлет-анализ и его приложения» Лекция 1 Вейвлет-анализ в компьютерной графике Многомасштабное представление кривых... ... и поверхностей Вейвлеты в задачах глобальной освещенности. ГрафиКон’98. 2 Москва, 7-11 сентября 1998 г. Л. Левкович-Маслюк, А.Переберин. «Вейвлет-анализ и его приложения» Введение Мы расскажем о некоторых приложениях вейвлет-анализа в компьютерной графике. В наши цели не входило подробное рассмотрение технологий и алгоритмов — мы стремились лишь познакомить слушателей (читателей) с возможно более широким спектром приложений и привести ссылки на работы, в которых рассматриваемые вопросы обсуждаются подробно. (Списки соответствующей литературы приводятся в конце каждого раздела, нумерация ссылок в каждом разделе своя). Рассматривается применение вейвлетов для решения трех видов задач: работа с кривыми, работа с поверхностями, решение задачи глобальной освещенности методом излучательности. Обработка растровых изображений обсуждается отдельно и в данный документ не включена. Используемые обозначения Договоримся об обозначениях, которые будут использоваться ниже. I — единичная матрица. — нулевая матрица. j ( x ) или j — вектор базисных функций ij ( x ) (скейлинг-функций) пространства V j . j ( x ) или j — вектор базисных функций ij ( x) (вейвлетов) пространства W j . A j , B j — операторы декомпозиции. A j :V j V j 1 , B j :V j W j 1 . P j , Q j — операторы синтеза. P j :V j 1 V j , Q j :W j 1 V j . A j , B j , P j , Q j — матрицы операторов ( A j , B j , P j , Q j соответственно) в некоторых базисах. x(t ) y(t ) — матрица скалярных произведений двух систем функций. Если x(t ) x1 (t ), , x N (t ) и y(t ) y1 (t ), , y N (t ) , то матрица имеет размер N N и элемент с номером (i , j ) содержит значение xi ( t ) y j ( t ) . В данных обозначениях, например, условие ортогональности вейвлетов записывается так: j j j j j j I I Многомасштабное представление кривых Полуортогональные вейвлеты (Semiorthoigonal Wavelets) Вейвлет-базис называется полуортогональным [[1]], если для любого уровня разрешения j 0 пространство вейвлетов W j ортогонально ГрафиКон’98. 3 Москва, 7-11 сентября 1998 г. Л. Левкович-Маслюк, А.Переберин. «Вейвлет-анализ и его приложения» пространству V j (и, следовательно, всем пространствам V j 1 , V j2 , ... V 0 ). Очевидно, что подклассом полуортогональных вейвлетов является класс ортогональных вейвлетов, для которого дополнительно требуется ортогональность базисных функций W j . Отсутствие такого ограничение позволяет строить, например, гладкие симметричные вейвлеты с компактным носителем (заметим, что единственными ортогональными симметричными вейвлетами с компактным носителем являются вейвлеты Хаара, которые не обладают даже непрерывностью). В матричной форме условие полуортогональности можно записать следующим образом: j j индекса j записать j 1 , то, имея ввиду, что j 1 j j ( x) ( x) P и ( x) ( x) Q , условие полуортогональности будет выглядеть так: Если j 1 вместо j j P j T j j Q j . Если j (t ) и P j заданы, то Q j является решением однородной системы уравнений M j Q j , где M j P j T j j — известная матрица. Если однородная система имеет нетривиальные решения, то их бесконечно много, т.е. Q j определяется неоднозначно. Поэтому для определенности на Q j накладывается ряд дополнительных условий. Например, мы хотим, чтобы построенные нами вейвлеты имели компактный носитель и были симметричны. Это значит, что столбцы матрицы Q j должны иметь наименьшее возможное число подряд идущих ненулевых элементов, причем сами цепочки ненулевых элементов должны быть симметричными. Сплайновые вейвлеты Примером полуортогональных вейвлетов являются сплайновые вейвлеты (spline wavelets), разработанные Chui и др. [[3], [4]]. Сплайновые вейвлеты строятся на основе B-сплайнов [[2]]. Существуют различные виды сплайновых вейвлетов. Мы рассмотрим вейвлеты, построенные на основе неравномерных Bсплайнов, интерполирующих концевые точки (nonuniform endpoint-interpolating B-splines). Далее для краткости такие сплайны условимся называть просто Bсплайнами, а соответствующие вейвлеты — B-сплайновыми вейвлетами. Будем строить B-сплайновые вейвлеты на единичном отрезке. Пусть m — степень сплайна, j — уровень разрешения. Пространство V j (m) порождается 2 j m B-сплайнами, построенными на последовательности узлов ( x0 , , x2 j 2m ) 1 (0, , 0, 1, 2, , 2 j 2, 2 j 1, 2 j , , 2 j ) . j 2 m 1 m 1 Нетрудно показать, что построенные таким образом пространства V 0 (m) , V 1 (m) , ... вложены друг в друга и удовлетворяют всем требованиям многомасштабного анализа. На Рис. 1 показаны наборы кубических ( m 3 ) BГрафиКон’98. 4 Москва, 7-11 сентября 1998 г. Л. Левкович-Маслюк, А.Переберин. «Вейвлет-анализ и его приложения» сплайновых скейлинг-функций пространств V 1 (3) и V 2 (3) . Матрица P j (подробности получения этой матрицы см. в [[4]]) является разреженной, имеет 2 j 1 m столбцов и 2 j m строк, все столбцы, за исключением m первых и m последних являются сдвинутыми копиями столбца m 1 , причем ненулевые элементы этих столбцов являются биномиальными коэффициентами, умноженными на 2 m . Ниже приводятся матрицы P 1 , P 2 , и P 3 для кубического случая. 16 8 8 16 12 4 8 8 2 1 1 3 11 2 . 12 4 1 1 8 8 P1 1 1 2 3 10 3 2 3 1 P 16 P 2 12 2 1 1 4 12 16 8 8 2 8 8 2 11 3 16 4 12 8 8 16 Рис. 1. B-сплайновые скейлинг-функции пространств V 1 (3) и V 2 (3) . ГрафиКон’98. 5 Москва, 7-11 сентября 1998 г. Л. Левкович-Маслюк, А.Переберин. «Вейвлет-анализ и его приложения» Рис. 2. B-сплайновые вейвлеты пространств W 2 (3) и W 3 (3) . Скейлинг-функции j (t ) и матрицы P j заданы. Взято стандартное скалярное произведение в L2 . Теперь можно искать матрицу Q j . Заметим, что эта матрица должна иметь 2 j1 столбцов (размерность пространства W j (m) ) и 2 j m строк. Как было отмечено выше, матрица Q j (и, следовательно, вейвлет-базис) определяется неоднозначно. Finkelstein и Salesin [[5]] построили матрицу Q j таким образом, чтобы она была разреженной и содержала минимальное число подряд идущих ненулевых элементов в столбцах. Структура такой матрицы похожа на структуру матрицы P j : она разреженная и ее столбцы кроме m первых и m последних являются сдвинутыми копиями друг друга. Ниже приводятся матрицы Q 1 , Q 2 и Q 3 для кубического случая, на Рис. 2 показаны вейвлеты пространств W 2 (3) и W 3 (3) . 1 2 Q1 7 3 Q 2 2 1 6.311454 9.189342 1543996 . 1368 7.334627 4.226722 0.087556 2064 240 3514553 . 5585477 . 0 . 473604 0 . 000155 1793 691 1271268 315 . 6.059557 1903267 . 0.01919 1053 1053 31196288 Q 3 0.259914 4.367454 4.367454 0.259914 691 1793 0.01919 1903267 . 6.059557 1271268 . 240 2064 . 3514553 . 0.000155 0.473604 5585477 1368 4.226722 7.334627 1543996 . 9.189342 6.311454 Замечание. Все примеры, приводимые выше и приводимые далее относятся к случаю кубических B-сплайновых вейвлетов, как наиболее часто применяющихся для обработки гладких кривых. При m 2 мы получим квадратичные B-сплайновые вейвлеты, при m 1 — линейные, а при m 0 — уже хорошо известные ортогональные вейвлеты Хаара. Мы получили синтезирующие матрицы P j и Q j . Зная их, матрицы для анализа определяются единственным образом: ГрафиКон’98. 6 Москва, 7-11 сентября 1998 г. Л. Левкович-Маслюк, А.Переберин. «Вейвлет-анализ и его приложения» A j j j j P |Q B 1 . Хотя матрицы P j и Q j разреженные, матрицы A j и B j таковыми, вообще говоря, не являются, поэтому их явное вычисление может потребовать квадратичного (а не линейного) времени. Вместо этого анализ можно осуществить, решая разреженную систему Квадратную c j 1 P j | Q j j 1 c j . d P матрицу j |Q j перестановкой столбцов можно преобразовать к ленточному (n-диагональному) виду, тогда полученная система будет решаться за линейное время. Нужно только не забыть произвести обратную перестановку элементов решения. Вейвлет-анализ кривых Покажем, как рассмотренные нами B-сплайновые вейвлеты могут быть применены для работы с кривыми. Будем рассматривать кубические Bсплайновые кривые, интерполирующие концевые точки. Пусть кривая ( t ) задана набором 2J 3 опорных точек c J c0J , c1J , , c2Jj 2 . Процесс декомпозиции этой кривой с помощью B-сплайновых вейвлетов на низкочастотную и детализирующую составляющие осуществляется подобно всякому другому прямому вейвлет-преобразованию: c j 1 A j j j 1 j c , j J , 1 . d B Выше уже говорилось о том, что этот процесс можно осуществить за линейное время без явного вычисления матриц A j и B j . Восстановление исходной кривой (обратное преобразование) выполняется так: c j 1 c j P j Q j j 1 , j 1, J . d Перечислим некоторые задачи, которые удается решать с помощью этих преобразований [[1]]. Сглаживание кривой. Некоторую кривую ( t ) требуется приблизить (в смысле наименьших квадратов) кривой (t ) , заданной меньшим числом опорных точек. Пусть кривую ( t ) задает набор 2 j 3, j 0 управляющих точек c j . Тогда для любого j : 0 j j можно построить сглаживающую (t ) , кривую заданную набором управляющих точек 2 j 3 j j 1 j 2 j j c A A A c (см. пример на Рис. 3). (Очевидно, что для задачи сглаживания вычислять вейвлет-коэффициенты d не нужно). Наложение условий на число управляющих точек является определенным ограничением. Переход от уровня j 1 к уровню j осуществляется ГрафиКон’98. 7 Москва, 7-11 сентября 1998 г. Л. Левкович-Маслюк, А.Переберин. «Вейвлет-анализ и его приложения» «скачкообразно». С помощью линейной интерполяции между двумя кривыми соседних уровней можно получить любую кривую «дробного» уровня j , [0, 1] : j (t ) (1 ) j (t ) j 1 (t ) (1 ) j (t ) c j j 1 (t ) c j 1 Редактирование кривой. Редактирование осуществляется следующим образом: выполняется декомпозиция исходной кривой, полученные в результате этого коэффициенты некоторым образом изменяются, после чего производится восстановление, но уже по модифицированному набору коэффициентов. Возможны два принципиально различных подхода: изменять низкочастотную часть преобразования или изменять высокочастотную часть. В первом случае можно менять форму кривой «в целом», сохраняя ее мелкие особенности (Рис. 4), во втором — наоборот — сохраняя форму, менять детали (Рис. 5). Очевидно, что при редактировании кривых активно используется свойство локализации вейвлетов в пространстве, что дает возможность производить манипуляции с отдельными частями кривой. Рис. 3. Сглаживание кривой: 11, 7 и 5 опорных точек. ГрафиКон’98. 8 Москва, 7-11 сентября 1998 г. Л. Левкович-Маслюк, А.Переберин. «Вейвлет-анализ и его приложения» Рис. 4. Редактирование кривой: изменение одной опорной точки в низкочастотной части (5 точек) и последующее восстановление (11 точек). Рис. 5. Редактирование кривой: добавление к исходной кривой (11 точек) дополнительных вейвлет-коэффициентов (35 точек). Литература [1] Eric J. Stollnitz, Tony DeRose, David H. Salesin. Wavelets for Computer Graphics. Theory and Applications. Morgan Kaufmann Publishers, Inc., San Francisco, California, 1996, pp. 89-97, 109-123. [2] Е. В. Шикин, А.В. Боресков. Компьютерная графика. Динамика, реалистические изображения. ДИАЛОГ-МИФИ, Москва, 1996, с. 161-189. [3] Charles K. Chui. An Introduction to Wavelets. Academic Press, Boston, 1992. [4] Charles K. Chui, Ewald Quak. Wavelets on Bounded Interval. In D. Braess and L.L. Shumaker, editors, Numerical Methods in Approximation Theory, vol. 9, pp. 53-75, Birkhauser Verlag, Basel, 1992. [5] Adam Finkelstein, David H. Salesin. Multiresolution Curves. In Proceedings of SIGGRAPH’94, pp. 261-268. ACM, New York, 1994. ГрафиКон’98. 9 Москва, 7-11 сентября 1998 г. Л. Левкович-Маслюк, А.Переберин. «Вейвлет-анализ и его приложения» Многомасштабное представление поверхностей Различные типы поверхностей Перед тем, как приступить к обсуждению многомасштабного представления трехмерных поверхностей, следует обратить внимание на то, что задача может решаться по-разному, в зависимости от типа поверхности. Достаточно широким классом являются поверхности, параметризуемые в R 2 . Для таких поверхностей применимы двумерные вейвлет-преобразования, обработка таких поверхностей похожа на обработку изображений. Характерным примером такой поверхности является модель участка земного ландшафта (тем более, что такая поверхность очень «популярна» среди разработчиков игр и тренажеров). Задается такая поверхность функцией на участке плоскости, значением функции в точке является «высота» ландшафта в этой точке (аналогия с изображениями уместна в том смысле, что изображение — тоже функция на плоскости, функция яркости или цвета). Примером того, как можно применить вейвлеты для работы с подобными поверхностями, является работа Gross’а и др. [[2]]. К сожалению, на плоскости параметризуются многие, но далеко не все поверхности. Даже поверхности, параметризуемые на сфере, требуют совершенно иного подхода (если мы захотим смоделировать не участок земной поверхности, а земной шар целиком, то будем иметь дело как раз с такой поверхностью), а ведь даже ими не исчерпываются все виды поверхностей, с которыми приходится встречаться в приложениях. В дальнейшем мы будем обсуждать только «общий» случай, когда параметризация на плоскости невозможна. Представление поверхностей, допускающее многомасштабный анализ Сейчас мы должны обсудить, каким образом следует задавать поверхность, чтобы она допускала многомасштабный анализ. Если кривые задаются набором опорных точек, образующим опорный многоугольник, то поверхности задаются опорной сеткой (control mesh). По полной аналогии с кривыми поверхность может интерполировать опорную сетку (проходить через все ее узлы), аппроксимировать ее (не касаться узлов); возможны смешанные варианты. Наиболее простой способ представления поверхности (и, тем не менее, достаточно часто использующийся) — кусочнобилинейная интерполяция треугольной сетки. Очевидно, что далеко не каждая сетка допускает многомасштабный анализ. Такой особенностью обладают только сетки, полученные с помощью некоторой схемы подразбиения (subdivision scheme). Рассмотрим пример простой треугольной сетки M 0 например, тетраэдра (Рис. 6). Разбиение осуществляется в два этапа. Сначала в середину каждого узла добавляется новый узел, новые узлы соединяются ребрами так, чтобы ~ 1 . Простейшая схема подразбиения — снова получилась треугольная сетка M полиэдральная (polyhedral subdivision) — этим этапом и заканчивается. Понятно, что в пределе полиэдральное подразбиение дает ту же поверхность, что задавалась исходной сеткой. Второй этап не меняет структуру сетки, зато меняет пространственное расположение ее узлов по некоторому правилу. В случае интерполирующей схемы однажды зафиксированные узлы перемещать ГрафиКон’98. 10 Москва, 7-11 сентября 1998 г. Л. Левкович-Маслюк, А.Переберин. «Вейвлет-анализ и его приложения» 1 нельзя, поэтому «двигать» можно только вновь добавленные узлы (сетка M int ). В случае аппроксимирующей схемы меняется расположение «старых» узлов 1 (сетка M appr ). (Подробно о схемах подразбиения см. [[1]]). ~1 M M0 M i1nt 1 M appr Рис. 6. Виды разбиения сеток. Если некоторая поверхность задается опорной сеткой M J , которую можно представить как результат применения некоторой схемы подразбиения, то очевидно, многомасштабным анализом такой сетки станет последовательность сеток M 0 , M 1 , , M J 1 . Каждая сетка M j может быть разделена на низкочастотную составляющую M j1 и детализирующую составляющую D j1 . Воспользуемся имеющимися обозначениями для операторов анализа ( A j , B j ) и синтеза ( P j , Q j ) для записи соответствующих операций: M j 1 A j M j , j J , 1 и M j P j M j 1 Q j D j 1 , j 1, J . j 1 j j D B M К сожалению, обсуждение построения конкретных вейвлет-базисов выходит за рамки данного курса, заинтересовавшимся рекомендуем обратиться к [[1], [4]]. Сразу обратим внимание на следующую проблему: далеко не всегда поверхность задана сеткой, допускающей многомасштабный анализ. Например, при сканировании реальных трехмерных объектов, информация заносится в ЭВМ обычно в виде очень частых сеток, имеющих десятки тысяч треугольников. Переход от такой «произвольной» сетки, к представлению, допускающему многомасштабный анализ является непростой и трудоемкой задачей. Подробно эта проблема рассматривается в [[3]]. Приложения вейвлет-анализа поверхностей Сжатие поверхностей. Представления поверхностей, полученные в результате сканирования реальных объектов, и прочие «необработанные» представления часто содержат большой объем избыточной или несущественной информации. Применение многомасштабного анализа позволяет оценить объем «уточняющей» информации, который может оказаться несущественным при реконструкции поверхности. В результате удается получить сетки, содержащие существенно меньшее число треугольников по сравнению с изначальным. ГрафиКон’98. 11 Москва, 7-11 сентября 1998 г. Л. Левкович-Маслюк, А.Переберин. «Вейвлет-анализ и его приложения» Автоматическое управление уровнем детализации. Часто оказывается неэффективной визуализация сложных трехмерных объектов с полным восстановлением всех деталей. Вот хотя бы некоторые подобные ситуации: разрешающая способность видеоустройства ниже, чем необходимо для отображения объекта с максимальным уровнем детализации; требуется быстро восстановить общие контуры объекта (без деталей), например, при поиске объекта в некоторой базе данных; в трехмерной сцене требуется изобразить объект «удаленным» на «значительной расстояние». С помощью многомасштабного представления легко не только задавать практически любой уровень детализации, но и реализовывать автоматическое и динамическое управление уровнем детализации. Это позволяет, например, реализовать эффект «наплыва» в трехмерной сцене, показать протяженный трехмерный объект «в перспективе», когда степень детализации отдельных частей объекта меняется в зависимости от положения наблюдателя. Постепенная передача данных (Progressive Transmission). Задача состоит в следующем: организовать хранение данных, например, в файле так, чтобы уровень детализации объекта можно было бы увеличивать по мере постепенного считывания файла. Такой способ организации файла привлекателен, например, для передачи по сети: визуализацию объекта можно начинать еще до того, как закончилась пересылка всего файла. Этот же формат хорошо использовать для хранения объектов в базах данных для возможности быстрого просмотра (см. выше). Очевидно, что имея многомасштабное представления для объекта, такой формат несложно реализовать. Редактирование объектов. Здесь используются те же идеи, что и для редактирования кривых. Литература [1] Eric J. Stollnitz, Tony DeRose, David H. Salesin. Wavelets for Computer Graphics. Theory and Applications. Morgan Kaufmann Publishers, Inc., San Francisco, California, 1996, pp. 141-167. [2] M.H. Gross, O.G. Staadt, R. Gatti. Efficient Triangular Surface Approximations Using Wavelets and Quadtree Data Structures. IEEE Transactions on Visualization and Computer Graphics. Vol. 2, No. 2, June 1996. [3] Matthias Eck, Tony DeRose, Tom Duchamp, Hugues Hoppe, Michael Lounsbery, Werner Stuetzle. Multiresolution Analysis of Arbitrary Meshes. In SIGGRAPH’95 Conference, pp. 173-182. ACM, New York, 1995. [4] Michael Lounsbery, Tony DeRose, Joe Warren. Multiresolution Analysis for Surfaces of Arbitrary Topological Type. ACM Transactions on Graphics, Vol. 16, No. 1, January 1997, pp. 34-73. Вейвлеты в задачах глобальной освещенности В этом разделе мы расскажем о том, как можно применить вейвлеты для решения задачи глобальной освещенности методом излучательности (radiosity). ГрафиКон’98. 12 Москва, 7-11 сентября 1998 г. Л. Левкович-Маслюк, А.Переберин. «Вейвлет-анализ и его приложения» Метод излучательности Напомним суть метода излучательности [[1], [2]]. Метод основан на законе сохранения энергии в замкнутой системе. Записывается уравнение баланса световой энергии в сцене. Излучательность B в каждой точке y сцены складывается из собственной излучательности E в точке и отраженной излучательности от всех прочих точек сцены, умноженной на коэффициент отражения [0, 1] : B( y) E ( y) ( y) F ( x, y) B(x) dAx . (Функция F задается геометрией сцены и определяет долю энергии, переносимую с одной точки сцены на другую). Таким образом, функция B является решением интегрального уравнения. Его можно решать так. Сначала представить искомую функцию в виде разложения по некоторому базису в пространстве функций излучательности (т.е. в виде суммы ряда по соответствующим базисным функциям). Тогда задача, очевидно, сведется к решению системы из бесконечного числа линейных алгебраических уравнений. Если же рассмотреть проекцию пространства функций излучательности на некоторое конечномерное подпространство (метод конечных элементов), то проекция искомой функции в этом подпространстве будет представлена уже в виде конечной суммы. Это даст уже конечную систему уравнений. От выбора подпространства и базиса в нем будет, естественно, зависеть степень близости решения системы к реальной функции B. Проще всего подпространства и базисы в нем выбирать так. Фиксируем некоторое число n 0 и разбиваем всю сцену на n поверхностей (фрагментов) Ai , i 0, n 1. Получаем n-мерное подпространство пространства функций излучательности. Базисная функция с номером i этого подпространства равна 1 во всех точках Ai и 0 во всех остальных точках. Уравнение баланса световой энергии в таком случае сводится к системе n линейных алгебраических уравнений: n 1 Bi E i i Fij B j , i 0, n 1 , j 0 где Bi — излучательность i-того фрагмента, E i — собственная излучательность i-того фрагмента, i — коэффициент отражения i-того фрагмента ( i [0, 1] ), Fij — коэффициент формы (form factor) — доля энергии j-того фрамента, попавшая на i-тый фрагмент. В матричной форме: B E (F)B или ( I F)B E . Из определения коэффициента формы и закона сохранения энергии следует, что для любого 0 i n 1 n 1 F ij 1, j 0 ГрафиКон’98. 13 Москва, 7-11 сентября 1998 г. Л. Левкович-Маслюк, А.Переберин. «Вейвлет-анализ и его приложения» следовательно матрица ( I F) обладает диагональным преобладанием и система решается простыми итерационными методами, например, методом Гаусса-Зейделя. Выпишем выражение для коэффициента формы: Fij 1 Ai Ai A j cos i cos j rij2 Hij dA j dAi , где rij — расстояние между элементарными площадками dAi и dA j , i и j — углы между нормалями к соответствующим элементарным площадкам и отрезком, соединяющим эти площадки, Hij равен 1, если dAi «видит» dA j и 0 в противном случае. Принимая во внимание, что Fij Ai F ji A j и что в подавляющем большинстве случаев Fii 0 (если только фрагмент Ai не оказался вогнутым), для сцены из n элементов требуется вычислить по крайней мере n(n 1) 2 коэффициентов формы. Очевидно, что чем больше n, тем ближе решение соответствующей системы к реальной функции излучательности. Однако выполнение O(n 2 ) весьма нетривиальных операций по вычислению матрицы коэффициентов формы становится при больших n серьезной проблемой. Можно ли как-то уменьшить объем вычислений? Иерархическая излучательность. Вейвлет-излучательность Идея иерархического подхода к решению задачи излучательности заключается в последовательном переходе от очень грубых приближений, полученных путем решения системы малого числа уравнений, к более точным, постепенно увеличивая количество уравнений (и неизвестных) в системе. В [[3]] вся сцена сначала разбивалась на прямоугольные фрагменты (или на фрагменты, проецируемые на прямоугольные области) и решалась соответствующая система. Потом каждый из фрагментов дробился на 4 части, вычисления производились снова и так до тех пор, пока получаемое решение не начинало удовлетворять определенным критериям. При этом использовался описанный выше базис кусочно-постоянных функций. Развитием иерархического похода стало использование вейвлетов [[1], [5], [6]]. Метод основан на утверждении о том, что при проецировании интегрального оператора уравнения излучательности на некоторое n-мерное подпространство, в этом подпространстве можно так выбрать вейвлет-базис, что для любого 0 найдется такое ( ) 0 , что все элементы полученной в результате проецирования матрицы, кроме O(n log n) или даже O(n) , не превысят (по модулю) , и при замене этих элементов нулями в решение будет внесена ошибка, не превосходящая [[4]]. На содержательном уровне идея метода состоит в следующем. Для получения удовлетворительного приближения решения часть коэффициентов формы можно вычислить при достаточно грубом разбиении сцены на объекты — это касается случая, когда размеры пар соответствующих фрагментов существенно меньше расстояния между ними. В то же время для этих же самых фрагментов может потребоваться дополнительное разбиение при вычислении коэффициентов формы в паре с ГрафиКон’98. 14 Москва, 7-11 сентября 1998 г. Л. Левкович-Маслюк, А.Переберин. «Вейвлет-анализ и его приложения» фрагментами, находящимися по соседству. Применение вейвлет-базиса позволяет хранить как информацию, полученную при грубом разбиении, так и уточняющую ее информацию. Построим начальное разбиение сцены так, чтобы каждый фрагмент этого разбиения легко параметризовался на единичном квадрате. В качестве вейвлетбазиса можно использовать как простейший вейвлет-базис Хаара [[1], [6]], так и более сложные конструкции вейвлетов [[5]]. Каждому фрагменту начального разбиения поставим в соответствие квадродерево. В начале все деревья имеют только корневые вершины. Вычисляется матрица коэффициентов формы для начального разбиения и находится решение (методом Гаусса-Зейделя). Все корневые вершины деревьев получают ссылку друг на друга. Ссылка соответствует вычисленному для соответствующей пары фрагментов коэффициенту формы. Далее попеременно выполняются шаги разбиения матрицы и вычисления модифицированной системы. Выполнение продолжается до тех пор, пока решение не будет удовлетворять заданной точности. Критерий необходимости разбиения можно построить следующим образом: оценить перенос световой энергии, который имел бы место, если были бы вычислены новые коэффициенты формы. Если количество энергии не превосходит заданного порога, то соответствующие коэффициенты вычислять не стоит. Разбиение выполняется так: для каждого из уже посчитанных коэффициентов формы производится 1 шаг разбиения базисной функции, соответствующей либо фрагменту-«излучателю», либо фрагменту«приемнику», либо им обоим, а к соответствующим вершинам деревьев добавляются вершины-потомки, потом выполняются оценки для всех возможных новых коэффициентов формы. Если какие-либо коэффициенты решено пересчитывать, то соответствующие ссылки на вершины деревьев переустанавливаются. Немного иначе реализован метод в [[6]]. Сначала для исходного разбиения также строится лес деревьев. Далее для каждой пары фрагментов производится оценка погрешности вычисления коэффициента формы. Если ошибка ниже заданного порога, то коэффициент формы вычисляется и устанавливается соответствующая ссылка. Если нет, то происходит разбиение одного из фрагментов, соответствующая вершина получает потомков и снова выполняется процедура оценки. Промежуточных решений на этом этапе не ищется, решение ищется один раз по окончании процедуры вычисления коэффициентов формы (и формирования деревьев). Литература [1] Eric J. Stollnitz, Tony DeRose, David H. Salesin. Wavelets for Computer Graphics. Theory and Applications. Morgan Kaufmann Publishers, Inc., San Francisco, California, 1996, pp. 181-194. [2] Е. В. Шикин, А.В. Боресков. Компьютерная графика. Динамика, реалистические изображения. ДИАЛОГ-МИФИ, Москва, 1996, с. 258-262. [3] Pat Hanrahan, David Salzman, Larry Aupperle. A Rapid Hierarchical Radiosity Algorithm. In Proceedings of SIGGRAPH’91, pp. 197-206. ACM, New York, 1991. ГрафиКон’98. 15 Москва, 7-11 сентября 1998 г. Л. Левкович-Маслюк, А.Переберин. «Вейвлет-анализ и его приложения» [4] Peter Schröder. Wavelet Methods for Integral Equations. In Proceedings of SIGGRAPH’94. Course Notes, #11, pp. 107-127. [5] Steven J. Gortler, Peter Schröder, Michael F. Cohen, Pat Hanrahan. Wavelet Radiosity. In Proceedings of SIGGRAPH’93, pp. 221-230. ACM, New York, 1993. [6] О. Ю. Кокорин, С.А. Упольников. Использование иерархического алгоритма в методе излучательности. Труды конференции ГрафиКон’97, с. 31-37, Москва, 1997. ГрафиКон’98. 16 Москва, 7-11 сентября 1998 г.