2.2. Разработки Java 3D

 

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

В настоящее время существует большое число приложений, позволяющих работать с трехмерной графикой — от игр и медицинского оборудования до трехмерных игр и хранителей экранов. Достижения в области компьютерного аппаратного обеспечения привели к значительному росту интереса к трехмерной графике. Успех в создании высокопроизводительного аппаратного обеспечения способствовали разработкам высокоэффективных интерфейсов прикладного программирования трехмерной графики — от созданного в 70-х годах API CORE от Siggraph и создания в 80-х годах прошлого века OpenGL компанией SGI, до сегодняшних средств программирования трехмерной графики, включая Microsoft DirectSD и Java3D.

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

Sun Microsystems разрабатывала Java 3D API, имея в виду четыре основные цели: переносимость приложений, независимость от аппаратного обеспечения, масштабирование производительности и способность работать с трехмерной графикой через сеть. Упрощение сложных графических операций играло ключевую роль при разработке Java 3D API. Вот некоторые области и сферы применения API Java 3D:

•визуализация трехмерных данных,

•взаимодействующие между собой приложения,

•игры (особенно сетевые с несколькими участниками),

•деловая графика,

•интерактивные обучающие системы,

•моделирование и визуализация молекулярных структур,

•разработка трехмерных Web-приложений,

•разработка трехмерных графических пользовательских интерфейсов.

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

•Поведения. Java 3D поддерживает множество поведений, включая анимацию и перемещение, обнаружение столкновений (выявление, когда два объекта сталкиваются) и морфинг (трансформацию одного изображения в другое изображение).

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

•Геометрия. Java 3D имеет встроенные трехмерные графические примитивы для создания геометрических фигур. В Java 3D можно отображать сцены, созданные в других приложениях трехмерной графики, например, SDStudio Мах, VRML и LightwaveSD.

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

•Звук. Уникальной особенностью Java 3D является поддержка SD-звука.

• Текстуры. Java 3D поддерживает наложение текстур на поверхности трехмерных фигур.

Сцены Java 3D.

Изображения, отображаемые с помощью Java 3D, называют сценами. Сцену также называют виртуальной вселенной – это трехмерное пространство, которое содержит набор фигур. Корнем сцены Java 3D является объект VirtualUniverse. Объект VirtualUniverse имеет систему координат для местоположения графов сцены, которые она содержит. Каждая трехмерная сцена Java 3D описывается рядом графов сцены – иерархических структур, которые задают атрибуты трехмерной среды. Каждый граф сцены прикреплен к объекту VirtualUniverse в определенной точке системы координат виртуальной системы. Граф сцены состоит из внутренней системы координат и графов – ветвей. Каждый граф сцены имеет внутреннюю систему координат. Класс Locale является корневым узлом графа сцены и содержит вложенные системы координат для виртуальной вселенной и ряд графов-ветвей. В Java 3D имеется два типа графов-ветвей: графы-ветви содержимого и графы-ветви представления. Графы-ветви содержимого задают содержимое в трехмерных сценах, включая геометрию, освещение, текстуры, вуалирование и поведение. Графы-ветви представления содержат платформы наблюдения — коллекции объектов, которые определяют перспективу, позицию, ориентацию и масштаб в трехмерных сценах. Платформу наблюдения также называют точкой зрения.

Класс SceneGraphObject Java 3D — базовый класс для всех объектов в графе-ветви. Объект SceneGraphObject может содержать группу Group, которая представляет собой узел, содержащий множество дочерних узлов. Дочерними узлами группы Group могут быть группы (объект Group), листья (объект Leaf) или узлы-компоненты (объект NodeComponents). Узлы-листья Leaf задают геометрию, освещение и звук в графах-ветвях содержимого и компоненты платформы наблюдения в графе-ветви представления. Объекты NodeComponent задают различные компоненты в объектах Group и Leaf, такие как текстура и атрибуты цвета.

В следующей таблице приведены некоторые подклассы классов Group, Leaf и Node-Component:

Класс

Описание

Частичный список классов класса Group Java 3D

BranchGroup Корневой узел (объект Node) графа сцены, который вложен в класс Locale
Switch Может отображать либо один дочерний узел, либо несколько дочерних узлов, задаваемых маской
TransformGroup Содержит преобразование (например, перемещение, вращение или масштабирование)

Частичный список классов класса Leaf

Behavior

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

нажатие клавиш и щелчков мышью), а также методы, которые описывают поведение объекта при определенных событиях (например, при столкновениях)

Light Описывает набор параметров источников освещения Java 3D
Shape3D Описывает трехмерные геометрические объекты
ViewPlatform Управляет точкой наблюдения трехмерной сцены

Частичный список классов класса NodeComponent

Appearance Задает атрибуты объекта Shape3D, такие как цвет и текстура
Material Описывает свойства освещенного объекта (например, отраженный цвет.

Таблица 2. Основные методы подкласса классов Group, Leaf и Node-Component



Информация о работе «Использование JAVA-технологий для разработки графических приложений»
Раздел: Информатика, программирование
Количество знаков с пробелами: 27352
Количество таблиц: 2
Количество изображений: 1

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

Скачать
237727
39
0

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

Скачать
33923
1
5

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

Скачать
86633
3
32

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

Скачать
183471
45
12

... Java, JavaScript и встроенные в сервер средства LiveConnect. Более мощными реляционными возможностями доступа к базе данных и более эффективным выполнением виртуальной Java-машины будут расширены услуги разработки приложений, обеспечиваемых в Enterprise Server 2.0,. Сервис управления. В дополнение к использованию встроенной машины каталога LDAP Enterprise Server 2.0 будет управляем через общие ...

0 комментариев


Наверх