A VRML 1.0 fejléc
A VRML fájl egy szöveges ASCII fájl, ezért a dokumentum elkészítéséhez egy egyszerű szövegszerkesztő is elegendő. Célszerű csak 7 bites alap-ASCII karaktereket használni, kerülni az ékezetes betűket és az egyéb speciális karaktereket. Egyes böngészők ugyanis ezeket nem tudják értelmezni, és így hibák léphetnek fel a VRML világ megjelenítésekor.
A VRML böngészők különbséget tesznek a kis- és nagybetűk között, így azok használatával is figyelmesen kell bánni. A böngésző nem veszi figyelembe az újsor, a szóköz, a tabulátor karaktereit, így jól áttekinthető, a tagolt forrásszöveget lehet létrehozni. Az elkészült fájlokat a .wrl kiterjesztéssel kell elmenteni, így nem kell külön megadnunk azt, hogy a fájl megtekintéséhez milyen programot szeretnénk használni.
A VRML-fájl fő részei:
A VRML fejléc
Node-ok, avagy csomópontok
Mezők (opcionális)
Megjegyzések (opcionális)
Minden VRML 1.0 fájlnak kötelezően a következő fejléc sorral kell kezdődnie:
VRML V1.0 ascii
Node-ok, avagy csomópontok szerepe
A VRML fájlok csomópontokból, úgynevezett node-okból épülnek fel, amelyek az elemeket és azok jellemzőit írják le. A node-okat szokás utasításoknak is nevezni.
A node-ok tartalmazzák a node típusát, majd kapcsos zárójel nyitja, illetve zárja a node-ot. A zárójelek között pedig mezők szerepelhetnek, amelyek a node attribútumait állítják be, illetve módosítják.
Mezők (opcionális elem)
Minden mezőnek van neve, és van értéke (értékei). Ha mezőértéket deklarálunk egy node-hoz, akkor meg kell adni a mező nevét, ami után az értéknek kell következnie. A mező nevét és az értékét kitöltő karakterrel kell egymástól elválasztani. Ha ugyanazon mezőnévhez több érték rendelhető, akkor az értékeket vesszővel kell egymástól elválasztani, és az értékek listáját szögletes zárójelekkel [ ] kell körülvenni. Mivel minden mezőnek van alapértéke, ezért a mezők megadása nem kötelező.
Megjegyzések (opcionális elem)
A megjegyzések a # jellel kezdődnek, és az adott sor végéig tarthatnak. Szerepük nagyon jelentős a világ dokumentálásában, a csapatmunkában illetve a későbbi fejlesztések kivitelezésében.
Egy node szintaxisa a következő:
[DEF node_név] node_típus { [mező]… }
A node-ok a következőképpen csoportosíthatók:
- geometriai node-ok: AsciiText, Cone, Coordinate3, Cube, Cylinder, IndexedFaceSet, IndexedLineSet, PointSet, Sphere
- tulajdonság node-ok: FontStyle, Info, LOD, Material, MaterialBinding, Normal, NormalBinding, Texture2, Texture2Transform, TextureCoordinate2, ShapeHints, MatrixTransform, Rotation, Scale, Transform, Translation
- kamerák és megvilágítások: OrthographicCamera, PerspectiveCamera, DirectionalLight, PointLight, SpotLight
- csoportnode-ok: Group, Separator, Switch, TransformSeparator, WWWAnchor, WWWInline
A geometriai node-ot mindig megelőzi a rá vonatkozó tulajdonság node. Lehetőség van a node-ok elnevezésére, így ha többször akarunk felhasználni egy node-ot, akkor nem kell leírni mindannyiszor a node teljes listáját, elég csak nevével hivatkozni rá. Definiálni a DEF kulcsszóval lehet, előhívni a USE kulcsszóval:
DEF node_név node…
.
.
.
USE node_név