Научная статья на тему 'Практическое применение триангуляции Делоне при построении сверхбольших поверхностей'

Практическое применение триангуляции Делоне при построении сверхбольших поверхностей Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1468
934
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Практическое применение триангуляции Делоне при построении сверхбольших поверхностей»

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

РАЗМЕРА

В.Н. Блохин, В.Е. Бочков

Рассматривается задача построения трехмерных моделей поверхностей. Описывается подход к построению триангуляции Делоне, позволяющей производить триангуляцию над неограниченным объемом исходных данных. В качестве алгоритма триангуляции используется инкрементальный алгоритм с разбиением исходного множества точек. Описывается реализация приложения TriOr для проведения триангуляции средствами СУБД Oracle.

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

По сравнению с другими видами моделирования этот метод позволяет добиться наиболее точной модели. Формальное описание задачи Делоне будет изложено далее.

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

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

Формальное определение триангуляции Делоне

Задачу моделирования поверхности можно сформулировать следующим образом: пусть дана поверхность S, определенная в п-мерном пространстве (на практике моделирование поверхностей производится в трехмерном пространстве), и множество N точек, принадлежащих поверхности S. Требуется построить поверхность S', где Ni принадлежит S', такую, чтобы для произвольной точки M, принадлежащей S', выполнялось следующее условие: нормаль, отложенная из М на S, имеет минимальную длину. Другими словами, необходимо получить функцию F такую, что S' = F(N).

Задача триангуляции исходного дискретного множества точек была впервые сформулирована советским математиком Делоне [1]: Триангуляцией набора N, состоящего из п точек, называется сетка примыкающих друг к другу треугольников, таких, что вершинами любого треугольника являются точки из набора N, и ребра треугольников не могут пересекаться в других точках, не принадлежащих N. Точки и ребра, принадлежащие выпуклой оболочке CH(S), называются граничными, остальные - внутрен-

ними. Обозначим общее количество внутренних точек через V. Основным свойством триангуляции является то, что при любом способе триангуляции общее число треугольников остается постоянным и равным К= n+v-2.

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

Отметим также еще два важных свойства триангуляции Делоне [2]:

• максимальная сумма минимальных углов всех составляющих треугольников среди всех возможных триангуляций исходного множества;

• минимальная сумма радиусов описанных вокруг треугольников окружностей среди всех возможных триангуляций.

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

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

Выбор оптимального алгоритма

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

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

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

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

Реализация инкрементального алгоритма в приложении TriOr. Исследование

производительности

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

• возможность работы как с тестовыми массивами, так и с реальными исходными данными (в качестве исходных данных для построения моделей земного рельефа предполагалось использовать цифровые векторные карты);

• возможность пространственного разбиения исходного множества точек на области, содержащие подмножества исходного массива;

• «прозрачная» реализация приложения с возможностью дальнейшей модернизации алгоритма триангуляции или его полной заменой;

• простота представления полученной модели.

Также было необходимо учитывать, что хранение исходных цифровых векторных карт осуществлялось в хранилище пространственных данных СУБД Oracle.

После проведения анализа существующих средств разработки приложений было выработано следующее решение:

• приложение должно быть полностью реализовано средствами языка Java;

• запуск и выполнение приложения должны осуществляться непосредственно внутри СУБД Oracle;

• полученные данные должны визуально представляться в виде трехмерных моделей формата VRML (Virtual Reality Modeling Language).

Обоснуем изложенное решение. Применение СУБД Oracle в качестве хранилища пространственных данных позволяет использовать методы пространственной индексации, предусмотренные в СУБД, для разбиения исходного множества точек на области обработки. Однако оптимальное использование индексации достигается лишь при проведении многократных запросов к исходному множеству. Внешняя реализация алгоритма триангуляции по отношению к СУБД влечет повышение трафика обмена данными между приложением и базой данных.

СУБД Oracle позволяет интегрировать написанные на языке Java приложения в состав средств вычислений базы данных. Это позволяет минимизировать затраты времени на получение данных, максимально использовать встроенный инструментарий СУБД и, следовательно, максимально повысить производительность приложения.

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

Все вышеизложенные аргументы были учтены при разработке приложения TriOr. При разбиении был применен алгоритм пространственного индексирования методом построения квадродерева. Облако точек разбивается на кубы, включающие подмножества точек, равные по количеству элементов. Допускается регулирование точности разбиения, а также размеров кубов.

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

Приложение TriOr было апробировано на множествах исходных точек, полученных из узлов изолиний рельефа, и отметок высот, извлеченных из цифровых векторных карт различных масштабов.

Экспериментальным путем было определено, что для карт масштабов 1:25000 и менее можно сделать допущение и перейти от проверки условия Делоне в трехмерном пространстве к проверке на плоскости (от описываемого шара к описываемой окружности). Это связано с шагом рельефа (относительные высоты между горизонталями), который в данных масштабах пренебрежимо мал по сравнению с расстояниями между точками в плане. Такое допущение абсолютно исключено при моделировании поверхности на основе карт масштабов 1:1000 и крупнее и может привести к отклонениям полученной модели от реальной поверхности.

Были проведены сравнительные исследования производительности алгоритма с применением разбиения и без него. Для исследований использовался компьютер Pentium4, оснащенный процессором 1600 Mhz и 1 Гб ОЗУ. При обработке множества, состоящего из 10000 элементов, получены следующие результаты: без использования разбиения - 6 минут; с разбиением - 4 минуты. При обработке множества, состоящего из 500000 элементов, получены следующие результаты: без использования разбиения -отказ, связанный с нехваткой оперативной памяти на 5 часе работы; с разбиением - 2 часа 30 минут.

Данные результаты говорят о высокой производительности алгоритма и о возможности его использования при моделировании поверхностей неограниченного размера.

Заключение

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

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

Литература

1. Делоне Б.Н. О пустоте сферы. Изв. АН СССР. ОМЕН. 1934. № 4. С. 793-800.

2. Скворцов А.В. Триангуляция Делоне и ее применение. Томск. Издательство ТГУ. 2002.

3. Препарата Ф., Шеймос М. Вычислительная геометрия: Введение: Пер. с англ. Москва: Мир, 1989.

4. Синицын С.И. Гибридный рекурсивно-инкрементный алгоритм построения триангуляции Делоне. Материалы конференции GraphiCon. Нижний Новгород. 2001.

5. Черновцев А.А. К вопросу о точности сканирующих систем. // Информационный бюллетень ГИС-Асооциации. Москва. 2004. №4(46).

i Надоели баннеры? Вы всегда можете отключить рекламу.