PA111: Úlohy na léto 2005


Úloha č. 1: Navigace (10 bodů)

Vytvořte WWW stránku, z níž povedou odkazy na virtuální objekty a světy dosud vytvořené týmem. Tato stránka bude dále průběžně doplňována tak, jak budou zadávány další úlohy. Adresář, v němž se tato stránka bude nacházet, se bude jmenovat PA111 a bude mít další adresáře označené čísly (1, 2, 3, 4, 5). Do nich bude umisťováno vše, co se bude týkat konkrétní úlohy s daným číslem. Adresu hlavního adresáře pošle šéf týmu spolu se seznamem členů a všemi jejich e-mail adresami na zara@fel.cvut.cz.

V každém podadresáři budou závazně následující soubory:

1) obr.jpg -
náhled scény (snapnuté okénko) v podobě obrázku o velikosti 128x128 pixelů.
2) uloha.html -
WWW stránka dílčí úlohy. Obsahuje zadání, stručný popis řešení (později s rozhraním prototypů a poměrem fps pro jednoduché a složité verze) a odkazy na testovací stránky v různých variantách - buď fullscreen nebo "EMBED" svět v okénku o velikosti přesně 640x480 pixelů.
3) vse.zip -
archiv celého podadresáře, zbavený balastu (tj. bez pracovních verzí souborů, nepoužitých dat, apod.)
  1. Vytvořte ve VRML jednoduchý hudební sál ze základních geometrických těles. Na různých objektech (pódium, schůdky, stoly a stoličky) prezentujte základní navigační režimy:
    • WALK (chůze po schodech na pódium, překračování stoliček, kličkování mezi stoly)
    • FLY (vstup na pódium mimo schůdky)
  2. Připravte nejméně 6 různých stanovišť pro názornou ukázku navigačních režimů. Stanoviště vhodně pojmenujte a zorganizujte do posloupnosti určující plynulou procházku sálem. Dále připravte dvojici speciálních stanovišť pro měření fps, umístěných blízko vedle tak, aby z nich bylo vidět celé pódium. Při přepínání mezi nimi (PgUp, PgDn) se bude měřit fps.
  3. Každý člen týmu dále vymodeluje jednoduchý hudební nástroj (viz náměty) a do hudebního sálu umístí na pódium jeho 3 instance (Inline). Velké nástroje budou stát na zemi, malé na stolech. Při výběru uvažujte budoucí rozšíření modelu nástroje o pohyb (animace) a interaktivní chování (hraní) s pomocí myši. Na rozdíl od hudebního sálu bude model hudebního nástroje v dalších úlohách rozšiřován a vylepšován. Ke každé instanci připravte individuální stanoviště (můžete využít aplet Viewpoint ze sekce Software).

Kritéria pro hodnocení:



Úloha č. 2: Statický prototyp (10 bodů)

  1. Hudební nástroje převeďte do podoby prototypů. Každý prototyp bude mít alespoň 3 stupně LOD. Parametrem prototypu bude volba, zda vlastnost LOD má být zapnuta či vypnuta (viz tabulka níže) a volba barvy a textury nějaké části modelu.
  2. V nejlepší kvalitě modelu využijte alespoň jeden geometrický uzel jiný, než základní těleso. 
  3. Pro jednotlivé instance nástrojů použijte různé textury, avšak pouze pro nejlepší kvalitu LOD. Velikost textur nechť není větší než 128 x 128 pixelů.
  4. K úloze vytvořte v adresáři /2 příslušné stránky s informacemi o vlastnostech virtuální scény (okomentovaná záhlaví prototypů). Testovací scéna bude opět obsahovat stanoviště uspořádaná do virtuální procházky. Testované světy budou navíc existovat ve dvou režimech - se zapnutým a s vypnutým LOD.
  5. Proveďte měření snímkové rychlosti pro různé stupně detailu, které zveřejníte v souboru uloha.html.

===> Jak měřit Snímkovou rychlost:

  1. Do scény přidejte ještě další nová stanoviště pro měření fps, umístěná v různých vzdálenostech příslušných danému stupni detailu (pro každou vzdálenost jedna dvojice stanovišť umístěná vedle sebe s rozdílem polohy cca 1 m v levopravém směru). Kolik stupňů LOD, tolik dvojic měřicích stanovišť. Stanoviště volte tak, aby z nich bylo vidět co nejvíce nástrojů současně, nejlépe všechny.
  2. Samotná měření provádějte při přepínání (PgUp, PgDn) mezi danými dvojicemi stanovišť v pevně daném "EMBED" okénku o velikosti 640x480 pixelů.
  3. Měření pochopitelně proveďte pro obě (obsahově totožné) scény: s LOD i bez LOD. Na tyto scény umístěte odkazy z HTML stránky.
  4. Výsledky měření (včetně poměru fps pro verzi s/bez LOD) uspořádejte do přehledné tabulky doplněné vysvětlujícím textem. Případný graf by potěšil oko pedagogovo.
#VRML V2.0 utf8
PROTO Model [ exposedField SFInt32 lod 1
              exposedField SFColor barva 0 .6 .8
                # ... a další parametry dle potřeby
             ]
# lod: 0 - LOD vypnuto
#      1 - LOD zapnuto
{ Switch { whichChoice IS lod
    choice [DEF VSECHNO Group {}  # varianta bez LOD
           LOD {                  # varianta s LOD
               level [ 
                  USE VSECHNO, 
                  ..., 
                  Group {}
               ]
           }
    ]
  }
}

Soubor fletna.wrl

Kritéria pro hodnocení:



Úloha č. 3: Dynamická scéna (20 bodů)

Hudební nástroje doplňte dynamickými akcemi. Blokové schéma dynamických akcí (předávání událostí) přidejte k popisu řešení úlohy.
Od této chvíle zpracovávejte pouze variantu modelu s LOD. Přidejte následující funkce, vždy dovnitř prototypu nástroje:
  1. Reakce na přítomnost avatara (ProximitySensor) způsobí rozsvícení barevného světla nad hudebním nástrojem. Každý nástroj nechť je osvětlen jinou barvou. Vylaďte materiál tak, aby na něm byl vliv osvětlení jasně patrný. Senzory definujte uvnitř prototypů. Podle jejich velikosti aktualizujte stanoviště ve scéně (v hlavním souboru).
  2. S pomocí manipulátoru bude možno změnit polohu či tvar některé části nástroje či celého nástroje.
  3. Kliknutím na část hudebního nástroje, která generuje tón (TouchSensor.touchTime), zahajte animaci této části a spusťte zvuk.Umožněte zahrát nejméně tři různé tóny.
  4. Všechny WRL soubory ukládejte na disk v komprimované podobě.

MĚŘENÍ: Porovnejte, zda přidání dynamiky (uloha 3) změnilo fps ve srovnání se stejným, avšak statickým modelem (úloha 2). Uvažujte pouze varianty s LOD. Výsledky měření opět zveřejněte.

Kritéria pro hodnocení:



Úloha č. 4: Skripty (20 bodů)

  1. Do prototypu nástroje přidejte animaci otáčení celého nástroje a exportujte příslušné události (startRotation, stopRotation, speedRotation) do záhlaví prototypu.
  2. Vytvořte panel HUD (Head-Up Display) s jedním tlačítkem a umístěte jej do hudebního sálu. Zahajte animaci nepřetržitého otáčení všech hudebních nástrojů při aktivaci tlačítka. Při dalším stisknutí tlačítka animaci zastavte.
  3. Definujte Script, který si bude pamatovat posloupnost zahraných tónů. Do panelu HUD přidejte druhé tlačítko a propojte je s tímto skriptem.
  4. Do skriptu přidejte funkci Replay, která zajistí přehrání zaznamenané posloupnosti tónů. Přesměrujte druhé tlačítko panelu HUD na tuto funkci.
  5. Definujte třetí tlačítko v panelu HUD a propojte je s funkcí Reset vybraného nástroje. Tato funkce vynuluje posloupnost dříve zaznamenaných tónů.
  6. Od této úlohy dále již není třeba měřit fps.

HUD.wrl

Kritéria pro hodnocení:




Úloha č. 5: Java aplet (20 bodů)

Dynamický svět vytvořený v předchozí úloze vložte do HTML stránky spolu s Java apletem. Ten bude komunikovat s prohlížečem VRML pomocí rozhraní EAI. Využijte verzi rozhraní definovanou v ISO/IEC 14772-2:2001 (package vrml.eai). Ta je podporována prohlížečem Cortona, vyžaduje však přítomnost JVM od Microsoftu. Je třeba provést překlad do Java byte kódu verze 1.1 (např. pomocí parametru target 1.1).

 Aplet umístěte vedle VRML okénka či pod něj. Z uživatelského rozhraní apletu bude možno (pouze s pomocí AWT): 

  1. Naráz rozsvítit (a později zhasnout) všechna světla nad nástroji.
  2. Při přesunu kurzoru nad nástroj zobrazit v apletu jeho individuální jméno (SFString) a tím jej současně vybrat.
  3. Zvolit posloupnost tónů, které budou přehrány vybraným nástrojem.
  4. Zachovejte původní funkčnost panelu HUD.
Veškerou "inteligenci" naprogramujte dovnitř prototypů strojů (ovládání světel, poskytování jména). Hlavní soubor VRML bude sloužit pouze k propojení mezi apletem a událostmi ze záhlaví instancí prototypů.

Kritéria pro hodnocení:


Jiří Žára,