16
Създаване на сложни фигури с VRML. Поставяне на текст в 3D сцената. МУЛТИМЕДИЯ И ОСНОВИ НА УЕБ ДИЗАЙНА ас.Елена Първанова 2011 ТЕМА 12

Създаване на сложни фигури с VRML. Поставяне на текст в 3D сцената

Embed Size (px)

DESCRIPTION

Мултимедия и основи на уеб дизайна. а с.Елена Първанова. Създаване на сложни фигури с VRML. Поставяне на текст в 3D сцената. 2011. ТЕМА 1 2. Геометрични възли. PointSet node. Синтаксис. PointSet { exposedField SFNode color NULL exposedField SFNode coord NULL }. - PowerPoint PPT Presentation

Citation preview

Page 1: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

Създаване на сложни фигури с VRML. Поставяне на текст в 3D сцената.

МУЛТИМЕДИЯ И ОСНОВИ НА УЕБ ДИЗАЙНА

ас.Елена Първанова

2011

ТЕМА 12

Page 2: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

ГЕОМЕТРИЧНИ ВЪЗЛИ

PointSet node• PointSet node определя набор

от 3D точки с цвят в локалната координатна система.

• Възела съдържа две полета color и coord.

• Полето color определя цвета на точките с Color node: Color { color [ ] }

• Полето coord определя местоположението на точките с Coordinate node :Coordinate { point [ ] }

Синтаксис

PointSet { exposedField SFNode color NULLexposedField SFNode coord NULL

}

Page 3: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

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 модела

ГЕОМЕТРИЧНИ ВЪЗЛИ

Page 4: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

IndexedLineSet node• IndexedLineSet node определя набор

от линии с цвят в локалната координатна система.

• Възелът съдържа 5 полета: coord, coordIndex, color, colorIndex и colorPerVertex.

• Полето coordIndex определя списък от координатни индекси, дефиниращи изрисуването на линиите.

• ColorIndex изпълнява същата функция като coordIndex, но относно цветовете.

• ColorPerVertex дефинира как цветовете да бъдат прилагани: colorPerVertex е TRUE – цветовете се

прилагат към всеки връх; colorPerVertex е FALSE - цветовете се

прилагат към всяка линия.

Синтаксис

IndexedLineSet { coord NULL coordIndex [ ] color NULL colorIndex [ ] colorPerVertex TRUE

}

ГЕОМЕТРИЧНИ ВЪЗЛИ

Page 5: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

IndexedLineSet nodeПример – куб от линии

#VRML V2.0 utf8Shape {

appearance Appearance { material MaterialemissiveColor 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 модела

ГЕОМЕТРИЧНИ ВЪЗЛИ

Page 6: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

IndexedFaceSet node• IndexedFaceSet node определя набор от повърхнини в

локалната координатна система.• Полето coord се представят 3D координатите.• Полето coordIndex определя списък от координатни индекси,

които се използват за изчертаване на повърхнината.• Маркерът -1 показва, че дадената повърхнина е създадена и

започва другата.• texCoordIndex се използва за прилагане на текстура по

зададени координати.• Полето ccw определя дали точките дефиниращи

повърхнината да се представят обратно (TRUE) или по часовниковата стрелка (FALSE).

• Полето solid обуславя дали браузъра да изчертава двете страни на повърхнината (FALSE) или само предната (TRUE).

• Полето convex определя дали повърхнините дефинирани coordIndex да бъдат изпъкнали или не.

• Полето creaseAngle определя ъгъла на закръгление.

Синтаксис

IndexedFaceSet { coord NULL coordIndex [ ] color NULL colorIndex [ ] colorPerVertex TRUE normal NULL normalIndex [ ] normalPerVertex TRUE texCoord NULL texCoordIndex [ ] ccw TRUE Convex TRUE solid TRUE creaseAngle 0.0

}

ГЕОМЕТРИЧНИ ВЪЗЛИ

Page 7: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

Пример – куб от повърхнини

#VRML V2.0 utf8Shape {

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 # ляво ]

} }

IndexedFaceSet node

Фиг.12.3 Изображение на примераКуб от повърхнини

Виж 3D модела

ГЕОМЕТРИЧНИ ВЪЗЛИ

Page 8: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

ElevationGrid node• ElevationGrid node определя

мрежа от точки, всяка със зададена височина.

• Изгражда се в XZ повърхнина и има следните полета: xDimension: броя на точките в

мрежата по оста X. zDimension: броя на точките в

мрежата по оста Z. xSpacing: разстоянието между

две съседни точки по посока на оста X.

zSpacing: разстоянието между две съседни точки по посока на оста Z.

height: височина на всяка точка от мержата.

Синтаксис

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 TRUEcreaseAngle 0.0

}

ГЕОМЕТРИЧНИ ВЪЗЛИ

Page 9: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

Пример - планина

#VRML V2.0 utf8Shape {

appearance Appearance { 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,]

} }

ElevationGrid node

Фиг.11.3 Изображение на примераПланина

Виж 3D модела

ГЕОМЕТРИЧНИ ВЪЗЛИ

Page 10: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

Extrusion node• Extrusion Node мощен възел, който

позволява дефинирането на много сложни фигури.

• Основата на екструдираната фигура е 2D сечението на крайната фигура, дефинирано в XZ повърхнина (фиг.12.4).

• Полето spine (гръбнак) определя пътя по който сечението се движи, за да създаде фигура (фиг.12.5).

Фиг.12.4 Сечение на кубФиг.12.5 Spine на куб и перспективен път

на сеченивто

ГЕОМЕТРИЧНИ ВЪЗЛИ

Page 11: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

• Браузъра визуализира фигурата с две spine точки:

• Преместване на сечението към първата spine точка;

• Ориентиране на сечението;• Преместване на сечението към

последната spine точка;

Синтаксис

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]

}

Фиг.12.6 Куб създаден чрез Extrusion Node Виж 3D модела

Extrusion node

ГЕОМЕТРИЧНИ ВЪЗЛИ

Page 12: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

• Полетата beginCap и endCap определят дали екструдираната форма да бъде отворена или затворена в краищата.

Пример - куб#VRML V2.0 utf8 Shape{

appearance Appearance { material Material {

diffuseColor .8 .16 0

specularColor .5 .5 .5emissiveColor .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}

}

Фиг.12.7 Куб без горна и долна повърхнина Виж 3D модела

Extrusion node

ГЕОМЕТРИЧНИ ВЪЗЛИ

Page 13: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

• Втората и следващата точки от полето spine ориентират сечението перпендикулярено на тангента (допирателната) към spine (фиг.12.8).

Пример – куб #VRML V2.0 utf8Shape{

appearance Appearance { material Material {diffuseColor .48 0 .8specularColor .5 .5 .5emissiveColor .09 0 .15ambientIntensity 0}

} geometry Extrusion{ crossSection [ -1 -1, -1 1, 1 1, 1 -1, -1 -1] spine [3 5 0 , 0 0 0, -3 5 0]

} }

Фиг.12.8 Тнагента на spine

Фиг.12.9 Куб с промяна тнагента на spineВиж 3D модела

Extrusion node

ГЕОМЕТРИЧНИ ВЪЗЛИ

Page 14: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

• Полето orientation определя ориентацята на цялата фигура или на списък от ориентиращи фактори за всяка точка от spine.

Пример – куб #VRML V2.0 utf8 Shape{

appearance Appearance { material Material {diffuseColor .8 .63 0specularColor .5 .5 .5emissiveColor .14 .11 0ambientIntensity 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]

} }

Фиг.12.10 Куб с промяна ориентацята (завъртане на 180 0 по ос Y)

Виж 3D модела

Extrusion node

ГЕОМЕТРИЧНИ ВЪЗЛИ

Page 15: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

Text node• Text node позволява да представите

стрингове във VRML сцената.• Възела съдържа следните полета:

string съдържа текста, който трябва да бъде представен;

fontStyle определя как да бъде представен стринга посредством FontStyle Node:

FontStyle { family "SERIF" horizontal TRUE justify "BEGIN" language "" leftToRight TRUE size 1.0 spacing 1.0 topToBottom TRUE

}

Синтаксис

length определя дължината на всеки стринг във VRML единици;

maxLength ограничава, намалява всички стрингове в полето string.

Text { string [ ] fontStyle NULL length [ ] maxExtent 0.0

}

ГЕОМЕТРИЧНИ ВЪЗЛИ

Page 16: Създаване на сложни фигури с  VRML.  Поставяне на текст в  3D  сцената

Text node Пример - текст

#VRML V2.0 utf8Shape { appearance Appearance { material Material {diffuseColor 0.8 0 0} } geometry Text { string [ "Qwerty", "Qwerty" ] length [ 3.0, 4.0 ]

fontStyle FontStyle { family "SERIF" style "BOLD" } }}

Фиг.12.11 Текст във VRML

ГЕОМЕТРИЧНИ ВЪЗЛИ