Шаг 3 - Основные понятия

Имена

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

  1. Имена в языке регистро-зависимые (точно также, как в С++).
  2. В именах можно использовать только первую половину кодовой тавлицы. Т.е. имена состоящие из русских букв нельзя.
  3. Нельзя использовать управляющие символы от 0 до 32. Впрочем это и понятно, так как использовать их неудобно.
  4. Имена не должны содержать синтаксических символов, которые используются в языке. К этим символам относятся "#',.[\]{}.
  5. Имена не должны начинаться с цифр, впрочем это ограничение существует во всех языках программирования.

Используя эти правила вы можете составлять любые имена, только помните первое правило.

Узлы

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

Все узлы делятся на три типа:

  1. Группировочные
  2. Конечные
  3. Вспомогательные

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

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

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

Поля и события

Любой объект в VRML имеет набор уникальных параметров отличающих данный объект от других таких же. К примеру у двух кубов могут различаться параметры "размер" и "цвет". Такие параметры объектов называются полями (field) узлов. У каждого узла в VRML существует определенный набор полей. Каждое поле имеет свой тип и значение по умолчанию. При описании объекта сцены можно задавать только требующиеся поля. Все остальные неописанные поля будут использовать значения по умолчанию. Описание узла имеет следующий вид:

Тип_узла {
	поле_1 значение
	поле_2 значение
	...
	поле_N значение
}

Кроме полей узел может иметь набор событий. Под событиями подразумевается обмен информацией между узлами. Узел может получать информацию с помощью входящих (eventIn) событий, и передавать информацию с помощью выходящих (eventOut) событий. По входящим событиям узел может определять изменения в трехмерном мире, и менять свое состояние по заданной программе. При этом о любых своих изменениях узел сообщает миру через выходящие события.

Для того, чтобы объекты мира могли изменять свои параметры, практически каждый узел в VRML имеет набор изменяемых полей называемых регулируемыми полями (exposedField). С каждым таким полем связано два события: входящее и исходящее. Если поле имеет название Abcd, то входящее событие получает имя set_Abcd, а выходящее событие Abcd_changed. При помощи входящего события другие узлы могут устанавливать значение поля Abcd. После любого изменения данного поля узел сгенерирует выходящее событие Abcd_chnaged. Таким образом объявление поля Abcd:

exposedField Abcd

Будет эквивалентно объявлению одного поля и двух связанных с ним событий:

field Abcd
eventIn  set_Abcd
eventOut Abcd_changed

Такие регулируемые поля необходимы для создания анимации (динамики) в виртуальном мире.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Кузин Андрей - 31.07.2001