WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Pages:     || 2 | 3 |

«Интерактивная визуализация 3D-данных на виртуальном глобусе в стереоскопических системах ...»

-- [ Страница 1 ] --

Федеральное государственное образовательное учреждение высшего

профессионального образования «Нижегородский государственный

архитектурно-строительный университет»

На правах рукописи

Бобков Александр Евгеньевич

Интерактивная визуализация 3D-данных на

виртуальном глобусе в стереоскопических

системах

Специальность 05.01.01 – «Инженерная геометрия и компьютерная графика»

ДИССЕРТАЦИЯ

на соискание учёной степени кандидата технических наук

Научный руководитель:

доктор физико-математических наук Афанасьев Валерий Олегович Нижний Новгород —

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

ГЛАВА 1. Методы построения и визуализации виртуальных глобусов...... 1.1. Прошлое и настоящее виртуальных глобусов

1.2. Обзор программных решений и открытых стандартов

1.3. Генерация рельефа для виртуальных глобусов

1.4. Выводы по 1 главе

ГЛАВА 2. Визуализация виртуального глобуса

2.1. Варианты отображения виртуального глобуса

2.2. Полупрозрачная поверхность глобуса

2.3. Применимость для подземных объектов

2.4. Выводы по 2 главе

ГЛАВА 3. Визуализация данных на виртуальном глобусе

3.1. Облака точек

3.2. Объемные данные

3.3. Выводы по 3 главе

ГЛАВА 4. Описание программного комплекса

4.1. Программный комплекс

4.2. Стереоскопическая визуализация

4.3. Навигация и взаимодействие

4.4. Выводы по 4 главе

ЗАКЛЮЧЕНИЕ

БЛАГОДАРНОСТИ

СЛОВАРЬ ТЕРМИНОВ

СПИСОК ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЕ А. Источники геоданных

ПРИЛОЖЕНИЕ Б. Шейдеры для объемной визуализации

ПРИЛОЖЕНИЕ В. Расчет стереоэффекта

ПРИЛОЖЕНИЕ Г. Аппаратное обеспечение

ВВЕДЕНИЕ

Общая характеристика работы

Развитие виртуальных глобусов началось около 10 лет назад. Под виртуальным глобусом понимается трехмерная модель планеты Земля, воссозданная с определенной точностью по спутниковым данным, с интерактивным программным обеспечением, которое позволяет работать с трехмерной моделью Земли, рассматривать её на любых масштабах и визуализировать данные (объекты, модели) с привязкой к географическим координатам. Первые глобусы позволяли просматривать высокодетализированные спутниковые снимки, наложенные на трехмерный рельеф. Последние годы растет интерес к использованию виртуальных глобусов для более практических задач визуализации и анализа различных типов данных на глобусе. Во-первых, появились спутниковые данные высокого разрешения, цифровая модель рельефа почти всей Земли в свободном доступе (SRTM). Вовторых, широкое распространение получил интернет, что позволило хранить большие объемы спутниковых данных на удаленных серверах. Видеокарты высокодетализированную спутниковую подложку и дополнительные эффекты проектирования и исследования процессов, компьютерные игры и т.п.

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

В отечественной науке существенный вклад в развитие теоретических основ и практических решений в области геометрического моделирования и визуализации внесен научными школами Бондарева А.Е., Васина Ю.Г., Галактионова В.А., Дебелова В.А., Денискина Ю.И., Долговесова Б.С., Желтова С.Ю., Журкина И.Г., Кеткова Ю.Л., Кучуганова В.Н., Никитина И.Н., Роткова С.И., Сурина А.И., Толока А.В., Турлапова В.Е., Утробина В.А. и ряда других исследователей.

Актуальность работы обусловлена тем, что, не смотря на существование в настоящее время большого количество реализаций различных алгоритмов генерации и визуализации виртуального глобуса (включая атмосферу), визуализации 3D-данных на глобусе (3D-модели, векторные наложения на рельеф) и др., пока остаются нерешёнными задачи визуализации полупрозрачной поверхности на глобусе, визуализации облаков точек и объемных данных на глобусе, необходимые для создания программных систем визуализации научных данных (в частности, подземных геофизических данных), данных лазерного сканирования и других видов данных, которые появляются в настоящее время как следствие использования новых методов и аппаратуры зондирования.

Цель диссертационной работы состоит в создании алгоритмического и программного обеспечения формирования и визуализации пространственной географической информации.

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

поверхностью с возможностью как надземного, так и подземного просмотра;

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

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



Научная новизна:

1. Разработан новый способ визуализации виртуального глобуса, который позволяет, благодаря полупрозрачной поверхности, визуализировать 3D-объекты под поверхностью глобуса и обеспечить отсутствие графических артефактов, связанных с полупрозрачностью, и возможность как надземного, так и подземного просмотра.

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

3. Разработан новый алгоритм визуализации объемных данных на виртуальном глобусе, который работает с данными в географической системе координат и при визуализации учитывает форму глобуса.

Практическая значимость.

Результаты работы были использованы для создания интерактивного научно-популярного приложения «Виртуальная Долина гейзеров», которое было внедрено и используется в музее Кроноцкого государственного природного биосферного заповедника.

Результаты работы были использованы для реалистичной визуализации горнолыжных трасс для горнолыжного тренажера в Московском физикотехническом институте. Диссертант является соавтором статьи по горнолыжному тренажеру, которая была доложена на конференции Cyberworlds 2011 и получила награду Best Paper Award.

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

Основные положения, выносимые на защиту:

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

2. Алгоритм визуализации облаков точек на глобусе с уровнями детализации, учетом формы глобуса, контролем плотности точек на экране и фильтрации по заданным критериям на графическом процессоре.

3. Алгоритм визуализации объемных данных, заданных в географической системе координат и учитывающий форму глобуса.

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

Апробация работы.

конференциях: международных конференциях MEDIAS 2010, MEDIAS 2011, MEDIAS 2012 (2010 г., 2012 г., г. Лимассол, Республика Кипр), Графикон (2010 г., г. Санкт-Петербург), Графикон 2012 (2012 г., г. Москва), «Ситуационные центры и информационно-аналитические системы класса 4i» (2011 г., г. Москва), на 53-й научной конференции МФТИ (2010 г., г. Долгопрудный), на 54-й научной конференции МФТИ (2011 г., г. Долгопрудный), на 3-й научно-технической конференции «Проблемы комплексного геофизического мониторинга Дальнего Востока России» (2011 г., г. Петропавловск-Камчатский).

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

Работа велась в том числе в рамках грантов РФФИ 12-07-31043 мол_а, 10а.

Публикации. Основные результаты по теме диссертации изложены в научных работах, 4 из которых опубликованы в изданиях, рекомендованных ВАК Минобрнауки России.

Структура и объем диссертации Диссертация состоит из введения, 4 глав, заключения, словаря терминов, библиографии и 4 приложений. Общий объем диссертации 143 страницы, из них 113 страницы текста, включая 70 рисунков. Библиография включает наименований на 12 страницах.

ГЛАВА 1. Методы построения и визуализации виртуальных 1.1. Прошлое и настоящее виртуальных глобусов 1.1.1. Географическая визуализация до виртуальных глобусов Одно из самых важных применений виртуальных глобусов — это географическая визуализация. В статье [13] приводится определение географической визуализации: это применение графического представления данных для облегчения пространственного понимания вещей, понятий, условий, процессов и событий в человеческом мире.

Считается, что одним из первых случаев применения географической визуализации является «холерная карта» Джона Сноу (рис. 1.1). В 1854 Сноу обозначил на карте Лондона случаи заражения холерой и отметил все водяные насосы для подачи питьевой воды. Большинство случаев заражения концентрировались вокруг одного насоса. Сноу использовал карту для подтверждения свой теории, что источником заражения является этот насос [14].

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

В начале 1960-х годов развитие компьютеров привело к появлению первых геоинформационных систем (ГИС) [15].

ГИС — это система для сбора, хранения, анализа и визуализации геопространственных данных и связанных с ними атрибутов. ГИС развивают идею Джона Сноу по наложению на географические карты дополнительных слоев данных с целью их учета и анализа. Первые ГИС развивались с государственной поддержкой (ГИС Канады) и использовались для городского планирования, переписи населения [16].

В начале 1980-х годов начали появляться коммерческие ГИС. Одна из самых известных компаний-разработчиков ГИС ESRI выпустила свой продукт ARC/INFO в 1982 г. ГИС стали доступны широкому кругу пользователей и превратились в мощный инструмент для работы с картографическими данными и тематическими геоданными [17].

Постепенно стал доступен сетевой доступ к данным, а с развитием высокоскоростного интернета стал распространяться способ работы с ГИС через тонкие клиенты (браузеры). В настоящее время карты уже не являются статическими, а генерируются в процессе работы на основе информации из базы данных по запросу пользователя. Возможно динамические объединение информации из разных источников, разных сайтов, встраивание картографических сервисов на любой сайт.

Параллельно с развитием классических 2D ГИС в 1990-х годах возникает концепция 3D ГИС [18]. 3D ГИС позволяет изучать трехмерный рельеф с любых точек зрения, городские сооружения и инфраструктуру, визуализировать проектируемые здания, планировать развитие территорий, производить оценку высотных характеристик, области видимости, проводить визуальный анализ.

Однако внедрение 3D ГИС идет медленно. В работе [19] перечисляются основные причины этого:

организация 3D-данных. Существуют разные методы представления 3Dмоделей. У каждого есть свои преимущества и недостатки. Не ясно, в каком виде хранить модели в базах данных предпочтительнее и как конвертировать между разными представлениями;

реконструкция 3D-объектов. 3D ГИС должны иметь возможность просмотра моделей реальных объектов. Для этого необходимо выполнить их 3Dреконструкцию. Быстрые методы реконструкции выдают грубые и не точные модели. Более детальные модели выполняются вручную или полуавтоматически и требуют много времени. Реконструкция большого числа объектов (3D-городов) — крайне затратная операция;

3D-визуализация.

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

В нескольких регионах России в 2010-2012 гг. начались пилотные проекты по внедрению 3D ГИС [20-22]. Виртуальные глобусы — это дальнейшее логическое развитие идеи 3D ГИС.

1.1.2. Первые виртуальные глобусы В работе с 2D- и 3D-представлением геоданных существует большая разница. Для 2D-данных (как растровых, так и векторных) давно разработаны алгоритмы визуализации, анализа, хранения, используются стандартные форматы и множество программных продуктов для разных задач.

Рис. 1.2. Виртуальный глобус в игре X-COM: UFO Defense (1994 г.) Но для визуализации виртуального глобуса необходимы трехмерная графика и большие объемы данных, а главным требованием является интерактивная частота кадров (не менее 30 кадров в секунду). При этом не существует общепринятых стандартов к работе с данными на виртуальном глобусе, к навигации в пространстве виртуального глобуса. Всё это замедляет внедрение виртуальных глобусов для решения практических задач.

В 80-е годы и начале 90-х годов основным ограничителем являлась мощность видеокарт. Глобусы использовались для показа простейших векторных данных, таких как границы континентов и государств, орбиты космических аппаратов (рис. 1.2).

В 90-е годы мощность персональных компьютеров позволила использовать более детализированные текстуры земной поверхности. В конце 90-х годов появились такие продукты как Encarta Virtual Globe компании Microsoft (1998 г.) и 3D World Atlas компании Cosmi Corporation (1999 г.) (рис. 1.3). Это были мультимедийные приложения, где глобус сочетался с разнообразной энциклопедической информации о странах мира. Разрешение текстур было невысоким, поэтому они помещались на обычные CD-диски [23, 24].

Параллельно с этим в 90-е годы была заложена идеологическая основа виртуальных глобусов. Так в 1992 году вышел роман Нила Стивенсона «Лавина»

в жанре киберпанк, в котором было описано приложение «Земля» для доступа к разнообразным данным. Впоследствии роман оказал влияние на создателей виртуального глобуса Google Earth [25].

31 января 1998 г. вице-президент США Альберт Гор произнес речь «Цифровая Земля: понимание нашей планеты в XXI веке», в которой он предложил создать «Цифровую Землю» — приложение, которое должно включать все увеличивающее количество геоданных, быть подсоединено к базам данных и знаний всего мира и обеспечить лучшее описание и понимание окружающего мира и человеческой деятельности [26].

В конце 90-х — начале 2000-х гг. произошел перелом в развитии виртуальных глобусов. Это связано со следующими факторами.

Частные компании, такие как GeoEye и Digital Globe, начали запускать спутники дистанционного зондирования для получения снимков высокого разрешения (до 0,5 метра) [27, 28]. NASA запустило миссию SRTM по созданию общедоступной цифровой модели рельефа для всей Земли [29].

Полученные со спутников данные имеют огромные размеры. Можно грубо сделать следующую оценку: для хранения текстуры всей Земли с разрешением 0.5м/пк нужно 11 петабайт. Даже если выкинуть все моря, океаны, пустыни и полюса, всё равно остаётся внушительное число. На CD-диск эти текстуры уже не поместятся.

В это же самое время появился высокоскоростной доступ к интернету.

Возникла идея размещать геоданные на серверах в интернете, а на компьютеры пользователей устанавливать клиентское программное обеспечение (ПО), которое должно скачивать изображения только той части поверхности Земли, которая нужна пользователю.

Также в это время рост рынка компьютерных игр привел к жесткой конкуренции между производителями видеокарт. Слабые игроки были либо вытеснены с рынка, либо куплены более сильными игроками. В начале 2000-х годов остались две основные компании: NVIDIA и ATI (позже перешла под контроль AMD). Конкуренция привела к быстрому развитию видеокарт и переносу графических вычислений на графический процессор [30]. Это развитие позволило интерактивно визуализировать на экране компьютера модель глобуса с текстурами и рельефом высокого разрешения и различными эффектами.

Таким образом, указанные 3 фактора (появление данных ДЗЗ высокого разрешения, развитие интернета и видеокарт) стали толчком для появления виртуальных глобусов нового поколения и роста интереса к глобусам в мире.

Компания Keyhole одной из первых начала развивать свой продукт в году на базе этой идеи. Впоследствии она была куплена компанией Google.

Переименованный в Google Earth продукт вышел в 2005 году для свободного использования [31]. Параллельно NASA выпустила свой продукт World Wind в 2004 году и Microsoft выпустила Virtual Earth (ныне Bing Maps 3D) в 2006 году.

Google Earth стал по-настоящему массовым продуктом и популяризовал идею виртуальных глобусов [32]. Разработчики ГИС также стали внедрять у себя возможность просмотра геопространственных данных на глобусе (ArcGIS, gvSIG). Учёные начали публиковать свои данные в открытом формате KML для просмотра результатов на глобусе.

Далее рассмотрим более подробно глобусы Google Earth и NASA World Wind.

1.1.3. Google Earth Google Earth — виртуальный глобус компании Google, который был куплен у компании Keyhole (рис. 1.4). GE — бесплатен для некоммерческого использования, но имеет закрытый исходный код. Также имеются платная версия с расширенным функционалом. GE поддерживает операционные системы Windows, Linux, Mac OS X, iOS и Android [33].

В GE используются коммерческие спутниковые и аэрофотоснимки высокого разрешения до 0.15м/пк. Также возможен просмотр исторических снимков.

GE позволяет просматривать также карту звездного неба и снимки Луны и пользовательских геоданных в формате KML: векторные данные, растровые данные и 3D-модели. Также GE позволяет добавление и редактирование собственных данных и сохранение их в формате KML. Имеется множество встроенных слоев данных: 3D-здания, границы государств, названия географических объектов, дороги, фотографии разных мест.

1.1.4. NASA World Wind NASA World Wind — это виртуальный глобус, разрабатываемый NASA и сообществом открытого программного обеспечения (рис. 1.5). Он позволяет просматривать спутниковые снимки Земли, Луны, Марса, Юпитера, некоторых его спутников и карту звёздного неба [34].

Рис. 1.5. Виртуальный глобус NASA World Wind 1.4.0 (14.02.2007) Основные отличия от Google Earth: полностью бесплатен, в том числе для коммерческого использования; имеет открытый исходный код, который можно использовать для создания своих приложений на базе WW; использует бесплатные снимки Земли: на мелких масштабах — Blue Marble NG, на крупных масштабах — Landsat 7, но при этом позволяет брать данные и из других источников.

Первая версия WW вышла в 2004 году, была написана на C# и работала только под Windows. Разработка этой версии прекращена в 2007 году, и поэтому имеются проблемы совместимости с Windows Vista/Windows 7. Некоторый функционал недоступен, в частности модуль Scientific Visualization Studio, который позволяет просматривать анимацию многих природных явлений (пожаров, ураганов).

1.1.5. Неогеография Рывок технического прогресса в области виртуальных глобусов и появление Google Earth привели к широкому распространению термина «неогеография».

Хотя этот термин и использовался раньше, в современном смысле он был рассмотрен в 2006 году в книге Эндрю Тернера «Введение в неогеографию» [35].

Термин «неогеография» означает совокупность новых методов и средств для работы с геоданными [36]. Можно выделить три основных отличия от традиционного подхода:

использование географических систем координат (долгота, широта и высота), а не картографических;

использование растрового представления информации как основного;

использование открытых форматов данных.

В традиционных ГИС используются картографические проекции, а данные хранятся в основном в векторной форме. Это было необходимо, т.к. во времена первых ГИС компьютеры были менее производительны, чем сейчас, а векторные данные занимают меньше места и требуют меньше вычислительных ресурсов.

Однако картографические проекции приводят к геометрическим искажениям: искажениями длин, площадей и углов. А векторные данные не полно и не точно отражают окружающую действительность.

Современные компьютеры могут легко работать, как с векторными, так и с растровыми данными ДДЗ, наложенными на виртуальный глобус. Также есть возможность отображения любых 3D-моделей на глобусе. Это позволяет отказаться от условных обозначений и заменить их приближенными к реальности 3D-моделями.

Неогеография предполагает обмен геопространственными данными между различными приложениями и для этого использование открытых стандартизованных форматов данных. Одним из таких форматов является KML (Keyhole Markup Language), который был изначально разработан для Google Earth и впоследствии был стандартизован. Сейчас этот формат поддерживают большинство ГИС и виртуальных глобусов.

Однако в среде профессиональных географов термин был встречен неоднозначно. Доктор географических наук А.М. Берлянт подверг критике термин «неогеография» в нескольких свои работах [37]. Основные положения:

этот термин используется для влияния на «администраторов, распоряжающихся денежными суммами», неогеография подразумевает отказ от условного, знакового обозначения объектов [38].

1.1.6. Современные тенденции в развитии виртуальных глобусов Google Earth хорошо подходит для просмотра спутниковых снимков и готовых геопространственных данных. Но полноценная работа и анализ данных невозможны. GE нельзя расширять, усовершенствовать, добавлять свои типы данных и интегрировать с другими приложениями. У GE закрытые исходники и нет программного интерфейса (API), кроме браузерной версии.

Сейчас мы находимся на этапе, когда происходит применение виртуальных глобусов для реальных практических задач, проводятся исследования, разрабатываются новые виртуальные глобусы и идеи их применения. Можно привести несколько работ в этой области.

В Институте геодезии и геоинформатики Университета прикладных наук Северо-Западной Швейцарии с середины 2000-х годов разрабатывается виртуальный глобус i3D для научно-исследовательских целей [39].

В работе Schafhitzel T., Falk M., Ertl T. 2007 года [40] описывается реалистичный рендеринг планет с атмосферой в реальном времени.

В работе Schoning J., Hecht B., Raubal M. 2008 года [41] предлагается улучшение взаимодействия с виртуальным глобусом с помощью сенсорного экрана с множественным касанием (multitouch). Там же указывается на важность ответов на вопрос «Почему здесь это находится?», а не только «Что здесь находится?» при работе с виртуальным глобусом.

В работе Christen M. 2008 года [42] рассматривается идея применения трассировки лучей для рендеринга виртуальных глобусов, а также приводится набор необходимых улучшений для повышения реализма: процедурная генерация текстур на основе спутниковых данных, реалистичные облака, вода и растительность.

В 2009 году был разработан виртуальный глобус Crusta [43] специально для задач геологии. Упор был сделан на точную и интерактивную визуализацию высокодетализированных данных (меньше 1м/пиксель). Глобус использует многогранник из 30 граней, что позволяет уменьшить искажения и устанить сингулярность на полюсах. Далее каждая грань рекурсивно делится на четырехугольники.

В 2010 группа немецких исследователей в рамках проекта EuroSDR (European Spatial Data Research) провела опрос участников геоиндустрии об использовании виртуальных глобусов и затем опубликовала отчет [44]. Основные выводы: виртуальные глобусы оказывают положительное влияние на индустрию и это направление будет развиваться и дальше. Основные проблемы: отсутствие стандартизации этой области и необходимость в больших вычислительных мощностях и новых геоинструментах.

Технология лидарной съемки позволяет восстанавливать трехмерный рельеф по облаку точек. В статье Christen M., Nebiker S. 2011 года описывается модификация алгоритма триангуляции Делоне для быстрого построения трехмерного рельефа виртуального глобуса с уровнями детализации [45].

В статье Nebiker S., Bleisch S., Christen M. авторы предлагают новый подход к построению 3D-моделей городов, основанный на использовании облаков точек лазерного сканирования на виртуальном глобусе [46].

В 2011 была Bleisch S. защищена диссертация по оценке пригодности визуального комбинирования количественных данных при визуализации на виртуальном глобусе [47].

В 2011 году вышла монография «3D Engine Design for Virtual Globes» [48], полностью посвященной вопросам разработки приложений с использованием виртуальных глобусов. В книге рассматриваются основные вопросы и задачи, которые возникают при разработке глобусов: системы координат, математика эллипсоида, проблема точности и дрожания (jittering), рендеринг векторных данных на глобусе, рендеринг рельефа.

Усилия разработчиков тратятся сейчас на поддержку визуализации различных типов векторных данных на глобусе, 3D-моделей, поддержку очень больших массивов данных: задачи динамической подгрузки и выгрузки.

Другое направление развития — увеличение реализма визуализации. Сейчас уже поддержаны визуализация атмосферы для любых высот над Землей, визуализации 3D-моделей зданий больших городов. Интересно отметить проект Outerra, разработчики которого добавляют фрактальную детализацию к данным ДЗЗ, генерируют процедурные дороги, леса и различные природные эффекты (рис. 1.6). Детали реализации разработчики раскрывают в блоге проекта [49].

Существуют такие задачи, как реалистичная вода, динамические тени, смена времен года.

Визуализация данных на виртуальном глобусе также входит и в повседневную жизнь. Многие имеют телефоны со встроенными GPS или ГЛОНАСС датчиками. Это позволяет отображать на глобусе маршруты своих передвижений, добавлять географическую привязку к фотографиям и сообщениям в переписке с другими людьми.

Возникают проекты, в том числе с открытым исходным кодом, которые позволяют формировать виртуальный глобус на основе современных спутниковых снимков и цифровых моделей рельефа. Один из примеров — NASA World Wind Java SDK, выпущенный в 2007 году. Другой — библиотека osgEarth, разработка которой началась в 2008 году на языке С++.

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

1.2. Обзор программных решений и открытых стандартов Существует несколько программных решений, имеющих программный интерфейс (API), который обеспечивает возможность написания производных приложений для работы с данными на виртуальном глобусе.

1.2.1. Google Earth browser plug-in Первые версии приложения Google Earth имели COM API, который позволял писать расширения. Однако в последних версиях его отключили [50].

Вместо этого в 2008 году Google выпустил специальную версию Google Earth в виде плагина для браузера, который можно встраивать на веб-странички. Этот плагин обладает своим API, который позволяет управлять визуализацией данных в GE с помощью языка JavaScript [50]. Плагин работает только в операционных системах Windows и Mac OS X.

Функционал плагина для браузера повторяет функционал основной версии.

Возможны создание, изменение и визуализация векторных данных: меток, ломаных линий, полигонов, 3D-моделей, аннотаций, наложений, управление камерой, запись и воспроизведение виртуальных туров. В основной версии все эти действия пользователь может выполнять мышкой. В браузерной версии эти действия могут быть автоматизированы программным образом. Можно загружать данные из разных источников, анимировать их, реагировать на действия пользователя.

Реализовать принципиально новый функционал API не позволяет. Поэтому возможное применение плагина Google Earth сильно ограничено.

1.2.2. NASA World Wind Java SDK Первая версия NASA World Wind, вышедшая в 2004 году, была основана на платформе.NET работала только под Windows.

В 2007 году началась разработка новой версии NASA World Wind на языке Java [51]. Она называется World Wind Java SDK, имеет открытый исходный код, работает на любых операционных системах с поддержкой Java и OpenGL, и может встраиваться на веб-странички в виде Java-апплета.

World Wind Java SDK — это не готовое приложение, а набор компонентов, которые можно использовать для разработки собственных приложений для визуализации и анализа геопространственных данных на виртуальном глобусе, можно интегрировать в существующие приложения на Java. Вместе с WW Java SDK иллюстрирует отдельные возможности WW.

Основные возможности: загрузка изображений поверхности Земли и карт высот из разных интернет-источников, доступных по протоколу WMS;

использование локальных данных; экспорт текстур и карт высот в виде отдельных визуализация векторных данных (точки, линии, полигоны); визуализация 3Dмоделей и аннотаций. Графический интерфейс пользователя реализуется через библиотеки AWT и Swing.

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

1.2.3. osgEarth osgEarth — инструментарий с открытым исходным кодом для рендеринга рельефа и данных на рельефе виртуального глобуса [52]. osgEarth выпущен под лицензией LGPL и написан на C++. osgEarth основан на OpenGL и является надстройкой над графическим инструментарием OpenSceneGraph. osgEarth работает на любых операционных системах, которые поддерживают OpenGL, включая мобильные iOS и Android.

Также как и WW Java SDK, osgEarth можно использовать для разработки собственных приложений, либо для интеграции виртуального глобуса в существующие приложения.

Одно из основных отличий osgEarth в том, что исходные растровые данные для построения рельефа не обязательно заранее обрабатывать. osgEarth может работать с «сырыми» данными и генерировать рельеф динамически во время работы приложения. Предобработка данных может ускорить этот процесс.

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

Основные возможности такие же, как и в WW Java SDK: загрузка изображений поверхности Земли и карт высот из разных интернет-источников по протоколам WMS, WCS, TMS; использование локальных данных; чтение векторных форматов файлов (KML, Shapefile); визуализация векторных данных (точки, линии, полигоны); визуализация 3D-моделей и аннотаций. Добавить графический интерфейс пользовать можно либо с помощью фреймворка Qt, либо встроенной библиотеки виджетов.

Конфигурировать глобус можно либо в коде на C++, либо с помощью специального файла в формате XML. В нем указываются пути к слоям изображений, карт высот, пути к файлам с векторными данными. Можно задавать стили в формате CSS для векторных данных в зависимости от их атрибутов.

Также можно использовать JavaScript для этих целей.

osgEarth может разбивать большие массивы векторных данных тайлы с уровнями детализации и подгружать их при приближении. Авторы osgEarth разработали протокол Tile Feature Service (TFS) для быстрой подгрузки таких данных в osgEarth [53].

1.2.4. Протоколы передачи данных Существует множество открытых стандартов для хранения и передачи геопространственных данных. Стандартизацией занимается Открытый геопространственный консорциум, основанный в 1994 году. Все стандарты поддерживаются множеством приложений и библиотек, как проприетарных, так и свободных.

Web Map Service (WMS) — стандартный протокол для получения растровых изображений через интернет [54]. Был опубликован в 1999 году.

динамически на сервере, либо браться из кэша. WMS поддерживает 2 типа запросов: GetCapabilities для получения параметров WMS-сервера и GetMap для получения изображения с заданными границами, размерами и системой координат.

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

Предложено несколько модификаций для решения этого. Например, WMS-C и Tiled Web Map Service, которые допускают только запросы изображений с определенными границам.

картографических данных в виде множества тайлов разных уровней детализации, распределенных по папкам [55]. Зная стандартную структуру папок, клиентское приложение может запрашивать необходимые тайлы с сервера по URL.

Web Map Tile Service (WMTS) — протокол для получения растровых изображений, который пришел на смену TMS и решает проблемы WMS [56]. Был опубликован в 2010 году. При получении запроса сервер может отправить либо изображение из кэша, либо сгенерировать его динамически.

Web Coverage Service (WCS) — протокол для получения покрытий через интернет [57]. Под покрытием подразумеваются данные, протяженные в пространстве и изменяющиеся во времени. В отличие от WMS, который возвращает статические изображения, возвращает дополнительно метаданные, которые позволяют далее взаимодействовать с покрытием на клиенте.

Web Feature Service (WFS) — протокол для получения географических объектов через интернет [58]. Позволяет получать список объектов в заданной области, создавать новые объекты, удалять и изменять объекты. Сами данные передаются с сервера на клиент в формате Geography Markup Language (GML).

1.2.5. Форматы данных Существует большое количество разнообразных форматов для хранения растровых и векторных данных.

GeoTIFF — формат для хранения растровых данных. Добавляет специальные метаданные к изображению: систему координат, проекцию, эллипсоид, датум, размеры и границы изображения.

Geography Markup Language (GML) — формат, основанный на нотации XML, для описания и хранения геопространственных данных. Формат может включать любую географическую информацию. Благодаря своей универсальности, формат используется для обмена данными между различными приложениями.

Keyhole Markup Language (KML) — формат, который используется для визуализации геопространственных данных [59]. Этот формат был разработан и начал использоваться в приложении Google Earth. Сейчас это открытый стандарт [60], и его поддерживает множество разных приложений. KML-файлы часто распространяются в виде ZIP-архива с расширением.kmz. В этом случае архив может также содержать дополнительные файлы: изображения, звуковые файлы, 3D-модели.

KML может содержать информацию геометрию (точки, линии, полигоны, 3D-модели), накладываемые изображения, аннотации. 3D-модели и сами изображения хранятся во внешних файлах, а в KML-файле содержатся только ссылки. Все координаты задаются в географической системе координат WGS84.

Высоты можно задавать абсолютно или относительно рельефа. Внешний вид геометрии и задается с помощью стилей.

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

Shapefile — формат хранения векторных геопространственных данных.

Разработан компанией ESRI [61]. Не является открытым стандартом, однако это стандарт для обмена данными между геоинформационными системами. Помимо геометрических данных позволяет хранить атрибутивные данные.

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

При визуализации рельефа можно выделить две основные фазы: (1) генерация геометрии рельефа и (2) текстурирование и освещение этой геометрии.

Рассмотрим подробнее первую фазу. Вторая будет освещена во второй главе.

1.3.1. Генерация трехмерного рельефа Существует множество разных методов создания трехмерного рельефа.

Рассмотрим основные из них.

Полигональные поверхности. Трехмерный рельеф аппроксимируется полигональной поверхностью. Высота точек поверхности берется из карты высот.

Есть несколько вариантов построения полигональной поверхности:

регулярная сетка — вершины расположены через равные интервалы.

Каждому пикселю карты высот соответствует своя вершина сетки. Это наиболее простой метод;

нерегулярная сетка (TIN, Triangular Irregular Network) — в местах быстрого перепада высот плотность вершин делается выше, в более ровных местах — ниже. Это позволяет уменьшить количество полигонов, но требует большего времени на построение.

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

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

Уровни детализации (LOD, Level of Detail). Но для больших территорий использование одной большой полигональной поверхности не выгодно. Большая 3D-модель рельефа занимает видеопамять и процессорное время. В каждый момент времени видна лишь небольшая часть большой территории. А если отдалиться и посмотреть на всю территорию целиком, то детализация поверхности будет слишком избыточной.

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

Существуют алгоритмы для непрерывных уровней детализации. Например, ROAM (Real-Time Optimally Adapting Meshes) [63]. Заранее строится двоичное дерево, каждый узел которого содержит один треугольник, а два дочерних узла – половинки этого треугольника.

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

Вычисляются ошибки отклонения вершин, и при необходимости треугольник разбивается на две половины.

При этом расчет сетки полностью ложится на центральный процессор.

Поэтому этот метод проигрывает по быстродействию другим алгоритмам, хотя и обеспечивает большую точность.

Наиболее часто применяются дискретные уровни детализации.

Формируется пирамида уровней детализации. Каждый следующий уровень имеет разрешение в 2 раза выше. Каждый уровень детализации разбивается на тайлы равного размера. Издалека виден грубый рельеф с низким разрешением. При приближении он заменяется на 4 тайла с более высоким разрешением и т.д.

Каждый тайл имеет свою карту высот и свою текстуру.

В этой ситуации возникает проблема сшивки тайлов. Если два находящихся рядом тайла имеют разные уровни детализации, то между ними могут возникать щели. Это решается добавлением «юбок» к тайлам. Юбка — вертикальная полоска треугольников по периметру тайла (рис. 1.7).

В работе Livny Y., Kogan Z., El-Sana J. предложен алгоритм бесшовного стыка тайлов [64].

В случае дискретных уровней детализации может возникать эффект скачков (popping), когда при смене тайлов разных уровней детализации виден резкий скачок некоторых частей рельефа. Этот эффект проявляется при медленной подгрузке новых тайлов с диска или из интернета. Одно из возможных решений:

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

Рис. 1.7. Слева - щель между тайлами, справа - закрытие щели с помощью юбки Geometry Clipmaps. Особняком стоит алгоритм Geometry Clipmaps [65]. Он не использует разбиение геометрии на тайлы. Вокруг наблюдателя генерируется набор плоских вложенных регулярных полигональных сеток. Чем дальше от наблюдателя, чем ниже разрешение сетки. Параметры подбираются так, чтобы размер треугольников на экране был примерно одинаковым. При движении наблюдателя сетки движутся вместе с ним (рис. 1.8).

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

Рис. 1.8. Вложенные сетки в алгоритме Geometry Clipmapping При движении наблюдателя сетки движутся вместе с ним. При этом текстура рельефа и карта высот динамически обновляются: часть текстуры удаляется, и на ее место подгружается кусок с диска. Используется тороидальный доступ. Это позволяет использовать текстуры и карты высот теоретически неограниченного размера.

1.3.2. Разбиение поверхности глобуса на тайлы В методе дискретных уровней детализации необходимо разбивать каждый уровень на прямоугольные кусочки — тайлы. В случае «плоского» рельефа естественным является рекурсивное разбиение пространства на квадраты. В случае глобуса можно придумать много разных вариантов разбиения [48]. Вот некоторые из них:

разбиение правильного многогранника. За основу берется, например, тетраэдр. Далее каждая грань рекурсивно разбивается на треугольники. При добавлении новых вершин они сдвигаются к поверхности эллипсоида;

«надутый куб». За основу берется куб. Для каждой грани куба формируется регулярная сетка нужного разрешения. Затем каждая вершина сдвигается к поверхности эллипсоида (рис. 1.9);

разбиение HEALPix (Hierarchical Equal Area isoLatitude Pixelization), при котором все пиксели занимают одинаковую площадь (рис. 1.10) [66];

меридианов и параллелей (рис. 1.11).

1.3.3. Географическая система координат Эллипсоид и геоид географическая система координат: тройка чисел (долгота, широта, высота). Но на видеокарте все расчеты происходят в прямоугольной декартовой системе координат. Поэтому необходимо задать связь между этими системами координат.

математических вычислений необходимо уметь описывать форму Земли с разной степенью точности. Самое простое приближение — сфера — подходит только для самых мелких масштабов. Часто используется следующее приближение — эллипсоид (рис. 1.12). Эта геометрическая фигура образована вращением эллипса вокруг малой полуоси.

Ещё одно приближение – геоид, эквипотенциальная поверхность гравитационного поля, совпадающая с морями и океанами и условно продолженная вглубь материков. Поверхность геоида в каждой точке перпендикулярна линии отвеса.

Т.к. эллипсоид по форме не совпадает с геоидом, то один и тот же эллипсоид можно двигать относительно геоида, компенсируя погрешности в одном месте и увеличивая в другом месте. Датум — это набор параметров, которые задают смещение эллипсоида относительно геоида [67]. Датумы могут быть локальными, т.е. обеспечивать наилучшую аппроксимацию геоида в данном месте (например, Североамериканский датум NAD83). Также датумы могут быть глобальными — минимизировать погрешность для всей Земли. В настоящее время наиболее часто используется датум 1984 года World Geodetic System (WGS84). Например, он используется в системе позиционирования GPS.

В системе WGS84 используется эллипсоид с параметрами: экваториальный радиус — 6378137м, полярный радиус — 6356752.3142м. Географические координаты задаются относительно этого эллипсоида [68].

Мировая декартова система координат (МСК) задается следующим образом.

Ось Z проходит через северный полюс, плоскость XY — через экватор, плоскость XY — через нулевой меридиан.

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

Существуют модели для расчета этого отклонения. Часто используется модель EGM96. Например, она применяется для корректировки высот в системе позиционирования GPS. Также сейчас существует усовершенствованная модель EGM2008.

Учет формы Земли при построении виртуального глобуса Форма полигональной поверхности глобуса зависит от цифровой модели рельефа (ЦМР), которая используется при его построении. Если ЦМР не задана, то поверхность принимает форму эллипсоида. Если используется ЦМР, то вершины полигональной сетки сдвигаются по нормали на заданную высоту.

Современные ЦМР, такие как SRTM и ASTER GDEM (приложение А), содержат высоту рельефа над геоидом EGM96. Поэтому для сдвига вершин полигональной сетки нужно делать поправку на высоту геоида над эллипсоидом.

Существуют программные библиотеки для проведения расчетов.

При визуализации 3D-данных на глобусе нужно учитывать, как задана высота точек. Есть три альтернативы (рис. 1.13):

1. высота задана относительно эллипсоида;

2. высота задана относительно геоида (относительно уровня моря);

3. высота задана относительно рельефа.

Имея ЦМР и геоид EGM96, можно корректно показать расположение геопространственных 3D-данных.

Таким образом, точность представления данных зависит в первую очередь от самих данных.

Рис. 1.13. Высота точки относительно разных поверхностей Вычисление нормали Во многих задачах связанных с визуализацией часто нужно вычислять нормаль к поверхности эллипсоида в точке. Нужно различать геоцентрическую нормаль и геодезическую нормаль (рис. 1.14). Геоцентрическая нормаль лежит на линии, соединяющей центр эллипсоида и данную точку на поверхности.

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

Геодезическая нормаль вычисляется по формуле:

где – вектор нормали, m – вспомогательный вектор, (a, b, c) – радиусы эллипсоида, (xs, ys, zs) – точка на поверхности эллипсоида.

Рис. 1.14. Геоцентрическая и геодезическая нормали Преобразование географических координат в декартовы довольно просто.

Иногда бывает нужно и обратное преобразование. Но оно значительно сложнее и может приводить к неоднозначностям.

1.3.4. Особенности виртуальных глобусов В случае рендеринга виртуального глобуса и данных на глобусе нужно учитывать ряд нюансов и особенностей, которых нет в плоском варианте [48].

Точность координат. В настоящее время видеокарты в основном используют при расчетах тип данных с плавающей точкой одинарной точности (float), который имеет примерно 7 значащих десятичных цифр. Радиус Земли также имеет 7 значащих цифр. Это приводит к ошибкам округления при проведении матричных преобразований. Визуально это проявления в «дрожании»

(jittering) объектов рядом с камерой.

Проблема частично решается использованием операций с двойной точностью на CPU. Результаты операций далее переводятся в одинарную точность перед отправкой на GPU.

Точность буфера глубины. Буфер глубины (z-buffer) хранит глубину отрисованных пикселей экрана. В случае виртуального глобуса наблюдатель может смотреть на глобус целиком из космоса, а может подлетать к поверхности глобуса. Это приводит к необходимости иметь очень близко ближнюю плоскость отсечения и очень далеко дальнюю плоскость отсечения. Глубина пикселя зависит от этих расстояний. При вычислении глубины она округляется из-за ограниченной точности буфера глубины. Чем больше расстояние от ближней до дальней плоскости отсечения, тем больше ошибка. И может оказаться так, что дальние объекты будут закрывать ближние.

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

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

Кривизна. Нужно помнить, что Земля — круглая. Если соединить 2 точки на поверхности прямой линий в декартовых координатах, то эта линия окажется под поверхностью глобуса. Необходимо применять различные методы, чтобы все линии и полигоны оказались на поверхности, а не под поверхностью. Нужно помнить про линию перемены дат, и что на полюсах имеется сингулярность.

Большие объёмы данных. Виртуальный глобус строится на основе спутниковых снимков и карт высот. Если мы заходим представить рельеф всей Земли с разрешением 1 м на пиксель, то нам понадобится текстура 40 млн на млн пикселей размером примерно в 11 петабайт. При этом возникает проблема — ограничение видеопамяти. На современных видеокартах имеется порядка гигабайта памяти. При этом существуют ограничения на размер текстур в памяти — примерно 8192х8192 пикселей. Также существует предел обработки количества вершин модели в секунду.

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

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

Алгоритмы рендеринга различных эффектов обычно используют упрощения и предположения, которые не применимы в случае виртуальных глобусов. Например, в обычных приложениях направление «вверх» всегда совпадает с осью Z. В случае глобуса в каждой точке будет своё собственное направление «вверх».

Современные компьютерные игры достигли больших успехов в реалистичном рендеринге природы. Рельеф, деревья, трава, облака, вода — всё генерируется программно с большой детализацией. Но в случае глобусов приходится использовать реальные данные о рельефе, реальную текстуру земной поверхности, которые зачастую имеют низкое разрешение. Если пытаться эти данные улучшать и добавлять детализацию, то не в ущерб достоверности.

1.3.5. Алгоритм Chunked LOD В итоге с учётом всех особенностей глобуса авторы книги [48] рекомендуют использовать алгоритм Chunked Level of Detail (CLOD), как наиболее сбалансированный по всем характеристикам. Этот же алгоритм используется в инструментарии osgEarth. Изначально он был предложен в 2002 году [70].

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

Рельеф состоит из тайлов (chunk), выстроенных вдоль меридианов и параллелей. Каждый тайл имеет свою геометрию на основе регулярной сетки и текстуру. Каждый тайл относится к некоторому уровню детализации. Все тайлы образуют квадродерево. При приближении к тайлу он заменяется на 4 тайла большей детализации. Для каждого тайла хранится ограничивающий объём, который используется для проверки видимости тайла.

Каждый тайл должен храниться в отдельном файле. При необходимости тайлы подгружаются в память с диска или выгружаются из памяти. Каждый тайл содержит ссылки на файлы с 4 дочерними тайлами.

Структура получаемого квадродерева изображена на рисунке 1.15.

TerrainTile — содержит сам тайл (геометрию и текстуру). Group — просто группирует подузлы графа. PagedLOD — переключает тайлы с разными уровнями детализации.

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

1. Существуют готовые закрытые продукты для просмотра спутниковых снимков (Google Earth), открытые библиотеки для разработки производных приложений (osgEarth, NASA WorldWind Java SDK), глобусы для научных задач Исследования ведутся по направлениям: увеличение реализма (Crusta, i3D).

визуализации глобуса и 3D-объектов на глобусе (освещение, вода, облака, тени, деревья, дома) и внедрение глобуса для решения практических задач. Существуют стандартные протоколы передачи геопространственных данных и стандартные форматы для хранения данных.

2. При визуализации данных на глобусе нужно учитывать ряд особенностей по сравнению с плоским случаем: точность координат типа float, точность буфера глубины, форму Земли (эллипсоид и геоид) и соответствующие особенности вычисления расстояний и нормалей, большие объемы растровых данных.

3. Алгоритмы для генерации трехмерного рельефа глобуса являются производными от алгоритмов для плоского случая. Могут быть использованы регулярные и нерегулярные сетки, уровни детализации: непрерывные и дискретные, алгоритм Geometry Clipmapping. Все они адаптируются для случая виртуального глобуса. При этом существуют несколько вариантов разбиения поверхности глобуса на тайлы. Варианты имеют свои плюсы и минусы.

4. В данной работе исследовании на основе проведенного анализа выбран алгоритм Chunked Level of Detail [48]. В нем используются дискретные уровни детализации, тайлы рельефа образуют квадродерево, каждый тайл основан на регулярной сетке, глобус разбивается на тайлы по географической сетке. В качестве программной реализации выбран инструментарий osgEarth.

ГЛАВА 2. Визуализация виртуального глобуса 2.1. Варианты отображения виртуального глобуса Виртуальный глобус может применяться для различных задач: от фотореалистичного рендеринга территорий до визуализации научных данных. В разных ситуациях глобус можно отрисовывать с различными настройками, в различных режимах. Для решения одних задач нужна максимальная реалистичность, в других задачах нужно выделить особенности данных, представить данные более наглядно. В этом параграфе рассматриваются существующие основные режимы отображения глобуса.

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

растяжение по высоте, вариант с отключенными текстурами, вариант с программной раскраской глобуса.

Растяжение по высоте В режиме растяжения по высоте высота каждой точки рельефа увеличивается в заданное количество раз (рис. 2.1). Увеличенная высота вершин может сразу учитываться при генерации геометрии, но этот вариант не позволяет динамически менять высоту и выбирать удобное для работы значение мультипликатора высоты.

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

Вершины полигональной поверхности хранятся в декартовой системе координат.

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

На современных видеокартах каждый вершинный атрибут — это 4хкомпонентный вектор. Высота вершины хранится только в 1й компоненте. В других 3-х компонентах можно передавать в шейдер любые данные о вершине.

Например, нормаль к эллипсоиду в этой точке. Это позволит более точно растягивать рельеф.

Затенение глобуса В режиме отключенных текстур показывается эллипсоид в оттенках серого (рис. 2.2). С помощью затенения подчеркиваются неровности рельефа. Это удобно в ситуациях, когда текстура имеет более низкое разрешение и мешает сопоставлению визуализируемых данных с рельефом.

В этом режиме реалистичное освещение не требуется. Для лучшего подчеркивания деталей рельефа можно использовать традиционный подход с диффузным освещением по модели Ламберта [71] и бликовым освещением по модели Блинна-Фонга [72]. Источник света можно двигать вместе с камерой.

Модель Ламберта для диффузного освещения:

где I — освещенность в точке рельефа, — нормаль к поверхности, — направление на источник света.

Модель Блинна-Фонга для бликового освещения:

где – вектор направления на наблюдателя, p – коэффициент блеска.

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

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

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

Варианты могут быть самые разные в зависимости от задачи, от области применения глобуса. Самые простые: это раскрашивание по высоте (рис. 2.3) или раскрашивание в зависимости от нормали рельефа (рис. 2.4). На рельеф вместо спутниковых снимков можно накладывать изображения с научными данными, например с сайта NASA [73].

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

Шейдеры в своей работе используют следующие параметры:

вершинные атрибуты: нормаль к рельефу в мировой системе координат, высоту вершины над эллипсоидом, геодезическую нормаль к эллипсоиду;

uniform-переменные: степень прозрачности рельефа, степень растяжения по высоте, положение источника света в мировой системе координат, настройки атмосферы;

дополнительная текстура с картой нормалей;

дополнительная текстура с изображением ночной Земли (огни городов);

прочие текстуры, которые можно использовать при визузализации.

2.1.2. Реалистичное отображение глобуса Очевидное применение реалистичного рендеринга – это компьютерные игры. Однако такой рендеринг может быть также использован в других областях:

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

Для реалистичного рендеринга виртуального глобуса необходимо дополнительно реализовать несколько эффектов.

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

Облака. Чтобы добавить вид облаков из космоса, достаточно сделать сферу вокруг глобуса с готовой полупрозрачной текстурой облаков. Но у поверхности земли они будут выглядеть размыто. Поэтому по мере приближения к поверхности глобальные облака можно заменять на процедурно сгенерированные с помощью шума Перлина, либо на объемные облака [77, 78].

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

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

Тени. Тени — одна из самых сложных задач, особенно в случае глобуса.

При использовании теневых карт (shadow map) тени получаются размытые из-за недостаточного разрешения теневой карты [80]. Сложность — в определении границ видимой территории, на которую нужно накладывать теневую карту.

Увеличение детализации территорий. Современные карты высот, которые находятся в свободном доступе, имеют низкое разрешение. Чтобы увеличить детализацию, можно добавить высокочастотный шум к рельфу [81].

2.1.3. Атмосферное рассеяние Атмосферное рассеяние — это основа реалистичного восприятия окружающей среды. Задача учета атмосферного рассеяния состоит в вычислении цвета каждого пикселя неба и поверхности рельефа с учетом положений Солнца и виртуальной камеры [74].

Луч света, попадая на частицы атмосферы, отклоняется в сторону. Это описывается коэффициентом рассеяния и фазовой функцией. Ослабление луча света длиной волны, который проходит путь описывается следующей формулой, в которой используется оптический путь:

где h — высота, — длина волны, – коэффициент зависимости от длины волны, NR = 8км — толщина атмосферы с однородной плотностью.

Для расчета цвета необходимо вычислить, какая часть изначального пучка света от Солнца рассеялась, а какая осталась и попала на сетчатку глаза. Это определяется уравнением рассеяния. В это уравнение входит громоздкий интеграл, который аналитически не берется, а численное интегрирование довольно сложное. В 1993 году Нишита предложил алгоритм расчета интеграла, который, однако, занимал много времени [74].

Проведение этих расчётов в реальном времени долго было недостижимой задачей. В начале 2000-х годов с появлением графических процессоров и возможности их программирования с помощью языков шейдеров начались разработки по расчёту цвета атмосферы в реальном времени. В 2005 году О’Нил упростил алгоритм Нишиты и адаптировал его для расчета на GPU [75]. Алгоритм подходит для бесшовного рендеринга атмосферы для любого положения камеры от поверхности до дальнего космоса и любого вектора направления на Солнце.

Многие авторы в дальнейшем занимались усовершенствованием этого алгоритма [40, 76].

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

Для сравнения в работе [40] дополнительно используются текстуры с предрассчитанными значениями. В работе [76] дополнительно производится учет множественного рассеяния и учет неровностей рельефа.

Технически алгоритм распадается на две составные части: вычисление цвета неба и модификация цвета рельефа.

Для рендеринга неба используется сфера с радиусом на 2,5% больше полярного радиуса Земли с включенным отбрасыванием лицевых граней полигонов, чтобы наблюдатель видел только изнанку сферу. Большая часть сферы закрывается земным эллипсоидом. Через каждый пиксель неба пускается луч, и определяются точки входа и выхода из атмосферы. Для полученного отрезка вычисляется интеграл рассеяния методом численного интегрирования. Отрезок разбивается на несколько точек, для которых вычисляется доля рассеянного света (рис. 2.5). Интеграл считается для 3-х компонент света и для 2-х случаев рассеяния. Результат суммируется.

Аналогичный алгоритм можно применить и для рельефа. Отраженный от рельефа луч свет также претерпевает рассеяния в атмосфере. Чем дальше находится точка рельефа, тем сильнее свет рассеивается. Поэтому дальние участки рельефа у горизонта кажутся находящимися в голубоватой дымке. Цвет неба плавно переходи в цвет поверхности (рис. 2.6).

Эту же идею можно применить к рендерингу объектов на рельефе, например, удаленных деревьев и домов, которые также скрываются в голубоватой дымке.

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

Традиционно при визуализации объектов под поверхностью рельефа не используется виртуальный глобус. Показывается изолированный участок рельефа, его можно «облететь» со всех сторон, можно посмотреть сбоку или сделать сечение (рис. 2.7).

Поэтому визуализация объектов под поверхностью глобуса — новая задача, и здесь необходимо разработать новый подход. Очевидная идея — сделать поверхность рельефа полупрозрачной. Однако при простом включении прозрачности возникает ряд графических артефактов (рис. 2.8, 2.9, 2.10).

2.2.1. Анализ проблемы Рассмотрим в деталях традиционный подход к рендерингу трехмерной сцены с виртуальным глобусом с включеной полупрозрачностью, основанный на спецификации OpenGL [71]. Вначале рендерятся непрозрачные подземные объекты. Далее рендерится рельеф. Для каждого фрагмента рельефа вычисляется цвет RGB на основе текстуры и с учетом освещения и задается значение прозрачности А (альфа-канал). Если фрагмент прошел тест глубины, то его цвет смешивается с цветом пикселя в буфере цвета, который принадлежит подземному объекту.

Спецификация OpenGL определяет несколько формул для смешивания.

Наиболее часто используется следующая:

где — цвет входящего фрагмента, — цвет пикселя в буфере цвета, — значение прозрачности входящего фрагмента. Итоговый цвет записывается в буфер цвета.

В случае виртуального глобуса это приводит к следующим эффектам.

Если подземные объекты не локализованы в одной точке, а распределены по всему глобусу, то объекты у дальней поверхности глобуса становятся видны наравне с объектами у ближней поверхности глобуса (рис. 2.8). Это приводит к визуальной «каше» и путанице.

Если используется атмосфера, то она обычно рендерится до глобуса.

Поэтому при включении прозрачности атмосфера также начинает просвечивать сквозь рельеф. В зависимости от алгоритма визуальный эффект может быть разным. Например, как на рис. 2.9.

«Юбки» тайлов также начинают просвечивать. Изображение на экране становится чувствительном к порядку отрисовки тайлов и к повороту камеры относительно тайла: при определенных углах поворота камеры сквозь гористые участки рельефа начинают просвечивать другие части рельефа (рис. 2.10).

Часть этих эффектов может быть сравнительно легко устранена, но при этом могут возникнуть новые графические артефакты. Например, «юбки» тайлов можно вообще отключить. Но тогда станут видны щели между тайлами. Или атмосферу можно рендерить после глобуса, а не до. Но тогда придется сильно разносить ближнюю и дальнюю плоскости отсечения объема видимости. Это приведет к падению точности буфера глубины, а следовательно к эффекту мерцания (z-fighting).

Существуют универстальные алгоритмы корректного учета прозрачности, основанные рендеринге в несколько проходов, такие как depth peeling [82] или depth partition. Однако они устраняют не все графические артефакты.

В целом традиционный подход можно изобразить на рисунке 2.11.

полупрозрачного рельефа виртуального глобуса. Этот способ должен удовлетворять следующим условиям:

не должны просвечивать объекты с дальней стороны глобуса;

одни элементы рельефа не должны просвечивать сквозь другие;

способ не должен влиять на рендеринг самих подземных объектов (не должен требовать изменения алгоритма рендеринга подземных объектов);

атмосфера, а также другие космические объекты (Солнце, Луна, звезды) не должны просвечивать через глобус;

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

Кратко поясним последний пункт. Глубина пикселя вычисляется на основе ближней и дальней плоскостей отсечения объема видимости и приводится к диапазону [-1; 1]. В OpenGL используется следующая формула [69, 83]:

где n — расстояние от камеры до ближней плоскости отсечения, f — расстояние до дальней плоскости отсечения z — расстояние до искомого пикселя. График зависимости глубины от расстояния изображен на рисунке 2.12.

Видно, что разрешение буфера глубины падает с удалением от камеры.

Половина диапазона значений буфера приходится на область вблизи ближней плоскости отсечения.

Это приводит к тому, что для двух далеких полигонов становится невозможным корректное сравнение глубин. Возникает мерцание, которое называется z-fighting: на одном кадре может быть виден пиксель одного полигона, а на следующем кадре — пиксель другого полигона.

Рис. 2.12. Зависимость глубины от расстояния до камеры Это проблема возникает в любых приложениях с 3D графикой [84].

Чтобы избежать такой «борьбы», рекомендуется разброс f-n делать как можно меньше. При просмотре глобуса с атмосферой из космоса значения f и n будут определятся самим глобусом. Но при приближении камеры к поверхности на значение f будет оказывать сильное влияние атмосфера.

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

1. Вначале рендерится концентрическая сфера внутри глобуса с радиусом R и цветом C. Использование сферы позволяет скрыть подземные объекты с дальней стороны глобуса. Цвет сферы можно выбрать под цвет фона, например, черный. Радиус выбирается в зависимости от подземных объектов, которые нужно показать или скрыть. Для большинства задач подходит км, где — экваториальный радиус Земли. 1000км выбрано, потому что самые глубокие землетрясения были зарегистрированы на глубние 700км.

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

Можно скрывать объекты с учетом горизонта [85]. Но концентрическая сфера внутри глобуса — один из самых простых и универсальных способов.

2. Далее рендерятся сами подземные объекты обычным способом.

Объекты с противоположной стороны глобуса не проходят тест глубины и отбрасываются.

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

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

5. Далее необходимо рендерить звезды, Солнце, Луну и атмосферу. Если включить тест глубины для проверки перекрытия с глобусом, то сильно увеличится разброс между дальней и ближней плоскостями отсечения. Поэтому необходимо использовать буфер трафарета (stencil buffer) [71]. Буфер трафарета позволяет записывать туда значения при наступлении определенных условий, а также выполнять тест трафарета перед записью цвета в буфер цвета.

Буфер трафарета позволяет сформировать маску рельефа во время второго прохода рендеринга рельефа. Для этого в буфер производится запись значения 1.

Тест трафарета для рельефа не производится.

Далее рендерятся звезды, Солнце, Луна и атмосфера. Они рендерятся по очереди в указанном порядке, но общая логика рендеринга одинакова. Тест глубины отключается. Вместо этого включется тест трафарета. Цвет фрагмента атмосферы записывается в буфер цвета только при условии, что значение в буфере трафарета не равно 1. Значение в буфере не изменяется.

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

Вся последовательность шагов изображена на рисунке 2.13.

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

Отдельно встает задача выбора формулы смешивания цвета подземных объектов и цвета рельефа. Использование формулы (2.5) приводит к следующему:

при выставлении значения альфа-канала в 1 (непрозрачность) подземные объекты становятся не видны;

при выставлении значения альфа-канала в 0 (полная прозрачность) рельеф становится не виден. Это затрудняет управление виртуальной камерой;

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

Рис. 2.13. Порядок рендеринга для полупрозрачного рельефа Предлагается использовать немного другую формулу:

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

Рассмотрим плюсы и минусы предложенного алгоритма. Минусы:

необходимость рендерить рельеф 2 раза и необходимость выделения памяти для буфера трафарета. Это приводит снижению производительности приложения.

Плюсы: отсутствуют графические артефакты, упомянутые в начале параграфа.

атмосферой, основанный на логарифмическом буфере глубины [69]. Идея следующая: вместо формулы (2.6) использовать логарифм для вычисления глубины в зависимости от расстояния до камеры:

где C — калибровочный параметр.

Это полностью решает проблему точности буфера глубины и устраняет мерцание (z-fighting), что позволяет спокойно рендерить атмосферу в общем пространстве с глобусом с включенным тестом глубины без применения буфера трафарета.

Однако у такого подхода есть недостатки. Реализация формулы (2.8) возможна только на уровне шейдеров, а значит пропадает возможность использования фиксированного графического конвейера для отдельных объектов.

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

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

Существующие алгоритмы рендеринга рельефа рассчитаны, что просмотр будет осуществляться сверху. Поэтому под рельеф убирают вспомогательную геометрию — «юбки» тайлов, отключают рендеринг обратных граней полигонов.

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

Рис. 2.14. Графические артефакты при спуске под поверхность рельефа Поэтому при спуске камеры под землю необходимо изменить параметры визуализации базового алгоритма, а именно: переключение режима отбрасывания граней с обратных на лицевые, отключение рендеринга юбок тайлов и атмосферы.

Это обеспечивает минимально приемлемый подземный вид (рис. 2.15). Для примера на рисунке изображен подземный объект — 3D-модель канала гейзера.

Традиционный подход к рендерингу рельефа предполагает отбрасывание тайлов, когда они выходят за линию горизонта [86]. Базовая идея алгоритма основана на формуле:

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

Однако при спуске под землю такая проверка приводит к тому, что виден лишь небольшой участок рельефа вблизи камеры (рис. 2.15). При отключении проверки на выход тайлов за горизонт становится видна изнанка глобуса (рис.

2.16). Но при этом возникает другая проблема: мерцание отдаленных тайлов (zfighting) из-за большого разброса значений ближней и дальней плоскостей отсечения. По мере спуска дальше под землю ближняя плоскость отсечения отодвигается и эффект мерцания пропадает.

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

Следующий спорный момент — это прозрачность поверхности. Здесь возможны три альтернативы:

сделать рельеф полностью непрозрачным. Тогда будут видны только подземные объекты;

сделать рельеф прозрачным для всех объектов. Можно будет из-под земли видеть надземные объекты: дома, машины, деревья;

сделать рельеф прозрачным только для некоторых объектов: например, которые частично находятся под землей, частично над землей.

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

Рис. 2.16. Вид из-под земли с отключенной проверкой на выход тайлов за горизонт Выбор конкретного варианта должен осуществляться в каждом проекте индивидуально и зависит от поставленных задач.

Подземные объекты могут иметь разную природу и визуализироваться с разными целями. Рассмотрим, какие бывают типы подземных объектов, и применимость к ним предложенного способа визуализации глобуса.

1. Облака точек. Это могут быть очаги землетрясений или результаты точечных бурений для изучения свойств земли. Точки хорошо сочетаются с предложенным способом. Они практически не оказывают влияния друг на друга (не «загораживают» другие точки). Облако целиком можно рассмотреть с разных ракурсов или путем перемещения камеры внутри облака. Подробнее визуализация облаков точек рассмотрена в параграфе 3.1.

2. Отдельные объекты: искусственные (шахты, скважины, тоннели) или природные (пещеры, разломы). Они могут быть заданы в виде своих ограничивающих поверхностей и визуализироваться как самые обычные полигональные поверхности (рис. 2.15). Для подчеркивания формы объекта необходимо применять освещение. Но поскольку солнечное освещение под землей не действует, то рекомендуется совместить источник света с виртуальной камерой.

3. Объемные данные — трехмерная матрица значений. Они могут быть получены методом сейсмотомографии или интерполяцией других данных. В параграфе 3.2 предложен алгоритм рендеринга таких данных на глобусе, основанный на прямом объемном рендеринге. При этом доступны все возможности прямого объемного рендеринга: выделение изоповерхностей, назначение прозрачности и цвета в зависимости от значения параметра в ячейке.

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

Возможные варианты решения для слоистых данных:

регулировка коэффициента полупрозрачности для каждого слоя в отдельности;

«вырез» участка данных и участка рельефа для просмотра среза слоев.

Здесь необходимо разработать алгоритм динамического перемещения выреза глобуса и динамического контроля его размеров, чтобы обеспечить удобную работу с данными.

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

В главе рассмотрены основные способы и варианты визуализации глобуса, предложен новый способ визуализации глобуса, сделаны следующие выводы:

1. В зависимости от потребностей отрасли науки, в которой используется виртуальный глобус, рельеф можно отображать на экране по-разному:

модифицировать саму геометрию (растяжение по высоте), раскрашивать с помощью палитры цветов (по высоте, по крутизне склона рельефа и т.д.), смешивать несколько текстур, модифицировать цвет текстуры (учитывать освещение, атмосферное рассеяние).

В геофизике и геологии существует необходимость просмотра подземных объектов и 3D-данных. Визуализация таких данных на глобусе — является новой задачей. Если включить полупрозрачность для поверхности глобуса, то при традиционном подходе возникает ряд графических артефактов.

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

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

3. Разработанный способ визуализации позволяет просматривать и визуально анализировать подземные 3D-данные: очаги землетрясений, подземные структуры, скважины, слои и т.д. Способ позволяет просматривать данные как сверху, сквозь поверхность рельефа, так и из-под земли.

ГЛАВА 3. Визуализация данных на виртуальном глобусе 3.1.1. Обзор современного состояния дел Облака точек — один из самых простых типов данных. Необходимость визуализации таких данных на виртуальном глобусе возникает в разных областях, однако при этом возникает ряд технических сложностей.

Один из примеров точек на глобусе — это гипоцентры землетрясений, которые хранятся в виде каталогов. Гипоцентр — это центральная точка очага землетрясения, которая находится в глубине земли. Проекция гипоцентра на поверхность Земли называется эпицентром. Каталоги гипоцентров свободно доступны на специализированных сайтах, например, на сайте Геологической службы США (USGS) [87], на сайте Камчатского филиала Геофизической службы РАН [88], и др. Каталог землетрясений для всей Земли с 1900 года включает около 1 млн. событий.

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

Другой пример источника облаков точек — лазерное сканирование.

Лазерное сканирование — это современный способ для быстрого создания высокоточных 3D-моделей зданий и любых объектов в виде облаков точек [89].

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

Процесс обработки состоит из 2х этапов: сначала все облака для одного объекта сшиваются в единое облако точек (рис. 3.1), затем по этому облаку точек восстанавливается полигональная 3D-модель. Первый этап проходит быстро и может быть автоматизирован. Однаков второй этап довольно трудоёмкий, требует ручной работы и может затянуться на месяцы.

Поэтому вместо того, чтобы создавать полигональную 3D-модель объекта, можно работать с точечной 3D-моделью. Облако точек для одного здания может содержать 50-100 миллионов точек и занимать в памяти несколько гигабайт. Это делает невозможным интерактивный рендеринг полного облака точек.

Необходимо использовать уровни детализации.

Исследования в области обработки и визуализации облаков точек ведутся много лет. Значительные усилия тратятся на развитие методов и разработку библиотек для реконструкции полигональных поверхностей по облакам точек [90].

Кроме того, существуют методы визуализации непосредственно самих облаков точек. Обзор таких методов дан в статье [91]. Они различаются как разбиением облака точек на уровни детализации, так и способами рендеринга самих точек. Существуют три основных способа:

визуализация облаков точек в виде простого точечного примитива OpenGL (GL_POINT). Они изображаются на экране в виде либо квадрата, либо окружности заданного размера. В вершинном шейдере можно задавать размер индивидуально для каждой вершины;

визуализация облаков точек в виде спрайта — четырехугольника, который всегда повернут к камере. Это более медленный, но более гибкий вариант, т.к. позволяет использовать текстуру с прозрачностью;

визуализация в виде одного или нескольких треугольников фиксировано расположенных в пространстве, перпендикулярно вектору нормали. Они называются splats («нашлепки»). Это самый медленный, но наиболее гибкий вариант, который обеспечивает лучшее визуальное качество.

Спрайты и треугольники — это попытка скрыть промежутки между точками, чтобы 3D-модель визуально выглядела целостной, без дыр [92, 93]. Есть и другие подходы к этой проблеме, основанные на постпроцессинге [94].

Поскольку размеры облаков точек растут, то появляются методы по их сжатому хранению и распаковке на видеокарте [95, 96].

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

Существуют методы для этого [97].

В работе [46] предлагается отказаться от построения полигональных моделей зданий и использовать облака точек для создания 3D-моделей целых городов.

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

Точки удобны тем, что они рендерятся очень быстро, т.к. это базовый геометрический примитив. Современные видеокарты позволяют рендерить около 10 миллионов точек каждый кадр с интерактивной частотой кадров. Поэтому нет необходимости проверять индивидуальные точки на попадание в объем видимости.

На вызов каждой операции отрисовки тратится небольшой время (накладные расходы). Чтобы минимизировать суммарное время, рекомендуется объединять точки из разных облаков в единый массив, для отрисовки одной командой.

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

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

3.1.2. Алгоритм визуализации облаков точек Была поставлена задача разработать алгоритм для интерактивного рендеринга больших облаков точек (размером больше 100 млн. точек) на виртуальном глобусе и динамической фильтрации их по заданным параметрам.

Можно заметить, что при разрешении 1920х1080 максимальное число видимых точек на экране составляет около 2 млн. Поэтому при просмотре облака с большого расстояния нет необходимости отображать все 100 млн. точек целиком.

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

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

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

детализации. В памяти облако точек, разбитое на уровни детализации, будет заниматься столько же места, сколько и целое.

Генерация дерева фрагментов В начале необходимо сгенерировать дерево фрагментов: разбить всё облако точек на фрагменты и расчитать расстояние видимости для каждого фрагмента.

Алгоритм основан на рекурсивном разбиении пространства и хранении данных в древовидной структуре данных. Древовидная структура данных включает квадро- и октодеревья. В случае квадродерева вся область рекурсивно разбивается на 4 ячейки. В случае октодерева — на 8 ячеек (рис. 3.2).

Далее перечислены шаги алгоритма.

0. Предварительный этап. Если облаков точек несколько, то их всех необходимо объединить в единое облако, и преобразовать координаты из локальных систем координат в географическую систему координат.

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

2. Начальное построение дерева. Каждый узел дерева имеет следующие атрибуты: соответствующий этому узлу ограничивающий бокс, массив вершин этого узла, массив цветов (и возможно массивы интенсивностей и других вершинных атрибутов) и ссылки на дочерние узлы.

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

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

В методе добавитьТочку() происходит помещение точки в локальный массив вершин этого узла до тех пор, пока их количество не превысит значение параметра.

ограничивающего бокса и построение соответствующих дочерних подузлов. Все имеющиеся в данном узле точки распределяются по дочерним узлам, вызывая метод добавитьТочку() у каждого из дочерних подузлов.

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

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

В конце этого этапа, когда все точки из полного облака будут обработаны, получится древовидная структура. Точки будут распределены по листовым узлам этого дерева.

3. Перераспределение точек в дереве. В начале этого этапа все точки распределены по узлам максимального уровня детализации M. Теперь нужно заполнить точками другие уровни детализации. При этом точки не должны дублироваться, т.е. точки будут браться из дочерних узлов и подниматься вверх в иерархии.

Рекурсивно для всех промежуточных узлов, начиная с узлов уровня детализации М-1 и вверх по дереву должна быть выполнена следующая операция.

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

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

В результате этого этапа корневой узел будет содержать точек, каждый 4. Генерация геометрии. На основе каждого узла дерева создается объект, который будет отвечать за визуализацию данного фрагмента облака точек.

При визуализации глобального облака точек возможна следующая ситуация: при попытке приблизиться к точке или к группе рядом стоящих точек возникает дрожание (jittering). Как упоминалось в параграфе 1.3.4, это связано с использованием типа данных с одинарной точностью (float). Числа с плавающей точкой имеют фиксированную относительную точность, но изменяющуюся абсолютную точность. Точность обратно пропорциональная расстоянию от начала координат (центра глобуса). На поверхности глобуса абсолютная точность составляет около 1м. Чем выше от поверхности, тем ниже точность.



Pages:     || 2 | 3 |


Похожие работы:

«Буреломова Анастасия Сергеевна СОЦИАЛЬНО-ПСИХОЛОГИЧЕСКИЕ ОСОБЕННОСТИ ЦЕННОСТЕЙ СОВРЕМЕННЫХ ПОДРОСТКОВ 19.00.05 – Социальная психология (психологические наук и) Диссертация на соискание ученой степени кандидата психологических наук Научный руководитель : доктор психологических наук, профессор, академик РАО Собкин В.С. Москва – 2013 СОДЕРЖАНИЕ ВВЕДЕНИЕ Глава 1. Социально-психологические особенности ценностных...»

«МАМЕДОВ Заур Вагиф оглы РЕГИОНАЛЬНЫЙ ФАКТОР ВО ВНЕШНЕПОЛИТИЧЕСКОЙ ДЕЯТЕЛЬНОСТИ СОВРЕМЕННОГО АЗЕРБАЙДЖАНА 23.00.04 Политические проблемы международных отношений, глобального и регионального развития Диссертация на соискание ученой степени кандидата политических наук Научный...»

«Снегирев Андрей Александрович МОРФОФУНКЦИОНАЛЬНЫЕ ОСОБЕННОСТИ МОЛОЧНОЙ ЖЕЛЕЗЫ И ЯИЧНИКОВ НА РАЗЛИЧНЫХ ЭТАПАХ ЛЕЧЕНИЯ РАКА МОЛОЧНОЙ ЖЕЛЕЗЫ Специальность 14.03.02 – Патологическая анатомия Диссертация на соискание ученой степени кандидата медицинских наук Научный руководитель : доктор медицинских наук,...»

«Доржиева Эржена Лхамажаповна ФОРМИРОВАНИЕ И РЕАЛИЗАЦИЯ ИННОВАЦИОННОЙ СТРАТЕГИИ РАЗВИТИЯ ПРОМЫШЛЕННЫХ КОРПОРАЦИЙ Специальность 08.00.05 – экономика и управление народным хозяйством (управление инновациями) ДИССЕРТАЦИЯ на соискание ученой степени кандидата экономических наук Научный руководитель : д-р экон. наук, проф....»

«ШАТОВ МИХАИЛ МИХАЙЛОВИЧ ОПРЕДЕЛЕНИЕ ВЕРОЯТНОСТИ ОТКАЗА, ДОСТИЖИМОЙ НА ОСНОВЕ РЕГЛАМЕНТАЦИИ ЗАПАСОВ ПРОЧНОСТИ Специальность 01.02.06 – Динамика, прочность машин, приборов и аппаратуры Диссертация на соискание ученой степени кандидата технических наук Научный руководитель – доктор...»

«Шкрыгунов Константин Игоревич Эффективность использования тыквенного жмыха и фуза в кормлении цыплят-бройлеров 06.02.08 кормопроизводство, кормление сельскохозяйственных животных и технология кормов ДИССЕРТАЦИЯ на соискание ученой степени кандидата сельскохозяйственных наук Научный руководитель : доктор сельскохозяйственных...»

«Сушко Ольга Петровна Прогнозирование ценовой динамики на целлюлозно-бумажную продукцию российских и мировых производителей Специальность 08.00.05. – Экономика и управление народным хозяйством: (экономика, организация и управление предприятиями, отраслями, комплексами - промышленность) Диссертация на соискание ученой степени кандидата экономических наук Научный руководитель – доктор экономических наук,...»

«ПОЛЯКОВ Владимир Николаевич МОДЕЛИ АЛГОРИТМИЧЕСКОГО ТИПА ДЛЯ РАСПОЗНАВАНИЯ СЕМАНТИЧЕСКИХ СВЯЗЕЙ В СИСТЕМАХ МАШИННОЙ ОБРАБОТКИ ЕСТЕСТВЕННОГО ЯЗЫКА Специальность 05.13.16. - применение вычислительной техники, математических методов и математического моделирования в научных исследованиях Диссертация на соискание ученой степени кандидата технических наук Научный руководитель : академик М.А.И, доктор...»

«САЛКИНА Ольга Анатольевна ВАКЦИНОПРОФИЛАКТИКА ПНЕВМОКОККОВОЙ ИНФЕКЦИИ У ДЕТЕЙ ГРУПП РИСКА 14.03.09 – клиническая иммунология, аллергология Диссертация на соискание ученой степени кандидата медицинских наук Научный руководитель : доктор медицинских наук Снегова Надежда Федоровна Москва - 2012 2 ОГЛАВЛЕНИЕ ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ.. ВВЕДЕНИЕ.. ГЛАВА 1. ЛИТЕРАТУРНЫЙ ОБЗОР. ПНЕВМОКОККОВАЯ ИНФЕКЦИЯ: ЭТИОЛОГИЯ, ПРОБЛЕМЫ, СОВРЕМЕННЫЕ...»

«Шонус Дарья Харлампиевна КЛИНИКО-ДОЗИМЕТРИЧЕСКИЕ АСПЕКТЫ ПОСЛЕОПЕРАЦИОННОЙ ХИМИОЛУЧЕВОЙ ТЕРАПИИ МЕДУЛЛОБАСТОМЫ У ДЕТЕЙ И ПОДРОСТКОВ 14.01.13 - лучевая диагностика, лучевая терапия Диссертация на соискание ученой степени кандидата медицинских наук Научный рукововодитель: д.м.н., профессор О.И. Щербенко Москва - 2014 ОГЛАВЛЕНИЕ. Стр...»

«КЛЮЧНИКОВ Александр Валерьевич ПОСТРОЕНИЕ УЧЕБНОГО ПРОЦЕССА ПО ПРЕДМЕТУ ФИЗИЧЕСКАЯ КУЛЬТУРА КУРСАНТОВ ИНЖЕНЕРНЫХ ИНСТИТУТОВ МИНИСТЕРСТВА ПО ЧРЕЗВЫЧАЙНЫМ СИТУАЦИЯМ РЕСПУБЛИКИ БЕЛАРУСЬ 13.00.04. – Теория и методика физического воспитания, спортивной тренировки, оздоровительной и адаптивной физической культуры Диссертация на соискание ученой степени кандидата педагогических наук...»

«Симон Евгения Игоревна РАЗРАБОТКА МЕТОДОВ ИНТЕРПРЕТАЦИИ ДАННЫХ ПРИ ЗОНДИРОВАНИЯХ ТРЕХМЕРНОЙ СРЕДЫ НЕСТАЦИОНАРНЫМ ЭЛЕКТРОМАГНИТНЫМ ПОЛЕМ 05.13.18 – Математическое моделирование, численные методы и комплексы программ Диссертация на соискание ученой степени кандидата технических наук Научный руководитель : д.т.н., профессор...»

«ВОРОНЦОВА Надежда Александровна СОНОЭЛАСТОГРАФИЯ В ДИАГНОСТИКЕ УРГЕНТНЫХ СОСТОЯНИЙ В ГИНЕКОЛОГИИ 14. 01. 13 - Лучевая диагностика, лучевая терапия ДИССЕРТАЦИЯ на соискание ученой степени кандидата медицинских наук Научный руководитель : доктор медицинских наук, профессор ГАЖОНОВА Вероника Евгеньевна Москва – ОГЛАВЛЕНИЕ стр. ВВЕДЕНИЕ _ ГЛАВА 1. Современные методы ультразвуковой диагностики неотложных...»

«СЕМИДОЦКАЯ ИНГА ЮРЬЕВНА ОЦЕНКА КАРДИОЦЕРЕБРАЛЬНОЙ ГЕМОДИНАМИКИ И ЭНДОТЕЛИАЛЬНОЙ ДИСФУНКЦИИ ПРИ ИШЕМИЧЕСКОМ ИНСУЛЬТЕ В УСЛОВИЯХ РЕГИОНАЛЬНОГО СОСУДИСТОГО ЦЕНТРА И САНАТОРИЯ 14.01.05 – кардиология Диссертация на соискание ученой степени кандидата медицинских наук Научный руководитель доктор...»

«из ФОНДОВ РОССИЙСКОЙ ГОСУДАРСТВЕННОЙ БИБЛИОТЕКИ Урванцева, Марина Леонидовна 1. ОсоБенности проектирования одежды для горнык видов спорта 1.1. Российская государственная Библиотека diss.rsl.ru 2005 Урванцева, Марина Леонидовна ОсоБенности проектирования одежды для горнык видов спорта [Электронный ресурс] Дис.. канд. теки. наук : 05.19.04.-М. РГБ, 2005 (Из фондов Российской Государственной Библиотеки) Швейное производство — Пошив отдельный видов швейнык изделий — Одежда специального назначения...»

«УТЕУБАЕВ МАРАТ ТОЛЕУТЕМИРОВИЧ Языковая проблема в казахстанском образовательном пространстве: история и перспективы 07.00.02 – отечественная история (История Республики Казахстан) Диссертация на соискание ученой степени кандидата исторических наук Научный руководитель доктор исторических наук, профессор Дукенбаева З.О. Республика Казахстан Павлодар, СОДЕРЖАНИЕ ВВЕДЕНИЕ.. ВОЗНИКНОВЕНИЕ ЯЗЫКОВОЙ ПРОБЛЕМЫ:...»

«Вайс Андрей Андреевич НАУЧНЫЕ ОСНОВЫ ОЦЕНКИ ГОРИЗОНТАЛЬНОЙ СТРУКТУРЫ ДРЕВОСТОЕВ ДЛЯ ПОВЫШЕНИЯ ИХ УСТОЙЧИВОСТИ И ПРОДУКТИВНОСТИ (НА ПРИМЕРЕ НАСАЖДЕНИЙ ЗАПАДНОЙ И ВОСТОЧНОЙ СИБИРИ) 06.03.02 – лесоведение, лесоводство, лесоустройство и лесная таксация Диссертация на соискание ученой степени доктора сельскохозяйственных наук Красноярск - Оглавление Введение.. 1...»

«Джаксумбаева Ольга Ильинична ПОДСИСТЕМА ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ ДЛЯ ПЛАНИРОВАНИЯ СОЦИАЛЬНЫХ ВЫПЛАТ ИНФОРМАЦИОННОЙ СИСТЕМЫ ТИПА ЭЛЕКТРОННЫЙ СОЦИАЛЬНЫЙ РЕГИСТР НАСЕЛЕНИЯ Специальность 08.00.13 – Математические и инструментальные методы экономики Диссертация на соискание ученой степени кандидата экономических наук Научный руководитель : Д.э.н., доцент Халин Владимир Георгиевич 2 Санкт – Петербург - 2014 Оглавление ВВЕДЕНИЕ ГЛАВА...»

«УДК 81'33:81'32 ЧУХАРЕВ Евгений Михайлович ЛИНГВОСТАТИСТИЧЕСКИЕ КОРРЕЛЯТЫ СПОНТАННОСТИ В КОМПЬЮТЕРНО-ОПОСРЕДОВАННОМ ДИСКУРСЕ (НА МАТЕРИАЛЕ РУССКОЯЗЫЧНОГО ЧАТА) Специальность: 10.02.21 — прикладная и математическая лингвистика ДИССЕРТАЦИЯ на соискание учёной степени кандидата филологических наук Научный руководитель —...»

«Князева Анна Сергеевна РАЗРАБОТКА И ПРОМЫШЛЕННОЕ ПРИМЕНЕНИЕ БЕНТОНИТОВЫХ ВОДНО-ГЛИНИСТЫХ СУСПЕНЗИЙ УЛУЧШЕННОЙ ТЕХНОЛОГИЧНОСТИ ДЛЯ ПРОИЗВОДСТВА СТАЛЬНОГО ЛИТЬЯ 05.16.04 – Литейное производство Диссертация на соискание ученой степени кандидата технических наук Научный руководитель доктор технических наук, профессор Н. А. Кидалов Нижний Новгород – 2014 2 СОДЕРЖАНИЕ Введение.. 1. Литературный обзор.. 1.1 Характеристика...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.