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


НазваниеИнтерактивная визуализация 3D-данных на виртуальном глобусе в стереоскопических системах
страница6/17
ТипАвтореферат
filling-form.ru > Туризм > Автореферат
1   2   3   4   5   6   7   8   9   ...   17

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


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

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

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

2.2.1. Анализ проблемы


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

Спецификация OpenGL определяет несколько формул для смешивания. Наиболее часто используется следующая:

,

(2.7)

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



Рис. 2.22. Объект под рельефом




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

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



Рис. 2.23. Просвечивают дальние объекты




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




Рис. 2.24. Просвечивает атмосфера






Рис. 2.25. Просвечивают горы




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

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

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

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



Рис. 2.26. Традиционный порядок рендеринга




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

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

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

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

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

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

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



(2.8)

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

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

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



Рис. 2.27. Зависимость глубины от расстояния до камеры




Это проблема возникает в любых приложениях с 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. Значение в буфере не изменяется.

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

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

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

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

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

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

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



Рис. 2.28. Порядок рендеринга для полупрозрачного рельефа




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

,

(2.9)

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

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

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

,

(2.10)

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

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

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

2.2.3. Вариант с камерой под поверхностью


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

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



Рис. 2.29. Графические артефакты при спуске под поверхность рельефа




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

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



(2.11)

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

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



Рис. 2.30. Вид из под земли




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

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

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

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

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

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



Рис. 2.31. Вид из-под земли с отключенной проверкой на выход тайлов за горизонт






Рис. 2.32. Вид из под земли на надземные объекты




Выбор конкретного варианта должен осуществляться в каждом проекте индивидуально и зависит от поставленных задач.
1   2   3   4   5   6   7   8   9   ...   17

Похожие:

Интерактивная визуализация 3D-данных на виртуальном глобусе в стереоскопических системах iconПоложение об организации и проведении работ в гаук со «Свердловский...
Фстэк россии и фсб россии в целях обеспечения безопасности персональных данных (далее – пдн) при их обработке в информационных системах...

Интерактивная визуализация 3D-данных на виртуальном глобусе в стереоскопических системах iconО защите персональных данных в Министерстве финансов Республики Марий Эл
Постановлением Правительства Российской Федерации от 01 ноября 2012 г №1119 «Об утверждении требований к защите персональных данных...

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

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

Интерактивная визуализация 3D-данных на виртуальном глобусе в стереоскопических системах iconВеликоустюгского муниципального района вологодской области распоряжение
Федерального закона от 27. 07. 2006 №152-фз «О персональных данных», Положения об обеспечении безопасности персональных данных при...

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

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

Интерактивная визуализация 3D-данных на виртуальном глобусе в стереоскопических системах iconПриказ №18 п г. Курган 11 марта 2014 года Об утверждении Положения...
«Об утверждении требований к защите персональных данных при обработке в информационных системах персональных данных», Постановлением...

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

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

Вы можете разместить ссылку на наш сайт:


Все бланки и формы на filling-form.ru




При копировании материала укажите ссылку © 2019
контакты
filling-form.ru

Поиск