Жирным черным шрифтом обозначаются заголовки или важние замечания
Файл в формате VRML
Такой файл должет оканчиваться суффиксом .wrl, в первой строке должно быть указано:
#VRML V2.0 utf8
эта строка указывает смотрелке какая версия vrml использовалась
Коррдинатная система
Координатная система (КС) в vrml построена по иерархическому принципу - каждый объект имеет свою собственную (локальную) систему координат и может встраиваться в другие объекты (или наборы объектов, виртуальные миры или их фрагменты), при этом указываются координаты точки в КС , в которую вставляется объект. Координата 0,0,0 встраиваемого объекта устанавливается в эту точку и все точки встраиваемого объекта пересчитываюся интерпретатором vrml в соответствие с их новым положением.
Представление цвета
Цвет определяется тремя основными составляющими RGB (красный зеленый синий). Каждая составляющая представляется числом от 0 до 1. К примеру [0.5 1 0]
Поля
Поля - элементарные типы данных, используемые в vrml для представления геометрической информации, описаний материалов и т.д.
Имеются следующие поля:SFBool - двоичный тип, может принимать значения - TRUE или FALSE
SFColor/MFColor - цвет, определяется одним RGB или несколькими (ноль или больше), Пример SFColor foocolor [0 0.3 0.9] MFColor fooColor [ 1 0 0, 0 1 0, 0 0 1 ]
SFFloat/MFFloat - действительное число с плавающей точкой или набор таких чисел разделенных запятой. Пример SFFloat [1.238] MFFloat [0.235, 2.66, 55.7]
SFImage - 2-х мерная картинка определяемая: ширина высота число_пикселей набор_пикселей. Пример: fooImage 1 2 2 0.5 0.6
SFInt32/MFInt32 - целое 32-битное число или набор челых чисел разделенных запятой
SFNode/MFNode - одна нода или группа нод
SFRotation/MFRotation - вращение или группа полей разделенных запятой определяющих вращение. Определяется ось_X ось_Y ось_Z угол (радианы) Пример [0 0 1 3.14] - поворот вокруг оси Z на 180 градусов
SFString/MFString - строка или группа строк разделенных запятой
Пример [Раз, Два, Три]
SFTime/MFTime - время или группа полей разделенных запятой определяющий время прошедшее с 1 января 1970 года
SFVec2f/MFVec2f - двухмерный вектор или группа двухмерных векторов
Определяется: [координыта начальной точки, смещение_S, смещение_T]
Если начальная тока 0 0 то она опускается
Пример [ 12 48, 55, 88]
SFVec3f/MFVec3f - трехмерный вектор или группа трехмерных векторов
Определяется: [координыта начальной точки, смещение_X, смещение_Y, смещение_Z].
Если начальная тока 0 0 0 то она опускается
Пример [ 12 48 99, 55, 88 12]
Ноды
Ноды - основные элементы vrml. Служат для описания геометрических или физичесикх свойств объектов.
Геометрические нодыBox, Cone, Cylinder, ElevationGrid, Extrusion, IndexedFaceSet, IndexedLineSet, PointSet, Sphere, Text содержат математичесикое представление трехмерных точек , линий, поверхностей, текстовых строк .
Ноды определяющие свойства геометрических нод
Color, Coordinate, Normal, TextureCoordinate.
Ноды определяющие геометрические сенсоры
ProximitySensor, VisibilitySensor, TouchSensor, CylinderSensor, PlaneSensor, SphereSensor. Генерируют события согласно действиям пользователя, такие как двежения миши или перемещение в виртуальном пространстве
Группирующие ноды
Anchor, Billboard, Collision, Group, Transform. Группируют подчиненые (child) ноды или другие группы нод. Позволяют производить над группами различные действия.
Внешний вид
Appearance, FontStyle, ImageTexture, Material, MovieTexture, PixelTexture,TextureTransform
Прочие ноды
AudioClip, DirectionalLight, PointLight , Script, Shape, Sound,SpotLight, WorldInfo - ноды определяющие звековое сопровождение, освещение, JAVA скрипты, информацио о vrml-сцене и формы
Геометричекие ноды
Куб - Box
Box {
field SFVec3f size 2 2 2 #размер куба по трем осям (2 2 2 - пример записи)
}
отсчет вектора size ведется от центра куба к стенкам по осям X Y Z
Нуль КС находится в центре куба