Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Játro.m
Založen: 01. 02. 2010 Příspěvky: 230
|
Zaslal: 23. květen 2010, 11:32:17 Předmět: Culling geometrie |
|
|
Zdarec,
dodelavam si nejake optimalizace na renderu levelu a potreboval bych radu jak orezat co nejvice geometrie. Momentalne mam frustum a backface, staci to ale to frustum ma nedostatek v tom ze vykresluje i to co neni videt.
Barak - jsem v baraku a kamerou se divam smerem k druhymu baraku. (Kdyby nekdo nepochopil, hodim demo
No, staci mi idealne jenom nazev te techniky, zbytek si vygooglim.
Vim ze mi asi budete cpat stromy (octree,qtree), ale zatim se moc necitim na to je implementovat
Diky  |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 23. květen 2010, 12:12:48 Předmět: |
|
|
skus pohladat occlusion culling _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
Játro.m
Založen: 01. 02. 2010 Příspěvky: 230
|
Zaslal: 23. květen 2010, 12:20:30 Předmět: |
|
|
Occlusion jsem nasel, odradilo me to ze musim kvuli te occlusionQuery renderovat vse 2x. Opravdu je to poznat? Ono ja uz to pri 1500 objektech ve scene docela poznam jestli renderuju jednou nebo 2x ve smycce. |
|
Návrat nahoru |
|
 |
johnnash
Založen: 30. 07. 2007 Příspěvky: 80
|
|
Návrat nahoru |
|
 |
Játro.m
Založen: 01. 02. 2010 Příspěvky: 230
|
Zaslal: 23. květen 2010, 13:07:09 Předmět: |
|
|
JoJo PVS by bylo krasny, hacek je v tom ze to funguje jenom na binarnich stromech ktery maji predpocitany nejaky data o viditelnosti. Nevim jestli bych byl schopnej to prepocitat v gmaxu :/ Ale diky. Jeste se podivam. |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 23. květen 2010, 13:17:07 Předmět: |
|
|
tak pri occlusion query sa ma rendrovat iba nejaka jednoducha obalujuca geometria nie objekt v plnej podobe. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
Játro.m
Založen: 01. 02. 2010 Příspěvky: 230
|
Zaslal: 23. květen 2010, 13:22:31 Předmět: |
|
|
Nou: aha, tak to jsem blbe pochytil. Ta occlusion query bude asi pro me nejschudnejsi. Jeste, jaky obalky zvolit? AABB? Koule? mozna OBB - ja jsem linej ? |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 23. květen 2010, 13:28:38 Předmět: |
|
|
Záleží na tom, jaký je charakter scény. Na všechno se může hodit něco jiného a taky bývá zvykem používat jiné postupy na dynamické (pohyblivé) objekty a statické objekty. Terén se často také řeší samostatně.
Doporučil bych udělat si quadtree na statické objekty, včetně terénu. Není to nic složitého - obětuj tomu ten čas. Na dynamické objekty pak frustum culling + pokud máš hodně dynamických objektů, tak je také dynamicky umisťovat do quadtree.
Pokud máš hodně velkých objektů, které mohou potenciálně zabrat velkou plochu na obrazovce (tedy zastínit výhled do scény), pak se hodí occlucion culling. U toho stačí vykreslovat jen velmi zjednodušenou geometrii - buď něco hodně low-poly nebo klidně jen bouding boxy/spheres.
Btw. back-face ořezávání doufám necháváš na grafické kartě 
Naposledy upravil Augi dne 23. květen 2010, 13:30:53, celkově upraveno 1 krát |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 23. květen 2010, 13:30:34 Předmět: |
|
|
Záleží, jaký je charakter objektů, ale příliš bych to nehrotil a klidně použil koule  |
|
Návrat nahoru |
|
 |
Játro.m
Založen: 01. 02. 2010 Příspěvky: 230
|
Zaslal: 23. květen 2010, 13:36:43 Předmět: |
|
|
Augi: No scena je z 90% staticka, jediny co bude hejbavy sou nejaky vazy, kytky a dalsi sracicky ktery se ovlivni fyzikou. Hra je ve stylu multiplayeru, neco jak counter strike v HL. Prevazne budovy, teren nejak neplanuju, maximalne nejaky kopecky treba mezi barakama ale ze by komplet teren to ne.
Takze asi tak. No jak sem koukal na nejaky kody tak occlusion se necha lehce implementovat takze pujdu do tohodle a stromy si necham pozdeji.
Jo backface, pouzivam ten co je standardne v OGL a jeste neco je na grafice ale to je asi HW. |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 24. květen 2010, 10:00:36 Předmět: |
|
|
Máš to tak pomalý, že ti occlusion culling vytrhne trn z paty? Pokud ne, kašli na to, je to dost práce navíc. Správným sortingem, počtem objektů a materiálů se dají udělat divy.
K tomu occlusion cullingu: použití hardwarových occlusion query je dost ošemetná záležitost. Musí se to udělat dobře. Je například dobrý nečekat na výsledek occl. query ten samý snímek, kdy výsledek potřebuješ, neboť tim stopneš paralelní zpracování kreslícíh příkazů. Z hlediska výkonu je lepší čekat na výsledky z minulýho snímku, které ale můžou zapříčinit bliknutí. Zvaž a zkus.
Pokud by ti šlo jen o některé speciální případy, volil bych nějaký brutální fejky, třeba: Jsem v baráku? => snížím dohlednost a detail okolních objektů.
A poznámka: PVS nepotřebuje binární stromy, myslím, že by to byla dobrá volba pro culling statický geometrie jako je ulice (tuším, že si psal něco o barácích). _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
Játro.m
Založen: 01. 02. 2010 Příspěvky: 230
|
Zaslal: 24. květen 2010, 13:54:16 Předmět: |
|
|
tak zase pomaly to neni, +-60FPS na turionu x2 TL-55 s nvidia 7150, oboji strasnej shit. Ale precejenom kdyz se otocim na barak ve kterym je vic objektu jako regaly,police a dalsi sracicky tak mi to klesne. A ano ten occlusion jsem vcera napsal a mam dojem ze to pohodilo tak 7FPS nahoru. To ani za tu haldu kodu nestalo.
Jo a BVS, mozna jsem jenom blbe googlil ale vsechno co jsem nasel bylo napsany na mapy z Quaka. Jeste se podivam, ale jestli nekdo ma kus kodu abych aspon tusil jak to ma fungovat tak ho prosim hodte na nopaste  |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 24. květen 2010, 14:42:24 Předmět: |
|
|
Jak psal semo, occlusion culling bych řešil jen pokud budeš už nevědět co dál. Hlavně to vybírání výsledků o pár snímků dozadu je pruda.
A pokud máš relativně málo dynamických objektů, tak bych se na to asi taky vyprdnul.
Semo se zmínil o sortingu a na to bych se zaměřil. Sortuje se obvykle podle materiálu (shaderu, textur) nebo podle vzdálenosti.
V Tvém případě by mohlo být zajímavé oba přístupy zkombinovat - např. seřadit si velké objekty (hlavně zdi budov) podle vzdálenosti od kamery (vzestupně) a vykreslit je. A až pak vykreslovat drobné dynamické objekty seřazené podle materiálu. |
|
Návrat nahoru |
|
 |
Játro.m
Založen: 01. 02. 2010 Příspěvky: 230
|
Zaslal: 24. květen 2010, 15:41:07 Předmět: |
|
|
Augi: Jasny, jenom jsem to chtel zkusit. Kazdopadne ten sort mi pomuze jenom pri nacitani ne? Kdyz budu sortovat podle textur, nejak to nechapu Podle vzdalenosti, to uz bych to chapal. Jinak momentalni scena ma asi 1560 statickejch objektu a textury tak prumerne 4096x4096 a 2048x2048.
Jeste jsem neco cetl o instancingu, ale to jde asi jenom pouzit na stejny objekty (koule, kostky)? |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 24. květen 2010, 16:00:43 Předmět: |
|
|
Jedná z nejdražších operací na grafickém HW je přepínání různých stavů, hlavně přepínání textur (SetTexture) a dalších zdrojů (SetEffect, SetVertexSource, ...). Proto je vhodné mít objekty seřazené např. podle textur a kreslit tedy za sebou objekty se stejnou texturou (a tím minimalizovat volání SetTexture).
Takže řadit ne podle velikosti textury, ale podle textury (objekty jistě mají nějaké společné textury)
S tím právě souvisí i ten (geometry) instancing - ten je založen na tom, že pokud máš hodně objektů se stejnou geometrií, tak je možné je vykreslit najednou, tzn. na jedno volání DrawIndexedPrimitives - opět jsme u minimalizace počtu volání GAPI...
Ale geometry instancing by Ti určitě nadělal pěknou paseku v současném renderu, takže bych ho nejpíš také nasadil až pokud to bude potřeba. |
|
Návrat nahoru |
|
 |
|