vrml virtual reality markup language (virtuális valóságot jelölő nyelv), később
DESCRIPTION
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). 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 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/1.jpg)
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)
![Page 2: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/2.jpg)
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
![Page 3: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/3.jpg)
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
![Page 4: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/4.jpg)
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 }
![Page 5: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/5.jpg)
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 SZINTAXISADEF csomópont_neve csomópont_típusa (…)
USE SZINTAXISAUSE csomópontnév
![Page 6: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/6.jpg)
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.
![Page 7: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/7.jpg)
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
![Page 8: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/8.jpg)
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_fractionROUTE CubePath.value_changed TO Cube.set_translation
![Page 9: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/9.jpg)
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.
![Page 10: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/10.jpg)
A SHAPE CSOMÓPONT SZINTAXISA
Shape {appearance NULL #exposedField SFnode
geometry NULL #exposedField SFnode}
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.
![Page 11: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/11.jpg)
A BOX CSOMÓPONT SZINTAXISA
Box { size 2.0 2.0 2.0 #field SFVec3f
}
#VRML V2.0 utf8Shape { appearance Appearance { material Material { } } geometry Box { size 1.0 3.0 5.0 }}
![Page 12: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/12.jpg)
A CONE CSOMÓPONT SZINTAXISACone { bottomRadius 1.0 #field SFFloat height 2.0 #field SFFloat side TRUE #field SFBool bottom TRUE #field SFBool}
#VRML V2.0 utf8Shape { appearance Appearance { material Material { } } geometry Cone {
bottomRadius 3.5 height 1.5
}}
![Page 13: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/13.jpg)
A CYLINDER CSOMÓPONT SZINTAXISA
Cylinder { 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 utf8Shape { appearance Appearance { material Material { } } geometry Cylinder { radius 4.0 height 1.0 }}
![Page 14: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/14.jpg)
A SPHERE CSOMÓPONT SZINTAXISA
Sphere { radius 1.0 #field SFFloat}
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}
![Page 15: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/15.jpg)
GROUP CSOMÓPONT PÉLDA#VRML V2.0 utf8Group { 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 } } ] }
![Page 16: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/16.jpg)
A TEXT CSOMÓPONT SZINTAXISAText { string [ ] #exposedField MFString length [ ] #exposedField MFString maxExtent 0.0 #exposedField SFFloat fontStyle NULL #exposedField SFNode}
A FONTSTYLE CSOMÓPONT SZINTAXISAFontStyle { family ”SERIF” #field SFString style ”PLAIN” #field SFString 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
![Page 17: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/17.jpg)
A TRANSFORM CSOMÓPONT SZINTAXISA
Transform { children [ ] #exposedField MFNode translation 0.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}
![Page 18: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/18.jpg)
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.
![Page 19: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/19.jpg)
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ány Forgástengely értékeiJobbra az X tengely mentén 1.0 0.0 0.0Felfelé az Y tengely mentén 0.0 1.0 0.0Előrefelé a Z tengely mentén 0.0 0.0 1.0
![Page 20: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/20.jpg)
AZ ELFORGATÁSI SZÖGEK MEGADÁSA
Fok Radián
0.0 0.000
1.0 0.017
2.0 0.035
5.0 0.087
10.0 0.175
20.0 0.349
30.0 0.524
45.0 0.785
90.0 1.571
180.0 3.141
270.0 4.712
360.0 6.282
Fok x 180.0 / = radián
30.0 x 180 / = 0.524
Radián x = fok
0.785 x = 45.0 fok
![Page 21: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/21.jpg)
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.
![Page 22: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/22.jpg)
A TRANSFORM CSOMÓPONT SZINTAXISA
Transform { children [ ] #exposedField MFNode translation 0.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}
![Page 23: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/23.jpg)
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
![Page 24: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/24.jpg)
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.
![Page 25: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/25.jpg)
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
![Page 26: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/26.jpg)
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.
![Page 27: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/27.jpg)
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_fractionROUTE CubePath.value_changed TO Cube.set_translation
![Page 28: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/28.jpg)
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_fractionROUTE CubePath.value_changed TO Cube.set_translation
![Page 29: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/29.jpg)
A TIMESENSOR CSOMÓPONT SZINTAXISA
TimeSensor { enabled TRUE #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_fractionROUTE CubePath.value_changed TO Cube.set_translation
![Page 30: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/30.jpg)
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 [ ] #exposedField MFFloat keyValue [ ] #exposedField MFVec3f set_fraction #eventIn SFFloat value_changed #eventOut SFVec3f}
Egy korábbi példa:ROUTE Clock.fraction_changed TO CubePath.set_fractionROUTE CubePath.value_changed TO Cube.set_translation
![Page 31: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/31.jpg)
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_fractionROUTE CubePath.value_changed TO Cube.set_translation
Példák
![Page 32: VRML Virtual Reality Markup Language (virtuális valóságot jelölő nyelv), később](https://reader036.vdocuments.pub/reader036/viewer/2022062408/56813273550346895d990d12/html5/thumbnails/32.jpg)
VÉGEPéldák