.[ ČeskéHry.cz ].
Octtree, view frustum
Jdi na stránku 1, 2  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
Filkon



Založen: 19. 11. 2007
Příspěvky: 15

PříspěvekZaslal: 27. listopad 2007, 18:16:56    Předmět: Octtree, view frustum Odpovědět s citátem

Zdravim. Scháním nějaký informace o octtree a view frustum culling - vykresluju krajinu a potřeboval bych to aplikovat... můžete mi poradit, kde seženu nějaký informace? Byl bych rád za jakejkoliv tutoriál nebo ukázku kódu pokud možno pro DirectX a C#. (zkoušel sem googlit, ale moc nevládnu angličtinou a OpenGL v kombinaci s C++ pro mě taky není moc názorný...) Díky za každej link nebo radu...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
juroo



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

PříspěvekZaslal: 27. listopad 2007, 20:41:41    Předmět: Odpovědět s citátem

zdarec. imho googlis slabo Wink V tomto pripade sa nesmies limitovat tym, ze to musi byt pre DX a C#. Vyhovorka
citace:
OpenGL v kombinaci s C++ pro mě taky není moc názorný...

je fakt mimo. Ked tak si najdi vseobecny popis algoritmu. Podla mna to musis pochopit aj z toho ogl a c++ inak nemas velku sancu uspiet ako programator. Aby si si nemyslel, ze ta tu chcem len vozit, tak konkretne o tejto zalezitosti nieco viem a prakticky som ju pouzival preto ak budes mat specifickejsie otazky mozes sa mi kludne ozvat na ICQ. Najskor vsak navstiv a precitaj si odkaz v hornom menu tu na CH -> NeHe -> http://nehe.ceske-hry.cz/cl_gl_octree.php pekne vseobecne, v cestine, bez jedineho OpenGl / DX prikazu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Peto



Založen: 01. 08. 2007
Příspěvky: 206
Bydliště: Košice

PříspěvekZaslal: 28. listopad 2007, 07:56:56    Předmět: Odpovědět s citátem

No presne toto je jedna z tych veci co by si nemal len bezducho zkoprirovat ale trochu ju aj pochopit, jednak len tak to zkopirovat asi nepojde a tiez sa ti to urcite zijde tomu chapat Smile.

Najprv sa zameraj na frustum culling, pochop ho skus po hopuzivat, vytvor si orezove roviny, a nejaku funckiu ktora ti zisti ze ci kocka popr gula je v dohlade kamery.

Potom si najdi nieco o rekurzivnych funkciach (su to funkcie ktore volaju samy seba, cize vo vnutri funkcie Skuska(), bude prikaz Skuska();, tiez ich pochop nauc sa pouzivat a potom mozes prejst na samotne octree, princip je pomerne jednoduchy, takze by to nemal byt problem Smile

juroo > ja jeho vyhovorku chapem, ale to naznamena ze nema googlovat s nsnazit sa to pochopit aj s OGL Smile ... Filkon pastnem ti tu neskor kod pre frustum culling v C++ a DX, je dost si myslim prehladne napisany, urcite pochopis .. ale ten octree tak to je viac ako na dve funkcie Wink
_________________
Code or die!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Filkon



Založen: 19. 11. 2007
Příspěvky: 15

PříspěvekZaslal: 28. listopad 2007, 12:21:32    Předmět: Odpovědět s citátem

Já to tam zapomněl napsat - čet sem o tom nějaký info, chápu co je frustum culling, vím jak to funguje, zrovna tak teoreticky vim, jak funguje octree. Ale ta praxe prostě chybí... nedovedu si představit, jak se octree vytváří apod... Je mi jasný, že nemůžu vzít kus kódu a jenom ho připlácnout do toho svýho...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Quiark



Založen: 29. 07. 2007
Příspěvky: 816
Bydliště: Chlívek 401

PříspěvekZaslal: 28. listopad 2007, 16:21:40    Předmět: Odpovědět s citátem

Pokud máš terén, který se skládá ze čtverců, pak je tvorba quadtree docela jednoduchá. Všechny uzly stromu kromě listů nemusí obsahovat žádnou geometrii, jen její ohraničující čtverec pro frustrum culling. Kořen stromu ohraničuje celý terén. Jeho 4 potomci ohraničují každý jednu ze čtvrtek terénu. A tak to jde dál, až v určité úrovni zastavíš, čímž vzniknou listy a ty už obsahují příslušné trojúhelníky.

Zkus se zeptat konkrétně co nechápeš.
_________________
Mám strach
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
krkovicka



Založen: 24. 11. 2007
Příspěvky: 14

PříspěvekZaslal: 28. listopad 2007, 16:50:49    Předmět: Odpovědět s citátem

a co kdyz budu chtit obdelnikovou mapu, a mit cvercove elementy, takze jejich pocet na sirku a vysku bude rozdilnej a nebude delitelnej ctyrma, napr. 3x6 bude pak muset bejt koren 8x8 bez kompletniho potomstva? nebo se to resi jinak
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



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

PříspěvekZaslal: 28. listopad 2007, 17:07:43    Předmět: Odpovědět s citátem

Já myslím, že tak.

Ale mám jiný dotaz k této problematice. Je lepší rozříznout polygon, který leží na rozhraní dvou krychlí stromu? (Mám na mysli nějaký obecnější model, ne čtvercovou síť.) Anebo je lepší ho vykreslit 2x (nebo i víckrát, když leží hodně nešikovně na rozhraní více čtverců nebo je opravdu velký) přes sebe (přičemž je depth func GL_LESS, takže se vlastně vykreslí jenom poprvé?)? Zatím to mám řešené druhým způsobem, tak by mě zajímalo, co je lepší? A nebo je ještě jiný lepší způsob kromě těchto dvou?
Díky,
frca
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Ladis



Založen: 18. 09. 2007
Příspěvky: 1536
Bydliště: u Prahy

PříspěvekZaslal: 28. listopad 2007, 17:21:42    Předmět: Odpovědět s citátem

Zvol si nejake pravidlo pro rozhodovani, kam patri, kdyz je na hranici mezi vicema. Napr. vzdy do krychle s mensi souradnici X/Y/Z (blize pocatku). Pak je nemusis rezat ani kreslit vicekrat, ale zas potrebujes vykreslit i krychle, ktere uz nejsou videt, ale muzou byt v nich polygony zobrazene i na krychly, ktera videt ma byt. V pripade polygonu nepresahujici 2 krychle tteda vykreslujes o 1 radu krychli navic.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 28. listopad 2007, 17:40:20    Předmět: Odpovědět s citátem

My jsme toto resili urcitym parametrem overlap (presah). Pokud krychle jeste spadla do overlapu nemusela se rezat. Pokud byla pres tak se rezala.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
kerekes



Založen: 29. 07. 2007
Příspěvky: 57

PříspěvekZaslal: 28. listopad 2007, 18:37:09    Předmět: Odpovědět s citátem

Najprv podelit s tym, ze triangle na rozhrani dat tam, kde je jeho vacsia cast. Potom po podeleni urobit druhy prechod zospodu stromu a pozvecsovat boundingboxy (resp zistit nove boundingboxy).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Filkon



Založen: 19. 11. 2007
Příspěvky: 15

PříspěvekZaslal: 28. listopad 2007, 19:44:23    Předmět: Odpovědět s citátem

Quiark: Mám terén, kterej je tvořenej trojúhelníkovou sítí. Je to jeden mesh, kterej tvoří tu krajinu. Nerozumim tomu, co mam do toho stromu vlastně vkládat a co potom vykreslovat - frustum culling mi zjistí, jestli tu část mam ve výhledu nebo ne. Ale jak to provedu technicky, když tam mam jenom jeden mesh? Mam ho nějak rozdělit, nebo co s nim vlastně provedu?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Quiark



Založen: 29. 07. 2007
Příspěvky: 816
Bydliště: Chlívek 401

PříspěvekZaslal: 28. listopad 2007, 22:43:01    Předmět: Odpovědět s citátem

Aha, takže problém je v tomhle. Bohužel já neznám odpověd Smile Snad se najde někdo jiný Smile
_________________
Mám strach
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: 28. listopad 2007, 23:00:48    Předmět: Odpovědět s citátem

Mesh není prakticky nic jiného než sjednocení vertex bufferu a index bufferu. Takže to můžeš udělat třeba tak, že budeš mít všechny vertexy ve vertex bufferu a pro každý list octree budeš mít index buffer do toho velkýho vertex bufferu. A jak index buffery naplníš? Jednoduše Wink Projdeš všechny trojúhelníky v původním meshi (buď přes index buffer nebo pokud ho mesh nemá, tak přes vertex buffer) a zjistíš, do kterýho listu ten trojúhelník bude patřit a do odpovídajícího index bufferu zapíšeš jeho indexy. Takže ve výsledku budeš mít jeden vertex buffer a hromadu index bufferů. Samozřejmě to není jediný řešení. Např. můžeš ve finále index buffery sloučit do jednoho velkýho index bufferu a u každýho listu si pak pamatovat první a poslední index z index bufferu. Jsem nějakej unavenej, tak snad jsem to napsal nějak srozumitelně a dobře Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
pcmaster



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

PříspěvekZaslal: 29. listopad 2007, 02:16:35    Předmět: Odpovědět s citátem

Ja robim podobnu semestralku do skoly, tu mas nejake papery Smile
Po prazdninach budem mat vlastny kratucky "paper" (LOL) a cez skuskove aj kod, tak to sem asi hodim (ako tu slubovanu bakalarku, muhehe Smile)

* http://www.gamedev.net/reference/articles/article1212.asp
* http://www.cescg.org/CESCG-2002/DSykoraJJelinek/index.html
* http://www.flipcode.com/articles/article_frustumculling.shtml
* http://jgt.akpeters.com/papers/AssarssonMoller00/

(Jo, btw, je to AABB VFC, ale to je jedno, lebo octree defacto AABB je Smile)
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
krkovicka



Založen: 24. 11. 2007
Příspěvky: 14

PříspěvekZaslal: 18. prosinec 2007, 14:35:30    Předmět: problem s pointry v managed C# Odpovědět s citátem

zdravim,
napsal jsem si tridu, reprezentujici uzel stromu a realizoval frustum culling. Problem je nasleduji, kdyz pouzivam velky teren, radove milion uzlu, tak je inicializace neunosne dlouha. Problem je v tom, ze nemam uzel jako strukturu, ale jako tridu a inicializace objektu je mnohonasobne delsi, nez ini struktury. Jenze struktura nemuzu ukazovat na sebe sama a musi se proto zavest pointry, bohuzel dal, nez k tomuto zjisteni jsem se nedostal. nemohl by mi sem nekdo poslat ukazku struktury, ktera ma tohle osetreny? Staci uzel spojaku se settrama a gettrama na potomka.
predem diky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
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  Další
Strana 1 z 2

 
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