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ň
|
Zaslal: 9. březen 2010, 19:36:02 Předmět: |
|
|
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 |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 29. březen 2010, 18:19:28 Předmět: |
|
|
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...  _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
 |
franz
Založen: 30. 07. 2007 Příspěvky: 1325
|
Zaslal: 29. březen 2010, 18:46:07 Předmět: |
|
|
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 |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 29. březen 2010, 18:52:23 Předmět: |
|
|
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...  _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 29. březen 2010, 20:16:38 Předmět: |
|
|
VODA napsal: |
ano, jako funguje to, ale není to to,co potřebuju... |
Zkus teda popsat, co potřebuješ  _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 29. březen 2010, 20:44:58 Předmět: |
|
|
Ok, to by mělo asi pomoct
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 |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 29. březen 2010, 21:25:06 Předmět: |
|
|
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 |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 29. březen 2010, 21:51:11 Předmět: |
|
|
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...  _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 29. březen 2010, 21:57:40 Předmět: |
|
|
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 |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 29. březen 2010, 22:01:29 Předmět: |
|
|
Když na to tak koukám, tak asi ničemu...
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 |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 29. březen 2010, 22:42:52 Předmět: |
|
|
np a sry za ten stealth edit, teď kvůli mně vypadáš jak blbec  _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 30. březen 2010, 08:50:40 Předmět: |
|
|
Č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 |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 30. březen 2010, 09:40:41 Předmět: |
|
|
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 |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 30. březen 2010, 10:40:05 Předmět: |
|
|
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 |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 30. březen 2010, 13:00:04 Předmět: |
|
|
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 |
|
 |
|