GIS a VRML

David Bauckmann

VŠB – Technická univerzita Ostrava

E-mail: david.bauckmann@post.cz

 

Abstract

The VRML is a new programming language for modelling 3D objects and their presentation in Internet network. With help of IDC form it´s possible to add related records from database to individual objects in a model and create a link from VRML model to the database.

Abstrakt

VRML je nový programovací jazyk pro modelování 3D objektů a jejich prezentace v síti Internet. S využitím formátu IDC lze jednotlivým objektům v modelu přiřadit odpovídající záznamy v databázi a vytvořit tak propojení VRML modelu a databáze.

Úvod

Naprostá většina dnešních GIS aplikací pracuje ve dvou rozměrném prostoru (dále jen 2D). To sebou přináší zřejmá omezení jak v možnosti ukládání prostorových dat (reálný 3D prostor musí být transformován do 2D plochy), ale také v jejich prezentaci (člověk se lépe orientuje v prostorovém modelu než například v mapě). Je velice pravděpodobné, že v budoucnu budou GISy v převážné míře trojrozměrné. Než se tak ale stane čeká nás v této oblasti překonání mnohých problémů, které si budou žádat nejen rychlejší hardwarové vybavení, ale také nové přístupy k programovým aplikacím a konverzi a správě dat.

Virtuální realita a GIS

V roce 1998 začal na Hornicko-geologické fakultě Vysoké škole báňské Technické university Ostrava v rámci oboru Geografické informační systémy projekt pod názvem Virtuální realita a GIS. Cílem tohoto projektu bylo vytvořit navigační informační systém na zmíněné instituci. Jedná se o nový přístup k řešení aplikace typu správy zařízení. V tomto projektu je velký důraz kladen na navigaci a prostorovou orientaci.

Způsob realizace

Tento projekt je založen na programovacím jazyku VRML, jež se používá k tvorbě a zobrazování prostorových scén a jejich přenosu v rámci služby World Wide Web (protokolu HTTP) celosvětové sítě Internet. Pomocí tohoto programovacího jazyka je vytvořen model části areálu VŠB TU Ostrava a do tohoto modelu jsou připojeny data obsažená v databázi.

VRML

Programovací jazyk VRML (Virtual Reality Modelling Language) byl vytvořen společností Silikon Graphic SGI a poprvé prezentován v listopadu roku 1994 ve verzi VRML 1.0. Již v roce 1995 ohlásilo podporu tohoto jazyka několik předních softwarových firem jako například Netscape nebo NEC. V květnu 1995 vznikla organizace VRML Architecture Group (VAG) zabývající se integrováním VRML do WWW a vytvořením standardu pro komunikaci mezi WWW a VRML. Členové této organizace byli a stále jsou přední odborníci v oblasti virtuální reality a Internetu. V říjnu 1995 se tito členové usnesli na vytvoření nové verze tohoto jazyka, VRML 2.0. Ještě předtím se však snažily některé soukromé společnosti tento jazyk zdokonalovat a vznikaly různé verze jazyka jako například VRML+ nebo VRML 1.1, ale tyto nové verze nepřinesly žádné výrazné zlepšení.

V roce 1996 byla poprvé zveřejněna specifikace jazyka VRML 2.0 s možností vytvářet vlastní skripty nebo propojit program s jiným programovacím jazykem (Java, C++ a další ). Jazyk v této verzi podpořily i ostatní velké společnosti (IBM, Microsoft, Apple, Sun a další ) a od této chvíle se dá hovořit o standardu.

Od té doby nebylo třeba jazyk nijak zvlášť zdokonalovat, neboť splňuje účel pro který byl stvořen. Ojediněle některá softwarová společnost zabuduje speciální nový příkaz do tohoto jazyka, ale tyto příkazy jsou používaně pouze ve speciálních případech.

Stejně jako jazyk HTML je i VRML psán v podobě prostého textu bez kódování. Je tedy závislý na schopnostech prohlížečů, do jaké míry jsou schopny jej interpretovat.

Při realizaci projektu bylo použito verze VRML 2.0, která má oproti verzi VRML 1.0 mnohá vylepšení.

Velkou výhodou je, že tento jazyk se chová podle zásad objektově orientovaných technologií. Vytvoříte-li například objekty světlo a vypínač, je velice jednoduché tyto dva objekty propojit cestou, po níž budou posílány příkazy typu “rozsviť” nebo “zhasni”.

K zobrazení modelu vytvořeného jazykem VRML je potřeba mít jakýkoli webovský prohlížeč s nainstalovaným plug-in programem. Tyto programy jsou zpravidla lehce dosažitelné.

Konstrukce modelu

Celý areál VŠB je rozvržen do tří úrovní:

Na nejvyšším stupni stojí model celého areálu. Tvoří jej modely jednotlivých budov v podobě jednoduchých geometrických těles (budova A = kvádr). Celá scéna je tvořena jediným souborem. Tento model je velice jednoduchý a splňuje svůj účel, ale bylo jistě vhodné tento model dopracovat do větší podrobnosti, aby působil estetickým dojmem. Také by jistě bylo vhodné přidat do této scény jednoduché doplňky jako jsou stromy, dopravní značky, geodetické body, auta stojící na parkovišti. Tyto detaily by pak zde sloužily jednak pro zvýšení estetičnosti celého modelu a také pro větší realističnost. Vhodné by jistě bylo zobrazit i digitální model terénu.

Níže v hierarchii stojí vnitřní modely chodeb budov. Jedná se vždy o model chodby jednoho patra budovy, v níž se uživatel právě nachází. Tento stupeň je tvořen více modely, vždy zvlášť pro budovu a poschodí. Toto rozdělení do více částí je založeno na omezení výkonu počítače uživatele. Je všeobecně známo, že 3D scény se zobrazují velice pomalu, pokud nemá počítač příslušný výkon a hardwarové (dále jen HW) zařízení (3D grafický akcelerátor).

Nejníže stojí modely jednotlivých kanceláří a učeben, do nichž se vstupuje z chodby. Jedná se o vnitřní model místnosti s vybavením (stoly, židle, atd...). Pokud z těchto místností vedou dveře do jiné místnosti, obsahuje scéna i modely těchto místností. Jedná se tedy vždy o jedinou scénu. V těchto místnostech se nachází odkazy na osobní www stránky vyučujících (jedná-li se o kabinet), případně videozáznam, či jiný druh prezentace.

Díky schopnostem jazyka VRML lze všem těmto modelům přiřadit vlastní umístění a orientaci v prostoru a dokonce i jejich měřítko. To znamená, že až se dostatečně zvedne výkon počítačů nejširší vrstvy uživatelů (nebo bude-li model použit pro omezený počet uživatelů s patřičným vybavením) bude možno každému modelu přiřadit příslušné parametry a zobrazit je najednou. Nesmíme ovšem zapomenout vzít v úvahu přenosovou rychlost sítě Internet. Jiná situace nastane v síti Intranet, kde by přenosové rychlosti dat, měly být značně rychlejší.

Propojení těchto samostatných modelů je zajištěno odkazem, stejně jako tomu je v HTML kódu. Kliknutím na příslušný objekt (například dveře) se tedy dostaneme (bude nahrán a zobrazen) do jiného modelu.

Obrázek č.1 představuje část modelu chodby čtvrtého patra budovy J.

 

Speciální schopnosti jazyka VRML

Jazyk VRML 2.0 obsahuje následující speciální prvky, které dovolují vytvářet reálné scény:

Materiály a textury – všem objektům ve scéně lze přiřadit povrchové charakteristiky stejně jako v jakémkoli 3D grafickém programu (například 3D studio). Tyto povrchy lze rozdělit do dvou oblastí. První vznikají mícháním barev a druhé implementací existujícího obrázku na objekt (textura).

Multimédia – do scény lze také přiřadit například videozáznam, který se bude promítat na určitý prvek ve scéně (model kina s plátnem na němž běží film). Také je možno použít zvuky, které budou buď běžet na pozadí nebo se projeví ve stanovený okamžik (například hlasové oznámení, které bude uživatele informovat, v jaké části scény se nachází).

Senzory – prvky, které snímají pohyb a akce uživatele. Pomocí těchto senzorů lze například snímat, kudy uživatel ve scéně prochází nebo na jaký prvek klikl myší. Právě díky senzorům lze vytvořit dynamické vazby mezi VRML modelem a databázi.

Úroveň detailů – jelikož zobrazování 3D modelů je velice náročné na výkon počítače, je v jazyce VRML zabudováno několik prvků, které řídí zobrazování scény v závislosti na místě kde se uživatel nachází. Například není nutno zobrazovat prvky, na které uživatel ze svého současného stanoviště ve scéně nevidí, nebo není třeba zobrazovat příliš detailně prvky, od nichž je hodně vzdálen.

Jazyk VRML 2.0 je velice mocným nástrojem, který dokáže nejen modelovat 3D objekty, ale také reagovat na speciální požadavky uživatele. Největší výhodou tohoto jazyka však je, že je poměrně jednoduchý a tudíž modely vytvořené s jeho pomocí jsou rychle přenositelné v síti.

Propojení VRML a HTML

Pro možnost zobrazení výstupu z databáze je potřeba určit na obrazovce lokalitu, kde se tyto výstupy budou zobrazovat. Jelikož v  prostředí jazyka VRML není možné definovat několik oken a tím rozčlenit obrazovku na několik částí, je tento problém řešen v prostředí

HTML kódu, kde takovouto záležitost lze jednoduše provést pomocí definice rámců.

Základním kamenem celého projektu je HTML stránka, ve které je definováno rozdělení obrazovky na tři části (viz obrázek). Tato stránka tvoří základní kostru, na kterou jsou připojeny dvě HTML stránky a jedna VRML scéna (viz obrázek č.2).

Oblast VRML obsahuje VRML scénu. Oblast DB je určena pro zobrazování dalších textových informací a později budou na tomto místě zobrazovány výstupy z databáze. Tyto výstupy jsou odpovědí na dotazy provedené ve VRML scéně. Oblast HTML je pomocnou částí, v níž se nachází odkazy na sousedící VRML scény, do kterých je možno se dostat buďto prostřednictvím VRML scény nebo kliknutím na odkaz v tomto souboru.

Celkem jsou vytvořeny dva soubory tohoto typu. První obsahuje odkazy související s nejsvrchnější částí projektu, tedy s modelem celkového areálu budov. Druhý obsahuje odkazy související s ostatními dvěmi částmi projektu, tedy s modelem chodeb a místností. Toto rozdělení je vytvořeno proto, aby mohl uživatel kdykoli se vrátit do modelu celkového areálu budov a odtud pak pokračovat prohlížením jiné budovy. Také je pravděpodobné, že tato část všech modelů bude nejvíce uživatelem využívaná a díky tomuto řešení jí může mít uživatel otevřenu v samostatném okně prohlížeče.

Příklad vzhledu obrazovky je na obrázku č.3.

 

Propojení modelu s databází

Propojení určitých prvků v modelu (ve VRML scéně) s databází je realizováno pomocí formuláře IDC/HTX v prostředí Internet Information Serveru (IIS).

Výhodou tohoto modelu je snadnost tvorby IDC skriptu. Stačí použít v programu MS Access (program, v němž byla vytvořena tabulka) Database Connectivity Wizard (Průvodce publikováním na WWW) a tento průvodce vyexportuje všechny tabulky, dotazy, formuláře, či sestavy do HTML kódu, který má v sobě definované položky s odkazem na položky databáze a uloží jej na server ve formátu HTX. Společně s HTX na server uloží i databázový dotaz ve formátu IDC (Internet Data Connector), který je podobný formátu SQL, který má v sobě definovanou vazbu na ODBC, odkaz na svůj příslušný HTX soubor, přístupová práva pro ODBC.

IDC v sobě obsahuje název ODBC zdroje. Tento zdroj je nutno definovat na serveru v záložce File DSN v aplikaci ODBC manager. V této položce se definuje nový driver pro databázi a definuje se jméno DSN souboru, poté se vybere příslušný soubor databáze.

Formát HTX definuje tvar výstupního formuláře. HTX je rozšířením jazyka HTML. Jedná se o stránku, která bude zobrazována při odpovědi z databáze. Data, která server vrací vkládá mezi řádky <%BeginDetail%> a <%EndDetail%> do řádku <%X%>, kde X je název databázové položky v tabulce. Mimo tyto řádky je pak možno vložit klasický HTML kód.

Transformace prostorových dat

Samotný VRML model je možno vytvořit dvěma způsoby. První spočívá ve vytvoření nového modelu přímo v prostředí jazyka VRML 2.0, druhý v transformaci již existujícího 3D modelu do jazyka VRML 2.0.

Transformace z jiných formátů formát VRML je určen pro popis prostorových objektů, stejně jako například formáty dxf, dwg nebo dgn. Je tedy možné mezi těmito formáty provádět konverzi. Pokud tedy získáváme data konverzí z jiných formátů, neobsahuje takto vytvořený model specifické vlastnosti jazyka VRML, hlavně jeho schopnosti spojené s prostředím sítě Internet.

Vytvoření nového modelu – abychom byli schopni využít všech vlastností jazyka VRML, musíme vytvořit nový model přímo v prostředí jazyka VRML. Můžeme buď použít grafický editor (nejznámější je pravděpodobně program Cosmo World od společnosti SGI), nebo můžeme model vytvořit v textovém editoru.

V našem případě byl vytvořen nový model a to v převážné části v textovém editoru Notepad.

Závěr

Programovací jazyk VRML je velice mocný nástroj určený pro tvůrce webovských stránek. Díky svým specifickým vlastnostem si získal ve světě oblibu a někteří odborníci se domnívají, že časem nahradí klasické dvourozměrné WWW stránky. Bohužel je v českých zemích tento nástroj trochu opomíjen.

Tento projekt má za úkol prozkoumat možnosti použití jazyka VRML pro účely prezentace prostorových dat v oblasti geografických informačních systémů.

V loňském roce se podařilo vytvořit část areálu VŠB, na níž pak byly zkoumány možnosti propojení prostorových dat s daty v databázi. Podařilo se vytvořit jednostrannou vazbu z modelu do databáze za použití běžně dostupná aplikace (IIS).

V letošním roce projekt pokračuje s hlavním cílem vytvořit zpětnou vazbu z databáze do modelu.

 

Použité programové prostředky

Na vytvoření tohoto projektu bylo použito tohoto softwaru:

Operační systém – Windows 95 a Windows NT 4.0

WWW Prohlížeč- Netscape Communicator 4.05 s plug-in programem

Cosmo Player 2.0

Tvorba scény – program Notepad v prostředí Windovs

Internet server – Internet Information Server

Vytvoření databáze – Microsoft Access

Použité zdroje informací

Při realizaci tohoto projektu byly čerpány informace převážně z WWW stránek společností zabývající problematikou virtuální reality na Internetu. Jsou to hlavně tyto:

http://vag.vrml.org/

http://webspace.sgi.com/

http://www.inquiry.com

http://www.virtual.com

http://superscpace.com

http://VRBC.com

http://home.netscape.com/

http://www.sun.com/

http://www.microsoft.com/