The Virtual Reality Modeling Language

Obsah Úvod Nastavenia prezerača Dušan Hanuska
Špecifikácia jazyka Polia Odkazovanie
Uzly Geometrické uzly Matice Abecedný zoznam uzlov Predošlá strana

Vzhľad

Coordinate3 - súradnice

Tento uzol definuje sadu 3D súradníc, ktoré sa používajú pomocou následného IndexedFaceSet, IndexedLineSet alebo PointSet uzla. Tento uzol neprodukuje viditeľný výsledok počas vykresľovania. Jednoducho nahrádza súčasné súradnice vo vykresľovanom stave pre použitie v nasledujúcich uzloch.

Formát definovania uzla a prednastavené hodnoty:
    Coordinate3 {
        point  0 0 0	# bod typu MFVec3f
    }
Príklad

FontStyle - štýl písma

Tento uzol definuje súčasná štýl písma používaný všetkými následnými AsciiTextmi. Definujú sa len atribúty fontu. Je na prezerači, aby určil presný font pre rozličné kombinácie atribútov. Veľkosť špecifikuje vykresľovanú výšku (v jednotkách veľkosti objektu) v ghlypsoch a určuje vertikálne vzdialenosti medzi susednými riadkami textu.

Typ písma
SERIF štýl Serif (podobný ako TimesRoman)
SANS štýl Sans Serif (podobný ako Helvetica)
TYPEWRITER štýl Fixed pitch (podobný ako Courier)

Štýl písma
NONE Bezo zmien do štýlu
BOLD Ztučnenie štýlu
ITALIC Zošikmenie štýlu

Formát definovania uzla a prednastavené hodnoty:
    FontStyle {
        size     10      # veľkosť typu SFFloat
        family   SERIF   # font typu SFEnum
        style    NONE    # štýl typu SFBitMask
    }
Príklad 1

Info

Tento uzol definuje informačný uzol v scéne grafu. Tento uzol nemá účinok počas polygonometrie. Používa sa na uchovávanie informácie v scéne grafu, typicky pre aplikačne-špecifické účely, copyright alebo iné reťazce.

Formát definovania uzla a prednastavené hodnoty:
    Info {
        string  "Text infomácie."      # reťazec typu SFString
    }
Príklad

LOD - úrovne detailov (Levels of details)

Tento skupinový uzol sa používa, aby sa mohli aplikácie automaticky prepínať medzi mnohými reprezentáciami objektov. Detské uzly tohto uzla typicky predstavujú ten istý objekt alebo objekty rôznych úrovní detailov, od najvyšších detailov po najnižšie.

Špecifikovaný stredný bod LODu sa transformuje pomocou súčasnej transformácie do svetového priestoru a prepočíta sa vzdialenosť od transformovaného stredu do bodu pohľadu na svetový priestor. Ak je vzdialenosť menšia ako prvá hodnota v poli rozsahov, potom sa vykreslí prvé dieťa LOD skupiny. Ak je medzi prvými a druhými hodnotami v poli rozsahov, potom sa vykreslí druhé dieťa, atď. Ak je N hodnôt v poli rozsahov, potom by LOD skupina mala mať N+1 detí. Špecifikovaním príliš malého počtu detí sa dosiahne, že sa posledné dieťa použije opakovane pre nižšie detailové úrovne. Ak sa špecifikuje príliš veľa detí, nadbytočné z nich sa ignorujú. Každá hodnota v poli rozsahov by mala byť menšia ako predchádzajúca hodnota, inak budú výsledky nedefinované.

Formát definovania uzla a prednastavené hodnoty:
     LOD {
          range [ ]     # rozsah typu MFFloat
          center 0 0 0  # stred typu SFVec3f
     }

Material - materiál

Tento uzol definuje vlastnosti súčasných povrchov materiálov pre všetky následné tvary. Materiál určuje niekoľko komponentov súčasného materiálu počas polygonometrie. Odlišné tvary interpretujú materiály s viacerými hodnotami rozdielne. Na zviazanie materiálov na tvar použite uzol MaterialBinding.

Formát definovania uzla a prednastavené hodnoty:
     Material {
          ambientColor   0.2 0.2 0.2    # okolitá farba typu MFColor
          diffuseColor   0.8 0.8 0.8    # rozptylová farba typu MFColor
          specularColor  0 0 0          # zrkadlová farba typu MFColor
          emissiveColor  0 0 0          # vyžarovaná farba typu MFColor
          shininess      0.2            # svietivosť typu MFFloat
          transparency   0              # priehľadnosť typu MFFloat
     }
Príklad 1

MaterialBinding - materiálové spájanie

Tento uzol špecifikuje ako sú súčasné materiály priviazané na tvary, ktoré nasledujú v scéne grafu. Každý uzol tvaru môže interpretovať spojenie rozdielne. Aktuálny materiál má vždy základnú hodnotu, ktorá je definovaná prvou hodnotou zo všetkých materiálových polí. Pretože materiálové polia smú mať viaceré hodnoty, pri spájaní sa rozhodne ako sa tieto hodnoty rozmiestnia po tvare.

Spoje stien a vrcholov majú zmysel len pre tvary, ktoré sú vytvorené zo stien a vrcholov. Podobne, indexované spoje sú použité len v tvaroch, ktoré dovoľujú indexáciu.

Keď sa spoja materiály s viacerými hodnotami, hodnoty sa periodicky opakujú na základe periódy materiálového komponentu s najväčším počtom hodnôt. Napríklad, nasledujúca tabuľka ukazuje používané hodnoty pri periodickom opakovaní (alebo indexácii) materiálu s 2 okolitými farbami, 3 rozptylovými farbami a 1 zo všetkých ostatných komponent v aktuálnom materiály. (Perióda tohoto materiálového cyklu je 3):

Materiál Okolitá farba Rozptylová farba Dalšie
0
1
2
3 (rovnaký ako 0)
0
1
1
0
0
1
2
0
0
0
0
0

Typy spojení
DEFAULT Použi štandardné spájanie
OVERALL Celý objekt je z rovnakého materiálu
PER_PART Jeden materiál pre každú časť objektu
PER_PART_INDEXED Jeden materiál pre každú časť objektu, indexovaný
PER_FACE Jeden materiál pre každý tvar objektu
PER_FACE_INDEXED Jeden materiál pre každý tvar objektu, indexovaný
PER_VERTEX Jeden materiál pre každý vrchol objektu
PER_VERTEX_INDEXED Jeden materiál pre každý vrchol objektu, indexovaný

Formát definovania uzla a prednastavené hodnoty:
     MaterialBinding {
          value  DEFAULT        # hodnota typu SFEnum
     }

Normal - normála

Tento uzol definuje sadu 3D povrchových normálových vektorov, ktoré sa používajú pri uzloch, ktorých tvar je založený na vrcholoch (IndexedFaceSet, IndexedLineSet, PointSet), ktoré ho nasledujú v scéne grafu. Tento uzol neprodukuje viditeľný výsledok počas vykresľovania. Len jednoducho nahrádza súčasné normály vo vykresľovanom stave pre použitie v následných uzloch. Tento uzol obsahuje jedno viac-hodnotové pole, ktoré obsahuje normálové vektory.

Formát definovania uzla a prednastavené hodnoty:
     Normal {
          vector  0 0 1 # vektor typu MFVec3f
     }

NormalBinding - normálové spájanie

Tento uzol špecifikuje ako sú súčasné normály priviazané na tvary, toré nasledojú v scéne grafu. Každý uzol tvaru môže interpretovať spojenie rozdielne.

Spoje stien a vrcholov majú zmysel len pre tvary, ktoré sú vytvorené zo stien a vrcholov. Podobne, indexované spoje sú použité len v tvaroch, ktoré dovoľujú indexáciu. Pre spoje, ktoré vyžadujú viaceré normály, sa uistite, že ste zadefinovali aspoň toľko normál, koľko je potrebné, inak sa objavia chyby.

Typy spojení
DEFAULT Použi štandardné spájanie
OVERALL Celý objekt má rovnakú normálu
PER_PART Jeden materiál pre každú časť objektu
PER_PART_INDEXED Jedna normála pre každú časť objektu, indexovaná
PER_FACE Jedna normála pre každý tvar objektu
PER_FACE_INDEXED Jedna normála pre každý tvar objektu, indexovaná
PER_VERTEX Jedna normála pre každý vrchol objektu
PER_VERTEX_INDEXED Jedna normála pre každý vrchol objektu, indexovaná

Formát definovania uzla a prednastavené hodnoty:
     NormalBinding {
          value  DEFAULT        # hodnota typu SFEnum
     }

ShapeHints - tvarovacie rady

Uzol ShapeHints naznačuje, že IndexedFaceSety sú pevné, obsahujú usporiadané vrcholy alebo obsahujú konvexné tvary.

Tieto rady dovoľujú implementáciám VRML optimalizovať isté vykresľovacie črty. Optimalizácie, ktoré smú byť urobené zahŕňajú povolenie triedenia odzadu a zakázania obojstranného svetla. Napríklad, ak je objekt pevný a má usporiadané vrcholy, implementácia smie zapnúť triedenie odzadu a vypnúť obojstranné svetlo. Ak objekt nie je pevný, ale má usporiadané vrcholy, smie sa vypnúť triedene odzadu a zapnúť obojstranné svetlo.

Uzol ShapeHints taktiež ovplyvňuje ako sa budú generovať prirodzené normály. Keď má IndexedFaceSet vygenerovať normály, používa pole creaseAngle, aby sa rozhodol, ktoré hrany majú byť hladko vytieňované a ktoré majú mať ostrý záhyb. Uhol záhybu je uhol medzi normálami povrchu na susedných polygónoch. Napríklad, uhol ohybu 0.5 radiána (štandardná hodnota) znamená, že hrana medzi dvoma susednými polygónnymi stenami bude hladko vytieňovaná, ak normály tvoria uhol menší ako 0.5 radiánu (približne 30 stupňov). Inak bude stránkovaná.

Usporiadanie vrcholov
UNKNOWN_ORDERING Usporiadanie vrcholov nie je známe
CLOCKWISE Vrcholy steny sú usporiadané v smere chodu hodinových ručičiek (zvonka)
COUNTERCLOCKWISE Vrcholy steny sú usporiadané proti smeru chodu hodinových ručičiek (zvonka)

Typy tvarov
UNKNOWN_SHAPE_TYPE O tvare nie je nič známe
SOLID Pevný tvar

Typy stien
UNKNOWN_FACE_TYPE O stene nie je nič známe
CONVEX Všetky steny sú konvexné

Formát definovania uzla a prednastavené hodnoty:
     ShapeHints {
          vertexOrdering  UNKNOWN_ORDERING      # usporiadanie vrcholov typu SFEnum
          shapeType       UNKNOWN_SHAPE_TYPE    # typ tvaru typu SFEnum
          faceType        CONVEX                # typ steny typu SFEnum
          creaseAngle     0.5                   # uhol ohybu typu SFFloat
     }

Texture2 - textúra

Táto vlastnosť uzla definuje textúrnu mapu a parametre tejto mapy. Táto mapa sa používa na aplikovanie textúry na následné tvary tak, ako sú vykreslené.

Textúra môže byť čítaná z URL špecifikovanej pomocou poľa filename. Ak chceš vypnúť textúrovanie, nastav pole filename na prázdny reťazec ("").

Textúry môžu byť tiež špecifikované ako inline nastavením poľa image tak, aby obsahovalo dáta textúry. Špecifikovaním URL aj inline dát má za následok nedefinované správanie.

Typy obaľovania
REPEAT Opakuje textúru mimo rozsahu 0-1 textúrnych súradníc
CLAMP Zopína súradnice textúry tak, aby ležala v rozmedzí 0-1

Formát definovania uzla a prednastavené hodnoty:
    Texture2 {
        filename    ""        # názov súboru typu SFString
        image       0 0 0     # obrázok typu SFImage
        wrapS       REPEAT    # obaľovanie v smere S SFEnum
        wrapT       REPEAT    # obaľovanie v smere T SFEnum
    }
Príklad

Texture2Transform - transformácia textúry

Tento uzol definuje 2D transformáciu, ktorá sa aplikuje na súradnice textúry. Toto ovplyvňuje spôsob akým sa textúra aplikuje na povrch následných tvarov. Transformácia pozostáva (v poradí) z nejednotnej mierky okolo ľubovoľného centrálneho bodu, otočenia okolo toho istého bodu a pozície textúry na tvare.

Formát definovania uzla a prednastavené hodnoty:
    Texture2Transform {
        translation  0 0      # posun typu SFVec2f
        rotation     0        # otočenie typu SFFloat
        scaleFactor  1 1      # faktor škálovania typu SFVec2f
        center       0 0      # stred typu SFVec2f
    }
Príklad 1

TextureCoordinate2 - súradnice textúry

Tento uzol definuje sadu 2D súradníc, ktoré sa používajú na mapovanie textúry na následné vrcholy PointSet, IndexedLineSet alebo IndexedFaceSet objektov. Nahrádza to súčasné súradnice textúr vo vykresľovanom stave, ktorý použije tvar.

Súradnice textúry sú v rozsahu od 0 po 1 naprieč textúrou. Horizontálna súradnica, zvaná S, je špecifikovaná prvá a potom je vertikálna súradnica, zvaná T.

Formát definovania uzla a prednastavené hodnoty:
    TextureCoordinate2 {
        point  0 0    # bod typu MFVec2f
    }