GISáček


Generování 3D modelů budov pro potřeby vizualizace na Internetu

Michal Kramář
E – mail: michal.kramar@post.cz




Abstract

This thesis is built on a project "Generating 3D models of buildings from database". This project had to design a data model for storing informations about buildings and create an application for managing data and generating models from database. The purpose of this thesis was to create an Internet application for showing the data on Internet.
The application for managing data, I call it VRMLgen, is programmed in Visual Basic. It is the product of Microsoft, so I used for storing data the relational database system Microsof Access. These products communicates well. For displaying 3D models I have to use a freeware prduct CosmoPlayer by CosmoSoftware. It is free to download as a plug-in for Micrisoft Internet Explorer. Preview of VRMLgen layout is shown on picture no.1
The Internet application is created with PHP 4.0. It allows the user to seek for rooms and persons in buildings and the result is shown as a 3D model or 2D plan of the floor in the building where is the searched subject is situated. Preview of the result is shown on picture no.2


Abstrakt

Tato diplomová práce navazuje na projekt "Tvorba 3D modelu zástavby z databáze", jehož cílem bylo navrhnout datový model pro uchovávání informací o interiérech budov a vytvořit aplikaci pro správu dat a generování modelů budov z databáze. Úkolem diplomové práce bylo vytvořit internetovou aplikaci která bude na základě uživatelem definovaných požadavků generovat prostorové modely částí budov.
Aplikaci pro správu dat, kterou jsem pracovně nazval VRMLgen, jsem se rozhodl vytvořit pomocí jazyka Visual Basic. Je to produkt firmy Microsoft a proto jsem pro ukládání dat použil relační databázové prostředí Microsoft Access. Oba produkty spolu umí velice dobře komunikovat. Pro zobrazení prostorových modelů jazyka VRML jsem se rozhodl použít produkt CosmoPlayer od firmy CosmoSoftware, který je volně ke stažení jako rozšíření pro Microsoft Internet Explorer. Ukázka vzhledu aplikace viz. obrázek č.1
Internetová aplikace je vytvářena pomocí jazyka PHP 4.0. Umožňuje uživateli vyhledávat v budovách místnosti a osoby a výsledky zobrazovat jako 3D model nebo 2D plán patra, kde se hledaný subjekt nachází. Ukázka výsledku hledání je zobrazena níže (obrázek č.2)

Pracovni_prostredi_aplikace_VRMLgen

Obr. č.1 - pracovní prostředí aplikace VRMLgen


Pracovni_prostredi_aplikace_VRMLgen

Obr. č.2 - Ukázka výsledku hledání


Stručný popis projektu


Databáze

Veškerá data se ukládají do databáze, která je vytvořena v relačním databázovém prostředí Microsoft Access 2000. Bylo zapotřebí navrhnout takovou strukturu databáze, která by byla schopna popsat budovy a jejich zařízení na potřebné úrovni detailů. Navržená struktura je zobrazena na obrázku č.1.


Obrázek č.3 - Struktura databáze

Jak je z obrázku vidět, databáze eviduje informace o budovách, patrech, místnostech, stěnách ,které místnosti tvoří, a zařízení, které se v místnostech vyskytuje.
Tabulka Místnost_1, která je zobrazena na obrázku č.3, je pouze identickou kopií tabulky Místnosti. Databázové prostředí ji vytvořilo automaticky, protože nelze jedné položce (MisID) přiřadit dvě relace z jedné tabulky (SteMist1 a SteMist2).
Databáze obsahuje ještě další tabulky, které slouží při generování prostorového modelu. Do těch tabulek se před vytvářením modelu nakopírují pouze ty data, která mají být zobrazena. Pro toto řešení jsem se rozhodl z důvodu zjednodušení programového kódu pro vytváření modelu. Je snadnější procházet tabulku postupně po 1 záznamu od začátku do konce, než u každého záznamu rozhodovat, jestli se má vykreslit nebo ne. Toto rozhodování se provede pouze jednou před začátkem generování modelu při kopírování potřebných dat do tabulek GMistnosti, GPatra, GSteny a GZarizeni které jsou kopiemi tabulek Mistnosti, Patra, Steny a Zarizeni. Tentokrát však již nejsou propojeny relacemi a jsou na sobě nezávislé.
Další tabulkou, která se v databázi vyskytuje, je tabulka Settings. V této tabulce se uchovává nastavení uživatele, která data mají být zobrazena.


Aplikace VRMLgen

VRMLgen jsem nazval aplikaci, která má spravovat výše popsanou databázi a z uložených dat generovat prostorový model pomocí jazyka VRML. Aplikace je vytvářena pomocí programovacího jazyka Microsoft Visual Basic ve verzi 5.0. Při tvorbě programu využívám k vytvoření uživatelského prostředí přídavné komponenty Microsoft Tabbed Dialog Control 5.0 (SP2), Microsoft Windows Common Control 5.0. Pro práci s databází využívám komponentu Microsoft DAO 3.6 Object Library a Microsoft Common Controls 6.0. Na obrázku č. 2 je zobrazeno základní pracovní prostředí programu VRMLgen.
Pracovní adresář aplikace obsahuje kromě potřebných souborů také tři adresáře:
[Modely] slouží k ukládání vytvořených modelů, které si uživatel rozhodl ponechat
-[Dvere]
-[Okna]
-[Zarizeni]
[Objekty] zde jsou uloženy objekty (soubory wrl) představující zařízení budov
[Textury] zde jsou uloženy různé textury, které lze dát na stěny

Hlavní menu má tyto položky: Databáze, 3D model, Nastavení a pověda. Do jednotlivých menu se lze rychle dostat pomocí klávesových zkratek Alt+podtržené písmeno v názvu menu. Menu Soubor slouží k otevření, zavření nebo vytvoření nového souboru. Databáze slouží ke správě dat v databázi. Menu 3D model slouží k nastavování vzhledu generované 3D scény a ke spouštění generování modelu. Menu Nastavení slouží k nastavení potřebných cest, které aplikace potřebuje znát ke svému bezproblémovému chodu. Menu Nápověda by měla vyvolat nápovědu k programu, bohužel tato není k dispozici. Menu Konec slouží k ukončení aplikace VRMLgen.
Ukázka pracovního prostředí viz. obrázek č.1


Internetová aplikace

Internetová aplikace je koncipována jako informační a orientační systém areálu VŠB-TU v Ostravě-Porubě. Je tvořena HTML stránkami a PHP skripty. PHP skripty zajišťují práci s databází.
Aplikace slouží uživateli k vyhledávání místností a kanceláří osob v areálu VŠB-TU. Na obrázku č.4 je zobrazena část aplikace určená pro vyhledávání místností. Pomocí rozbalovacích seznamů Zvol si budovu a Zvol si místnost si uživatel určí cíl hledání. V části Vyber způsob zobrazení si uživatel zvolí způsob prezentace výsledku hledání. Má na výběr 3D model patra s hledanou místností ve kterém bude hledaná místnost vyznačena červenou šipkou (viz. obrázek č.2) a nebo 2D plán ve kterém budou stěny hledané místnosti vykresleny červeně. Hledání se spustí tlačítkem Odeslat požadavek.
Zda se mají vyhledávat kanceláře osob nebo místnosti, si uživatel volí v části okna Co vyhledat?. Pro vyhledávání osob je zobrazen pouze jeden rozbalovací seznam Vyber osobu ve které jsou zapsány v abecedním pořadí všechny osoby zapsané v databázi. Zbylý postup je stejný jako u vyhledávání místností.
Výsledky jsou vždy zobrazeny v novém okně prohlížeče. Okno s výsledky hledání bude rozděleno na 3 části. V jedné bude zobrazen vygenerovaný model patra, ve druhé 3D model areálu se zvýrazněnou budovou, kde se hledaná místnost nachází a ve třetí budou vypsány návazné informace o hledaném objektu. Do databáze byly uloženy pouze informace o budově "J" a "K".


Obr. č.4 - Prostředí internetové aplikace

Závěr

Cíle mé diplomové práce byly: navrhnout datový model pro uchovávání informací o interiérech budov, vytvořit aplikaci pro správu dat a umožnit zpřístupnění uložených dat ve formě prostorových modelů v prostředí Internetu. Všechny úkoly, které mi byly zadány jsem splnil.
V průběhu prací na projektu jsem narazil na mnoho problémů, které se mi podařilo, někdy lépe, jindy hůře, překonat. Protože nejsem profesionální programátor, vytvářel jsem kód tak, aby byl funkční, ale už jsem neuvažoval o tom, jak jej co nejvíce zjednodušit a zefektivnit. Na celém projektu je stále spousta věcí, které lze doplnit nebo vylepšit. To však bude úkolem jiných, pokud tento projekt neupadne v zapomnění. Největší problémy jsem zaznamenal při tvorbě kódu pro správu databáze v aplikaci VRMLgen. Jak jsem již uvedl, tuto část programu jsem se rozhodl později úplně přepracovat, což mi zabralo hodně času. Také struktura databáze doznala postupně změn od začátku práce.
Myslím si, že se mi podařilo zpracovat tento projekt na slušné úrovni a jsem rád, že jsem na něm mohl pracovat. Díky této práci jsem se lépe seznámil s internetovými technologiemi, které mě zajímají a rozšířil si znalosti i v jiných oblastech.


Litaratura a programové prostředky

Literatura:
[1] Žára, J.: VRML 97 - Laskavý průvodce virtuálními světy, Computer Press Brno, 1999, 238 stran, ISBN 80-7226-143-6
http://www.cgg.cvut.cz/LaskavyPruvodce, http://www.cpress.cz/knihy/vrml
[2] Kosek, J.: PHP - tvorba interaktivních internetových aplikací, Grada Publishing 1999, 492 stran, ISBN 80-7169-373-1
http://www.kosek.cz/php/index.html
[3] Web3D Consorcium, http://www.web3d.or
[4] GeoVRML Consorcium, http://www.geovrml.org

Programové prostředky:

  • Microsoft Visual Basic 5.0
  • Microsoft Access 2000
  • Microsoft Internet Explorer
  • CosmoPlayer, Cosmo Software
  • PHP 4.0