Как и в любом другом языке, в VRML вы можете использовать имена для различных объектов. Имена могут быть практически любыми, но на них все же существуют некоторые ограничения:
Используя эти правила вы можете составлять любые имена, только помните первое правило.
Все трехмерные миры, создаваемые с помощью VRML, могут содержать сотни и тысячи объектов. Под объектами мира понимаются не только все трехмерные тела в мире, но и любые звуки, изображения и тексты. Все такие объекты в VRML носят название узлы(nodes). Связано это с тем, что весь трехмерный мир представляет собой дерево объектов.
Все узлы делятся на три типа:
Группировочные узлы предназначены для объединения вложенных узлов в ветви, так называемого "дерева сцены". Группировочные узлы называются предком (родителем), а подчиненные ему узлы - потомками (детьми).
Конечные узлы это узлы определяющие геометрические примитивы, звуки, камеры и т.д. Данные узлы не могут иметь вложенных узлов-детей, за исключением специфических вспомогательных.
Вспомогательные узлы это специфические узлы располагающиеся только в определенных узлах. Также к таким узлам можно отнести узлы-интерполяторы, которые меняют объекты сцены в соответствии с заданным набором опорных точек, и некоторые другие узлы.
Любой объект в 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
Такие регулируемые поля необходимы для создания анимации (динамики) в виртуальном мире.