Tuesday, January 11, 2011

Blog Post: Zku?enosti s v�vojem 3D prezentace v Silverlight

 

Silverlight prozatím nepodporuje ?ádný nízkoúrov?ový p?ístup k grafické kart? ani vysokoúrov?ové API pro zobrazení 3d model?. Dnešní b??né procesory jsou však natolik výkonné, ?e není problém zobrazovat relativn? slo?ité 3d modely i bez podpory grafické karty. Silverlight pro toto vytvá?í ideální podmínky, díky pou?ití .NET a kompilaci MSIL do nativního kódu, umo??uje dosáhnou výpo?etního výkonu blí?ícího se nativním aplikacím.

Z pohledu programátora je absence hardwarové karty velice zajímavá, je to malý krok do minulosti, díky omezenému výkonu ?ešíte podobné problémy jako tv?rci starých po?íta?ových her, které jsou nám velkou inspirací. Jste donuceni podvád?t, sna?it se vytvo?it reálnou iluzi.

imageExistuje n?kolik opensource projekt? zam??ených na zobrazování 3d objekt? v Silverlight. Nejpokro?ilejsím je asi Balder (http://balder.codeplex.com/). Dálším známým je Kit3D (http://kit3d.codeplex.com/).

Silverlight nabízí i ?áste?nou podporu hardwarové akcelerace, od verze 2.0 je mo?né pou?ít na obrázek perspektivní transformaci, která je akcelerována. Tato vlastnost jde pou?ít i pro zobrazení 3d model? a projekt Kit3D toho extenzivn? vyu?ívá. U detailních model? je nutná re?ie pro tuto metodu p?íliš velká a i p?es hardwarovou akceleraci je pomalejší ne? softwarová imagerasterizace, kterou pou?ívá Balder. Akceleraci lze však perfektn? vyu?ít pro zabrazení plochy, nebo jednoduchého modelu s detailní texturou, je ideální pro zobrazení skyboxu. Skybox je metoda vyp?j?ená práv? z po?íta?ových her. Okolní prost?edí je tvo?eno krychlí s texturou, která je vykreslena v?dy tak, aby st?ed kamery byl ve st?edu krychle, u?ivatel nemá šanci post?ehnout hranu krychle, proto?e se hýbe s ním.image

Pokud se potýkáme s omezeným výkonem, je velmi d?le?ité vytvo?it u?ivatelské prost?edí které by p?es to reagovalo p?ijateln? rychle.

Na p?íklad: pokud u?ivatel imageotá?í modelem vypínáme anti-aliasing a pou?íváme rychlejší filtrování textur, aby pohyb byl plynulejší, naopak pokud se model zastaví, m??eme ho vykreslit jak nejlépe doká?eme bez ohledu na rychlost. Zárove? je však zbyte?né kreslit ten samý obrázek znovu a znovu a zat??ovat zbyte?n? procesor, proto je vykreslování p?erušeno, kdy? se model nehýbe. Zbývá více výkonu pro ovládací prvky.

Na rychlost vykreslení modelu má velký vliv to, jak je uspo?ádaný a rozd?lený, pouhým správným se?azením jeho ?ástí a vykreslováním sm?rem od kamery lze dosáhnout p?ekvapivých výsledk?.

Autorem textu je Petr Novague

Filip

Jordana Brewster Laetitia Casta Claudette Ortiz Julia Stiles Marisa Miller

No comments:

Post a Comment