.[ ČeskéHry.cz ].
Culling geometrie
Jdi na stránku 1, 2, 3  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
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

PříspěvekZaslal: 23. květen 2010, 11:32:17    Předmět: Culling geometrie Odpovědět s citátem

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 Wink

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 Wink

Diky Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 23. květen 2010, 12:12:48    Předmět: Odpovědět s citátem

skus pohladat occlusion culling
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Játro.m



Založen: 01. 02. 2010
Příspěvky: 230

PříspěvekZaslal: 23. květen 2010, 12:20:30    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
johnnash



Založen: 30. 07. 2007
Příspěvky: 80

PříspěvekZaslal: 23. květen 2010, 12:54:08    Předmět: Odpovědět s citátem

Jestli jsem to spravne pochopil tak http://en.wikipedia.org/wiki/Potentially_visible_set
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Játro.m



Založen: 01. 02. 2010
Příspěvky: 230

PříspěvekZaslal: 23. květen 2010, 13:07:09    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 23. květen 2010, 13:17:07    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Játro.m



Založen: 01. 02. 2010
Příspěvky: 230

PříspěvekZaslal: 23. květen 2010, 13:22:31    Předmět: Odpovědět s citátem

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 Very Happy?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Augi



Založen: 28. 07. 2007
Příspěvky: 782
Bydliště: Čerčany

PříspěvekZaslal: 23. květen 2010, 13:28:38    Předmět: Odpovědět s citátem

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ě Wink


Naposledy upravil Augi dne 23. květen 2010, 13:30:53, celkově upraveno 1 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Augi



Založen: 28. 07. 2007
Příspěvky: 782
Bydliště: Čerčany

PříspěvekZaslal: 23. květen 2010, 13:30:34    Předmět: Odpovědět s citátem

Záleží, jaký je charakter objektů, ale příliš bych to nehrotil a klidně použil koule Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Játro.m



Založen: 01. 02. 2010
Příspěvky: 230

PříspěvekZaslal: 23. květen 2010, 13:36:43    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1526
Bydliště: Telč

PříspěvekZaslal: 24. květen 2010, 10:00:36    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Játro.m



Založen: 01. 02. 2010
Příspěvky: 230

PříspěvekZaslal: 24. květen 2010, 13:54:16    Předmět: Odpovědět s citátem

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 Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Augi



Založen: 28. 07. 2007
Příspěvky: 782
Bydliště: Čerčany

PříspěvekZaslal: 24. květen 2010, 14:42:24    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Játro.m



Založen: 01. 02. 2010
Příspěvky: 230

PříspěvekZaslal: 24. květen 2010, 15:41:07    Předmět: Odpovědět s citátem

Augi: Jasny, jenom jsem to chtel zkusit. Kazdopadne ten sort mi pomuze jenom pri nacitani ne? Kdyz budu sortovat podle textur, nejak to nechapu Very Happy 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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Augi



Založen: 28. 07. 2007
Příspěvky: 782
Bydliště: Čerčany

PříspěvekZaslal: 24. květen 2010, 16:00:43    Předmět: Odpovědět s citátem

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) Smile

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2, 3  Další
Strana 1 z 3

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna