.[ ČeskéHry.cz ].
ODE, Havoc - detekce kolizí
Jdi na stránku Předchozí  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
VODA



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

PříspěvekZaslal: 9. březen 2010, 19:36:02    Předmět: Odpovědět s citátem

Souhlasím s tím, že je dobré vědět co pod tím je...ale momentálně nejvíc potřebuji abych měl k dispozici nějaký dokonalejší kolizní systém...
A myslím, že mi ODE poskytne to co potřebuji...
S vlastním kolizním systémem jsem se sr*l skoro rok a vždy jsem našel způsob, jak projít skrz...takže vím jak na detekci kolizí, ale nejsem schopen (alespoň zatím) to usoftit tak aby to bylo použitelné...
_________________
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: 29. březen 2010, 18:19:28    Předmět: Odpovědět s citátem

Hm...tak jsem konečně dodělal detekci kolizí pomocí ODEčka (klasické rozřezání geometrie do Octree atd...)...
Jenže, teď dostanu sadu kontaktů, nj. ale jak na ně reagovat...
Moje experimentování spočívalo v tom, že jsem si vyhledal kontakt s nějvětším zanořením (s nějvětší depth) a podle normály a hloubky jsem objekt "odstrčil" od místa kolize...ano, jako funguje to, ale není to to,co potřebuju...
Něco mi pořád uniká a já nevím co...
Jak by jste to řešili vy? Potřebujete udělat kolizní model pro postavu, pro jednoduchost, působí na ní "gravitace" (pohyb dolů po ose z) a hráč na ní působí nějakou "silou" (při stiknutí požadované klávesy pohyb v xy)...
Jak tedy na tu hromadu kontaktních bodů reagovat?
Nějak se mi do toho nechce strkat i fyziku...i když by to možná hodně věcí vyřešilo... Crying or Very sad
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
franz



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

PříspěvekZaslal: 29. březen 2010, 18:46:07    Předmět: Odpovědět s citátem

postava se může od zdi buď odrazit (typické v závodních hrách) nebo po zdi sklouznout (typické ve FPS hrách)
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: 29. březen 2010, 18:52:23    Předmět: Odpovědět s citátem

To jsi mi moc nepomohl, to dávno vím...jsem dělal vlastní kolizní systém, ale ten fungoval na trochu jiném principu...

Tam jsem měl vždy kontakty dva (tedy každý kontakt měl ještě jeden do páru), jeden na kolizní geometrii a druhý na objektu, který testuju na kolizi a na základě toho jsem mohl spočítat, jak opravit polohu toho objektu...tady mám jen jeden a nevím si s tím rady... Wink
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



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

PříspěvekZaslal: 29. březen 2010, 20:16:38    Předmět: Odpovědět s citátem

VODA napsal:
ano, jako funguje to, ale není to to,co potřebuju...

Zkus teda popsat, co potřebuješ Wink
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
VODA



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

PříspěvekZaslal: 29. březen 2010, 20:44:58    Předmět: Odpovědět s citátem

Ok, to by mělo asi pomoct Wink

No dobře, dejme tomu, že máme letící objekt (budeme uvažovat, že vektor pohybu je malý)...(pro jednoduchost použiji kouli)...



Červený vektor je pohybový vektor, ODE mi vrátí žlutou normálu, azurový kontaktní bod a zelenou hloubku...dopočítat modrý bod není problém...

No a já bych potřeboval takovou situaci...



Dvě čárky - rovnoběžnost...
Já bych potřeboval purpurový kontaktní bod...Napadlo mě to řešit přes goniometrické funkce, což by šlo, ale stejně se mi to zdá nějaké pitomé...

No...asi tak...jestli se pletu, tak mě opravte jak to je...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



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

PříspěvekZaslal: 29. březen 2010, 21:25:06    Předmět: Odpovědět s citátem

Ale to jde přece zcela jednoznačně spočítat. Vezmeš přímku danou červeným vektorem rychlosti a tmavomodrým bodem v druhém obrázku. Pak rovinu danou žlutou normálou a světle modrým bodem v prvním obrázku. Protneš a máš purpurový bod. Jednoduchá analytická geometrie. Opravdu žádná goniometrie.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
VODA



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

PříspěvekZaslal: 29. březen 2010, 21:51:11    Předmět: Odpovědět s citátem

To frca: To mě napadlo taky úplně na začátku, ale co potom když by fialovej bod ležel mimo trojúhelník...ha...to už si to rovnou mohu vypočítat všechno sám...

Takže to vypadá, že řešit kolize přes ODE bylo úplně nah*vno...protože vygenerovat kontaktní body umím také...
Jenže já potřebuji ty kolizní body předpovídat v závislosti na pohybu...tak to vypadá, že na ODE peču a zase se budu nějaký čas trápit se svým vlastním řešením...doprd*le...

No, zase tak marné to nebylo...protože se mi povedlo zrychlit určování trojúhelníků, které mohou s mým útvarem kolidovat...a zrychlení je znát opravdu výrazně...

No nic...jdu pořádně vymyslet jak to udělat sám...stejně nemám rád, když montuju do svých programů cizí knihovny... Wink
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



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

PříspěvekZaslal: 29. březen 2010, 21:57:40    Předmět: Odpovědět s citátem

VODA napsal:
co potom když by fialovej bod ležel mimo trojúhelník

To se ptám já tebe, co chceš, aby to dělalo? Abych pravdu řekl, tvůj záměr je mi prozatím skryt.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
VODA



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

PříspěvekZaslal: 29. březen 2010, 22:01:29    Předmět: Odpovědět s citátem

Když na to tak koukám, tak asi ničemu... Very Happy
No uvidíme, udělám ještě nějaké pokusy...
Tak zatím díky...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



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

PříspěvekZaslal: 29. březen 2010, 22:42:52    Předmět: Odpovědět s citátem

np a sry za ten stealth edit, teď kvůli mně vypadáš jak blbec Razz
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
]semo[



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

PříspěvekZaslal: 30. březen 2010, 08:50:40    Předmět: Odpovědět s citátem

Čau, taky mě ze začátku frustrovalo, že kontakty nejdou snadno vypočítat přesně a že odsunutí objektů může způsobit jinde další penetraci. V praxi se pak ale ukázalo, že to je uplně jedno. Hledáš purpurový bod místo modrého, ale já se ptám proč?

To se tvé objekty pohybují opravdu tak moc rychle, aby ta nepřesnost byla vidět? Nebo ti jde o něco jiného? Přesný bod kontaktu bys získal pro dva objekty nějakou predikcí v podobě několika kolizních tesů a půlením intervalu.

EDIT:
Být tebou, zaměřil bych se spíš na stabilitu toho systému. Tzn. pokud nemáš, tak hýbat objektama a testovat kolize na stabilním FPS. Díky tomu ti v případě peaku neprojedou objekty do sebe a nebudeš muset hledat purpurový bod :-) .
_________________
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
VODA



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

PříspěvekZaslal: 30. březen 2010, 09:40:41    Předmět: Odpovědět s citátem

Rychle ani tak ne, ale já bych chtěl zamezit "cukání", což se bohužel děje...i při malém pohybu...

Můj vlastní kolizní systém byl založen na tomhle:
http://www.peroxide.dk/download/tutorials/tut10/pxdtut10.html
Fungovalo to přesně jak jsem chtěl, jen jsem občas propadnul skrz mesh...
_________________
Opravdovost se pojí s trýzní...
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: 30. březen 2010, 10:40:05    Předmět: Odpovědět s citátem

A máš to na stabilním framerate? To je základ.
_________________
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
VODA



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

PříspěvekZaslal: 30. březen 2010, 13:00:04    Předmět: Odpovědět s citátem

Jj, myslím, že jo...

Problém u toho ODE je prostě ten, že opravení té pozice, není v obráceném směru letu objektu, ale ve směru normály kontaktu, resp. plochy na které kontakt leží...
Kdybych to chtěl ve správném směru, musel bych počítat ještě navíc manuálně správnou pozici toho kontaktu (purpurovej bod)...a to jsem si jako myslel, že to tak má ODE dělaný...
_________________
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 -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3  Další
Strana 2 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