160 likes | 329 Views
Мултимедия и основи на уеб дизайна. а с.Елена Първанова. Създаване на сложни фигури с VRML. Поставяне на текст в 3D сцената. 2011. ТЕМА 1 2. Геометрични възли. PointSet node. Синтаксис. PointSet { exposedField SFNode color NULL exposedField SFNode coord NULL }.
E N D
Мултимедия и основи на уеб дизайна ас.Елена Първанова Създаване на сложни фигури с VRML. Поставяне на текст в 3D сцената. 2011 ТЕМА 12
Геометрични възли PointSet node Синтаксис PointSet { exposedFieldSFNodecolor NULL exposedFieldSFNodecoord NULL } • PointSet nodeопределя набор от 3D точки с цвят в локалната координатна система. • Възела съдържа две полета colorиcoord. • Полето colorопределя цвета на точките с Color node: Color { color [ ] } • Полето coordопределя местоположението на точките с Coordinate node : Coordinate { point [ ] }
Геометрични възли PointSet node Пример – куб от точки #VRML V2.0 utf8 Shape { appearance Appearance { material Material { emissiveColor 1.0 1.0 1.0 } } geometry PointSet { coord Coordinate { point [ # координати за горната повърхност на куба -1.0 1.0 1.0, 1.0 1.0 1.0, 1.0 1.0 -1.0, -1.0 1.0 -1.0, # координати за долната повърхност на куба -1.0 -1.0 1.0, 1.0 -1.0 1.0, 1.0 -1.0 -1.0, -1.0 -1.0 -1.0 ] } } } Фиг.12.1 Изображение на примера Куб от точки Виж 3D модела
Геометрични възли IndexedLineSet node Синтаксис IndexedLineSet { coord NULL coordIndex [ ] color NULL colorIndex [ ] colorPerVertex TRUE } • IndexedLineSet node определя набор от линии с цвят в локалната координатна система. • Възелът съдържа 5 полета: coord, coordIndex, color, colorIndexиcolorPerVertex. • ПолетоcoordIndexопределя списък от координатни индекси, дефиниращи изрисуването на линиите. • ColorIndexизпълнява същата функция като coordIndex, но относно цветовете. • ColorPerVertexдефинира как цветовете да бъдат прилагани: • colorPerVertex е TRUE – цветовете се прилагат към всеки връх; • colorPerVertexе FALSE - цветовете се прилагат към всяка линия.
Геометрични възли IndexedLineSet node Пример – куб от линии #VRML V2.0 utf8 Shape { appearance Appearance { material Material emissiveColor 1.0 1.0 1.0 } } geometry IndexedLineSet { coord Coordinate { point [ #координати за горната повърхност на куба 1.0 1.0 1.0, 1.0 1.0 1.0, 1.0 1.0 -1.0, -1.0 1.0 -1.0, # координати за долната повърхност на куба 1.0 -1.0 1.0, 1.0 -1.0 1.0, 1.0 -1.0 -1.0, -1.0 -1.0 -1.0 ] } coordIndex [ 0, 1, 2, 3, 0, -1,# отгоре 4, 5, 6, 7, 4, -1, # отдолу 0, 4, -1, # вертикални ръбове 1, 5, -1, 2, 6, -1, 3, 7 ] } } Фиг.12.2 Изображение на примера Куб от линии Виж 3D модела
Геометрични възли IndexedFaceSet node Синтаксис IndexedFaceSet { coord NULL coordIndex [ ] color NULL colorIndex [ ] colorPerVertex TRUE normal NULL normalIndex [ ] normalPerVertex TRUE texCoord NULL texCoordIndex [ ] ccw TRUE ConvexTRUE solid TRUE creaseAngle 0.0 } • IndexedFaceSet nodeопределя набор от повърхнини в локалната координатна система. • Полетоcoordсе представят 3D координатите. • Полето coordIndexопределя списък от координатни индекси, които се използват за изчертаване на повърхнината. • Маркерът -1 показва, че дадената повърхнина е създадена и започва другата. • texCoordIndexсе използва за прилагане на текстура по зададени координати. • Полето ccwопределя дали точките дефиниращи повърхнината да се представят обратно (TRUE) или по часовниковата стрелка (FALSE). • Полето solidобуславя дали браузъра да изчертава двете страни на повърхнината (FALSE) или само предната (TRUE). • Полето convexопределя дали повърхнините дефинирани coordIndexда бъдат изпъкнали или не. • ПолетоcreaseAngleопределя ъгъла на закръгление.
Геометрични възли IndexedFaceSet node Пример – куб от повърхнини #VRML V2.0 utf8 Shape { appearance Appearance { material Material { } } geometry IndexedFaceSet { coord Coordinate { point [ #координати за горната повърхност на куба -1.0 1.0 1.0, 1.0 1.0 1.0, 1.0 1.0 -1.0, -1.0 1.0 -1.0, # координати за долната повърхност на куба -1.0 -1.0 1.0, 1.0 -1.0 1.0, 1.0 -1.0 -1.0, -1.0 -1.0 -1.0 ] } coordIndex [ 0, 1, 2, 3, -1,# отгоре 7, 6, 5, 4, -1, # отдолу 0, 4, 5, 1, -1, # отпред 1, 5, 6, 2, -1, # дясно 2, 6, 7, 3, -1, #отзад 3, 7, 4, 0# ляво ] } } Фиг.12.3 Изображение на примера Куб от повърхнини Виж 3D модела
Геометрични възли ElevationGrid node Синтаксис ElevationGrid { xDimension 0 xSpacing 0.0 zDimension 0 zSpacing 0.0 height [ ] color NULL colorPerVertex TRUE normal NULL normalPerVertex TRUE texCoord NULL ccw TRUE convex TRUE solid TRUE creaseAngle 0.0 } • ElevationGrid nodeопределя мрежа от точки, всяка със зададена височина. • Изгражда се в XZ повърхнина и има следните полета: • xDimension: броя на точките в мрежата по оста X. • zDimension: броя на точките в мрежата по оста Z. • xSpacing: разстоянието между две съседни точки по посока на оста X. • zSpacing: разстоянието между две съседни точки по посока на оста Z. • height: височина на всяка точка от мержата.
Геометрични възли ElevationGrid node Пример - планина #VRML V2.0 utf8 Shape { appearanceAppearance { material Material { } } geometry ElevationGrid { xDimension 9 zDimension 9 xSpacing 1.0 zSpacing 1.0 solid FALSE creaseAngle 0.785 height [ 0.0, 0.0, 0.5, 1.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.5, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5, 0.5, 3.0, 1.0, 0.5, 0.0, 1.0, 0.0, 0.0, 0.5, 2.0, 4.5, 2.5, 1.0, 1.5, 0.5, 1.0, 2.5, 3.0, 4.5, 5.5, 3.5, 3.0, 1.0, 0.0, 0.5, 2.0, 2.0, 2.5, 3.5, 4.0, 2.0, 0.5, 0.0, 0.0, 0.0, 0.5, 1.5, 1.0, 2.0, 3.0, 1.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 1.5, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, ] } } Фиг.11.3 Изображение на примера Планина Виж 3D модела
Геометрични възли Extrusion node Полетоspine(гръбнак) определя пътя по който сечението се движи, за да създаде фигура (фиг.12.5). • Extrusion Node мощен възел, който позволява дефинирането на много сложни фигури. • Основата на екструдираната фигура е 2D сечението на крайната фигура, дефинирано в XZ повърхнина (фиг.12.4). Фиг.12.5Spine на куб и перспективен път на сеченивто Фиг.12.4 Сечение на куб
Геометрични възли Extrusion node Синтаксис Extrusion { beginCap TRUE endCap TRUE ccw TRUE convex TRUE creaseAngle 0 crossSection [1 1,1 -1, -1-1, -1 0, 1 1] orientation 0 0 1 0 scale 1 1 solid TRUE spine [0 0 0, 0 1 0] } • Браузъра визуализира фигурата с две spineточки: • Преместване на сечението към първата spineточка; • Ориентиране на сечението; • Преместване на сечението към последната spineточка; Виж 3D модела Фиг.12.6 Куб създаден чрез Extrusion Node
Геометрични възли Extrusion node Пример - куб #VRML V2.0 utf8 Shape{ appearance Appearance { material Material { diffuseColor .8 .16 0 specularColor .5 .5 .5 emissiveColor .15 .03 0 ambientIntensity 0 } } geometry Extrusion{ crossSection [ -1 -1, -1 1, 1 1, 1 -1, -1 -1] spine [0 -1 0 , 0 1 0 ] beginCap FALSE endCap FALSE solid FALSE } } • ПолетатаbeginCapиendCapопределят дали екструдираната форма да бъде отворена или затворена в краищата. Виж 3D модела Фиг.12.7 Куб без горна и долна повърхнина
Геометрични възли Extrusion node Пример – куб #VRML V2.0 utf8 Shape{ appearance Appearance { material Material { diffuseColor .48 0 .8 specularColor .5 .5 .5 emissiveColor .09 0 .15 ambientIntensity 0 } } geometry Extrusion{ crossSection [ -1 -1, -1 1, 1 1, 1 -1, -1 -1] spine [3 5 0 , 0 0 0, -3 5 0] } } • Втората и следващата точки от полето spineориентират сечението перпендикулярено на тангента (допирателната) към spine (фиг.12.8). Фиг.12.8 Тнагента на spine Виж 3D модела Фиг.12.9 Куб с промяна тнагента на spine
Геометрични възли Extrusion node Пример – куб #VRML V2.0 utf8 Shape{ appearance Appearance { material Material { diffuseColor .8 .63 0 specularColor .5 .5 .5 emissiveColor .14 .11 0 ambientIntensity 0 } } geometry Extrusion{ crossSection [ -1 -1, -1 1, 1 1, 1 -1, -1 -1] spine [0 -1 0 , 0 1 0 ] orientation[0 1 0 0, 0 1 0 3.14] } } • Полето orientationопределя ориентацята на цялата фигура или на списък от ориентиращи фактори за всяка точка от spine. Виж 3D модела Фиг.12.10 Куб с промяна ориентацята (завъртане на 180 0 по ос Y)
Геометрични възли Text node Синтаксис lengthопределя дължината на всеки стринг във VRML единици; maxLengthограничава, намалява всички стрингове в полето string. • Text node позволява да представите стрингове във VRML сцената. • Възела съдържа следните полета: • string съдържа текста, който трябва да бъде представен; • fontStyleопределя как да бъде представен стринга посредством FontStyle Node: FontStyle { family "SERIF" horizontal TRUE j ustify "BEGIN" language "" leftToRight TRUE size 1.0 spacing 1.0 topToBottom TRUE } • Text { • string [ ] • fontStyle NULL • length [ ] • maxExtent 0.0 • }
Геометрични възли Text node Пример - текст #VRML V2.0 utf8 Shape { appearance Appearance { material Material {diffuseColor 0.8 0 0} } geometry Text { string [ "Qwerty", "Qwerty" ] length [ 3.0, 4.0 ] fontStyleFontStyle { family "SERIF" style "BOLD" } } } Фиг.12.11Текст във VRML