Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később Virtuál Reality Modelling Language (virtuális valóságot modellező nyelv)

Hasonló előadás


Az előadások a következő témára: "VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később Virtuál Reality Modelling Language (virtuális valóságot modellező nyelv)"— Előadás másolata:

1 VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később Virtuál Reality Modelling Language (virtuális valóságot modellező nyelv)

2 A VRML fájlok az alábbi négy fő összetevőből állnak: -A VRML fejléc -Prototípusok -Alakzatok, interpolátorok, szenzorok és scriptek -Útvonalak A VRML fájl az előbbieken kívül még az alábbi elemeket is tartalmazhatja: -Megjegyzések -Csomópontok -Mezők és mezőértékek -Definiált mezőnevek -Használt mezőnevek

3 A VRML FEJLÉC SZINTAXISA #VRML V2.0 utf8 A böngészők különbséget tesznek a kis- és a nagybetűk között. A fejléc arról tájékoztatja a böngészőt, hogy az utána következő fájl - VRML fájl, - megfelel a VRML 2.0 specifikációnak és - az UTF-8 nemzetközi karakterkészletet használja. Megjegyzések: #-el kezdődnek

4 CSOMÓPONTOK Leírják a világban lévő alakzatokat és azok tulajdonságait A csomópontok általánosságban az alábbi elemekből állnak: a csomópont típusa (kötelező) kapcsos zárójelpár (kötelező) néhány mező (nem kötelező) és mezőérték, amelyek a kapcsos zárójelpár között meghatározzák a csomópont tulajdonságait Cylinder { height 2.0 radius 2.0 }

5 MEZŐK ÉS MEZŐÉRTÉKEK A mezők (fields) egy csomópont tulajdonságait határozzák meg. pl: height 2.0 radius 2.0 CSOMÓPONTOK ELNEVEZÉSE DEF SZINTAXISA DEF csomópont_neve csomópont_típusa (…) USE SZINTAXISA USE csomópontnév

6 AZ ALAKZATOK LEÍRÁSA Egy VRML alakzatot az alábbi elemek írnak le: az alakzat geometriája, ami a háromdimenziós felépítését határozza meg, az alakzatnak az a színes (piros, kék stb.) anyaga (material), amiből az alakzat készül, és ami az alakzat megjelenését (appearance) határozza meg, valamint a mintázat (texture) – például fa vagy tégla -, ami az alakzat felületét határozza meg. A VRML fájlban egy alakzat geometria és a megjelenés tulajdonságait a Shape (alakzat) csomóponton belüli mezőértékek határozzák meg.

7 ALAKZATOK CSOPORTOSÍTÁSA Az alakzatok csoportokba foghatók össze a Group csomóponttal. A csoport alakzatait csoportba foglaló csomópontnak szülő (parent) a neve. A csoportot alkotó alakzatokat a csoport gyermekeinek (children) nevezik. Ha egy csoportot egy nagyobb csoport tartalmaz, akkor azt mondjuk, hogy az előző csoport be van ágyazva (nested) a nagyobb csoportba

8 ESEMÉNYEK ÉS ÚTVONALAK Ahhoz, hogy a világban meglévő építményeket dinamikussá lehessen tenni, az utasítások közé „behuzalozott” utasításokat is fel lehet venni. A VRML-ben a huzalozás két elemből tevődik össze: egymással összehuzalozott csomópont-párból és két csomópontot összekapcsoló huzalozási útvonalból (route). Pl: ROUTE Clock.fraction_changed TO CubePath.set_fraction ROUTE CubePath.value_changed TO Cube.set_translation

9 BEÉPÍTETT ALAKZATOK A Shape csomópontot használva primitív alakzatokat készíthetünk. Ilyen előre definiált vagy más néven primitív alakzat a Box (hasáb), a Cone (kúp), a Cylinder (henger) és a Sphere (gömb) csomópont.

10 A SHAPE CSOMÓPONT SZINTAXISA Shape { appearanceNULL#exposedField SFnode geometryNULL#exposedFieldSFnode } Az apearance mező olyan csomópontot specifikál, ami leírja az alakzat megjelenését, beleértve a színét és a felületének mintázatát. A geometry mező értéke olyan csomópontot specifikál, ami leírja az alakzat 3-D formáját, vagyis a geometriáját.

11 A BOX CSOMÓPONT SZINTAXISA BoxBox { size 2.0 2.0 2.0 #field SFVec3f } #VRML V2.0 utf8 Shape { appearance Appearance { material Material { } } geometry Box {Box size 1.0 3.0 5.0 }

12 A CONE CSOMÓPONT SZINTAXISA ConeCone { bottomRadius1.0#fieldSFFloat height2.0 #field SFFloat side TRUE#fieldSFBool bottom TRUE#fieldSFBool } #VRML V2.0 utf8 Shape { appearance Appearance { material Material { } } geometry Cone {Cone bottomRadius 3.5 height 1.5 }

13 A CYLINDER CSOMÓPONT SZINTAXISA CylinderCylinder { Radius 1.0 #field SFFloat height 2.0 #field SFFloat side TRUE #field SFBool top TRUE #field SFBool bottom TRUE #field SFBool } #VRML V2.0 utf8 Shape { appearance Appearance { material Material { } } geometry Cylinder {Cylinder radius 4.0 height 1.0 }

14 A SPHERE CSOMÓPONT SZINTAXISA SphereSphere { radius1.0#fieldSFFloat } A GROUP CSOMÓPONT SZINTAXISA Group { children [ ]#exposedField MFNode bboxCenter 0.0 0.0 0.0 #field SFVec3f bboxSize -1.0 -1.0 -1.0 #field SFVec3f addChildren #eventIn MFNode removeChildren #eventIn MFNode }

15 GROUP CSOMÓPONT PÉLDA #VRML V2.0 utf8 GroupGroup { children [ Shape { appearance DEF White Appearance { material Material { } } geometry Box { size 25.0 2.0 2.0 } }, Shape { appearance USE White geometry Box { size 2.0 25.0 2.0 } }, Shape { appearance USE White geometry Box { size 2.0 2.0 25.0 } } ] }

16 A TEXT CSOMÓPONT SZINTAXISA Text { string[ ] #exposedField MFString length [ ] #exposedField MFString maxExtent 0.0 #exposedField SFFloat fontStyle NULL #exposedField SFNode } A FONTSTYLE CSOMÓPONT SZINTAXISA FontStyle { family ”SERIF” #field SFString style ”PLAIN” #fieldSFString size 1.0 #field SFFloat spacing 1.0 #field SFFloat justify”BEGIN” #field SFString horizontal TRUE #field SFBool leftToright TRUE #field SFBool topTobottom TRUE #field SFBool language ” ” #field SFString } Példák

17 A TRANSFORM CSOMÓPONT SZINTAXISA Transform { children[ ]#exposedField MFNode translation0.0 0.0 0.0#exposedField SFVec3f rotation 0.0 0.0 1.0 0.0 #exposedField SFRotation scale 1.0 1.0 1.0 #exposedField SFVec3f scaleOrientation 0.0 0.0 0.0 #field SFVec3f bboxSize -1.0 -1.0 -1.0 #field SFVec3f center 0.0 0.0 0.0 #exposedField SFVec3f addChildren #eventIn MFNode removeChildren #eventIn MFNode }

18 FELADATOK 1. FELADAT: Készítsünk egy hengert, azon álljon egy kocka és a kocka tetején egy henger. (Minden primitív geometriának a méretei lehetnek alapértelmezésbeliek.) 2. FELADAT: Írjunk egy tetszés szerinti szöveget tetszés szerinti betűtípussal és formázással. 3. FELADAT: Az előző feladatbeli alkotásainkat toljuk el a világban tetszés szerinti pozícióba.

19 ALAKZATOK ELFORGATÁSA A Transform csoportosító csomópont és ennek rotation és center mezői segítségével alakzatokat és alakzatok csoportjait forgathatunk el egy koordinátarendszer kezdőpontja vagy egy általunk megadott középpont körül. Szokásos forgástengelyek értékei: IrányForgástengely értékei Jobbra az X tengely mentén1.0 0.0 0.0 Felfelé az Y tengely mentén 0.0 1.0 0.0 Előrefelé a Z tengely mentén 0.0 0.0 1.0

20 AZ ELFORGATÁSI SZÖGEK MEGADÁSA FokRadián 0.00.000 1.00.017 2.00.035 5.00.087 10.00.175 20.00.349 30.00.524 45.00.785 90.01.571 180.03.141 270.04.712 360.06.282 Fok x 180.0 /  = radián 30.0 x 180 /  = 0.524 Radián x  = fok 0.785 x  = 45.0 fok

21 AZ ELFORGATÁS JOBBKÉZ-SZABÁLYA Jobb kezünkkel megragadjuk a forgástengelyt, az ujjainkat behajlítjuk a tengely mentén, és a hüvelykujjunkat kinyújtjuk a tengely pozitív irányába. Egy pozitív elforgatási szög ugyanabba az irányba forgatja el a koordinátarendszert a forgástengely körül, mint amilyen irányba a többi ujjunk be van hajlítva.

22 A TRANSFORM CSOMÓPONT SZINTAXISA Transform { children[ ]#exposedField MFNode translation0.0 0.0 0.0#exposedField SFVec3f rotation 0.0 0.0 1.0 0.0 #exposedField SFRotation scale 1.0 1.0 1.0 #exposedField SFVec3f scaleOrientation 0.0 0.0 0.0 #field SFVec3f bboxSize -1.0 -1.0 -1.0 #field SFVec3f center 0.0 0.0 0.0 #exposedField SFVec3f addChildren #eventIn MFNode removeChildren #eventIn MFNode }

23 A ROTATION NYITOTT MEZŐ A rotation mező első három értéke egy 3-D koordinátapont X, Y, Z tengelyű összetevőit adja meg, az új eltolt koordinátarendszerben. Az ezt a koordinátapontot az eltolt kezdőponttal összekötő képzeletbeli egyenes adja meg az elforgatás tengelyét. A rotation mező negyedik értéke írja elő a radiánokban mért pozitív vagy negatív elforgatási szöget. A center nyitott mező értékei azt a 3-D koordinátapontot határozzák meg az új, eltolt koordinátarendszerben, ami körül az elforgatás történik. A translation, a center és a rotation mezők értékeit egymással kombinálva használjuk, akkor a böngésző bizonyos sorrend szerint jár el. A böngésző az új koordinátarendszert elforgatja a forrásközpont körül, majd a szülő koordinátarendszerhez képest eltolja. Példák

24 ALAKZATOK ÁTMÉRETEZÉSE A Transform csoportosító csomópont és ennek scale és scaleOrientation mezőjének segítségével tetszés szerint méretezhetjük át az alakzatokat vagy az alakzatok csoportját. A scale nyitott mező értékei az X, Y és Z irányú méretarányt határozzák meg az új koordinátarendszer számára. Az alapértelmezés szerinti 1.0 érték azt jelenti, hogy egyik tengely irányában sincs átméretezés. Méretarányokként csak pozitív értékeket szabad megadni. A scaleOrientation mező értékei azt a forgástengelyt és elforgatási szöget adják meg, ami körül, illetve amilyen mértékben az új koordinátarendszert az átméretezése előtt el kell forgatni, majd az átméretezést követően vissza kell forgatni. A center nyitott mező értékei azt a 3-D koordinátapontot határozzák meg az új, eltolt koordinátarendszerben, ami körül az elforgatás és az átméretezés történik. Az alapértelmezés szerinti elforgatási és átméretezési középpont a koordinátarendszer kezdőpontja.

25 ALAKZATOK ÁTMÉRETEZÉSE A translation, a center, a rotation, a scale és a scaleOrientation mezők értékeit egymással kombinálva használjuk, akkor a böngésző bizonyos sorrend szerint jár el. A böngésző az új koordinátarendszert átméretezi a középpont körül, először az átméretezéshez használandó elforgatás szerint elforgatja a forgásközpont körül, majd a szülő koordinátarendszerhez képest eltolja. A translation, a center, a rotation, a scale és a scaleOrientation mezők tetszőleges sorrendben adhatók meg a Transform csomóponton belül, ettől függetlenül azonban ezeket a böngésző mindig ebben a sorrendben alkalmazza. Példák

26 A HELY, AZ IRÁNY ÉS A MÉRETVÁLTOZÁS ANIMÁLÁSA Egy alakzatcsoport koordinátarendszerének animálásával elérhetjük, hogy ezek az alakzatok a kívánságunk szerint repüljenek, más helyre kerüljenek, elforduljanak vagy más méretet vegyenek fel a világunkban. Az animálás indításában, leállításában a TimeSensor csomópont az óra szerepét tölti be. Ahogy múlik az idő, ez az érzékelő eseményeket generál, melyekkel jelzi az időben bekövetkező változásokat. A koordinátarendszerek eltolásának, elforgatásának és átméretezésének kiváltásához a TimeSensor csomópont eseményeit PositionInterpolator és OrientationInterpolator csomópontokra küldhetjük. E csomópontok mindegyike új eltolási és elforgatási értékeket küld ki az eseményküldőjükön keresztül. Ha most ezeket az eseményeket egy Transform csomópontra irányítjuk, akkor a csomópont koordinátarendszere az animáció előrehaladásának megfelelően eltolódik, elfordul vagy megváltoztatja a méretét.

27 A HELY, AZ IRÁNY ÉS A MÉRETVÁLTOZÁS ANIMÁLÁSA A VRML ROUTE szintaxisa segítségével a TimeSensor csomópont egyik kimenetét összekötjük a PositionIterpolator vagy az OrientationInterpolator csomópont bemenetével. Ezután egy másik útvonalat használva az egyik interpolator csomópont kimenetét összekötjük egy Transform csomópont bemenetével. Egy korábbi példa: ROUTE Clock.fraction_changed TO CubePath.set_fraction ROUTE CubePath.value_changed TO Cube.set_translation

28 A „MOZGÁSIDŐ” - FRACTIONAL TIME Az ilyen animációt tipikusan mozgásidők segítségével írják le. Mozgásidőt (fractional time) használva úgy kell elképzelni egy animációt, hogy az a 0.0 mozgásidőben indul és az 1.0 mozgásidőben fejeződik be. A 0.0. és az 1.0. mozgásidő közötti időtartam független az abszolút időtől. (lehet 5 másodperc vagy 30 perc is) A 0.0.és az 1.0 mozgásidő közötti időtartam neve ciklusintervallum, és a TimeSensor csomópont cycleInterval mezőjének értékével adható meg. Egy korábbi példa: ROUTE Clock.fraction_changed TO CubePath.set_fraction ROUTE CubePath.value_changed TO Cube.set_translation

29 A TIMESENSOR CSOMÓPONT SZINTAXISA TimeSensor { enabledTRUE#exposedFieldSFBool startTime 0.0 #exposedField SFTime stopTime 0.0 #exposedField SFTime cycleInterval 1.0 #exposedField SFTime loop FALSE #exposedField SFBool isActive #eventOutSFTime time #eventOut SFTime cycleTime #eventOut SFTime fraction_changed #eventOut SFFloat } Egy korábbi példa: ROUTE Clock.fraction_changed TO CubePath.set_fraction ROUTE CubePath.value_changed TO Cube.set_translation

30 A POSITIONINTERPOLATOR CSOMÓPONT SZINTAXISA A PositionInterpolator csomópont kulcspozíciók sorozatát írja le, amelyek alkalmasak arra, hogy animációban használjuk őket. PositionIterpolator { key[ ]#exposedFieldMFFloat keyValue [ ] #exposedField MFVec3f set_fraction #eventIn SFFloat value_changed #eventOut SFVec3f } Egy korábbi példa: ROUTE Clock.fraction_changed TO CubePath.set_fraction ROUTE CubePath.value_changed TO Cube.set_translation

31 AZ ORIENTATIONINTERPOLATOR CSOMÓPONT SZINTAXISA Az OrientationInterpolator csomópont olyan kulcsforgatások sorozatát írja le, amelyek alkalmasak arra, hogy animációban használjuk őket. OrientatioIterpolator { key [ ] #exposedField MFFloat keyValue [ ] #exposedField MFRotatin set_fraction #eventIn SFFloat value_changed #eventOut SFRotation } Egy korábbi példa: ROUTE Clock.fraction_changed TO CubePath.set_fraction ROUTE CubePath.value_changed TO Cube.set_translation Példák

32 VÉGE Példák


Letölteni ppt "VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később Virtuál Reality Modelling Language (virtuális valóságot modellező nyelv)"

Hasonló előadás


Google Hirdetések