Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

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

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

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Бобков Александр Евгеньевич. Интерактивная визуализация 3D-данных на виртуальном глобусе в стереоскопических системах: диссертация ... кандидата технических наук: 05.01.01 / Бобков Александр Евгеньевич;[Место защиты: Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Нижегородский государственный архитектурно-строительный университет"].- Нижний, 2013.- 151 с.

Содержание к диссертации

Введение

Глава 1. Методы построения и визуализации виртуальных глобусов 9

1.1. Прошлое и настоящее виртуальных глобусов 9

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

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

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

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

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

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

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

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

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

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

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

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

Глава 4. Описание программного комплекса 84

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

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

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

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

Заключение 115

Благодарности 117

Словарь терминов 118

Список литературы 119

Приложение а. Источники геоданных 131

Приложение б. Шейдеры для объемной визуализации 134

Приложение в. Расчет стереоэффекта 137

Приложение г. Аппаратное обеспечение 143

Введение к работе

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Результаты работы демонстрируются посетителям Постоянно действующей выставки достижений РАН. В августе 2012 результаты работы были представлены участникам 33-й Генеральной ассамблеи Европейской сейсмологической комиссии и были высоко оценены ими.

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

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

Структура и объем диссертации

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

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

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

Функционал плагина для браузера повторяет функционал основной версии. Возможны создание, изменение и визуализация векторных данных: меток, ломаных линий, полигонов, 3D-моделей, аннотаций, наложений, управление камерой, запись и воспроизведение виртуальных туров. В основной версии все эти действия пользователь может выполнять мышкой. В браузерной версии эти действия могут быть автоматизированы программным образом. Можно загружать данные из разных источников, анимировать их, реагировать на действия пользователя. Реализовать принципиально новый функционал API не позволяет. Поэтому возможное применение плагина Google Earth сильно ограничено. Первая версия 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; использование локальных данных; экспорт текстур и карт высот в виде отдельных GeoTIFF-файлов; чтение векторных форматов файлов (KML, Shapefile); визуализация векторных данных (точки, линии, полигоны); визуализация 3D-моделей и аннотаций. Графический интерфейс пользователя реализуется через библиотеки AWT и Swing. Благодаря открытости исходного кода, все эти компоненты можно дополнять, расширять и модифицировать под нужны конкретной задачи. 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]. Существует множество открытых стандартов для хранения и передачи геопространственных данных. Стандартизацией занимается Открытый геопространственный консорциум, основанный в 1994 году. Все стандарты поддерживаются множеством приложений и библиотек, как проприетарных, так и свободных. Web Map Service (WMS) — стандартный протокол для получения растровых изображений через интернет [54]. Был опубликован в 1999 году. Работает поверх протокола HTTP. Изображения могут генерироваться динамически на сервере, либо браться из кэша. WMS поддерживает 2 типа запросов: GetCapabilities для получения параметров WMS-сервера и GetMap для получения изображения с заданными границами, размерами и системой координат. Недостатком WMS является то, что размеры запрашиваемого изображения могут быть любыми. Это затрудняет кэширование результатов и приводит к необходимости при каждом запросе генерировать выходное изображение заново. Предложено несколько модификаций для решения этого. Например, WMS-C и Tiled Web Map Service, которые допускают только запросы изображений с определенными границам.

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

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

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

Спецификация OpenGL определяет несколько формул для смешивания. Наиболее часто используется следующая: , (2.5) где — цвет входящего фрагмента, — цвет пикселя в буфере цвета, — значение прозрачности входящего фрагмента. Итоговый цвет записывается в буфер цвета. В случае виртуального глобуса это приводит к следующим эффектам. Если подземные объекты не локализованы в одной точке, а распределены по всему глобусу, то объекты у дальней поверхности глобуса становятся видны наравне с объектами у ближней поверхности глобуса (рис. 2.8). Это приводит к визуальной «каше» и путанице.

Если используется атмосфера, то она обычно рендерится до глобуса. Поэтому при включении прозрачности атмосфера также начинает просвечивать сквозь рельеф. В зависимости от алгоритма визуальный эффект может быть разным. Например, как на рис. 2.9. «Юбки» тайлов также начинают просвечивать. Изображение на экране становится чувствительном к порядку отрисовки тайлов и к повороту камеры относительно тайла: при определенных углах поворота камеры сквозь гористые участки рельефа начинают просвечивать другие части рельефа (рис. 2.10). Часть этих эффектов может быть сравнительно легко устранена, но при этом могут возникнуть новые графические артефакты. Например, «юбки» тайлов можно вообще отключить. Но тогда станут видны щели между тайлами. Или атмосферу можно рендерить после глобуса, а не до. Но тогда придется сильно разносить ближнюю и дальнюю плоскости отсечения объема видимости. Это приведет к падению точности буфера глубины, а следовательно к эффекту мерцания (z-fighting). Существуют универстальные алгоритмы корректного учета прозрачности, основанные рендеринге в несколько проходов, такие как depth peeling [82] или depth partition. Однако они устраняют не все графические артефакты.

Поэтому необходим новый способ качественного рендеринга полупрозрачного рельефа виртуального глобуса. Этот способ должен удовлетворять следующим условиям: не должны просвечивать объекты с дальней стороны глобуса; одни элементы рельефа не должны просвечивать сквозь другие; способ не должен влиять на рендеринг самих подземных объектов (не должен требовать изменения алгоритма рендеринга подземных объектов); атмосфера, а также другие космические объекты (Солнце, Луна, звезды) не должны просвечивать через глобус; рендеринг атмосферы не должен приводить к большому разбросу ближней и дальней плоскостей отсечения. Кратко поясним последний пункт. Глубина пикселя вычисляется на основе ближней и дальней плоскостей отсечения объема видимости и приводится к диапазону [-1; 1]. В OpenGL используется следующая формула [69, 83]: (2.6) где — расстояние от камеры до ближней плоскости отсечения, — расстояние до дальней плоскости отсечения z — расстояние до искомого пикселя. График зависимости глубины от расстояния изображен на рисунке 2.12. Видно, что разрешение буфера глубины падает с удалением от камеры. Половина диапазона значений буфера приходится на область вблизи ближней плоскости отсечения. Это приводит к тому, что для двух далеких полигонов становится невозможным корректное сравнение глубин. Возникает мерцание, которое называется z-fighting: на одном кадре может быть виден пиксель одного полигона, а на следующем кадре — пиксель другого полигона.

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

Предлагается способ визуализации глобуса, который устраняет графические артефакты с помощью двухпроходного рендеринга: 1. Вначале рендерится концентрическая сфера внутри глобуса с радиусом R и цветом C. Использование сферы позволяет скрыть подземные объекты с дальней стороны глобуса. Цвет сферы можно выбрать под цвет фона, например, черный. Радиус выбирается в зависимости от подземных объектов, которые нужно показать или скрыть. Для большинства задач подходит км, где — экваториальный радиус Земли. 1000км выбрано, потому что самые глубокие землетрясения были зарегистрированы на глубние 700км. Для разных подземных объектов можно придумать собственные алгоритмы для контроля видимости. Можно скрывать объекты по расстоянию от камеры. Можно скрывать объекты с учетом горизонта [85]. Но концентрическая сфера внутри глобуса — один из самых простых и универсальных способов. 2. Далее рендерятся сами подземные объекты обычным способом. Объекты с противоположной стороны глобуса не проходят тест глубины и отбрасываются. 3. Далее в 2 прохода рендерится рельеф. При первом проходе отключается запись в буфер цвета, и происходит заполнение буфера глубины. Значение в буфере глубины для каждого пикселя соответствует ближайшему к камере фрагменту рельефа. 4. При втором проходе происходит запись в буфер цвета при условии совпадения глубины фрагмента со значением в буфере глубины. Это гарантирует, что в буфер цвета попадут только ближайшие к камере фрагменты рельефа. Перед записью в буфер цвета происходит смешивание цветов с уже имеющимися там значениями, которые относятся к подземным объектам.

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

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

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

Землетрясения создают продольные и поперечные волны, которые обозначают буквами P и S соответственно. Скорости распространения сейсмических волн различны и зависят от модуля упругости и плотности среды. Это позволяет идентифицировать некоторые характеристики земной коры на пути следования сейсмических волн. Результатом обработки множества данных является трехмерная матрица (воксельный массив), в ячейках которой записано значение отношения скоростей P-волн и S-волн в данной точке. Каждая ячейка матрицы (воксель) имеет координаты: долгота, широта, глубина.

Существует 2 основных метода для рендеринга объемных данных: генерация полигональной сетки по объемным данным (алгоритм marching cubes [103]) и прямой объемный рендеринг [104]. Для визуализации объемных данных на виртуальном глобусе был предложен алгоритм на основе прямого объемного рендеринга. Рассмотрим сначала, как работает прямой объемный рендеринг на основе обзорной работы [105]. Для хранения объемных данных на видеокарте используется 3D-текстура. В ней содержится не цвет, а скалярное значение (плотность ). В случае сейсмотомографии — это значение параметра Vp/Vs, приведенное к интервалу [0; 255]. Отдельно задается передаточная функция (transfer function), которая ставит в соответствие плотности цвет (RGB) и прозрачность (A) и хранится на видеокарте в виде 1D-текстуры.

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

Существуют также разновидности прямого объемного рендеринга: проекция максимума интенсивности: цвета не смешиваются вдоль луча, а берется цвет точки с максимальной плотностью; освещение: в каждой точки вычисляется нормаль по градиенту, и цвет считается с учетом освещения (косинус угла между нормалью и источником света); изоповерхность: берутся только точки, значение плотности которых равно заданному. Существуют модификации базового алгоритма для увеличения быстродействия [106], для улучшения качества визуализации [107], устранения визуальных артефактов [108], для мультиобъемного рендеринга [109]. Была поставлена задача разработать алгоритм для визуализации объемных данных на виртуальном глобусе. Будем рассматривать частный случай, когда объем ограничен двумя параллелями, двумя меридианами и двумя уровнями высоты. 1. Сначала генерируется полигональная поверхность объёма с заданным уровнем приближения к поверхности эллипсоида. Далее эта поверхность рендерится в 2 прохода. 2. Во время первого прохода происходит рендеринг в текстуру задней части поверхности. Текстура имеет формат RGB и содержит числа с плавающей точкой. В текстуру записываются декартовы координаты фрагментов задней части поверхности (рис. 3.11). 4. Зная координаты точки входа луча и точки выхода луча, можно с заданным шагом пройтись вдоль луча и получить декартовы координаты промежуточных точек (рис. 3.12). 5. Декартовы координаты каждой из промежуточных точек можно преобразовать в географические координаты на основе формул из статьи [110], которые обеспечивают точность в 1см для высот меньше 1000км: где (x; y; z) – декартовы координаты точки, и – экваториальный и полярный радиусы Земли, – вспомогательные переменные, lat – широта, lon – долгота, h – высота. 6. Пользуясь начальным условием, что наш объём ориентирован вдоль параллелей и меридианов, из географических координат точки можно получить текстурные координаты в 3D-текстуре. Тем самым задача сводится к оригинальному прямому объемному рендерингу: происходит чтение плотности из текстуры, вычисление цвета с помощью передаточной функции и смешивание цветов от дальних точек к ближним по формуле (3.6).

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

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

Человек использует разные факторы для определения глубины до предметов. Ряд из них доступен для одного глаза: размеры предмета, тени, перекрытия предметов, априорные знания. Три фактора доступны только при бинокулярном зрении, т.е. при использовании 2-х глаз [122]: бинокулярная диспарантность — основана на параллаксе (изображения сдвинуты друг относительно друга из-за расстояния между глазами); вергенция — вращение глазных яблок, чтобы сфокусироваться на предмете; аккомодация — изменение кривизны хрусталика, необходимое, чтобы сфокусироваться на предмете. В современных системах виртуального окружения стереоскопический эффект достигается за счет использования первых двух факторов: бинокулярной диспарантности и вергенции.

Первые системы виртуального окружения возникли более 30 лет назад. Они были громоздкие и дорогостоящие и применялись для узких задач. Однако последние годы, благодаря росту производительности персональных компьютеров, эта тема снова начала активно развиваться. Здесь нужно упомянуть Джеймса Кэмерона, который снял фильм Аватар в стерео в 2009 году и тем самым популяризировал идею стереовизуализации [123]. Фирма NVIDIA выпустила недорогие затворные очки 3d vision, а производители мониторов выпустили совместимые мониторы с частотой 120Гц [116].

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

В настоящее время существует множество систем отображений, которые применяют различные технологии для разделения изображений для 2х глаз. Кратко перечислим системы и соответствующие технологии: Анаглиф: простейшая и наиболее примитивная технология, с плохим качеством восприятия. К изображениям для разных глаз применяются программные цветофильтры: к одному — синий, к другому — красный, после чего 2 изображения объединяются в одно, которое и выводится с помощью самого обычного монитора или проектора. Для просмотра стереоизображения нужно иметь очки со встроенными в них цветофильтрами [124, 125]. 2х-проекторная система с использованием поляризации: используется горизонтальная стереопара, левая половина которой отображается одним проектором, а правая — другим. Для разделения изображений используются поляризационные фильтры с линейной или круговой поляризацией, фильтры устанавливаются на очки и на проекторы [111]. Черезстрочная поляризация: используется монитор или телевизор, пиксели четных строк которого имеют одну поляризацию, а пиксели нечетных строк — другую. Поэтому изображение, подаваемое на монитор, должно быть составлено из двух изображений: четные строки от одного изображения, а нечетные — от другого. Необходимы очки с поляризационными фильтрами. Затворное стерео: изображение выводится на монитор или проектор с частотой 120Гц, при этом очки синхронно с монитором попеременно открывают и закрывают глаза. Инфитек: используется спектральное разделение каналов. В компьютере любой цвет задается комбинацией 3х базовых цветов: красного, зеленого и синего. Но при выводе каждому из этих цветов соответствует диапазон длин волн. Для левого и правого глаз выводятся немного отличающиеся длины волн. Глаз отличия не воспринимает, но разница длин волн позволяет создать фильтры, которые устанавливаются на очки и на выходе из проектора [126]. Шлем виртуальной реальности, в котором каждому глазу соответствует свой мини-экран. Некоторые стереорежимы могут работать без специальной поддержки видеокарты: анаглиф, поляризационные системы. Изображение, сгенерированное стандартным способом, просто посылается на систему отображения. Другие режимы — затворное стерео и инфитек — требуют специального режима работы видеокарты: квадробуфер, который доступен только на дорогих профессиональных видеокартах Nvidia Quadro и AMD FirePro [127, 128].

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

Поддержать стереоэффект на уровне приложения можно несколькими способами. В работе [129] описаны несколько подходов: используется одна виртуальная камера, которая рендерится в 2 прохода. После выполнения проекционного преобразования в вершинном шейдере усеченные координаты сдвигаются влево или вправо. Этот вариант также используется в стереодрайвере NVidia. Минус подхода — некорректное отсечение невидимых объектов (culling); используется одна виртуальная камера, которая рендерится в 2 прохода. В каждом проходе используются свои модифицированные матрицы вида и проекции. Это позволяет организовать корректное отсечение; используются две виртуальные камеры. Каждая камера использует свои матрицы вида и проекции. Если приложение изначально разрабатывалось без учета стереоскопичекой визуализации, то для быстрого подключения стерео можно использовать 1-й или 2-й варианты. Но при разработке новых приложений рекомендуется использовать 3-й вариант с двумя виртуальными камерами, как более гибкий. Он позволяет поддержать различные стерео-режимы единообразным способом.

С точки зрения приложения можно выделить три основных стерео-режима, которые отличаются настройками виртуальных камер. горизонтальная стереопара (side-by-side): выходное изображение состоит из двух половин, составленных рядом. Левая половина содержит изображение для левого глаза, а правая половина — для правого глаза; черезстрочное стерео: четные строки выходного изображения — это строки изображения для левого глаза, а нечетные строки — для правого глаза; квадробуфер: основан на использовании специального режима видеокарты, при котором в видеопамяти отдельно создается буфер для левого глаза и отдельно для правого. Каждый из них в свою очередь имеет задний буфер (туда идет рендеринг) и передний буфер (он выводится на экран). Отсюда и название режима. Для настройки режимов в приложении нужно следовать следующим рекомендациям. Пусть width и height — ширина и высота экрана в пикселях. Случай горизонтальной стереопары распадается на два: используется один видеовыход или два видеовыхода. Если видеовыход один, то нужно проинициализировать один графический контекст, а 2 виртуальные камеры должны различаться только портом просмотра (viewport). Левая камера должна занимать левую половину окна, а правая – правую половину, а значит настройки портов просмотра будут такие: (0, 0, width/2, height) и (width/2, 0, width/2, height).

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