Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
cooty125
Založen: 22. 11. 2011 Příspěvky: 40
|
Zaslal: 25. leden 2012, 09:19:43 Předmět: XNA Zjednodušení meshe |
|
|
Dobrý den,
mám dotaz ohledně vykreslování 3D modelů v XNA. Pracuji na svém enginu už nějaký pátek, ale teprve teď jsem si uvědomil, že při náročnějších scénách (na vykreslení=>množství polygonů) je zapotřebí nějakým způsobem tento počet polygonů regulovat.
První věc, která mně napadla, bylo zjednodušení meshů (zmenšení počtu polygonů modelu), které si hráč z dálky nemůže tak detailně prohlédnout. Pokud máte jiný nápad, tak si rád nechám poradit.
A co se týče toho zjednodušení modelu, byl bych rád, kdyby jste někdo měl v kapse nějaký dobrý a srozumitelný článek, který se tímto zabývá. Děkuji. _________________ Programátor v C# XNA a 3D Grafik.
http://www.xna.mzf.cz/
http://www.czechcode.hu.cz/ |
|
Návrat nahoru |
|
|
Manox
Založen: 30. 07. 2007 Příspěvky: 140 Bydliště: Brno
|
Zaslal: 25. leden 2012, 09:31:36 Předmět: |
|
|
Ahoj,
to co popisuješ je LOD (Level Of Detail). Třída Model v XNA tohle nepodporuje a proto je potřeba dodělat si to sám. V nějakém tutorialu to dělají pomocí přepínání modelu za jiný. Já si dodělal svoji třídu Model a mám tam i uzel pro LOD (načítám i jiný formát než FBX, kde se LOD vyskytuje). Jak zjednodušit model je otázka spíše na grafiky a grafický software. Princip více modelů a přepínat mezi nimi není vůbec špatný nápad, navíc ve spojitosti s HW instancingem. |
|
Návrat nahoru |
|
|
cooty125
Založen: 22. 11. 2011 Příspěvky: 40
|
Zaslal: 25. leden 2012, 09:41:54 Předmět: |
|
|
Manox napsal: |
Ahoj,
to co popisuješ je LOD (Level Of Detail). Třída Model v XNA tohle nepodporuje a proto je potřeba dodělat si to sám. V nějakém tutorialu to dělají pomocí přepínání modelu za jiný. Já si dodělal svoji třídu Model a mám tam i uzel pro LOD (načítám i jiný formát než FBX, kde se LOD vyskytuje). Jak zjednodušit model je otázka spíše na grafiky a grafický software. Princip více modelů a přepínat mezi nimi není vůbec špatný nápad, navíc ve spojitosti s HW instancingem. |
Vlastně teď si mně připoměl s tím přepínáním modelů, že to využívá spoustu her např Call of Duty apod. Super vemu to v potaz jako jedno z řešení. Našel jsem si článek, kde se tím zabývá, ale z jeho obsahu jsem nic moc nepobral. http://williamhli.com/cs283/as1.html _________________ Programátor v C# XNA a 3D Grafik.
http://www.xna.mzf.cz/
http://www.czechcode.hu.cz/ |
|
Návrat nahoru |
|
|
Slappy
Založen: 31. 07. 2009 Příspěvky: 169 Bydliště: Zilina
|
Zaslal: 25. leden 2012, 09:42:04 Předmět: |
|
|
K tomuto problemu existuje viacero pristupov:
Napr. ja som pouzival LODy [Level Of Details]:
V OGRE3D sa pomocou obsiahnutych toolov daju z Hi-poly meshu (.mesh) vygenerovat LODy [ten isty model s coraz mensim poctom detailov] - usetri to mnozstvo vykonu, ale .mesh je objemovo vacsi (narocnejsi na nacitanie a RAM).
Prakticky stale sa pouziva ten isty model (.mesh) ale pri pohlade z dialky iny LOD, pri detailnom zabere iny LOD a tak dalej.
OGRE3D engine vedel rozpoznat vzdialenost automaticky a pouzil adekvatny LOD - vzdialenosti pre jednotlive LODy sa dali ponastavovat, dalo sa s tym pekne vyhrat.
Existuju aj ine techniky:
Vytvorenie Hi-Poly modelu + Low-poly modelu a vygenerovanie rozdielovych map.
Mapy zachytavaju drobne detaily vo forme 2D textury. Vo finale sa pouzive Low-poly model, na ktory sa nanesu tieto mapy a vysledny dojem je takmer ako pouzitie hi-poly modelu.
Posledny pristup je proste 'osekat' 3D model: znizit pocet polygonov, ale tak, aby bol vysledny efekt stale dobry.
Jednym takym toolom je napr Polygon Cruncher: http://www.mootools.com/plugins/us/polygoncruncher/index.asp
Existuje viacero, treba pogooglit, pripadne vyskusat [to je najlepsie].
Vysku _________________ Skinovane instalatory pre NSIS a Inno Setup, zdarma pre SK/CZ projekty: www.graphical-installer.com |
|
Návrat nahoru |
|
|
cooty125
Založen: 22. 11. 2011 Příspěvky: 40
|
Zaslal: 25. leden 2012, 10:14:42 Předmět: |
|
|
Slappy napsal: |
K tomuto problemu existuje viacero pristupov:
Napr. ja som pouzival LODy [Level Of Details]:
V OGRE3D sa pomocou obsiahnutych toolov daju z Hi-poly meshu (.mesh) vygenerovat LODy [ten isty model s coraz mensim poctom detailov] - usetri to mnozstvo vykonu, ale .mesh je objemovo vacsi (narocnejsi na nacitanie a RAM).
Prakticky stale sa pouziva ten isty model (.mesh) ale pri pohlade z dialky iny LOD, pri detailnom zabere iny LOD a tak dalej.
OGRE3D engine vedel rozpoznat vzdialenost automaticky a pouzil adekvatny LOD - vzdialenosti pre jednotlive LODy sa dali ponastavovat, dalo sa s tym pekne vyhrat.
Existuju aj ine techniky:
Vytvorenie Hi-Poly modelu + Low-poly modelu a vygenerovanie rozdielovych map.
Mapy zachytavaju drobne detaily vo forme 2D textury. Vo finale sa pouzive Low-poly model, na ktory sa nanesu tieto mapy a vysledny dojem je takmer ako pouzitie hi-poly modelu.
Posledny pristup je proste 'osekat' 3D model: znizit pocet polygonov, ale tak, aby bol vysledny efekt stale dobry.
Jednym takym toolom je napr Polygon Cruncher: http://www.mootools.com/plugins/us/polygoncruncher/index.asp
Existuje viacero, treba pogooglit, pripadne vyskusat [to je najlepsie].
Vysku |
Děkuji za reakci. Ten nástroj na 'osekání' modelu se mi opravdu hodí! _________________ Programátor v C# XNA a 3D Grafik.
http://www.xna.mzf.cz/
http://www.czechcode.hu.cz/ |
|
Návrat nahoru |
|
|
|