Скачиваний:
24
Добавлен:
03.06.2014
Размер:
1.66 Mб
Скачать
  1. Реализацияинтерактивных трехмерных сцен

Интерактивное отображение трехмерных сцен в программном комплексе может быть реализовано с помощью следующих средств:

  • технологий Flash;

  • отображения трехмерных моделей в формате VRML (Virtual Reality Modeling Language).

Сравнение данных технологий приведено в таблице 1. Критерии сравнения сформированы на основе описания поставленной задачи.

Таблица 1. Сравнение технологий представления трехмерных сцен

Flash

VRML

Проигрывание в МСВС

да

да

Размер файлов с моделями

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

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

Интегрирование проигрывателя в приложения на языке Java

возникают сложности, а также только в определенной версии МСВС

с помощью специализированной библиотеки Xj3d

Интерактивное взаимодействие пользователя с моделями

обработка «кликов» пользователя непосредственно в приложении

возможные области «кликов» пользователя указываются непосредственно в модели и могут быть легко идентифицированы в приложении

Таким образом, для представления 3D-сцен выбран формат VRML. VRML - это формат файлов описания интерактивных трехмерных объектов и виртуальных миров. VRML спроектирован для использования в Internet (фактически, является стандартом 3D графики в Сети). Однако VRML файлы можно использовать и в локальных системах.

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

В основе языка VRML лежат три основных понятия: форма, сцена и объект.

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

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

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

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

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

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

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

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

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

Объекты, описываемые VRML - программой, называются узлами. При создании трехмерных объектов можно использовать встроенные узлы, такие, как конусы, цилиндры, кубы и сферы. После описания формы объекта, задается текстура, освещенность, положение камеры и трансформация объектов. Узлы также могут представлять собой программные блоки, а не пространственные объекты. Средства программирования поведения и отслеживания событий - это основные компоненты, которые делают миры VRML интерактивными. Возможно перемещение в трехмерном мире, представленном в VRML-браузере, с помощью визуальных средств управления (изображений - указателей направления), которые приводятся в действие с помощью мыши или клавиатуры. При приближении к узлу с запрограммированным поведением используются методы анимации. Анимированный узел передает сведения о событии другому узлу. Узел, которому передано сообщение о событии, обрабатывает его. Такой узел называют «обработчиком событий».

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

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

Каждый VRML файл определяет

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

  • множество 3D и мультимедиа объектов и их размещение в координатном пространстве;

  • гиперссылки на другие файлы и/или приложения;

  • определяет поведение объектов.

В качестве расширения формата VRML может быть использован формат X3d, который является расширением VRML. X3D — это стандарт ISO, предназначенный для работы с трёхмерной графикой в реальном времени. Следует отметить, что модели могут быть конвертированы из одного формата в другой.

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

К особенностям X3d можно отнести:

  • интеграция с XML, что позволяет интегрировать трёхмерную графику с:

веб-службами, распределёнными сетями, передачей файлов и данных между платформами и приложениями.

  • компонентность;

  • расширяемость;

  • эволюционность (X3D совместим с VRML);

  • масштабируемость;

  • стандартизованность.

Возможностями X3d являются:

  • 3D-графика и программируемые шейдеры: полигональная геометрия, параметрическая геометрия, иерархические преобразования, освещение, материалы, многопроходное/многоэтапное проецирование текстур, пиксельные и вершинные шейдеры, аппаратное ускорение;

  • 2D-графика: поверхностный текст, двумерная векторная графика, совмещение 2D/3D.

  • анимация;

  • взаимодействие с пользователем (захват и перетаскивание при помощи мыши), клавиатурный ввод;

  • навигация: камеры; перемещение пользователя по 3D-сцене, определение столкновений, близости и видимости.

  • объекты, определяемые пользователем, возможность расширять встроенную в браузер функциональность путём создания пользовательских типов данных;

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

  • поддержка сети, возможность составлять одну X3D-сцену из материалов распределенных в сети, связывать объекты из разных сцен гиперссылками;

Таким образом, технология визуализации места возникновения нештатной заключается в следующем:

  1. С помощью программной системы для создания и редактирования трёхмерной графики и анимации создаются 3D-сцены. В качестве программной системы может быть использована 3D Studio Max.

  2. Файлы сцен конвертируются в формат VRML или X3d. В модели выделяются области, позволяющие пользователю интерактивно взаимодействовать с моделью.

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