Professional Documents
Culture Documents
Hypertext Markup Language (HTML), care a fost dezvoltat din standardul SGML (Standard Generalized Markup Language). SGML i HTML sunt proiectate ca instrumente de formatare a textului bidimensional.
Mark Pesce, Peter Kennard i Anthony Parisi au prezentat n luna mai 1994, la prima Conferin Internaional asupra Web-ului, o lucrare intitulat Cyberspace, n care au pledat c extinderea Web-ului cu cea
extensibilitatea,
capacitatea de a lucra sub conexiuni low-bandwidth.
Limbajul VRML conine o colecie de comenzi numite noduri, pentru crearea unei varieti de obiecte simple
Prima versiune a VRML, VRML 1.0, avea posibiliti limitate, cu ajutorul acestuia putndu-se
Prin apariia VRML 2.0, capabilitile VRML au fost extinse pentru a putea crea lumi virtuale dinamice. Obiectele VRLM 2.0 se pot mica, anima i a fost introdus sunetul tridimensional (sunetul difer n funcie de poziia asculttorului n raport cu sursa ce emite sunete). O alt posibilitate introdus de VRML 2.0 este abilitatea de a aduga comportri obiectelor VRML. Comportamentele - care pot fi "scripted" ori specificate n applet-uri Java - sunt caracteristici ale obiectelor ce depind de relaia lor cu alte obiecte ale lumii VRML, cu privitorul, ori cu ali parametri precum timpul. De exemplu un pete VRML 2.0 dintr-un acvariu se poate ndeprta dac privitorul se apropie prea mult de acvariu.
nodurilor de control al scenei grafice, nodurilor de grupare, nodurilor surse de lumin, nodurilor de tip senzor, nodurilor de interpolare, nodurilor Script, prototipurilor i prelucrrii evenimentelor, precum i o aplicaie VRML pentru o linie flexibil de fabricaie.
Din pcate exemplificarea grafic din cri a aplicaiilor VRML
nu poate reda posibilitile tridimensionale ale VRML i posibilitile de animaie i audio ale VRML.
EXTERNPROTO) i
traseele evenimentelor.
Aceste componente sunt prelucrate pentru prezentare i interaciune de un program cunoscut sub numele de BROWSER.
VRML este un limbaj case-sensitive (ine cont de tipul literelor: majuscule sau minuscule), aa c "Box" este diferit de "box" i "END" este diferit de "end".
Urmtoarele cuvinte rezervate nu pot fi utilizate pentru a defini cmpuri, evenimente, instruciuni PROTO i EXTERNPROTO, sau noduri: DEF EXTERNPROTO FALSE IS NULL PROTO ROUTE TO TRUE USE eventIn eventOut exposedField field
Urmtorul exemplu prezint un fiier simplu VRML care deseneaz un cilindru cu nlimea 2 i raza 1.5: #VRML V2.0 utf8 Shape { # Cilindru appearance Appearance { material Material { } } geometry Cylinder { height 2.0 radius 1.5 } }
2.3. Antetul
Pentru a fi mai uor de identificat, un fiier VRML va ncepe cu urmtoarea linie de program: #VRML 2.0 <tipul codificrii> [comentariu] <sfrit de linie>
Antetul este o linie text ce identific tipul fiierului i tipul de codificare al acestuia. El mai poate conine i alte informaii sub form de comentariu. ntre cmpurile antetului trebuie lsat un singur spaiu liber.
Tipul de codificare este fie utf8 (set de caractere bazat pe ASCII), fie o alt valoare autorizat de standardul ISO/IEC
14772. Antetul unui fiier ce folosete codificarea utf8 este urmtoarea: #VRML 2.0 utf8 [comentariu] <sfrit de linie>
Caracterele ce urmeaz dup tipul codificrii pot fi ignorate de ctre browser. Linia antetului se termin la ntlnirea sfritului de linie care este compus din caracterele linefeed (0x0A) trecere la line nou - i carriage return (0x0D) revenire la nceput de rnd.
Dup antet, un fiier VRML poate conine:
Scena grafic are o structur ierarhic, adic este compus din noduri printe care conin n cmpurile lor unul sau mai multe noduri copii. Un fiier poate s nu conin nici un nod rdcin sau poate avea mai multe astfel de noduri. Nodurile rdcin ale unui fiier VRML sunt acele noduri care nu sunt coninute de alte noduri sau instruciuni PROTO.
O transformare ierarhic include toate nodurile rdcin i descendenii acestora ce au o locaie particular n lumea virtual. VRML include noiunea de sisteme locale de coordonate, definite prin transformarea sistemului de coordonate al nodului ascendent. Sistemul de coordonate n care sunt reprezentate nodurile rdcin se numete sistemul lumii virtuale.
VRML definete metrul ca fiind unitatea de msur a sistemului de coordonate al lumii virtuale.
Toate celelalte sisteme de coordonate sunt construite prin transformri ale sistemului de baz. Unitile standard utilizate sunt urmtoarele: pentru distane: metrul; pentru unghiuri: radianul; pentru timp: secunda; pentru culoare: sistemul RVA (rou, verde, albastru) ([0,1], [0,1], [0,1]) (o nuan pentru una dintre aceste culori poate lua valori ntre 0 i 1).
Convenia ca o unitate de msur s fie egal cu un metru face construcia scenelor grafice mai uoar i astfel
poate fi pstrat mai uor raportul ntre dimensiunile reale ale obiectelor (de exemplu, s-ar putea crea, n fiiere separate, un telefon i o cas cu aceleai dimensiuni). Dac se dorete lucrul cu alte uniti de msur, poate fi utilizat un nod de tip Transform care va fi prezentat n unul din capitolele urmtoare.
precizie astfel c se poate lucra cu o acuratee de ordinul nanosecundelor. Radianii au fost alei pentru msurarea unghiurilor pentru
VRML utilizeaz sistemul de coordonate cartezian, tridimensional, ce respect regula minii drepte. n mod implicit utilizatorul este poziionat de-a lungul prii pozitive a axei Z, iar axa Y este orientat cu sensul pozitiv n sus, aa cum prezint figura urmtoare:
Y
Pentru a modifica aceast setare a axelor se pot utiliza nodurile Transform sau Viewpoint.
2.5. Prototipuri
Prototipurile sunt instruciuni ce permit ca setul de noduri VRML s
Analizorul sintactic citete fiierul VRML i creeaz o scen grafic. Componentele scenei grafice sunt transformri ierarhice ce conin noduri i motorul de execuie care proceseaz evenimentele, citete i editeaz traseele evenimentelor i face modificri ale scenei grafice.
mai multe tipuri de noduri, fiecare dintre acestea avnd un anumit rol n scena grafic. Fiecare nod poate avea urmtoarele caracteristici:
a) Un nume de tip, ca de exemplu: Box, Color, Group, Sphere, Sound etc.
b) Nici unul sau mai multe cmpuri care definesc modul n care fiecare nod difer de alte noduri de acelai tip. Valorile
cmpurilor sunt memorate n fiierele VRML la un loc cu nodurile i codific starea lumii virtuale.
c) Un set de evenimente pe care acesta le poate primi sau transmite. Fiecare nod poate primi zero sau mai multe tipuri de evenimente care vor modifica starea nodului. De asemenea, fiecare nod poate genera zero sau mai multe tipuri de evenimente ca urmare a modificrilor din starea unui nod.
d) Implementare. Implementarea fiecrui nod definete modul n care acesta reacioneaz la primirea unui eveniment, cnd genereaz evenimente i prezentarea audio-
vizual a acestuia n lumea virtual. Instruciunea PROTO poate fi utilizat pentru a defini noi tipuri de noduri ale cror caracteristici sunt definite cu ajutorul caracteristicilor altor noduri.
e) Un nume. Oricrui nod i poate fi asignat un nume ce este utilizat de alte instruciuni pentru a face referire la o implementare specific a unui nod.
Observaie: Cele mai uzuale valori ale cmpurilor au fost selectate ca valori implicite. De aceea este recomandat s
Sintaxa unui nod este urmtoarea: [nume nod] <tipul nodului> {<corpul nodului>} O instruciune de tipul nod const dintr-un nume opional urmat
de tipul nodului i de corpul acestuia. Pentru a putea reutiliza un nod, se atribuie un nume acelui nod, folosind cuvntul cheie DEF, urmat de numele nodului, dup care acest nod poate fi apelat folosind cuvntul cheie USE, urmat de numele nodului. Corpul nodului este cuprins ntre acolade. Sintaxa este urmtoarea:
[DEF <nume_nod>] <tipul nodului> {<corpul nodului>} USE <nume_nod>
Exemplu: DEF Cilindrul_Meu Shape { . . . } . . . USE Cilindrul_Meu . . . USE Cilindrul_Meu Instruciunea USE nu creeaz o copie a nodului, n schimb acelai nod este inserat nc o dat n scena grafic dac este folosit n noduri cu mai muli prini.
fiier sau definiie de prototip. Pentru a folosi un nod n afara fiierului n care este definit, se utilizeaz instruciunea PROTO.
proprieti ale nodului i care pot conine valori sau instruciuni de tip nod, IS, ROUTE, PROTO sau EXTERNPROTO n orice ordine.
Un cmp const din nume urmat de o valoare, aa cum arat sintaxa urmtoare:
<nume_cmp> <valoare_cmp>
Fiecare tip de nod definete numele i tipurile cmpurilor
pe care le conine. Dac un cmp are mai multe valori, atunci sintaxa acestuia este urmtoarea:
<nume_cmp> [<valoare_cmp>]
cmpuri i evenimente ce conin o singur valoare (unde prin valoare se nelege un numr, un vector sau chiar o imagine) i al cror nume ncepe cu SF; cmpuri i evenimente ce conin valori multiple i al cror nume ncepe cu caracterele MF.
Valorile multiple sunt scrise ca liste ordonate, nchise ntre paranteze ptrate i separate de spaii albe. Ultima
2.9.2. SFColor i MFColor Cmpul sau evenimentul de tipul SFColor specific un triplet RVA (rou-verde-albastru) de numere reale, ntre 0 i 1, ce definesc raportul sub care se combin cele trei culori de baz. Cmpurile sau evenimentele de tipul MFColor specific zero sau mai multe triplete RVA. Spre exemplu, expresia:
valCuloare [1 0 0,0 1 0, 0 0 1 ]
este un cmp de tipul MFColor ce conine cele trei valori de baz: rou, verde, albastru. Valoarea iniial a unui eveniment de ieire de tipul SFColor este (0 0 0 ) iar a unui eveniment de ieire de tipul MFColor este [ ].
2.9.3. SFFloat i MFFloat Cmpurile i evenimentele de tipul SFFloat specific un numr real n virgul mobil, simpl precizie. Cmpurile i evenimentele de tipul MFFloat specific zero sau mai multe numere reale. Spre exemplu, expresia: valReal [5.24145, 14.7e-3, .0002 ] este un cmp de tipul MFFloat ce conine trei valori reale.
Valoarea iniial a unui eveniment de ieire de tipul SFFloat este 0, iar pentru un eveniment de tipul MFFloat este [ ].
2.9.4. SFImage
Cmpurile i evenimentele de tipul SFImage specific o imagine bidimensional definit pixel cu pixel. Cmpurile i evenimentele de tipul SFImage sunt scrise n fiierele VRML sub forma a trei numere ntregi ce reprezint limea, nlimea i numrul de componente ale imaginii, urmate de un numr de (lime*nlime) valori hexazecimale sau ntregi, reprezentnd pixelii imaginii separai de spaii albe: valImagine<lime><nlime><numr_compo nente><valoare_pixeli
Valorile pixelilor sunt limitate la 256 de nivele de intensitate (0-255 n zecimal sau 0x00-0xFF n hexazecimal). O imagine cu o singur component specific valoarea hexazecimal sau ntreag ce reprezint intensitatea imaginii. Astfel, valoarea 0x00 reprezint intensitatea minim iar valoarea 0xFF intensitatea maxim a imaginii.
O imagine cu dou componente specific intensitatea imaginii n octetul superior i opacitatea acesteia n octetul inferior.
n imaginile cu pixelii definii pe trei octei, primul octet specific componenta roie a imaginii, al doilea componenta verde i ultimul octet componenta albastr. Ultima variant ce poate fi ntlnit pentru acest tip de date este cea n cazul imaginilor cu patru componente, primii trei octei reprezentnd componentele rou/verde/albastru ale imaginii iar ultimul octet transparena acesteia (0x00 - imagine complet transparent iar 0xFF imagine complet opac).
Pixelii imaginii sunt specificai de la stnga la dreapta i de jos n sus. Astfel, prima valoare specific pixelul din stnga jos al imaginii, iar ultima valoare pixelul din dreapta sus. Spre exemplu, expresia: valImagine 1 2 1 0xFF 0x00 este o imagine format din 2 pixeli, cel de jos alb iar cel de sus negru. Valoarea iniial a unui eveniment de ieire de tipul SFImage este (0 0 0).
2.9.5. SFInt32 i MFInt32 Un cmp sau un eveniment de tipul SFInt32 specific un ntreg pe 32 de bii iar cele de tipul MFInt32 specific zero sau mai multe valori ntregi pe 32 de bii. Aceste valori pot fi scrise n format zecimal sau hexazecimal: valIntreag [17, -0xEAB, -53447 ] Valoarea iniial a unui eveniment de ieire de tipul SFInt32 este 0, iar pentru un eveniment de tipul MFInt32 este [ ].
Dac un cmp de tipul SFNode conine cuvntul cheie NULL, nseamn c acesta este vid.
Valoarea iniial pentru un eveniment de ieire de tipul SFNode este NULL, iar pentru un eveniment de ieire de tipul MFNode este [ ].
2.9.7. SFRotation i MFRotation Cmpurile i evenimentele de tipul SFRotation specific o rotaie, iar cele de tipul MFRotation specific zero sau mai multe rotaii. O rotaie este reprezentat ntr-un fiier VRML sub forma a patru valori reale, separate prin spaii albe. Primele trei valori reprezint vectorul normalizat al axei de rotaie iar cea de-a patra valoare reprezint unghiul de rotaie, n direcia indicat de regula minii drepte, exprimat n radiani. Urmtorul exemplu l reprezint o rotaie de /2 radiani n jurul axei X: ValRot 1 0 0 1.0707 Valoarea iniial pentru un eveniment de ieire de tip SFRotation este (0 0 1 0), iar pentru un eveniment de tipul MFRotation este [].
Valorile iniiale pentru evenimentele de ieire de tipul SFVec2f i MFVec2f sunt (0 0), respectiv [ ].
specific vectori tridimensionali. Acetia sunt scrii ntr-un fiier VRML ca vectori de valori reale separate de spaii albe. Exemplul urmtor prezint o valoare de tipul MFVec3f ce conine trei vectori:
ValVector [ 15 44 3, 10 2.2 77, 45.5 22 1 ] Valorile iniiale pentru evenimentele de ieire de tipul SFVec3f i MFVec3f sunt (0 0 0) respectiv [ ].