Extrusion {
eventIn MFVec2f set_crossSection
eventIn MFRotation set_orientation
eventIn MFVec2f set_scale
eventIn MFVec3f set_spine
field SFBool beginCap TRUE
field SFBool ccw TRUE
field SFBool convex TRUE
field SFFloat creaseAngle 0
field MFVec2f crossSection [ 1 1, 1 -1, -1 -1, -1 1, 1 1 ]
field SFBool endCap TRUE
field MFRotation orientation 0 0 1 0
field MFVec2f scale 1 1
field SFBool solid TRUE
field MFVec3f spine [ 0 0 0, 0 1 0 ]
}Ноды определяющие свойства геометрических нод
Цвет - Color
Color {
exposedField MFColor color []
}
Определяет набор цветов RGB, разделенных запятыми. Используется исключительно для определения наборов цвета поверхностей в таких нодах как IndexedFaceSet и дрКоординаты - Coordinate
Coordinate {
exposedField MFVec3f point []
}
Определяет набор трех-мерных координат для использования в поле coord таких геометрических нод, как IndexedFaceSet, IndexedLineSet, PointSet.Нормаль - Normal
Normal {
exposedField MFVec3f vector []
}
Определяет набор нормалей для трех-мерных плоских поверхностей для использования в поле normal для таких геометрических нод, как IndexedFaceSet, ElevationGrid.Координаты текстуры TextureCoordinate
TextureCoordinate {
exposedField MFVec2f point []
}
Определяет набор двух мерных координат текстур для таких геометрических нод, как IndexedFaceSet, ElevationGrid для наложения текстуры на многоугольники определяемые в геометрических нодах.
Текстуры имеют две размерности S и T , которые имеют значения от 0.0 до 1.0.
S - горизонтальная координата - определяется первой за ней следует координата T.
Группирующие ноды
Transform
Transform {
eventIn MFNode addChildren
eventIn MFNode removeChildren
exposedField SFVec3f center 0 0 0
exposedField MFNode children []
exposedField SFRotation rotation 0 0 1 0
exposedField SFVec3f scale 1 1 1
exposedField SFRotation scaleOrientation 0 0 1 0
exposedField SFVec3f translation 0 0 0
field SFVec3f bboxCenter 0 0 0
field SFVec3f bboxSize -1 -1 -1
}
Transform - группирующая нода, которая определяет систему координат для дочерних нод относительно родительской координатной системы
bboxCenter и bboxSize определяют положение центра и размер куба в который внисывается дочерняя нода, если этот размер меньше чем реальный размер ноды - результат непредсказуем, если эти поля не определены то соответствующие параметры вычисляются смотрелкой
center - определяет смещение относительно локальной системы координат
rotation - поворот дочерней ноды в координатной системе, первые три цифры определяют вокруг каких осей нужно поворачивать, четвертая угол поворота в радианах (пример 0 0 1 3.14 - поворот вокруг оси Z на 180 градусов)
scale - масштабирование, три цыфры указывают коэффициенты масштабирование по каждой из осей (должны быть больше 0) пример 0.5 0.5 1 - сжать по осям X и Z наполовину, по оси Z оригинальный размер
scaleOrientation - определяет разворот координатной системы при масштабировании (не имеет смысла если не указано scale!!!) параметра аналогично scale
translation - расположение дочерней ноды в родительской системе координат, параметры - координаты X Y Z в родительской СК
children [] - внутри квадратных скобок должны заключаться дочерние ноды или группы дочерних нод (в том числе и transform)
Прочие ноды
Shape - форма
Shape {
exposedField SFNode appearance NULL
exposedField SFNode geometry NULL
}
Shape имеет два поля: appearance и geometry которые используются для описания рендеринга.
appearance определяет ноду Appearance , которая определяет визуальные свойства геометрической формы
geometry определяет ноду geometry, которая определяет геометрические свойства формыВнешний вид
Appearance - Внешний вид
Appearance {
exposedField SFNode material NULL
exposedField SFNode texture NULL
exposedField SFNode textureTransform NULL
}
Нода Appearance определяет такие визуальные свойства как цвет, текстура, способ отражения света. Значение каждого поля может быть NULL, если не NULL то должно содержать соответствующюю ноду.material поле должно содержать ноду Material. Если material NULL или не указан, освещение считается выключенным и при рендеринге используется цвет 0 0 0 .
texture поле может содержать различные типы текстурных нодof (ImageTexture, MovieTexture, PixelTexture). Если NULL или не определено никаких текстур не накладывается.textureTransform поле содержит нодуTextureTransform . Если NULL или неопределено, или если textureTransform NULL или неопределено, то textureTransform не имеет эффекта.
Material - материал
Material {
exposedField SFFloat ambientIntensity 0.2
exposedField SFColor diffuseColor 0.8 0.8 0.8
exposedField SFColor emissiveColor 0 0 0
exposedField SFFloat shininess 0.2
exposedField SFColor specularColor 0 0 0
exposedField SFFloat transparency 0
}
ambientIntensity - интенсивность окружающего света
diffuseColor - определяет цвет,отражающий все источники света в зависимости от угла падения каждого источника света
emissiveColor - излучаемый цвет (лампочка к примеру)
shininess - интенсивность блеска поверхности
specularColor - цвет блеска поверхности (например блеск бока яблока под ярким светом) интенсивность блеска - shininess
transparency - прозрачность объекта 1 - полностью прозрачный, 0 - непрозрачныйImageTexture - текстура картинка
ImageTexture {
exposedField MFString url []
field SFBool repeatS TRUE
field SFBool repeatT TRUE
}
url - url мастонахождение файла текстуры (JPEG, PNG, GIF)
repeatS repeatT - повторять или нет тектуру в интервале 0-1
TextureTransform - расположение текстуры
TextureTransform {
exposedField SFVec2f center 0 0
exposedField SFFloat rotation 0
exposedField SFVec2f scale 1 1
exposedField SFVec2f translation 0 0
}
center центр вокруг которого выполняется вращение текстуры (поле rotation)
rotation вращение текстуры в радианах
scale масштабирование текстуры по оси S и T
translation расположение координаты 0 0 текстуры на поверхности на которую наложена текстура