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)

Slides:



Advertisements
Hasonló előadás
Grafikus tervezőrendszerek programozása 10. előadás.
Advertisements

Bekezdésformázás Név: Szarvas Nóra 8/a Felkészítő tanár: Salamon Róza
Az integrált áramkörök (IC-k) tervezése
FRAME-k (keretek). FRAME-k A frame-ek (keretek) segítségével a képernyőt felosztva egyszerre jeleníthetünk meg több webes dokumentumot a képernyőn. Fejlec.html.
Számítógépes geometriai leíró nyelvek
Virtuális világ tárolása Szirmay-Kalos László. Belső világ tárolása l Geometria: pontok koordinátái l Topológia: élek-pontok; lapok-pontok;... l hierarchia:
Számítógépes Grafika 6. gyakorlat Programtervező informatikus (esti)‏ 2009/2010 őszi félév.
Az első program, avagy ismerkedés a nyelvvel
Függvénytranszformációk
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
Prototípuskészítés Verilog nyelven Screen Saver Készítette: Mészáros Péter.
HTML nyelv.
Hernyák Zoltán XML és HTML.
Adatbáziskezelés az MSAccess programmal Makány György 5. rész: Jelentések.
Adatbáziskezelés az MSAccess programmal Makány György 2. rész: Adattáblák létrehozása külső adatforrásból.
A HTML alapjai Havlik Barnabás Készítette:
Web-grafika (VRML) 6. gyakorlat Nyitrai Erika Varga Balázs alapján Kereszty Gábor.
Web-grafika (VRML) 3. gyakorlat Nyitrai Erika Varga Balázs alapján Kereszty Gábor.
Web-grafika (VRML) 10. gyakorlat Kereszty Gábor. Script típusok Elemi típusok: szám: egész vagy lebegőpontos – int / float – 1 / 1.1 string: ‘Hello World!’
Web-grafika (VRML) 9. gyakorlat Kereszty Gábor. Prototípus PROTO prototípusnév [ field fieldTypefieldName defaultValue exposedField fieldTypefieldName.
Web-grafika (VRML) 4. gyakorlat Nyitrai Erika Varga Balázs alapján Kereszty Gábor.
Web-grafika II (SVG) 2. gyakorlat Kereszty Gábor.
Web-grafika (VRML) 7. gyakorlat Nyitrai Erika Varga Balázs alapján Kereszty Gábor.
HTML oldal felépítése Készítette: Pataki Arnold
Szélességi bejárás A szélességi bejárással egy irányított vagy irányítás nélküli véges gráfot járhatunk be a kezdőcsúcstól való távolságuk növekvő sorrendjében.
Webszerkesztés Stíluslapok (CSS).
Webszerkesztés Űrlapok a HTML-ben. Űrlap létrehozása Űrlapunk tartalma a … elemek között fog helyetfoglalni Egy lapon több űrlap is elhelyezhető Több.
CSS.
A PHP (PHP: Hypertext Preprocessor) nyílt forráskódú, számítógépes szkriptnyelv, legfőbb felhasználási területe a dinamikus weboldalak készítése. Emiatt.
A szinusz és koszinuszfüggvény definíciója, egyszerű tulajdonságai
Számítógépes Grafika Programtervező informatikus (esti)‏ Textúrázás.
Készítette: Kreka Bálint
Web-grafika (VRML) 1. gyakorlat Nyitrai Erika Varga Balázs.
Grafikus tervezőrendszerek programozása 11. előadás.
Alprogramok deklarációja, definíciója és meghívása Páll Boglárka.
16. Modul Egybevágóságok.
Prezentáció a prezentációról
HTML nyelv.
A képernyő kezelése: kiíratások
Hyper Text Markup Language
Visual Basic 2008 Express Edition
Web-grafika II (SVG) 3. gyakorlat Kereszty Gábor.
Web-grafika II (SVG) 4. gyakorlat
Web-grafika II (SVG) 8. gyakorlat Kereszty Gábor.
Web-grafika II (SVG) 6. gyakorlat Kereszty Gábor.
1. Feladat Hozzunk létre egy olyan programot amely számokat ír ki és a felhasználónak időre be kell gépelni ezeket.
Embarcadero Rad Studio XE5 3D fények, alakzatok bemutatása
Objektum orientált programozás 3. Függvények Nagy Szilvia.
Objektum orientált programozás
XML Mi az XML?  Extensible Markup Language  Kiterjeszthető jelölő nyelv  Adatok, adatstruktúrák leírására szolgál  A HTML és az SGML tapasztalataira.
Elektronikus tananyag
Számítógépes Grafika 6. gyakorlat Programtervező informatikus (esti)‏ 2009/2010 őszi félév.
ACCESS Lekérdezések, űrlapok, jelentések
KÖRNYEZETINFORMATIKA_8 MAGYARORSZÁGI VETÜLETEK ÉS SZELVÉNYHÁLÓZATOK
Táblázatok.
Algebrai struktúrák: csoport, gyűrű, test. RSA Cryptosystem/ Titkosítási rendszer Rivest, Shamir, Adelman (1978) RSA a neten leggyakrabban használt.
Spanyolország gyöngyszeme: GRANADA Egy hobby portál kivitelezése.
Számítógépes grafika I. AUTOCAD alapok 3. előadás.
Gazdasági informatikus - Szövegszerkesztés 1 Bekezdések formázása 3.
Web-grafika (VRML) 1. gyakorlat Nyitrai Erika Varga Balázs alapján Kereszty Gábor.
Web-grafika (VRML) 5. gyakorlat Nyitrai Erika Varga Balázs alapján Kereszty Gábor.
Web-grafika (VRML) 2. gyakorlat Nyitrai Erika Varga Balázs.
Informatika Oktató: Bock Ádám. Prezentáció készítés PowerPoint program segítségével.
Alkalmazott Informatikai Tanszék
EGYSZERŰ MOZGÁSOK Motorok vezérlése.
Programozás C# -ban Elágazások.
Neumann János Informatikai Kar
A CLIPS keretrendszer
MySQL DDL parancsok – Adatbázis műveletek, mezőtípusok
téma közlemény SmartArt-ábra piros hátterű képekkel (Haladó)
Előadás másolata:

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 -Ú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

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

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 }

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

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.

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

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

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.

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.

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

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 }

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 }

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

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

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

A TRANSFORM CSOMÓPONT SZINTAXISA Transform { children[ ]#exposedField MFNode translation #exposedField SFVec3f rotation #exposedField SFRotation scale #exposedField SFVec3f scaleOrientation #field SFVec3f bboxSize #field SFVec3f center #exposedField SFVec3f addChildren #eventIn MFNode removeChildren #eventIn MFNode }

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.

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én Felfelé az Y tengely mentén Előrefelé a Z tengely mentén

AZ ELFORGATÁSI SZÖGEK MEGADÁSA FokRadián Fok x /  = radián 30.0 x 180 /  = Radián x  = fok x  = 45.0 fok

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.

A TRANSFORM CSOMÓPONT SZINTAXISA Transform { children[ ]#exposedField MFNode translation #exposedField SFVec3f rotation #exposedField SFRotation scale #exposedField SFVec3f scaleOrientation #field SFVec3f bboxSize #field SFVec3f center #exposedField SFVec3f addChildren #eventIn MFNode removeChildren #eventIn MFNode }

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

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.

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

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.

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

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

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

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

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

VÉGE Példák