X3D kogebogen

Fra Wikibooks, den frie samling af lærebøger

Introduktion[redigér]

X3D står for Extensible 3D og er et åbent fil-format, der gør det muligt ,at vise og kommunikere 3D scener og objekter ved hjælp af XML.

Det er en ISO standard, der giver mulighed for, at opbevare og vise grafisk indhold i real-tid.

X3D er en videreudvkling af Virtual Reality Modeling Language (VRML).

Til at vise x3d filer skal man bruge en speciel browser eller et plug-in til sin eksisterende web-browser, kan denne side fortælle om man allerede har en browser eller et plug-in, på siden finder der også links til at downloade: http://cic.nist.gov/vrml/vbdetect.html

Jeg bruger selv Flux-player, som kan downloades her: http://www.mediamachines.com/developer.php

X3D filer gemmes med filendelsen: .x3d

Indledning[redigér]

En af fordelene ved X3D er, at det er relativt enkelt, at skabe komplicerede 3D objekter ved hjælp af en simpel tekst-editor som f.eks. Notepad.

Grundlæggende[redigér]

HUSK der skrives på engelsk facon, så komma skrives som et punktum. Altså bliver 0,5 til 0.5

Størrelse[redigér]

Alle mål i x3d er i meter. Dette gør det enkelt, at sætte figurer sammen, selvom de er lavet af forskellige personer.

Placering[redigér]

Da det handler om 3-D opererer man i et XYZ-koordinatsystem. Dette gælder for såvel placering i rummet, men naturligvis også for opbygningen af figurer.

Systemet ser således ud:

I forbindelse med placeringen af figurer, skal man være opmærksom på, at placeringen tager udgangspunkt i midten af figuren og at den første figurs midte er 0-punktet, som de øvrige figurer bliver placeret i forhold til.

Alle vinkler er angivet i radianer.

Omregningen sker således: grader*(pi/180) eller en lille tabel med et par almindelige:

Omregningstabel

Grader 30° 45° 60° 90° 180° 225° 270° 315° 360°
Radianer 0 0,52 0,78 1,05 1,57 3,14 (pi) 3,93 4,71 5,5 6,28 (2*pi)

Farver[redigér]

Farver angives i RGB dvs 3 tal et for hver farvekanal udtrykt som en værdi mellem 0 og 1.

Filopbygning[redigér]

En fil består af et antal start-tags, et antal noder (Nodes), der udgør selve figuren og et antal slut-tags.

Formen på en node er typisk:

<Nodenavn parameter1=' ' parameter2=' '>

Bemærk at parametrene er omsluttet af '. Hvis parametren angives med et ord, sættes dette i " ", hvis det er tal gør man ikke dette.

Det er værd at bemærke, at x3d er opbygget på samme måde som xml. Dvs. at det er vigtigt, at der er en slut-tag på enhver tag eller, hvis der ikke findes en slut-tag, at start-tag'en afsluttes med "/" (slash). Endvidere er x3d case-sensitive, så det er vigtigt, at skrive koden helt rigtigt.

Type erklæring[redigér]

På den allerførste linje i enhvner x3d fil indsættes dette:

<?xml version="1.0" encoding="UTF-8"?>

Og derefter:

<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"   "http://www.web3d.org/specifications/x3d-3.0.dtd">

Derefter starter selve x3d filen med et start tag:

<X3D>
</X3D>

Header[redigér]

Så kommer der en head sektion, der kan indeholde forskellige meta-tags:

<head>
</head>

Scene[redigér]

Herefter starter en scene sektion, hvor den egentlige kode skrives:

<Scene>
</Scene>

En grundfil ser derfor således ud:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"   "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D>
 <head>
 </head>
 <Scene>
 </Scene>
</X3D>

Faste noder[redigér]

Typisk vil man fast tilføje 3 ting mere til en scene: World info, Viewpoint og Navigation info.

Det første handler om grundlæggende informationer om scenen og har ingen betydning for hvordan scenen iøvrigt ser ud.

Det andet handler om ens foruddefinerede positioner i scenen. Det første viewpoint er der hvor man starter. Det er smart fordi man kan give brugeren mulighed for, at se de ting man selv finder interessante.

Det tredje handler om, hvordan man oplever scenen når man bevæger sig rundt i den, såsom størrelsen på ens Avatar. Navigation info fortæller "playeren" hvordan man ser verdenen, når man åbner filen.

World info[redigér]

Man starter med World info, der kan 2 have værdier:

  • Info. Som typisk indeholder en kort beskrivelse af filen. Evt copyright information.
  • Title. Her skriver man simpelthen titlen på verden, der så vil blive vist i titellinjen på playeren. Ligesom det kendes fra HTML.

Navigation info[redigér]

Herefter kommer Navigation info, der kan indeholde følgende:

Node Parameter
avatarsize Radius på en cirkel, fra midten af avataren, til den stoppes af en fast genstand
  Synshøjde over gulvplan. Reelt den maksimale højde på avataren. Eks. den laveste dør avataren kan komme igennem.
  Knæhøjde over gulvplan, dvs den højde en genstand kan have for at avataren kan gå henover den. Eks. trappetrin.
headlight TRUE / FALSE. Angiver om avataren så at sige har en pandelampe på eller ej.
speed Angiver den hastighed som avataren bevæger sig med i en scene, angivet i m/s. Kan ikke antage en negativ værdi.
transitionTime Angiver den tid, i sekunder, der går når man skifter fra et viewpoint til et andet.
transitionType Angiver måden, man som bruger oplever et skift fra et viewpoint til et andet.
  TELEPORT betyder, at man bliver flyttet uden synlige effekter. transitionTime har ingen effekt her.
  LINEAR betyder, at flytningen tager den tid, der angivet under transitionTime.
  ANIMATE betyder, at man oplever at blive flyttet afhængig af playerens indstillinger.
type Angiver hvordan man oplever objekterne i scenen.
  ANY betyder, at det er op til playeren at sætte metoden.
  WALK avataren bevæger sig rundt, som et menneske der går. Godt til bygninger og byrum.
  EXAMINE objektet bliver roteret om alle akser, mens avataren står stille. Godt til ting eks. en vase.
  FLY avataren bevæger sig som en flyvemaskine. Godt til landskaber oversigt over større flader.
  LOOKAT
  NONE avataren kan ikke flyttes ved egen kraft, kun ved hjælp af udløste hændelser i rummet.
visibilityLimit Afstanden man kan se i rummet udtrykt i meter.

En NavigationInfo node, kan så se således ud:

<NavigationInfo avatarsize='0.3 1.9 0.6' headlight='true' type='"WALK"' transitiontype='"LINEAR"'/>

Viewpoint[redigér]

Viewpoint'et angiver som sagt foruddefinerede punkter hvor avataren placeres. Man kan sige, at der er 2 typer Viewpoint: Det første og alle de andre. Det første er en god ide i alle filer, de øvrige må afhænge af flere ting, bl.a. størrelsen på ens scene og om der er ting, man som bruger i særlig grad skal lægge mærke til.

Viewpoint noden tager 3 parametre:

  • fieldOfView, som er synsvinklen, den kan antage værdier mellem 0 og pi (altså mellem 0° og 180°)
  • orientation, som angive hvad vej, avataren vender, værdien er opbygget således: x y z G (x y z angiver hvilken akse der roteres om og er et enten

0 eller 1, G angiver hvor mange radianer der skal roteres og kan dermed antage et tal mellem 0 og 2*pi)

  • position, som angiver hvor i scenen man er placeret ad henholds x, y og z-aksen angive i meter fra 0-punktet. Det er en god at have afstand til de ting

man laver.

Det sidste man kan lægge ind er en baggrund. Det kan være en god ide, fordi det gør det nemmere, at se hvad man har lavet. Jeg vil komme tilbage til, hvordan man laver en baggrund, men denne her ser godt ud, så den bruger vi i det følgende:

<Background groundAngle='1.309 1.571' groundColor='0.1 0.1 0 0.4 0.25 0.2 0.6 0.6 0.6' skyAngle='1.309 1.571' skyColor='0 0.2 0.7 0 0.5 1 1 1 1'/>

Grundfilen ser nu således ud:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"   "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D>
 <head>
 </head>
 <Scene>
  <WorldInfo info='"(c) Copyright bla bla bla"' title='"Grundscene"'/>
  <NavigationInfo avatarsize='0.3 1.9 0.6' headlight='true' type='"WALK"' transitiontype='"LINEAR"'/>
  <Background groundAngle='1.309 1.571' groundColor='0.1 0.1 0 0.4 0.25 0.2 0.6 0.6 0.6' skyAngle='1.309 1.571' skyColor='0   0.2 0.7 0 0.5 1 1 1 1'/>
 </Scene>
</X3D>

Herefter er man klar til, at fylde ting ind på scenen:

Grundlæggende former (Shape's)[redigér]

Det skal her bemærkes, at man ikke behøver, at indsætte alle parametre, da disse så bare vil bliver tildelt default-værdier.

Disse er:

  • Størrelse: 2 meter.
  • Solid = TRUE

Den sidste er specielt vigtig, idet man faktisk kun skal indsætte parametrene hvis de er anderledes end default-værdierne.

Endvidere skal man passe på med, at sætte den parameter, der hedder SOLID til FALSE, idet man da ofte slet ikke kan se objektet.

Kasse[redigér]

Kassen hedder Box og tager 1 parameter: size. Der består af 3 værdier: bredde, højde, dybde (eller XYZ). Meter pr akse.

En kasse kan derfor skrives således:

<Box size='1.0 2.5 4.2'/>

En fil med en kasse, kan derfor se således ud:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"   "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D>
 <head>
 </head>
 <Scene>
  <WorldInfo info='"(c) Copyright bla bla bla"' title='"Grundscene"'/>
  <NavigationInfo avatarsize='0.3 1.9 0.6' headlight='true' type='"WALK"' transitiontype='"LINEAR"'/>
  <Background groundAngle='1.309 1.571' groundColor='0.1 0.1 0 0.4 0.25 0.2 0.6 0.6 0.6' skyAngle='1.309 1.571' skyColor='0 0.2 0.7 0 0.5 1 1 1 1'/>
  <Shape>
   <Box size='1.0 2.5 4.2'/>
  </Shape>
 </Scene>
</X3D>

Cylinder[redigér]

Cylinderen hedder Cylinder og har 6 parametre

Tag Værdier Beskrivelse
bottom TRUE / FALSE Angiver om man skal kunne se bunden af cylinderen eller ej.
height et tal, der angiver højden i meter  
radius et tal, der angiver radius på cylinderen i meter  
side TRUE / FALSE Angiver om man skal kunne se siden af cylinderen, når man er placeret inden i den.
solid TRUE / FALSE Angiver om cylinderen, er hul eller massiv.
top TRUE / FALSE Angiver om man skal kunne se toppen af cylinderen eller ej.

En cylinder kan derfor skrives således:

<Cylinder height='2.5' radius='0.5' solid='"FALSE"' top='"FALSE"'/>

En fil med en cylinder, kan der se således ud:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"   "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D>
 <head>
 </head>
 <Scene>
  <WorldInfo info='"(c) Copyright bla bla bla"' title='"Grundscene"'/>
  <NavigationInfo avatarsize='0.3 1.9 0.6' headlight='true' type='"WALK"' transitiontype='"LINEAR"'/>
  <Background groundAngle='1.309 1.571' groundColor='0.1 0.1 0 0.4 0.25 0.2 0.6 0.6 0.6' skyAngle='1.309 1.571' skyColor='0 0.2 0.7 0 0.5 1 1 1 1'/>
  <Shape>
   <Cylinder height='2.5' radius='0.5' top='"FALSE"'/>
  </Shape>
 </Scene>
</X3D>

Kegle[redigér]

Keglen hedder en cone og har 5 parametre

Tag Værdier Beskrivelse
bottom TRUE / FALSE Angiver om man skal kunne se bunden af cylinderen eller ej.
bottomRadius et tal, der angiver radius på bunden af keglen i meter  
height et tal, der angiver højden i meter  
side TRUE / FALSE Angiver om man skal kunne se siden af keglen, når man er placeret inden i den.
solid TRUE / FALSE Angiver om keglen, er hul eller massiv.

En kegle kan derfor skrives således:

<Cone height='2.5' bottomRadius='0.5'/>

En fil med en kegle, kan der se således ud:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"   "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D>
 <head>
 </head>
 <Scene>
  <WorldInfo info='"(c) Copyright bla bla bla"' title='"Grundscene"'/>
  <NavigationInfo avatarsize='0.3 1.9 0.6' headlight='true' type='"WALK"' transitiontype='"LINEAR"'/>
  <Background groundAngle='1.309 1.571' groundColor='0.1 0.1 0 0.4 0.25 0.2 0.6 0.6 0.6' skyAngle='1.309 1.571' skyColor='0 0.2 0.7 0 0.5 1 1 1 1'/>
  <Shape>
   <Cone height='2.5' bottomRadius='0.5'/>
  </Shape>
 </Scene>
</X3D>

Kugle[redigér]

Kuglen hedder en sphere og har 2 parametre

radius, som er et tal, der angiver radius på kuglen i meter og solid, der angiver om kuglen, er hul eller massiv (skrives som TRUE eller FALSE).


En kugle skrives derfor således:

<Sphere radius='0.5' solid='"FALSE"'/>


Således kunne en fil, med en kegle, derfor skrives sådan her:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"   "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D>
 <head>
 </head>
 <Scene>
  <WorldInfo info='"(c) Copyright bla bla bla"' title='"Grundscene"'/>
  <NavigationInfo avatarsize='0.3 1.9 0.6' headlight='true' type='"WALK"' transitiontype='"LINEAR"'/>
  <Background groundAngle='1.309 1.571' groundColor='0.1 0.1 0 0.4 0.25 0.2 0.6 0.6 0.6' skyAngle='1.309 1.571' skyColor='0 0.2 0.7 0 0.5 1 1 1 1'/>
  <Shape>
   <Sphere radius='0.5' solid='"FALSE"'/>
  </Shape>
 </Scene>
</X3D>

Udseende[redigér]

Udseende på et objekt specificeres ved en Appearance node, der kan indeholde følgende noder:

  • Material-node der fortæller noget om farver på objekter
  • Texture-noden der "klistrer" et billede på et objekt.

Material noden kan indeholde følgende:

Node Tag's Værdier Beskrivelse
material      
  diffuseColor angives ved 3 RGB-værdier en mat farve-flade, der reflekterer lys afhængigt af avatarens vinkel i forhold til lyskilden.
  emissiveColor angives ved 3 RGB-værdier farve-fladen afgiver eget lys, dvs. der behøves ingen lyskilde for, at man kan se den.
  shininess angives med en værdi mellem 0 og 1 fortæller noget om fladens evne til at reflektere lys.
  transparency angives med en værdi mellem 0 og 1 angiver fladens transparens. Værdien 1 giver fuldstændig gennemsigtighed, 0 ingen gennemsigtighed.

Så en material node i en Appearance node, kan se således ud:

<Appearance>
 <material diffuseColor='0.2 0.5 0.8' transparency='0.5'/>
</Appearance>

En fil med en material node kunne se således ud:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"   "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D>
 <head>
 </head>
 <Scene>
  <WorldInfo info='"(c) Copyright bla bla bla"' title='"Grundscene"'/>
  <NavigationInfo avatarsize='0.3 1.9 0.6' headlight='true' type='"WALK"' transitiontype='"LINEAR"'/>
  <Background groundAngle='1.309 1.571' groundColor='0.1 0.1 0 0.4 0.25 0.2 0.6 0.6 0.6' skyAngle='1.309 1.571' skyColor='0 0.2 0.7 0 0.5 1 1 1 1'/>
  <Shape>
   <Appearance>
    <Material diffuseColor='0.2 0.5 0.8' transparency='0.5'/>
   </Appearance>
   <Sphere radius='0.5' solid='"FALSE"'/>
  </Shape>
 </Scene>
</X3D>

Så nu ser kuglen fra før således ud:

Texture-noden angiver hvordan man sætter et billede på et objekt. Billedet kan være af typerne: JPEG, PNG eller GIF. Måske understøtter playeren andre formater, men dette er ikke sikkert.

Node Tag's Værdier Beskrivelse
texture      
  url   Angiver en sti til det billede der skal anvendes
  repeatS TRUE eller FALSE Angiver hvorvidt billedet skal kopieres ad X-aksen eller ej. Dvs. hvis værdien er sat til TRUE, bliver kopieret udad X-aksen, så det fylder hele fladen.

ellers vises billedet kun 1 gang.

  repeatT TRUE eller FALSE Angiver hvorvidt billedet skal kopieres ad Y-aksen eller ej. Dvs. hvis værdien er sat til TRUE, bliver kopieret opad Y-aksen, så det fylder hele fladen.

ellers vises billedet kun 1 gang.

Så en texture node i en Appearance node, kan se således ud:

<Appearance>
 <texture url='Brenda.jpg repeatS='"TRUE"' repeatT='"FALSE"'/>
</Appearance>

En fil med en texture node kunne se således ud:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"   "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D>
<head>
</head>
<Scene>
 <WorldInfo info='"(c) Copyright bla bla bla"' title='"Grundscene"'/>
 <NavigationInfo avatarsize='0.3 1.9 0.6' headlight='true' type='"WALK"' transitiontype='"LINEAR"'/>
 <Background groundAngle='1.309 1.571' groundColor='0.1 0.1 0 0.4 0.25 0.2 0.6 0.6 0.6' skyAngle='1.309 1.571' skyColor='0 0.2 0.7 0 0.5 1 1 1 1'/>
 <Shape>
  <Appearance>
   <ImageTexture url='"Brenda.jpg"' repeatS='"TRUE"' repeatT='"FALSE"'/>
  </Appearance>
  <Box size='1.0 2.5 4.2'/>
 </Shape>
</Scene>

</X3D>

Denne kasse kommer så til, at se således ud:

Genbrug[redigér]

Det er grundlæggende 2 forskellige måder, at genbruge sine Shapes på, enten ved, at man i samme fil bruger en eller flere shapes igen, eller at man i en fil indsætter en anden fil.

Fordelen er naturligvis, at man slipper for at lave de samme shapes flere gange.

DEF/USE[redigér]

Når man i den samme fil, genbruger sine Shapes, indsætter man i den Shape, man senere ønsker at genbruge, det reserverede ord:DEF og derefter et passende navn. Det kan se således ud:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"   "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D>
 <head>
 </head>
 <Scene>
 <WorldInfo info='"(c) Copyright bla bla bla"' title='"Grundscene"'/>
 <NavigationInfo avatarsize='0.3 1.9 0.6' headlight='true' type='"WALK"' transitiontype='"LINEAR"'/>
  <Group>
   <Shape DEF='Kugle'>
    <Appearance>
     <Material diffuseColor='0.2 0.5 0.8' transparency='0.5'/>
    </Appearance>
    <Sphere radius='0.5'/>
   </Shape>
   <Transform translation='1 0 0'>
    <Shape USE='Kugle'/>
   </Transform>
  </Group>
 </Scene>
</X3D>

Den Transform-node der er brugt forklares nedenunder, men den bruges i det her tilfælde til, at flytte den anden kugle lidt i forhold til den første, det ser således ud i browseren:

Inline[redigér]

Den anden metode hedder Inline, her indsætter man et link til den fil, man ønsker at sætte ind. Det virker sådane her:

<Inline url='"kasse.x3d"'>

Transformering[redigér]

Når man genbruger sine shapes, er det ofte nødvendigt, at ændre på udseendet eller placeringen af de efterfølgende shapes. Til dette bruger man en Transform-node, der giver mulighed for, at skalere, rotere og flytte sine shapes. Transform-noden bruges også til, at flytte shapes man ikke har genbrugt.

Noden ser således ud:

<Transform> </Transform>

Skalering[redigér]

Man kan indsætte et skalerings-tag, som ændrer på størrelsen på en node.

Skaleringen udføres på de 3 akser: X Y Z. Værdien der tildeles angiver med hvilken faktor størrelsen ændres, dvs. hvis faktoren er 2 fordobles størrelsen, hvis faktoren er 0.5 halveres størrelsen. Her er lavet en skalering, der fordobler alle 3 sider:

<Transform scale='2.0 2.0 2.0'>
 <Shape>
</Transform>

Rotation[redigér]

Man kan indsætte et roterings-tag, som ændrer på hvordan en node vender.

Rotationen foregår omkring X Y Z akserne. Og er opbygget således: X Y Z G. Dvs. X Y Z angiver om hvilken akse der skal roteres og antager værdien 0 eller 1, G angiver hvor mange radianer man roterer.

Der er en simpel måde at gøre det på og en kompliceret måde, at gøre det på.

Den simple måde er hvor man kun roterer om den ene af akserne, f.eks. 0 1 0 1.57.

Den komplicerede måde er, hvor man roterer om flere akser, f.eks. 0.2 0.45 0.32 1.45. Hvad hver enkelt værdi skal være, kan jeg ikke give et svar på. Men der findes et lille program, der kan gøre det for en, det hedder VT Dizzy 1.1 og kan hentes her: http://www.softpedia.com/get/Science-CAD/VT-Dizzy.shtml

Her ses hvordan en simpelt rotation ser ud, der bliver drejet 90° om Y-aksen:

<Transform rotation='0 1 0 1.57'>
 <Shape>
</Transform>

Positionering[redigér]

Positionerings tag'et hedder translation i x3d "sprog" Man kan indsætte et translation-tag, som ændrer på hvor en node placeres i scenen. Dette bruges ofte (altid), da efterfølgende noder placeres i forhold til den første node.

Hvis man sætter et translation-tag på den første shape, skal man være opmærksom på det forhold, når man flytter på de andre shapes, derfor vil man normalt udelade translation på den første (eller eneste) form.

Postionering udføres på de 3 akser: X Y Z. Værdien der tildeles angiver hvilken afstand fra nulpunktet den nye position er.

Et translation-tag altså se sådan her ud:

<Transform translation='0.8725 3.5 4'>
 <Shape>
</Transform>

En transform node med alle tags indlagt, kan se således ud:

<Transform scale='0.5 2 1.5' rotation='0 1 0 1.57' translation='0.8725 3.5 4'>
 <Shape>
</Transform>

Tag'et skalerer objektet 0,5 på x-aksen, 2,0 på y-aksen og 1,5 på z-aksen. Derefter roteres objektet 90° om y-aksen og endelig flyttes objektet 87,25 centimeter ad x-aksen 3,5 meter ad y-aksen og 4 meter ad z-aksen.

En fil kunne så se således ud:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"   "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D>
 <head>
 </head>
 <Scene>
  <WorldInfo info='"(c) Copyright bla bla bla"' title='"Grundscene"'/>
  <NavigationInfo avatarsize='0.3 1.9 0.6' headlight='true' type='"WALK"' transitiontype='"LINEAR"'/>
  <Transform scale='0.5 2 1.5' rotation='0 1 0 1.57' translation='0.8725 3.5 4'>
    Et objekt her
  </Transform>
 </Scene>
</X3D>


Eksterne henvisninger[redigér]

http://www.web3d.org/x3d/content/examples/Vrml2.0Sourcebook/

http://www.web3d.org/