4.7. Узлы Все 36 узлов в VRML делятся на три категории: формы, свойства и группы. Первые определяют геометрию сцены, вторые задаюсь условия визуализации первых, а третьи используются для объединения нескольких узлов в одно целое.В категорию форм входят следующие узлы: AsciiText, Cone, Cube, Cylinder, IndexedFaceSet, IndexedLineSet, PointSet и Sphere.В категорию свойств: Coordinate3, FontStyle, Info, LOD, Material, MaterialBinding, Normal, NormalBinding, Texture2, Texture2Transform, TextureCoordinate2, ShapeHints Matrix Transform, Rotation, Scale, Transform, Translation OrthographicCamera, PerspectiveCamera, Directional ight, PointLight, SpotLight.Узлы, входящие в категорию "группа" - это: Group, Separator, Switch, TransformSeparator, WWWAnchor.Отдельно различается узел WWWInline, не входящий ни в одну из категорий.Смысл узлов следует из их названия, поэтому мы не будем подробно описывать все типы, обратим внимание лишь на наиболее характерные. Кроме задания геометрии объектов, их свойств и характеристик материала в стандарте с помощью различных типов камер можно управлять положением наблюдателя. Ортогональная камера определяет параллельную проекцию сцены без учета перспективы, которой можно управлять, если выбрать PerspectiveCamera. По умолчанию камеры размещаются в точке с координатами (0,0,1) и направлены вдоль отрицательного направления оси Z. Программы, используемые для просмотра файлов VRML, позволяют изменять положение камеры, предоставляя пользователю возможность свободно перемещаться внутри виртуального пространства.Порядок работы с потомками задается в узле Switch, определяющем, кто из потомков будет иметь заданные родителем свойства.Расширенные возможности работы с текстурами являются одним из достижений стандарта. Кроме определения текстуры в поле Texture2, либо заданной в виде локального шаблона, либо считанной по URL из удаленного сервера, можно задавать любые преобразования и местоположение текстуры. Узел группы WWWAnchor загружает новую сцену в программу просмотра файла VRML после выбора очередного потомка. Имя сцены задается обычно в форме URL. Узел WWWInline считывает потомка из любого места WWW и задерживает его визуализацию до особого распоряжения, в качестве которого может быть, например, завершение процесса установки параметров.Все трехмерные миры, создаваемые с помощью VRML, могут содержать сотни и тысячи объектов. Под объектами мира понимаются не только все трехмерные тела в мире, но и любые звуки, изображения и тексты. Все такие объекты в VRML носят название узлы (nodes). Связано это с тем, что весь трехмерный мир представляет собой дерево объектов.Все узлы делятся на три типа: 1. Группировочные2. Конечные3. ВспомогательныеГруппировочные узлы предназначены для объединения вложенных узлов в ветви, так называемого "дерева сцены". Группировочные узлы называются предком (родителем), а подчиненные ему узлы - потомками (детьми).Конечные узлы это узлы определяющие геометрические примитивы, звуки, камеры и т.д. Данные узлы не могут иметь вложенных узлов-детей, за исключением специфических вспомогательных.Вспомогательные узлы это специфические узлы, располагающиеся только в определенных узлах. Также к таким узлам можно отнести узлы-интерполяторы, которые меняют объекты сцены в соответствии с заданным набором опорных точек, и некоторые другие узлы. Типы узлов в VRML 1.0 | Название узла | Описание | Узлы основных форм | Cone | Рисует конус. | Cube | Рисует куб. | Cylinder | Рисует цилиндр. | Sphere | Рисует сферу. | Узлы точки, линии и грани | Coordinate3 | Задает трехмерные координаты точек, линий и граней. | IndexedFaceSet | Рисует тело по граням, заданным набором точек. | IndexedLineSet | Рисует тело по линиям, заданным набором точек. | PointSet | Рисует тело по набору точек. | Узлы текста | AsciiText | Создает строку ASCII-текста. | FontStyle | Управляет гарнитурой шрифта, стилем и размером знаков текста, созданного узлом AsciiText. | Узлы материала | Material | Задает свойства материала поверхности. | MaterialBinding | Накладывает на тела материал поверхности. | Normal | Задает трехмерные векторы нормалей для расчета теней. | NormalBinding | Привязывает векторы нормалей к телам. | ShapeHints | Задает порядок следования вершин, типы граней и другие свойства, важные для рендеринга. | Узлы текстур | Texture2 | Задает рисунок текстуры. | Texture2Transform | Производит заполнение области двумерной текстурой. | TextureCoordinate2 | Задает координаты области, заполняемой текстурой. | Узлы преобразований | MatrixTransform | Производит преобразование координат в соответствии с заданной матрицей. | Rotation | Производит поворот системы координат. | Scale | Изменяет масштаб объектов, создаваемых этим узлом. | Transform | За один шаг производит перенос, поворот и изменение масштаба. | Translation | Переносит систему координат. | Узлы камеры | OrthographicCamera | Создает камеру, выполняющую рендеринг сцен в ортографической проекции. | PerspectiveCamera | Создает камеру, выполняющую рендеринг сцен в перспективной проекции. | Узлы освещения | DirectionalLight | Создает направленное освещение параллельными лучами света. | PointLight | Создает точечный источник света, излучающий во все стороны. | SpotLight | Создает точечный источник света, излучающий свет конусом, как карманный электрический фонарь. | Узлы группирования | Group | Задает группу узлов. | Separator | Задает группу узлов и, по окончании построения группы, восстанавливает все параметры сцены. | Switch | Задает группу узлов и выполняет построение только одного члена группы. | TransformSeparator | Задает группу узлов и, по окончании построения группы, восстанавливает выбранные параметры сцены. | Узлы связки и импорта | WWWAnchor | Создает связь с другим VRML-файлом. | WWWInline | Импортирует сцену из другого VRML-файла. | Прочие узлы | Info | Создает узел, содержащий информацию, не выводимую на дисплей, например об авторских правах. | LOD | Задает уровни детальности для рендеринга объектов, расположенных на разных расстояниях от глаза. |
|