3. Пояснения
Наличие в языке VRML методов, позволяющих объектам трехмерных сцен взаимодействовать с пользователем и друг с другом с помощью событий, дают возможность создавать не только статические, но и динамические виртуальные миры.
Описание этих возможностей можно представить схемой, приведенной на рис.1:
Рис.1. – Каркас событий VRML.
События, генерируемые через определенные промежутки времени, позволяют создавать динамически изменяющиеся объекты.
Синтаксис узлов (Nodes) VRML включает в числе параметров(полей) каркас событий eventIn и eventOut.
Каркас событий
- События. EventIn, eventOut, exposed fields –свободные поля.
- Взаимосвязь событий. Передача события от одного узла к другому, осуществляется объявлением маршрутов при помощи ключевых слов ROUTE и TO. С их помощью происходит связывание действий, происходящих во времени или пространстве, т.е. их маршрутизация от одного узла к другому. Эти звязи представлены графом маршрутов – Routing Map (см. VRML Pad) Наличие полей EventIn и EventOut, дают возможность контролировать наступление того или иного события, сопровождающееся изменением свойств геометрических узлов.
Генераторы событий – Сенсоры. Скрипты
- TimeSensor – абстрактный временной сенсор
- VisibilitySensor, ProximitySensor-пространственные сенсоры, TouchSensor – сенсор прикосновения, SphereSensor – сферический сенсор, CylinderSensor –цилиндрический сенсор, PlaneSensor – плоскостной сенсор.
- Узел Script – позволяет создавать сценарии взаимодействия узлов сцены и событий не предусмотренных стандартным набором сенсоров и интерполяторов языка VRML.
- Узлы, принимающие события – Интерполяторы. Геометрические узлы. Переключатели. Узел Sound.
- Интерполяторы - ColorInterpolator, CoordinateInterpolator, NormalInterpolator, OrientationInterpolator, PositionInterpolator, ScalarInterpolator.
- Геометрические узлы – заданные при помощи узлов Transform, DEF, PROTO.
- Переключатель – Switch.
Важными узлами для создания анимированных объектов являются узлы Interpolator. Основная их особенность состоит в том, что они используются для изменения определенных значений параметров геометрических узлов через определенное время. В зависимости от того, какое значение меняется, имеется шесть типов узлов Interpolator : ColorInterpolator, CoordinateInterpolator, NormalInterpolator, OrientationInterpolator, PositionInterpolator, ScalarInterpolator.
fraction_changed
start time cycle time stoptime
Time Sensor Interpolator Transform |
Временные сигналы узлы Interpolator получают от TimeSensor через определенные интервалы времени и выполняют линейную интерполяцию между значениями, описываемыми keyValues, для каждого значения времени, в долях fraction_changed (рис.2).
Каждый раз, когда Interpolator получает событие EventIn, он производит событие EventOut вместе с соответствующим значением value, которое может быть направлено (ROUTE) на определенное изменение Transform.
Рис.2. Общий принцип действия интерполяторов.
Примечание. Принято определения (DEF Name …..) сенсоров, интерполяторов и геометрических узлов, участвующих в передаче и приеме событий, записывать в начале VRML-программы, а все декларации ROUTE NAMEi eventOut TO NAMEj eventIn – в конце VRML-программы.
Примеры создания динамических объектов приведены в методическом пособии по VRML (тема 4).
Титул (название изучаемой темы). Цель работы.
Вариант задания.
Краткое словесное описание трехмерной сцены.
Эскиз сцены на листе бумаги c заданным положением источников освещения.
Граф сцены (Scene Tree) в терминах узлов VRML .
Граф маршрутов (Routing Map)
Текст VRML - программы c комментариями.
Выводы, включающие количественные характеристики VRML-программы (имена и объем wrl-файлов в Кб, подгружаемых текстур и звуков)
5. Контрольные вопросы
Необходимо рассказать о заданных преподавателем динамических узлах VRML (синтаксис, параметры) и способах их применения, типах источников освещения, возможности переключения камер, включения звука и спецэффектов.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.