.[ ČeskéHry.cz ].
NavMesh :: Funnel Algoritmus
Jdi na stránku 1, 2  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> AI
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 12. říjen 2010, 19:25:46    Předmět: NavMesh :: Funnel Algoritmus Odpovědět s citátem

Zdravím,

byl by tady někdo tak ochotnej a vysvětlil by mi polopaticky, jak tenhle algoritmus funguje?
Já už se to 2 týdny snažím dát dohromady, ale vždy najdu u mého řešení takový mesh, u kterého to nefunguje. Pravděpodobně to bude tím, že to zcela nechápu.

Našel jsem toto:
http://digestingduck.blogspot.com/2010/03/simple-stupid-funnel-algorithm.html
http://www.gamedev.net/community/forums/topic.asp?topic_id=560218

Už mě to docela žere, protože bez navmeshe se vážně neobejdu. A navíc bych rád, aby ty cesty, popř. směr pohybu byl optimální...

Díky
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 18. říjen 2010, 12:24:25    Předmět: Odpovědět s citátem

Už je to týden a stále nic... Crying or Very sad
To tu není nikdo, kdo by měl pro mě nějakou radu?
To teda čumím... Shocked
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Deluxe



Založen: 31. 07. 2007
Příspěvky: 235
Bydliště: Oslavany

PříspěvekZaslal: 18. říjen 2010, 13:10:31    Předmět: Odpovědět s citátem

Snad by mohlo trochu pomoct tohle: http://www.gdcvault.com/play/1013425/Crowds-In-A-Polygon-Soup.
Myslim ze ten jejich "Next corner" by mohlo byt to samy. Ale moc tam toho o tom neni (37 - 49 snimek).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Vilem Otte



Založen: 18. 09. 2007
Příspěvky: 462
Bydliště: Znojmo - Sedlesovice, Kravi Hora

PříspěvekZaslal: 18. říjen 2010, 13:55:54    Předmět: Odpovědět s citátem

Hm... kde přesně je problém, já jsem se zatím přímo s navmeshem nesetkal (dávám přednost trošku jiným metodám, neříkám však, že nemají s navmeshem nic společného)?

Nejdůležitější je podle mě postavit správný samotný mesh navmeshe, tedy první otázkou ode mě je, jak jej stavíš?
Zbytek algoritmu je už celkem jednoduchý a pouze "jdeš" po hranách, než najdeš optimální cestu.
_________________
Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 18. říjen 2010, 18:17:47    Předmět: Odpovědět s citátem

Mám 2D navmesh, složen z trianglů (ne polygony), každá hrana má nejvíce 2 triangly...vygeneruji si graf, vypočtu tabulku, uložím si portálové hrany.
Když zadám hledání cesty z A do B, získám portály na této trase...atd...

Chození po středech trianglů je hnus, po středech portálu je to lepší, kolmé průměty na portály celkem ujdou, ale je to moc cik-cak a nechce se mi příliš smoothovat, pak jsou ještě další lepší postupy, ale pořád mě to neuspokojuje...ten funnel hazí to co bych bral...

To Deluxe:
Jj, to je to samé, ale pořád mi nejde do hlavy jak vlastně nakonec určím ten apex (corner)...jestli to mám brát jako poslední validní navštívený bod...
Ale díky, to mě trochu popostrčilo... Wink
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 19. říjen 2010, 16:42:11    Předmět: Odpovědět s citátem

Ach jo, tak já nevím.
Dokážu určit hranu (portál) na které bude ležet ten corner (apex), ale pořád nějak nevím, jak rozhodnu, který z těch dvou bodů portálu to bude...

Jako na obrázku v tom ppt to zrovna vychází, ale dokážu si vymyslet takové případy, kde se strojově neumím rozhodnout...(samozřejmně, že člověk koukne a vidí, ale počítač je blbej...)

Zbytek je snadnej...

Já ani nepotřebuji celou cestu, mě stačí optimální směr pohybu (normalizovaný) a ten už jen přenásobím rychlostí, kterou má urazit za dt a je to...a protože je funnel velmi rychlej, tak si mohu dovolit volat ho i několikrát za sebou jen s malou ztrátou str. času...

Zkrátka jen teď neumím naučit pc aby určil ten správný roh... Wink
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Deluxe



Založen: 31. 07. 2007
Příspěvky: 235
Bydliště: Oslavany

PříspěvekZaslal: 19. říjen 2010, 17:54:36    Předmět: Odpovědět s citátem

No, jen takovej napad (moc sem nadtim nepremyslel)...
Nestacilo by jednoduse pouzit ten co je bliz k cili cesty?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 19. říjen 2010, 18:23:34    Předmět: Odpovědět s citátem

No právě že ne...teď to mám nakreslené na tabuli:

Červeně zvýrazněná hrana je tu co najdu pomocí funnelu, a černý puntík je požadovaný bod...

Tomuhle případu by spíše odpovídal kolmý průmět počátku na hranu a pak vzít bližší z bodů toho portálu...jenže... Wink

PS: Zelených a modrých čar si vůbec nevšímejte...důležité je místo, kde je napsáno apex... Wink
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 19. říjen 2010, 23:43:51    Předmět: Odpovědět s citátem

Tak jsem ještě trochu přemýšlel...


V případech A,B,C,D,F to vypadá, že délka "start-apex-end" musí být co nejmenší, takže výběr správného bodu není problém.
V případě E nebyla nalezena žádná hrana, funnel došel až k end pointu, není co řešit...přímá cesta
Problém je akorát v případě G. Tady se nabízí průsečík úsečky "start-end" a úsečky portál, jenže si nejsem jistý, zda-li to klapne vždy. V některých případech tedy nebude cesta úplně přímá, ale na kratší vzdálenosti by to mělo fungovat tak jak potřebuji.

Až se mi to (doufám) povede zprovoznit, tak sem napíši přesně jak to funguje, ať z toho také něco máte vy. Wink
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Vilem Otte



Založen: 18. 09. 2007
Příspěvky: 462
Bydliště: Znojmo - Sedlesovice, Kravi Hora

PříspěvekZaslal: 20. říjen 2010, 14:25:17    Předmět: Odpovědět s citátem

Hm... jak to tady kreslíš, tak mi to připomíná známého (AI programmer), který použil pro pathfinding a výpočet ideální tratě přímo ray tracing (pamatuju si to, protože používal moji knihovnu). Vím, že došel k celkem kvalitním výsledkům pathfindingu (ty algoritmy ale nebyly zrovna jednoduché afaik). Bohužel přesný algoritmus neznám - ale zkusím ho někde zastihnout.
_________________
Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
Crusty



Založen: 28. 08. 2007
Příspěvky: 120
Bydliště: Praha

PříspěvekZaslal: 20. říjen 2010, 20:20:13    Předmět: Odpovědět s citátem

http://www.cs.wustl.edu/~suri/cs506/projects/sp.html
_________________
http://www.2ox.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 21. říjen 2010, 09:24:29    Předmět: Odpovědět s citátem

Jo tohle už jsem taky našel. Jenže je z toho prd vidět... Wink
A navíc mu tam nefunguje 100% ta triangulace...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Crusty



Založen: 28. 08. 2007
Příspěvky: 120
Bydliště: Praha

PříspěvekZaslal: 21. říjen 2010, 19:34:32    Předmět: Odpovědět s citátem

aha, no ma tam i zdrojaky (kdyz odmazes sp.html) tak treba z toho neco vykoukas, poupravis a bude Smile

a musi to byt mesh? nemuzes to pak treba prevest na bitmapu a hledat uz jen v ni?
_________________
http://www.2ox.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 21. říjen 2010, 19:41:14    Předmět: Odpovědět s citátem

Wink
Musí to být mesh. Nemám co dalšího dodat... Wink
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 28. říjen 2010, 22:35:30    Předmět: Odpovědět s citátem

Má někdo nějaké zkušenosti s Recast & Detour?
Nějak pořád nemohu dát dohromady inteligentní navmesh, tak jsem si říkal, že bych mohl použít už něco hotového, přesněji Detour na hledání cesty ve vlastním navmeshi, ale nějak se v tom nemohu vůbec vyznat...
Díky
_________________
Opravdovost se pojí s trýzní...
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 -> AI Č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