České vysoké učení technické v Praze Fakulta elektrotechnická Semestrální projekt Rozcestník virtuálních světů Radek Loucký Vedoucí práce: Mgr. Jiří Danihelka Studijní program: Softwarové technologie a management Studijní obor: Web a multimédia
Obsah Úvod... 3 Důvod vzniku... 3 Architektura... 3 Technická část... 4 3D Modely... 4 Dveře... 4 Obrazy... 4 Stíny... 4 Lavička... 4 Koš... 4 Nápověda... 5 Popisky... 5 Základní funkcionalita... 5 Webové stránky... 5 Problémy při řešení... 5 Závěr... 5 2
Úvod Důvod vzniku Důvodem vzniku Rozcestníku virtuálních světů byl požadavek na virtuální svět, ze kterého by bylo možné přistupovat k dalším světům vytvořeným na katedře počítačové grafiky a interakce. Finální verze aplikace by měla obsahovat odkazy na vytvořené světy, do kterých by mohl uživatel vstoupit a poté se vrátit zpátky do rozcestníku. Architektura Celý svět je vytvořen pomocí jazyka VRML a hlavním spouštěcím souborem je index.wrl. V tomto souboru jsou definovány jednotlivé viewpointy, osvětlení a také se do tohoto souboru pomocí uzlu Inline vkládají další modely. Jak vyplývá z předchozího odstavce, ke spuštění celé aplikace je zapotřebí mít nainstalovaný VRML prohlížeč. Mezi nejpoužívanější patří Cortona3D [1] a BS Contact [2]. Nedoporučuji ovšem mít nainstalových více VRML prohlížečů současně. [1] ke stažení zde http://www.cortona3d.com/cortona3d/media/downloads/viewer/cortona3d.msi [2] ke stažení zde http://www.bitmanagement.com/en/download 3
Technická část V této části bych se rád zmínil o tvorbě některých modelů a o způsobu přidávání nových odkazů do rozcestníku. 3D Modely Při tvorbě modelů jsem si chtěl vyzkoušet co nejvíce způsobů modelování, které jazyk VRML umožňuje. Protože se zatím při každém návratu do rozcestníku z jiných světů musí celý svět načítat znova, dbal jsem především na jednoduchost a optimalizaci jednotlivých modelů, aby načítání celého světa netrvalo příliš dlouho. Většina modelů je do celkové scény vkládána pomocí uzlu Inline a to z důvodu jejich případné pozdější úpravy a také čitelnosti kódu hlavní scény. Dveře Model dveří se skládá z černého rámu a dvou skleněných křídel. Pro dosažení lepšího vjemu z virtuální reality, je při otevírání a zavírání dveří přehrán zvuk otevirani_dveri. Zvuk je kódován jako wav soubor s vzorkovací frekvencí 44 khz. Na každé polovině dveří je k dispozici TouchSensor, který po aktivaci vyšle událost, kterou zpracuje připravený javascript. Script určí, ve kterém stavu se právě dveře nachází (otevřenézavřené) a podle toho spustí požadovanou animaci. Animace jsou řešeny pomocí uzlu OrientationInterpolator. Obrazy K reprezentaci jednotlivých virtuálních světů jsem použil obrazy, které reprezentuje uzel Anchor. Samotný obraz a rám jsou do hlavní scény vkládány jako externí prototypy, u kterých je možné nastavit vzdálenost posunutí, úhel rotace a také texturu obrazu. Toto řešení se mi zdálo jako nejvíce vhodné, protože je tak možné vytvářet stejné objekty a měnit u nich pouze několik pro nás zajímavých parametrů. Samotný uzel Anchor poté ještě obsahuje atribut url, který obsahuje cílovou adresu odkazu. V současné verzi jsou použity odkazy na studentské práce, vytvořené v rámci předmětu Y39MVR, ale také práce z let minulých, jako například model elektrotechnické fakulty. Stíny Pro dosažení lepšího celkového vjemu ze scény jsem se rozhodl vytvořit stíny pod některými objekty. Ty jsou vytvořeny jako IndexedFaceSet s vhodně zvoleným materiálem. Lavička Na modelu lavičky by nebylo nic až tak zajímavého, ale chtěl jsem si na něm vyzkoušet manipulování s objekty. K tomu jsem využil PlaneSensor s nastavenými maximálními a minimálními souřadnicemi pro pohyb pouze v galerii. Koš Při modelování koše, jsem si vyzkoušel modelování pomocí uzlu Extrusion, kterým je možné vysouvat zvolený profil a měnit při tom jeho velikost. 4
Nápověda Dále jsem chtěl, aby byla v rozcestníku vytvořena malá nápověda, informující uživatele o hlavních funkcích a případných problémech jeho používání. K její reprezentaci jsem zvolil interaktivní tabuli, která se objevuje a mizí při zmáčknutí tlačítka s nápovědou. Tlačítko se nachází na přední straně recepce a k lepšímu rozpoznání jeho funkce jsem ho opatřil texturou s otazníkem. Popisky Popisky jsou realizovány pomocí prototypů, u kterých se nastavuje hlavní nadpis, podrobnější popis, natočení textu a posunutí. O zobrazování se stará Touchsensor a javascript, který tvoří logiku zobrazování. Základní funkcionalita Hlavním úkolem rozcestníku je poskytovat rozhraní pro přístup k dalším světům. Do dalšího světa se návštěvník dostane tak, že klikne na obraz reprezentující daný svět. Všechny odkazy jsou reprezentovány uzlem Anchor, který odkazu na internetové adresy, kde se dané světy nacházejí. Pro návrat zpět do rozcestníku slouží webový formulář nacházející se pod VRML světem. Zde je možné si vybrat, na jaké místo se chce návštěvník do rozcestníku vrátit. Má na výběr z několika předpřipravených viewportů a to z toho důvodu, aby se opět nemusel vracet do výchozí pozice. Webové stránky K celému projektu vznikly také internetové stránky - http://internet3d.rdc.cz/virtualworlds/, na kterých se nachází základní informace a také samotný rozcestník. Použité technologie jsou HTML pro hlavní stránku a poté PHP pro stránky s rozcestníky a to z toho důvodu, aby bylo možné se vrátit na vybraný viewpoint. Problémy při řešení Při realizaci se vyskytlo několik hlavních problémů, které bylo a některé stále je potřeba vyřešit. Ať již to byl samotný výběr ztvárnění rozcestníku nebo například způsob návratu do rozcestníku. Návrat je možné realizovat například obnovením stránky v internetovém prohlížeči. Toto řešení bylo ovšem dost nešťastné, protože by se uživatel vracel neustále na výchozí viewpoint, což by bylo po čase frustrující. Dalším nápadem bylo vytvořit jakýsi HUD (Head-Up Display), který by se vkládal do každého načteného světa. Toto řešení bohužel nebylo možné realizovat, neboť není možné zasahovat do světů, na které se odkazuji. Finální řešení je tedy internetový formulář, ze kterého si uživatel vybere, na které místo se chce vrátit. Dalším problémem je automatické zvětšování místnosti podle toho, kolik odkazů právě obsahuje. Na vyřešení této záležitosti se zatím pracuje a do termínu odevzdání nebyla Závěr Celý projekt bude dále pokračovat jako bakalářská práce s tím, že je stále potřeba vyřešit několik problémů hlavně automatické zvětšování místnosti. Ovšem již v této verzi je Rozcestník částečně použitelný s omezenými možnostmi dalšího rozšíření. 5