Sunteți pe pagina 1din 21

CURS VRML

(The) Virtual Reality Modeling Language (VRML) (Specificaiile versiunii 1.0)

1. Introducere VRML este este un limbaj de descriere a simulrilor interactive de tip multiparticipant, a lumilor de tip reea i Internet i hyper-legturi cu World Wide Web. Toate aspectele afirii lumilor virtuale ca i interaciunile i interlegturile, pot fi specificate utiliznd VRML. n felul acesta, VRML a devenit limbajul standard de simulare interactiv a lumilor virtuale n Worl Wide Web. Istoria dezvoltrii Internetului prezint trei faze distincte. Prima const n dezvoltarea infrastructurii TCP/IP care permite ca documentele i datele s fie stocate n diverse moduri. Astfel, Internetul furnizeaz un substrat abstract situat ntre setul de date i structurile de hosting ale acestora. Atunci cnd Tim Bernet-Lee de la CERN a dezvoltat sistemul hyper-media numit World Wide Web, el a prevzut o structur abstract constnd ntr-o schem de adresare bazat pe un identificator unic (the Universal Resource Locator URL), pe baza cruia se poate specifica oricnd modul de accesare a datelor n Web. Aceasta constituie cea de-a doua faz din istoria dezvoltrii Internetului. n fine, cea de-a treia faz, cea a perceptualizrii (percepiei senzitive) informaiilor n Internet, este n curs de derulare i la ea particip din plin tehnologiile VRML, alturi de alte tehnologii. VRML a fost startat n primvara anului 1994, la prima Conferin World Wide Web, inut la Geneva, Elveia. Tim berners-Lee i Dave Raggett au organizat o sesiune de discuii bazate pe interfeele de tip realitate virtual, utilizabile sub WWW. Participanii au czut de acord c aplicaiile vizuale 3D, la care muli dintre ei i aduceau aportul prin

proiectele la care lucrau, necesit un limbaj standard de descriere, analog HTML-ului. Astfel, a fost adoptat termenul VRML (Virtual Realitz Markup Language). Cuvntul Markup a fost ulterior schimbat n Modeling. La scurt timp dup Conferina de la Geneva, a fost creat un grup de discuii pe teme VRML. n felul acesta, s-au pus bazele specificaiilor primei versiuni VRML. n interval de o sptmn, numrul membrilor grupului a ajuns la peste o mie. n urma a numeroase discuii, s-a adoptat o list de necesiti (cerine), impuse limbajului VRML: independen de platform; extensibilitate; capacitate de funcionare performant chiar pe conexiuni de lime de band redus. Dup cutri atente a tehnologiilor care s poat candida la proiectul de implementare a VRML, s-a czut de acord s se adopte The Open Inventar ASCII File Format al firmei Silicon Graphics Inc. Aceast tehnologie suport n mod complet descrierile lumilor 3D, realiznd randarea obiectelor poligonale, iluminri, texturi de material, proprieti de ambient i efecte nrealistice. Astfel, un subset al Inventar File Format cu suport extins n networking, a constituit bazele VRML.

2. Bazele limbajului La cel mai nalt nivel de abstracie, VRML este o cale de descriere a obiectelor. Teoretic, obiectele pot conine orice: geometrie 3D, date MIDI (Musical Instrument Digital Interface), imagini JPEG etc. VRML poate gestiona un set de obiecte utile n reprezentrile 3D. Aceste obiecte se numesc generic noduri. Nodurile sunt aranjate n structuri ierarhice numite scene graphs (scene grafice). Scenele grafice sunt mai mult dect colecii de noduri. Ele definesc i o ordonare a nodurilor. O scen grafic prezint noiunea de stare. Astfel, nodurile cu apariie avansat n timp (anterioare), n cadrul unei lumi virtuale (aplicaie

VRML), pot afecta nodurile cu apariie trzie (ulterioare) din lumea virtual. De exemplu, un nod Rotation sau Material poate afecta nodurile ce-i urmeaz. Se definete de aceea, un mecanism de limitare a unor astfel de efecte. El se numete separator nodes (separator de noduri). Acest mechanism permite ca pri de scen grafic s fie isolate din punct de vedere funcional. Un nod prezint urmtoarele caracteristici: Tipul de obiect un nod poate fi un cub, o sfer, o textur, o transformare etc. Parametri distinctivi parametri ce fac distincia ntre un nod i oricare altul de acelai tip. De exemplu, fiecare nod sfer poate avea o raz specific, iar diversele texturi mapeaz noduri corespunznd la imagini diverse. Aceti parametri sunt numii cmpuri (fields). Numele de identificare al nodului. Nodurile nu trebuie s fie n mod obligatoriu denumite. Dar dac un nod este denumit, atunci el nu poate prezenta dect un singur nume. Un nume, ns, nu trebuie neaprat s fie unic. Mai multe noduri pot purta acelai nume. Nodurile copil Implementarea ca obiecte ierarhice permit nodurilor s conin alte noduri. Nodurile ce pot deine copii (nodurile printe) sunt referite ca grup de noduri. Un grup de noduri poate avea zero sau mai muli copii. Sintaxa de reprezentare n acest caz este: DEF objectname objecttype (fields children) Obligatorii n sintax sunt doar tipul obiectului i paranteza acolad. Nodurile pot sau nu s aib nume, cmp sau copii. Numele unui nod nu trebuie s nceap cu o cifr, nu trebuie s conin spaii sau caractere de control, caractere ghilimea, back slash-uri, paranteze acolad sau caracterul punct. Ca exemplu se d urmtorul fiier ce conine o lume virtual simpl constituit dintr-un con i o sfer albastr, sub un fascicul direcional de lumin.

sfero_cub.wrl #VRML V1.0 ascii Separator { DirectionalLight { direction 0 0 -1 # Lumina cade dinspre observator } PerspectiveCamera { position -8.6 2.1 5.6 orientation -0.1352 -0.9831 -0.1233 1.1417 focalDistance 10.84 } Separator # Sfera roie { Material { } Translation { translation Sphere { radius 2.3 } } Separator # Cubul albastru { Material { } Transform { } Cube } } {} translation -2.4 .2 1 rotation 0 1 1 .9 diffuseColor 0 0 1 # Albastru (RGB) 301} diffuseColor 1 0 0 # Rou (RGB)

Se pot face n continuare o serie de modificri n cadrul fiierului implementat cu codul de mai sus. Astfel, sfera poate fi recolorat n albastru dac declaraia diffuseColor 1 0 0 se modific n diffuse Color0 0 1. Apoi, cubul poate fi transformat n sfer, nlocuind ultima declaraie cu Sphere {radius 1}. Culoarea acestei sfere poate fi fcut gri, prin diffuse Color 0.5 0.5 0.5. n continuare va fi fcut o analiz sistemic a aplicaiei descrise mai sus. 2.1. Sintaxa general Pentru o mai simpl identificare a fiierelor VRML, fiecare astfel de fiier va trebui s nceap cu o prim linie de comentariu de tipul: #VRML V1.0 ascii header VRML Caracterul # indic nceput de comentariu, astfel nct caracterele ce i urmeaz, pn la primul new line ntlnit sau primul <CR>, sunt ignorate de interpretor. Unica excepie n acest caz este aceea cnd # apare n interiorul unui ir de caractere cuprinse ntre ghilimele duble (ir de tip SFString sau MFString). n acest caz, caracterul # este parte a irului. Observaie Comentariile i blank-urile se poate s nu fie prezervate. Astfel, exist posibilitatea ca un document VRML s fie transmis de ctre server ctre client fr informaia de comentariu i blank-uri. Pentru a specifica n mod expres dorina de a pstra n document astfel de informaii, se pot folosi nodurile cu Info. Un astfel de nod este de fapt o clas. El este utilizat n stocarea informaiilor n cadrul scenei grafie, tipic aplicaiilor de scop specific, mesajelor de copy right etc. Nu se indic utilizarea nodurilor Info ca sintax de transfer a tuturor informaiilor specificate mai sus. n acest scop se recomannd mai degrab utilizarea caracteristicilor de extensibilitate (extensibility features). Un exemplu de utilizare a unui nod Info este:

Info { string < informaii nedefinite } #SFString Nodurile Info pot fi utilizate, de asemenea, n descrierile obiectelor. Blank-urile, tab-urile, new-line-urile i <CR>-urile sunt caractere de spaiere, ele aprnd ntotdeauna n afara cmpurilor de tip ir. Unul sau mai multe caractere de spaiere separ entitile sintactice din cadrul fiierelor VRML, atunci cnd este necesar. VRML este case-senzitiv. Sphere difer de sphere. n timp ce numele de cmpuri ncep cu liter minuscul, tipurile de nod ncep cu liter majuscul.

3. Sistemul de coordonate VRML utilizeaz un sistem de coordonate cartezian, ortogonal drept. Implicit, obiectele sunt proiectate pe plane, sensul proieciei lor fiind sensul pozitiv al axei z. O transformare de model sau de perspectiv poate modifica oricnd proiecia implicit. Lumile VRML pot conine un numr arbitrar de sisteme de coordonate (sau obiecte spaiale), definite prin transformri de modelare utiliznd nodurile Translate, Rotate, Scale, Transform, MatrixTransform. Fiind dat un vector V i o serie de transformri: Translation { translation T} Rotation { rotation R} Scale { scaleFactor S} Coordinate3 {point V} PointSet { numPoints 1 } vectorul va fi transformat n V dac transformrile s-au aplicat n ordinea: V=TRSV sau vectorul V este de tip coloan

V=VSRT

vectorul V este de tip linie

Conceptual, VRML prezint un sistem de coordonate analog sistemului de coordonate utilizat pentru perspectiv. Diversele coordonate locale transform prin mapare obiectele din sistemul de coordonate VRML.

4. Cmpuri Exist dou clase generale de cmpuri. Cmpuri care conin o singur valoare (o valoare poate fi un numr, un vector sau chiar o imagine), i cmpuri care conin valori multiple. Cmpurile cu o singur valoare cu numele ncepnd cu SF, n timp ce cmpurile ce conin valori multiple cu numele ncepnd cu MF. Fiecare tip de cmp definete formatul pentru valoarea nscris n el. Cmpurile MF sunt nscrise ca o serie de valori separate prin virgul, cuprinse ntre paranteze ptrate, ultima valoare poate fi urmat optimal de virgul. Dac un cmp prezint zero valori, atunci n expresie vor aprea parantezele ptrate vide. Dac un cmp prezint o valoare, i numai una, parantezele ptrate pot fi omise. De exemplu, urmtoarele cmpuri conin unica valoare 1: 1 [1, ] [1 ] 4.1. Masca SFBit Un cmp cu o unic valoare poate conine o masc de bii. Nodurile care utilizeaz acest cmp definesc mnemonice pentru flag-urile binare. SFBiii masc sunt nscrii ntrun fiier ca unul sau mai multe mnemonice de tip enumerat, n formatul: (flag1 | flag2 | )

Dac doar un flag este utilizat n masc, parantezele devin opionale. Numele acestor flag-uri difer n timpul utilizrii acestor cmpuri, pentru diverse clase de noduri. Pentru SFBitMask pot fi definii pn la 32 flag-uri distincte. SFBool Un cmp coninnd o unic valoare boolean. SFBool poate fi nscris ca 0 (FALSE), 1 (TRUE), TRUE sau FALSE: SFColor/MFColor Cmpuri ce conin una ( SFColor), zero sau mai multe (MFColor) culori RGB. Fiecare culoare este nscris n fiier ca un triplet RGB de numere reale n format ANSI C floating point, n domeniul 0.0 la 1.0. De exemplu: [1.0 0. 0.0, 0 1 0, 0 0 1 ] este un cmp MFColor coninnd cele trei culori: rou, verde i albastru. SFEnum Un cmp unic valoare ce conine o valoare de tip enumerat. Nodurile care utilizeaz aceast clas de cmpuri definesc mnemonice pentru valori. SFEnum sunt nscrise n fiier ca tip un nume de tip mnemonic enumerat. SFFloat/MFFloat cmpuri care conin unul (SFFloat), zero sau mai multe (MFFloat) numere reale simpl precizie. SFFloat-urile sunt nscrise n fiier n format ANSI C floating point. De exemplu: [3.1415926, 12.5e-3, .0001] este un cmp MFFloat, coninnd 3 valori. SFImage Un cmp ce conine o imagine decompresat bidimensional, color sau scar de gri. SFImage-urile sunt nscrise n fiier ca 3 ntregi reprezentnd limea, nlimea i numrul de componente de imagine, urmai de valorile hexazecimale width*height reprezentnd numrul de pixeli ai imaginii, separate prin blanc-uri. O component de imagine va avea o valoare hexazecimal pe un octet reprezentnd intensitatea imaginii. De exemplu, 0xFF reprezint maximul de intensitate, n timp ce

0x00 reprezint minimul. Cele 2 componente de imagine storeaz valoarea intensitii n primul octet (high byte) i transparena n cel de-al 2-lea octet (low byte). Pixelii din cea de-a 3-a component de imagine conin informaia de rou n primul (high), urmat de informaiile de verde i albastru (astfel, 0xFF0000 semnific rou). A 4- component de imagine pune informaia de transparen ntr-un octet situat dup cei trei de culoare astfel: 0x0000FF80 reprezint albastru semitransparent. Valoarea 1.0 indic transparena complet, n timp ce 0.0 indic totala opacitate. Not: Fiecare pixel este pus n corelaie cu un numr de tip unsigned, astfel nct cea de-a treia component cu valoarea 0x0000ff poate fi scris ca 0xff sau 255. Pixelii sunt specificai de la stnga la dreapta, de la coad la vrf. Prima valoare hexazecimal corespunde celui mai dejos i mai din stnga pixel de imagine, iar ultima valoare corespunde celui mai de sus i dreapta pixel. Exemplu: 1 2 1 0xff 0x00 reprezint o imagine cu limea de un pixel i nlimea de doi pixeli, scar de gri, cupixelul din coad alb i pixelul din vrf negru, iar: 2 4 3 0xff0000 0xff00 0 0 0 0 0xffffff 0xfff00 este o imagine RGB cu limea de doi pixeli i nlimea de patru pixeli, cu pixelul din coad stnga rou, pixelul din coad dreapta verde, cei doi pixeli de pe rndul din mijloc negri, pixelul din vrf stnga alb i pixelul din vrf dreapta galben. SFLong/MFLong Aceste cmpuri coni unul (SFLong), zero sau mai muli (MFLong) ntregi pe 32 bii. SFLong-urile sunt nscrise n fiier ca un ntreg exprimat n zecimal, hexazecimal (ncepnd cu 0x) sau octal (ncepnd cu 0). De exemplu: [17, -0xE20, -518820] este un cmp MFLong coninnd trei valori. SFMatrix Un cmp coninnd o transformare matriceal. SFMatrix-ele sunt nscrise n fiier ca numere 16 floating point separate prin blank-uri. De exemplu, o matrice exprimnd o translaie de 7.3 uniti n lungul axei x se scrie astfel: 1 0 0 0 0 1 0 0 0 0 1 0 7.3 0 0 1

SFRotation Un cmp coninnd o rotaie arbitrat. SFRotation sunt nscrise n fiier ca patru valori floating point separate prin blank. Cele patru valori reprezint cte o rotaie n sens trigonometric cu un unghi exprimat n radiani. De exemplu, o rotaie cu 180 de grade n jurul axei y se noteaz: 0 1 0 3.14159265 SFString/MFString Cmpuri ce conin unul (SFString), zero sau mai multe (MFString) iruri ASCII (secvene de caractere). irurile sunt nscrise n fiier ca o secven de caractere ASCII cuprins ntre ghilimele duble (opionale, dac irul nu conine nici un blank). n cadrul irului pot s apar orice caractere (inclusiv new lineurile i #). Pentru a include un caracter ghilimea dubl n ir, acesta trebuie precedat de un backslash. De exemplu: Testing One, Two, Three He said, \Immel did it!\ sunt toate iruri valide. SFVec2f/MFVec2f Cmp ce conine un vector bidimensional. SFVec2f-urile sunt nscrise n fiier ca o pereche de valori floating point separate prin spaii. SFVec3f/MFVec3f- Cmp ce conine un vector tridimensional. SFVec3f-urile sunt nscrise n fiier ca un triplet de valori floating point separate prin spaii.

10

5. Noduri VRML definete cteva clase distincte de noduri. Multe dintre acestea pot fi clasificate n trei categorii principale: shape (forme), properties (proprieti) i groupe (grup). Nodurile shape definesc aspectele geometrice n lumea virtual. n esen, ele sunt nodurile care desemneaz ceva. Nodurile proprieti precizeaz modalitile n care sunt desenate formele. Nodurile grup consider mai multe noduri grupate, permind coleciilor de noduri s fie tratate ca un singur obiect. Unele noduri grup controleaz de asemenea trasarea copiilor (nodurilor copil) lor. Nodurile pot conine zero sau mai multe cmpuri. Fiecare tip de nod definete tipul, numele i valoarea implicit pentru fiecare cmp al lor. Valoarea implicit a unui cmp este utilizat dac nu se specific o alt valoare pentru cmp. Ordinea n care sunt citite cmpurile unui nod, nu este important. De exemplu, Cube {width 2 height 4 depth 6} i Cube {height 4 depth 6 width 2} sunt echivalente. Exist 36 de noduri grupate prin tip. Primul grup este constituit de nodurile form (shape). Acestea specific aspectele geometrice: AsciiText, Cone, Cube, Cylinder, IndexedFaceSet, IndexedLineSet, PointSet, Sphere Al doilea grup este cel al nodurilor proprieti (properties). El este constituit din cteva grupri geometrice i de aspect, ca i proprieti matriceale sau de transformare: Coordinate3, FontStyle, Info, Material, MaterialBinding, Normal,

NormalBinding, Texture2, Texture2Transform, TextureCoordinate2, ShapeHints. MatrixTransform, Rotation, Scale, Transform, Translation.

11

Nodurile de grup sunt: Separator, Switch, WWWAnchor, LOAD.

n fine, urmtoarele noduri nu pot fi ncadrate n nici una din categoriile menionate: OrthographicCamera, SpotLight. WWWInline PerspectiveCamera, DirectionalLight, PointLight,

5.1. Instanierea Un nod poate fi copil al mai multor grupuri. Lucrul acesta se numete instaniere (utilizm aceeai instan a unui nod de mai multe ori lucru denumit pe alte sisteme aliasing sau multiple references) i se realizeaz utiliznd cuvntul cheie USE. Cuvntul cheie DEF d un nume unui nod. Cuvntul cheie USE indic faptul c un nume de nod trebuie s fie utilizat din nou. Dac au fost date cteva noduri cu acelai nume, atunci ultimul DEF se ntlnete pe durata transformrii wins. Folosirea aceluiai nume pentru noduri multiple este neindicat, putnd apare probleme ulterioare: DEF/USE este limitat la un singur fiier. 5.2. Extensibilitatea Extensiile VRML sunt acceptate ca suport al nodurilor autodescriptive. Nodurile ce nu sunt parte a standardului VRML trebuiesc nscrise n afara descrierii primelor lor cmpuri, astfel nct toate implementrile VRML sunt capabile s transforme i s ignore extensiile. Aceast descriere este nscris chiar dup paranteza acolad deschis a nodului, i const n cuvntul cheie fields urmat de o list de tipuri i nume de cmpuri utilizate de

12

acel nod, toate incluse ntre paranteze ptrate i separate prin caracterul virgul. De exemplu, dac Cube nu este un nod standard VRML, el poate fi nscris astfel: Cube { fields [SFFloat width, SFFloat height, SFFloat depth] width 10 height 4 depth 3 } Specificarea cmpurilor pentru nodurile care sunt parte a standardului VRML, nu constituie o eroare. Transformrile (analizele) VRML trebuie s ignore n mod mutual specificarea field[]. Totui, o specificare incorect de cmp a unui nod built-in constituie o eroare. Specificarea cmpurilor trebuie nscris n afara oricrui nod standard, fie c tipul nodului a fost ntlnit n prealabil pe timpul analizei (conversiei), sau nu. Pentru fiecare instan a unui nod non-standard, numai cmpurile nscrise ca pri ale acelei instane necesit descrierea n specificarea fields[]. Astfel, cmpurile care nu sunt nscrise deoarece conin propriile valori mplicite, pot fi omise din specificarea fields[]. Este de ateptat ca viitoarele versiuni de VRML s relaxeze aceast cerin, cernd numai ca primului nod non-standard de tip dat s i se acorde specificarea fields[]. La fel ca nodurile standard, instanele unor noduri non-standard nu mpart n mod automat nimic pe lng valorile implicite ale propriilor cmpuri, care nu sunt specificate n fiierul VRML dar sunt considerate pri n implementarea nodurilor non-standard. 5.3. Relaia isA Un nou tip de nod poate fi de asemenea un superset al unui nod existent care este parte a standardului. n acest caz, dac o implementare a noului tip de nod, nu poate fi gsit, noul tip de nod poate fi tratat n mod sigur la fel cu nodul existent, de baz (cu unele pierderi de funcionalitate, bineneles). Pentru a suporta aceasta, noul tip de nod poate defini un cmp MFString numit isA, coninnd numele de tipuri ce constituie un

13

superset. De exemplu, un nou tip de Material, numit ExtendedMaterial, care adaug indicele de refracie ca proprietate de material, poate fi nscris astfel: ExtendedMaterial { fields [MFString isA, MFFloat index OfRefraction, MFColor diffuseColor, MFFloat transparency] isA [Material] indexOfRefraction .34 diffuseColor 8 .54 1 } Relaia multipl isA poate fi specificat n ordinea preferinei. Implementrile sunt de ateptat a fi utilizate, mai nti, ncepnd cu cele pentru care exist o implementare. De notat c isA nu reprezint modul de a fi al unui ntreg mecanism prototip.

6. Exemplu n continuare este dat un exemplu de lume virtual. El conine un model simplu de dou corpuri sferice cu posibilite de rotire n jurul unui centru de rotaie comun. Aceast lume virtual simuleaz un sistem de tip stea dubl. stea_dubla.wrl #VRML V1.0 ascii #PerspectiveCamera {position 0 0 20} Separator { DirectionalLight {

14

direction 0 0 -1 # Light shining from viewer into world } PerspectiveCamera { position -8.6 2.1 5.6 10.84 orientation -0.1352 -0.9831 -0.1233 1.1417 focalDistance } Separator { # The big blue sphere Material { diffuseColor 0 0 1 # Blue } Translation { translation 3 0 1 } Sphere { radius 2.3 } } Separator { # The small gray sphere Material { diffuseColor 0.5 0.5 0.5 # Gray } Transform { translation -2.4 .2 1 rotation 0 1 1 .9 } Sphere {radius 1} } }

7. Consideraii despre browsere n aceast seciune se discut modalitile de denumire (referire) a fiierelor i conveniile MIME (Multipurpose Internet Mail Extension, Extensii de mail i internet,

15

multiscop), utilizate n construirea browserelor VRML i configurarea browserelor pentru a lucra cu ele. Extensia pentru fiierele VRML este .wrl (world) 7.1. Tipul MIME Tipul MIME pentru fiierele VRML, este definit astfel: x-world / x-vrml Tipul major MIME pentru descrierile lumilor 3D este x-world. Tipul minor MIME pentru documentele VRML este x-vrml. Alte descrieri de lumi 3D, cum ar fi oogl de la The Geometry Center (Object-Oriented Geometry Language) sau iv de la SGI (Open Inventor Ascii format), pot fi suportate utiliznd diferite tipuri minore MIME. 7.2. Caracteristici critice Este de ateptat ca aceste caracteristici s dispar odat cu apariia noilor versiuni VRML, utilizarea lor n aplicaii nefiind indicat. Group Acest nod definete clasa de baz pentru toate nodurile grup. Group este un nod ce conine o list ordonat de noduri copil. Acest nod este un somplu container pentru nodurile copil i nu poate altera strile transversale n nici un mod. Pe durata traversrii, starea acumulat pentru copil este este pasat fiecrui copil succesiv i apoi prinilor din grup. (Grupul nu trebuie s mping sau s trag starea transversal, aa cum o face separatorul). Acest nod este neindicat n utilizare deoarece este de ateptat ca versiunea viitoare a VRML s nu permit proprietilor s se scurg n afara grupului de noduri. Asta nseamn c, toate nodurile de acest tip se vor comporta ca Separators, fcnd Group nvechit.

16

FILE FORMAT/DEFAULTS Group { } TransformSeparator Acest nod grup este similar cu nodul separator n care se salveaz starea nainte de a traversa copiii i a-i restaura dup aceea. Totui, el salveaz numai transformarea curent. Toate celelalte stri sunt abandonate (pierdute). Acest nod poate fi utilizat pentru poziionarea unei camere, timp n care transformrile asupra camerei nu vor afecta restul lumii virtuale, chiar cele din vizorul camerei (vizualizate de camer). n mod similar, acest nod poate fi utilizat pentru a izola transformrile surselor de lumin sau altor obiecte. Acest nod este neindicat deoarece este de ateptat ca versiunile viitoare de VRML s nu permit proprietilor s se scurg n afara grupului de noduri. Asta nseamn c, toate nodurile de acest tip se vor comporta ca Separators, fcnd TransformSeparator nvechit. FILE FORMAT / DEFAULTS TransformSeparator { }

8. Viewer-ul Cosmo Player 2.1.1 Cosmo Player poate fi apelat de ctre browser-ul Web curent, permind astfel vizualizarea i explorarea lumilor 3D. Viewer-ul Cosmo Player faciliteaz vizitarea oricrei lumi 3D permis sub VRML. Astfel de lumi pot furniza i alte mecanisme multimedia, de tipul sunetelor i imaginilor animate (filmelor). Surse de informaii relativ la viewer-ul considerat pot fi gsite la adresele Web: Cosmo Player 2.1.1 Quick Reference Going Further with Cosmo Player 2.1.1.

17

Se pot exersa n mod plcut facilitile viewer-ului jucnd

, un joc 3D

interactiv cu ajutorul cruia utilizatorul poate nva principiile de navigare de baz. 8.1. Faciliti oferite Principalele controale ale viewer-ului permit, n principal, dou lucruri: Rotirea n jurul obiectelor existente n lumea 3D Examinarea obiectelor lumii 3D

Bara de control a viewer-ului arat ca n figura urmtoare:

Butoanele Go, Slide i Tilt permit deplasarea n jurul obiectelor din lumea 3D.

Bara de control poate s arate i astfel:

dac maneta de modificare a controlului a fost deplasat pe poziia superioar. n acest caz, butoanele Rotate, Pan i Zoom sunt utilizate pentru a examina obiectele lumii virtuale 3D.

18

Unele lumi permit doar utilizarea controalelor de deplasare ( Go, Slide, Tilt), n timp ce altele permit doar utilizarea controalelor de examinare ( Rotate, Pan, Zoom). Exist i lumi virtuale ce permit folosirea ambelor tipuri de controale. Comutarea ntre cele dou seturi de controale se realizeaz poziionnd corespunztor maneta de modificare a controlului (Change Controls).

8.2. Deplasarea n jurul obiectelor 3D Pentru a realiza deplasarea n jurul obiectelor 3D se face clic pe butonul Go, Slide sau Tilt i se face drag pe pointerul viewer-ului (ct timp acesta este poziionat n fereastra viewer-ului). Odat apsat un buton de control, el rmne selectat pn la o alt apsare pe un alt buton.

Go

Clic urmat de drag pentru deplasare n orice direcie Clic urmat de drag pentru deplasare prin alunecare

Slide

dup direcie vertical sau orizontal Clic urmat de drag pentru rotirea obiectului n

Tilt

raport cu punctul de observaie

8.3. Examinarea obiectelor Pentru a examina obiectele n 3D, se face clic pe Rotate, Pan sau Zoom i apoi drag pe pointerul viewer-ului.

19

Rotate

Click and then drag to rotate an object. Click and then drag to pan right, left,

Pan

up, or down. Click and then drag up to zoom in or

Zoom

drag down to zoom out.

8.4. Opiunile Undo i Redo Move Aceste opiuni sunt folosite atunci cnd dorim s revenim la o stare anterioar.

8.5. Interaciunea cu obiectele active Un obiect activ va fi unul care poate conduce la o aciune atunci cnd se face clic i drag pe el. O aciune poate fi o secven sonor sau animat. Atunci cnd pointerul este trecut peste un obiect activ, el se modific ntr-unul precizat prin imaginea grafic de mai jos.

Navigarea cu Go, Slide, Tilt, Rotate, Pan sau Zoom poate deveni dificil ntr-o lume plin cu obiecte active. n astfel de situaii este util folosirea butonului Seek.

20

Apsarea acestui buton permite, la clic pe obiect, apropierea acestuia de punctul de observaie, fr a-l activa.

See k

Clic pe Seek urmat de clic pe obiect pentru a-l apropia

8.7. O alt modalitate de deplasare printr-o lume virtual Autorii lumilor 3D pot seta poziia punctelor de observaie dup dorin. Astfel, se poate face trecerea de la un viewpoint la altul prin simpl alegere din lista Viewpoint List sau prin clic pe unul din butoanele Next Viewpoint sau Previous Viewpoint.

Viewpoint List

Clic pe butonul Viewpoint List i alegerea unui viewpoint din list Next Viewpoint Clic i go pe urmtorul viewpoint din list Previous Viewpoint Clic i go pe precedentul viewpoint din list Current Viewpoint Vizualizeaz ultimul viewpoint ales

21