Jazyk VRML Technologie vývoje webových aplikací Marek Skalka, Adam Horáček 31.5.2008



Podobné dokumenty
Rozcestník virtuálních světů

Interaktivní model laboratoře RDC

Automatizovaná tvorba prostorových modelů map

Virtuální prohlídka budovy v jazyce VRML

MIKROVLNNÁ TROUBA REKLAMA ODBORNÝ POPIS KROK 1 VYTVÁŘENÍ MODELU

Virtuální zákaznické centrum

Publikace 3D modelů na webu jazyk VRML

Laskavý průvodce virtuálními světy

Model šestiosého robotu v prostředí Matlab

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY

Propojení 3D modelování budov a INSPIRE na příkladu vizualizace dat o hlukové zátěži Tomáš EZNÍK, Lukáš HERMAN Laborato

Jazyk VRML 2.0. Jihočeská univerzita v Českých Budějovicích Pedagogická fakulta Katedra informatiky

Základní práce v souborovém manažeru

Animace a geoprostor. První etapa: Animace 2. přednáško-cvičení. Jaromír Landa. jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně

Vektorové grafické formáty

1.8. Úprava uživatelského prostředí AutoCADu 25 Přednostní klávesy 25 Pracovní prostory 25

11 Zobrazování objektů 3D grafiky

IVT. Grafické formáty. 8. ročník

Obsah. Úvod do prostorového modelování 9. Prostředí AutoCADu při práci ve 3D 15 KAPITOLA 1 KAPITOLA 2

HTML Hypertext Markup Language

Produktové Dokumenty (Datum ) Srovnání verzí: pcon.planner 7.0 Rozdíly mezi verzemi Standard-, ME a PRO

VY_32_INOVACE_INF.19. Inkscape, GIMP, Blender

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Použité názvy programových produktů, firem apod. mohou být ochrannými známkami nebo registrovanými ochrannými známkami příslušných vlastníků.

Novinky v Solid Edge ST7

JavaScript 101. "Trocha života do statických stránek"

Název: VY_32_INOVACE_PG3303 Pohyb ve 3D prostoru 3DS Max. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max

9 Prostorová grafika a modelování těles

HTML - Úvod. Zpracoval: Petr Lasák

Publikování map na webu - WMS

Hierarchický model Josef Pelikán CGG MFF UK Praha. 1 / 16

MBI - technologická realizace modelu

Vývoj Internetových Aplikací

Na tomto místě se bude nacházet oficiální zadání bakalářské práce.

Přístroj podporuje 16 druhů formátů souborů, mezi které patří PDF, CHM, EPUB, TXT, HTM, HTML, RTF, PDB, DJVU, DJV, iw44, iw4, FB2, PRC, MOBI, a TCR.

ČSFD.cz - technická specifikace reklamních formátů

Inovace výuky prostřednictvím šablon pro SŠ

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Formáty WWW zdrojů. Mgr. Filip Vojtášek.

22. Tvorba webových stránek

b) červená, zelená, modrá, c) černá, bílá, d) černá, bílá, šedá. 5. PNG je formát: a) textový,

Software pro vzdálenou laboratoř

VYUŽITÍ VIRTUÁLNÍ REALITY V DYNAMICE VOZIDEL

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

Využití ICT techniky především v uměleckém vzdělávání. Akademie - VOŠ, Gymn. a SOŠUP Světlá nad Sázavou

Neskutené skuteno. Co je virtuáln. lní realita? Virtuální realita virtuální = fiktivní, neskutený, zdánlivý realita = skutenost, pravost

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Obsah. SEZNÁMENÍ S HRAMI V HTML Nové funkce HTML Nové funkce CSS

ROBOTIKA M3A 2018/2019 ING. VLADIMÍR VYHŇÁK

V této příloze je podrobně popsána struktura XML dokumentu s mapou (viz kapitolu 5.3), příklad tohoto XML dokumentu je na přiloženém CD v souboru

Příručka pro studenta

WEB BASED DYNAMIC MODELING BY MEANS OF PHP AND JAVASCRIPT

M M S. Značkovací jazyky

VYUŽITÍ POČÍTAČOVÉ GRAFIKY

Pro správné zobrazení mapové aplikace je potřeba mít nainstalovaný zásuvný modul Flash Adobe Player.

Název: VY_32_INOVACE_PG3315 Umisťování textur pomocí modifikátoru UVW Map. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max

Odpadové hospodářství v ORP Ústí nad Labem

Jana Dannhoferová Ústav informatiky, PEF MZLU

Algoritmizace prostorových úloh

HVrchlík DVrchlík. Anuloid Hrana 3D síť

Možnosti interaktivní prezentace prostorových modelů na internetu

Diplomová práce Prostředí pro programování pohybu manipulátorů

Obsah. Stručná historie World Wide Webu 7

NSWI096 - INTERNET JavaScript

PROGRAM RP45. Vytyčení podrobných bodů pokrytí. Příručka uživatele. Revize Pragoprojekt a.s

Formáty a dlouhodobé uložení: Identifikace, extrakce a validace

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Internet 1. ÚVOD. Příklad stránky WWW v prostředí Internet Exploreru vidíte na obr.:

Obsah. Proč právě Flash? 17 Systémové požadavky 17. Jak používat tuto knihu 18 Doprovodný CD-ROM 19

Počítačová grafika RHINOCEROS

Zobrazování a osvětlování

Reprezentace 3D modelu

Popis obsahu a návod k používání mapové aplikace Stav pokrytí NGA v ČR

INTERNET A SÍTĚ. Role při tvorbě webových aplikací. Rozhodovací vrstvy při tvorbě webových aplikací. povrch kostra struktura obsah strategie

Animace a geoprostor. První etapa: Animace 3. přednáško-cvičení. Jaromír Landa. jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně

Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1

Modelování procesů s využitím MS Visio.

Požadavky pro výběrová řízení TerraBus ESB/G2x

3D Vizualizace muzea vojenské výzbroje

Popis obsahu a návod k používání mapové aplikace Stav pokrytí NGA v ČR

Využití programu GeoGebra v Matematické analýze

Základy 3D modelování a animace v CGI systémech Cinema 4D C4D

Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.

ČERV. Hra Červ je psána pomocí příkazů Javascriptu a standardních příkazů HTML.

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty

HŘÍČKY PRO ROZVOJ PROSTOROVÉ ORIENTACE

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Aleš Najman [ÚLOHA 38 KONTROLA A POHONY]

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1

Informatika pro moderní fyziky (8) Javascript, CSS - stylování dokumentů, SVG - tvorba obrázků, složitější interaktivní dokument

TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ

Popis obsahu a návod k používání mapové aplikace Stav pokrytí NGA v ČR

MANUÁL VÝPOČTOVÉHO SYSTÉMU W2E (WASTE-TO-ENERGY)

Výukové texty. pro předmět. Automatické řízení výrobní techniky (KKS/ARVT) na téma

ČESKY. Macro Key Manager Návod k použití

Podklad pro tvorbu ilayer typu

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Základy informatiky část 10

(X)HTML, CSS a jquery

Software Form Control

PowerPoint 2010 Kurz 4

Transkript:

Jazyk VRML Technologie vývoje webových aplikací Marek Skalka, Adam Horáček 31.5.2008

Obsah Co je VRML?... 3 Prohlžení VRML světů... 3 Navigační režimy... 3 Avatar... 4 Základní tělesa ve VRML...4 Příklad: kompletní VRML soubor... 4 Skládání základních těles... 5 Textury... 6 Světla... 6 Zvuk... 6 Prototypy... 6 Speciální uzly... 7 Dynamické akce... 7 Skriptování... 8 External Authoing Interface... 9 X3D... 9 Odkazy... 9

Co je VRML? VRML (Virtual Reality Modeling Language) je jazyk pro popis virtuální reality resp. interaktivní trojrozměrné vektorové grafiky. Standardizovaný textový formát jazyka VRML je textový, používá příponu souborů *.wrl a dá se relativně dobře komprimovat. Používá stromovou strukturu pro popis scény, není však založen na XML ani žádném jiném SGML jazyku. První verze vznikla v roce 1994. Verze VRML 97 (též známá jako VRML 2) byla v roce 1997 standardizována organizací ISO. Prohlžení VRML světů VRML svět je možné zobrazit buď samostatně prostřednictvím některého z prohlížečů VRML souborů, nebo v rámci webové stránky, do které je VRML svět vložený podobným způsobem, jako třeba flash objekty nebo java applety. Do (X)HTML webové stránky vložený VRML objekt zvládnou dnes zobrazit téměř všechny webové prohlížeče, je ale zapotřebí mít nainstalovaný patřičný plugin pro přehrávání VRML scén. Jak samostatné prohlížeče, tak pluginy, jsou dostupné od několika společností jako open source i jako komerční řešení a jsou k dispozici pro různé platformy. Některé z komerčních produktů bývají pro domácí použití zdarma. Nejjednodušší cestou pro nainstalování pluginu do prohlížeče je použít rozcestník http://cic.nist.gov/vrml/vbdetect.html, který kromě přehledu a doporučení vhodného software umí také detekovat již nainstalované pluginy v prohlížeči. Mezi nejznámnější programy pro prohlížení VRML scén patří třeba FreeWRL, FluxPlayer, CosmoPlayer, Cortona3D nebo Swirl3D. Samotné vkládání VRML do HTML se řeší pomocí elementů EMBED nebo OBJECT, viz následující příkald: <html> <head> <title>vložení VRML</title> </head> <body> <h1>vložení VRML</h1> <p>níže je zobrazen svět sample.wrl:</p> <embed src="demo.wrl"> </body> </html> Navigační režimy Ve VRML existují tři navigační režimy (Walk, Fly a Examine). Volba navigačního režimu určuje, jakým způsobem se bude ve virtuálním světě pohybovat avatar - virtuální postavička, která vás reprezentuje. V režimu Walk funguje detekce kolizí (nedá se tedy procházet skrz předměty) a funguje gravitace, v režimu Fly funguje detekce kolizí, ale gravitace nikoliv, a v režimu Examine režimu nejsou žádná omezení na procházení scény. Ve VRML světě je také možné přepínat (teleportovat) se mezi předdefinovanými viewpointy (místy ve scéně). Je také možné vytvořit odkazy fungující ve VRML scéně stejným způsobem, jako kotvy na HTML stránkách.

Avatar Virtuální postava, která reprezentuje vaší přítomnost ve scéně, má přibližně rozměry a schopnost pohybu běžného člověka. Fyzicky jde o válec s nožičkama dole a jedním okem nahoře, přičemž rozměr válce a délka nožiček určují, kam se avatar vejde a jak velkou překážku (schod) překročí. Avatar je ale sám pro sebe neviditelný. V místě oka má typicky navíc rozsvícenou baterku - headlight - kterou si osvětluje scénu. Všechny parametry avatara lze nastavovat v uzlu NavigationInfo. Základní tělesa ve VRML Celý trojrozměrný svět ve VRML je postaven z následujících základních těles:. Jak uvidíme později, následující základní tvary jsou hodnotou parametru geometry u uzlu Shape, který reprezentuje nějaký 3D objekt ve scéně. Box - kvádr s definovanými rozměry, umístěný svým těžištěm do středu souřadného systému (0, 0, 0) a orientovaný podle jeho os. Příklad: Box { size 2.0 2.0 2.0 Cone - jehlan - kromě rozměrů je možné nastavit také (ne)zobrazování podstavy Cylinder - válec. Opět možné nastavit (ne)zobrazování podstav. Sphere - koule. IndexedFaceSet - jakýkoliv 3D objekt sestavený z plošek. Definuje se polem bodů v prostoru a dále seznamem indexů bodů tvořících vrcholy jednotlivých plošek. Extrusion - 3D objekt vytvořený tažením nějakého 2D profilu prostorem po úsečce nebo lomené čáře. IndexedLineSet - množina čar tlustých 1px. Spíše než na zobrazení něčeho reálného se hodí pro zobrazení různých os a podobně. PointSet - množina bodů 1x1 px Text - text vygenerovaný z truetypového písma. Vzhledem k množství jeho polygonů se pro nápisy z důvodu optimalizace častěji používají textury. ElevationGrid - zvrásněná plocha. Definuje se dvourozměrným polem, kde jednotlivá čísla udávají výšku (například terénu) v jednotlivých bodech mřížky. Příklad: kompletní VRML soubor Každý VRML soubor začíná hlavičkou. #VRML říká ze se jedná o VRML soubor. V2.0 udává verzi VRML používanou v tomto souboru, následuje kódování souboru - může být použito ascii nebo utf8.

#VRML V2.0 utf8 Shape { geometry Cone { bottomradius 0.75 height 1.6 appearance Appearance { material Material { diffusecolor 1 0 0 Za hlavičkou se mohou objevovat uzly (nodes), prototypy (prototypes), routy (routes). Jednotky rozměrů jsou brány jako metry a úhly nejsou měřeny ve stupních, ale v radiánech. Veškeré viditelné objekty jsou definované v uzlu Shape. Parametr appearance se používá pro nastavení barvy a textury a dalších vlastností geometrického objektu určeného parametrem geometry. Appearance je volitelný, když není definovaný, tak se použije výchozí hodnota. Zde je výsledek, který získáme (na linuxu s použitím programu FreeWRL) spuštěním z příkazové řádky $freewrl sample.wrl: Skládání základních těles Všechny složité světy jsou sestaveny z výše jmenovaných jednoduchých těles. K tomu je potřeba tato základní tělesa skládat do větších celků. K tomu se ve VRML používají následující uzly: group - slouží jen k seskupení několika těles (uzlů typu Shape, případně jiných group či transform uzlů). Tato tělesa tvoří prvky pole children, které je parametrem uzlu group. transform - funguje jako group, navíc ale umožňuje transformaci objektu nebo seskupených objektů, a to změnu měřítka, rotaci a posunutí. Tyto transformace se

provádějí v uvedeném pořadí, při požadavku na jiné pořadí transformací je nutné zanořit několik uzlů transform do sebe. inline - slouží pro vkládání externích souborů identifikovaných svým url. Prostřednictvím konstrukce DEF jméno deklarace je možné blok (například těleso) pojmenovat a prostřednictvím zápisu USE jméno takový blok znovu použít. Textury Textury lze zadávat pomocí pole barev pixelů (dělat to ručně je ovšem nepředstavitelná práce), pomocí obrázků (png, jpeg nebo gif) nebo pomocí videosouborů (mpeg, gif). Textury nahrazují vlastnost diffusecolor u daného materiálu. Mohou být také transparentní. ImageTexure { url [ ] repeats TRUE repeatt TRUE Světla # textura zadaná pomocí obrázku # zdroj obrázku # jestli se má opakovat svisle # jestli se má opakovat vodorovně Ve VRML existuje několik druhů světel: Avatarova baterka: světelný zdroj, který osvětluje scénu z aktuáního pohledu avatara (kamery), chová se jako DirectionalLight. DirectionalLight: nemá definovanou žádnou polohu, jen směr, chová se jako zdroj světla umístěný daleko od modelovaného světa, podobně jako Slunce od Země. PointLight: je světlo umístěné v modelovaném světě. Od jeho umístění se paprsky šíří do všech směrů. Chová se podobně jako žárovka. SpotLight: chová se podobně jako PointLight, až na to, že směr šíření je omezen jako u reflektoru. VRML bohužel neumí pracovat se stíny. Světlo osvětluje jen objekty, jenž jsou definovány v uzlech, které jsou sourozenci a potomci sourozenců definovaného světla (tak lze ale zařídit, aby lampička v pokoji neosvětlovala místnosti ve sklepě). Počet zdrojů světla může být technicky omezený (na typicky 8 současně svítících zdrojů světla) - další zdroje světla se buď nezobrazují, nebo je scéna vykreslována bez HW podpory (tedy neúnosně pomalu). Pomocí skriptování je ale možné světla vypínat a zapínat. Zvuk Ve VRML lze nastavit také zdroje zvuku, a to pomocí uzlu Sound a vnořeného uzlu AudioClip. AudioClip definuje stopu, která má hrát a také její vlastnosti (jestli se má opakovat ve smyčce, kdy začít, kdy zkončit, zdrojový soubor a případně i popis). AudioClip je hodnotou parametru source uzlu Sound, který určuje umístění zdroje zvuku ve VRML světě a jeho další vlastnosti - oblast, ve které bude zvuk slyšet, útlum... VRML podporuje jen zvuky ve formátu wav v kódování PCM. Vetšina prohlížečů však umí také formát mp3, ačkoliv to není zcela v souladu se standardem. Veškeré zvuky jsou mono a do sterea se přepočítávají podle vzájemné polohy avatara a zdroje zvuku. Prototypy Prototypy jsou předdefinované objekty nebo kousky virtuálního světa. Svou

myšlenkou odpovídají procedurám v programovacích jazycích - samotný prototyp se na scéně neobjeví, ale lze ho do scény opakovaně vkládat. Může mít parametry, podle kterých se změní jeho vlastnosti. Tím se také liší od výše popsané konstrukce DEF. Prototypy mohou být i externí, uložené v samostatném wrl souboru - knihovně. Ne úplně prakticky je ale třeba do všech souborů, v nichž bude prototyp použit, znovu opisovat jeho hlavičku. Speciální uzly Kromě již zmíněných typů uzlů existuje ve VRML i několik zvláštních typů uzlů: Background - definuje pozadí scény. Sám o sobě umí až dva gradienty (obloha a země) a šest stěn nekonečně veliké krychle kolem světa. Obě možnosti pozadí lze kombinovat. Fog - mlha, která určuje viditelnost ve VRML světě. LOD - Level of detail - speciální uzel, který pro jednotlivé objekty skutečného světa umožní definovat několik VRML reprezentací. Ty se pak používají podle vzdálenosti objektu od pozorovatele. Billboard - plocha, zpravidla otexturovaná, orientovaná vždy kolmo na pozorovatele. Používá se především kvůli nenáročnosti na rychlost zobrazení. WorldInfo - informace o světě - místo určené k podpisu autora scény. Dynamické akce Základním schématem dynamických akcí je senzor -> logika -> časovač -> engine -> target Senzory jsou schopné detekovat nějakou událost a předat o ní informaci. Ve VRML jsou k dispozici následující senzory: anchor - odkaz jinam do scény CylinderSensor - manipulace kroucením PlaneSensor - manipulace posouváním SphereSensor - manipulace otáčením TouchSensor - detekce dotyku (kliknutí) Collision - detekce kontaktu s avatarem ProximitySensor - detekce přítomnosti avatara VisibilitySensor - detekce viditelnosti objektu Úkolem logiky je vyhodnotit, zda na základě impulsu od senzoru provést nějakou akci či nikoliv. K tomu je ve VRML nutné použít skriptování, které bude popsáno později. Časovač (TimeSensor) generuje informace o probíhajícím čase a řídí tak průběh animace nebo jiné dynamické uálosti.

Engine převádí informaci o čase (float 0.0 až 1.0) na hodnoty použitelné jako úhel, poloha atd. Ve VRML je definováno několik lineárních interlolátorů, další engine je možné naskriptovat. ScalarInterpolator - změna měřítka ColorInterpolator - změna barvy OrientationInterpolator - změna orientace PositionInterpolator - změna polohy (po lomené čáře) CoordinateInterpolator NormalInterpolator Target - cíl dynamické akce - může být jakákoliv rozumná vlastnost nějakého objektu, kterou lze nastavovat, například úhel otočení hodinové ručičky. Jednotlivé elementy podílející se na dynamické akci se propojují deklarací ROUTE. Na následujícím příkladě spustí kliknutí na Senzor časovač, který je propojen s interpolátorem, který otáčí NejakymObjektem. ROUTE Senzor.touchTime TO Casovac.startTime ROUTE Casovac.fraction_changed TO Interpolator.set_fraction ROUTE Interpolator.value_changed TO NejakyObjekt.rotation Senzory CylinderSensor, PlaneSensor a SphereSensor mohou být routovány přímo na target (senzor -> target) a umožit tak měnit přímo orientaci nebo polohu nějakého objektu. Těmto třem senzorům se při tomto použití říká též manipulátory. Ve VRML 2.0 může skoro každý uzel přijímat i vysílat informace o událostech, což ve verzi 1.0 nešlo. Uzel vyšle událost při změně objektu, pokud se s tímto objektem nějak manipuluje, přesouvá, mění jeho viditelnost a podobně. Událostí může být jakákoliv typovaná hodnota. Pro lepší pochopení další kapitoly ještě osvětlíme, jak je to přesně s parametry uzlů: Ty mohou být jednoho ze tří typů: eventin: lze použít jako cíl pro událost (například set_fraction u interpolátoru) eventout: lze použít jako zdroj události (například touchtime u TouchSensoru) exposedfield: lze použít oběma způsoby (typicky všechny parametry jako poloha, úhel, barva) Skriptování Skripty ve VRML se zapisují do uzlu script a píší se v jazyce ECMAScript, což je jiný název pro JavaScript, který se ve VRML používá z formálních a historických důvodů. Vlastní script může být buď součástí wrl souboru, nebo může být připojen jako externí javascriptový soubor. Kromě použití pro dynamické akce (logika, engine) a manipulace s uzly scény je možné nascriptovat také interakci s prohlížečem nebo síťovou komunikaci. Následující příklad ukazuje použití scriptu pro výpočet rotace a vysunutí hydraulického pístu podle dané rotace ramena bagru:

DEF SkriptPist Script { eventin SFRotation rotaceramena eventout SFRotation rotacepistu eventout SFVec3f vysunutipistu url "javascript: function rotaceramena(value, time) { x1 = Math.sin( value[3]-.472 )*1.25 +.61; y1 = Math.cos( value[3]-.472 )*1.25 -.06; uhelpistu = Math.atan( x1/y1 ); posunpistu = Math.sqrt( (x1)*(x1) + (y1)*(y1) )/2; rotacepistu = new SFRotation(0, 0, 1, uhelpistu-1.6); vysunutipistu = new SFVec3f(0,.45+posunPistu, 0); " External Authoing Interface EAI je rozhraní mezi VRML a programovacím jazykem, například ve webovém prostředí používanou Javou. Prostřednictvím tohoto rozhraní je možné z programovacího jazyka manipulovat s uzly ve scéně a posílat, číst a odposlouchávat události, které ve scéně probíhají. X3D Zkratka X3D znamená Extensible 3D a je označením pro nástupce jazyka VRML. Oproti v tomto referátu popsanému VRML nabízí především více formátů pro popis scény (XML syntaxe, VRML syntaxe nebo binární formát). Dále definuje různé profily a rozšíření přinášející novou funkcionalitu. Také X3D je dnes již ISO standardem. Odkazy Detekce VRML / X3D pluginu v prohlížeči http://cic.nist.gov/vrml/vbdetect.html Prof. Ing. Jiří Žára: VRML 97 Laskavý průvodce virtuálními světy http://www.cgg.cvut.cz/laskavypruvodce Pavel Tišnovský: seriál o VRML http://www.root.cz/clanky/vrml-jazyk-pro-popis-virtualni-reality Specifikace návrhu http://www.vrml.org/workinggroups/vrml-eai/specification International Standard ISO/IEC 14772-1:1997 http://www.web3d.org/x3d/specifications/vrml/iso-iec-14772-vrml97/ Wikipedia.org http://en.wikipedia.org/wiki/vrml