1.2.2.. Основные конструкции языка
На верхнем уровне абстракции в VRML размещаются объекты, которые можно считывать и записы-вать. Теоретически объекты могут содержать все допустимые в языке сущности: трёхмерную геомет-рию, образы JPEG и т.п. Объекты, используемые для представления трёхмерной графики, называют-ся узлами, иерархическая совокупность которых образует граф сцен, каждая из которых является не просто набором узлов, а определяет ещё и условия их визуализации путём задания нотации состоя-ния, определяемой ранее созданными узлами сцены. Например, узлы Rotation или Material задают условия поворота и характеристики материала для всех последующих узлов сцены.
Все узлы могут иметь имя, тип (Cube/box, Sphere, Texture, Transformation и т.п.) и поля, задающие ха-рактеристики узла, отличающие его от другого узла того же типа (радиус, шаблон, текстуры). Узлы могут образовывать иерархическую совокупность, при которой один родительский узел может содер-жать несколько потомков, расположенных на более низком уровне. Для определения узла принят следующий синтаксис:
DEF иия объекта тип { поля потомок }
Следующий пример даёт представление о структуре программ на языке VRML и содержит описание простой сцены, состоящей из красного конуса и синей сферы, освещённых прямым светом:
#VRML V1.0 ascii Separator {
DirectionalLight {
direction 0 0 – 1 # направление луча света от наблюдателя к сцене
{ PerspectiveCamera { position – 8.6 2.1 5.6
orientation -0.1352 -0.9831 -0.1233 1.1417
focalDistance 10.84 } Separator
{ # Красная сфера
Material { diffuseColor 1 0 0
# Установка цвета – красный
} Translation { translation 3 0 1 } Sphere
{ radius 2.3 } } Separator { # Синий куб
Material { diffuseColor 0 0 1
# Установка синего цвета
} Transform ( translation -2.4 .2 1
rotaon 0 1 1 .9 } Cube {} } } //Cube используется //версии 1.0, а box- в версии 2.0
|