View previous topic :: View next topic |
Author |
Message |
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Sat Dec 16, 2006 11:48 pm Post subject: Vairaaki collision liimenji |
|
Neemsu lasijis nekaadu literatuuru par sho teemu,bet varbuut kaads ir.
Njemshu par piemeeru FPS speeli. Speelee ir cilveeki,kas skrien pa laukumu un shauj viens otru. Kad kaads shauj uz kaadu citu, tiek reekjinaats collision ar katra cilveeka katru locekli (kaaju,roku utt.), bet kad cilveeks ieskrien sienaa, tad tiek reekjinaats collision tikai ar sfeeru,kas ir apkaart speeleetaajam.
UNDA 1774 es izmantoju taadus kaa 2 liimenjus - viens izmantoja newton - speeleetaaja sfeeras un liimenja gjeometrijas koliizijaam. Bet otrs - Irrlicht iebuuveetais collision - ar to es paarbadiju, vai ierocis traapa kaadaa loceklii.
Jautaajums taads- kaa to panaakt ar esoshiem collision engine, piemeeram, Newton? _________________ long time; /* know C */ |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sat Dec 16, 2006 11:56 pm Post subject: |
|
Ko tieši lai panāk? Šāviena trāpījumu atrast vajag?
Ja nu tev visi objekti ir sadefinēti ņūtonā ar koliženiem, tad jāskatās uz ray cast'u - kas velk staru no dotā punkta dotajā virzienā un atrod bodiju/collisionu, kurā tas trāpa. Skaties NewtonWorldRayCast funkciju.
Piemērs ir parādīts Tutorial 7 (neesi tutoriāļus apstījis ;)
Šitādas lietas btw ir diezgan labi aprakstītas Newton forumā, no kura es personīgi diezgan daudz labus trikus un paņēmienus salasījos. |
|
Back to top |
|
|
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Sun Dec 17, 2006 12:11 am Post subject: |
|
Nee nu tas ir logjiski. To es saprotu. Arii forumu esmu chekojis. Bet jautaajums taads - kaa lai izdara taa,ka pret sienu tiek paarbaudiits collision tikai ar sferu (nevis ar visiem paareejiem locekljiem - resursu taupiishanai), bet shaujot tieshi otraadi - tiek paarbaudiits collision ar visiem objektiem iznjemot sfeeru. Abos gadiijumos tiek paarbaudiits collision ar liimenja gjeometriju. _________________ long time; /* know C */ |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Dec 17, 2006 12:29 am Post subject: |
|
Em.. nu ir taču tādi materiālu collisionu callbaki (Tutorial 4, NewtonMaterialSetCollisionCallback). Kad notiek koližens ņūtons sauc atbilstošo bodiju materiālu pāra callbakus. Un no process callbacka var atgriezt 0, tad šis koližens netiks ņemts vērā (tb loceklis - siena). Taču apskatot to šaušanu vajag notiekt vai tekošais koližens (kurā trāpa) ir tā sfēra, ja ir tad izlaiž to (atkal atgriež 0).
Un to - kurš koližens patreiz tiek apstrādāts - to var notiekt pēc kolīzijas id, ko ņūtons ļauj uzstādīt katram koliženam vienalga kādu, tb patvaļīgus lietotāja dati.
Skatos, tu nemaz īsti neizmanto visas ņūtona piedāvātās iespējas.. .Nu lab lab, mēs skvēriem ar neizmantojam visas advancētās iespējas, bet šos materiālu callbakus gan nu pilnībā izmantojam - lai noteiktu kas ar ko ir sadūries - bumba/spēlētājs, bumba/zāle, un tiem arī attiecīgi atskaņojam dažādas skaņas, vai skaitam soda punktus un tml |
|
Back to top |
|
|
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Sun Dec 17, 2006 12:37 am Post subject: |
|
Galiigi nebija laika peetiit Newtona fiichas. Isevishkji, ja bija tik vienkaarshs risinaajums kaa izmantot Irrlicht collisionus prieksh shaushanas. Protams, ka ta viss normaalam userim ir jaazin, bet pirmstam biju izkodis ODE un tad panjeemu newton (iemeslus es jau mineeju citaa topikaa). Liidz ar to nesanaaca nedz laiks prieksh maciishanaas nedz integreeshanas kodaa.
Runaajot par tiem ID-nekaa savaadaak es arii to nebiju iedomaajies, vieniigi nezinaaju kaa iisti to dabuut gatavu. Ok, paldies tev bubu. Papeetishu materiaalus dziljaak. _________________ long time; /* know C */ |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Dec 17, 2006 12:54 am Post subject: |
|
Man jau ar tāpatās bija. Sākumā zināju tikai ODE, bet pēc tam sākot rakstīt skvērus jūnijā, izdomāju apskatīt Newton, un tad to arī paņēmām.
Tagad gan ja man liktu izvēlēties, es ņemtu ODE. Pēdējā pusgada laikā tā ir diezgan tālu attīstijusies. Pie tam uz beigām bija mums neliels čakars ar Newtonu. |
|
Back to top |
|
|
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Sun Dec 17, 2006 1:18 am Post subject: |
|
Buus jaaiet apskatiities,kas tad ODEi jauns.
Starp citu veelviens jautaajums - kaa vareetu panaakt, ka priekshmets (piemeeram lode) iziet cauri citam priekshmetam zaudeejot aatrumu (atkariibaa no objekta materiaala iipashiibaam). Tas vareetu buut diezgan aakjiigi, jo kameer lode ies cauri objektam (nezinu pat kaa lai dabuu to gatavu), vinja atradiisies iekshaa shajaa objektaa. Ko par to teiks newton?
Laikam vieniigais veidz tomeer buus raycatsing. Vai arii ir kaads cits veids? _________________ long time; /* know C */ |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Dec 17, 2006 1:36 am Post subject: |
|
Nu viens veids, kā es to iedomājos, ir tajā collision process callbakā atgriezt 0 - tb nav kolīzijas, bet tai pat laikā atcerēties, ka notiek kolīzija starp šiem diviem bodijiem (kautkādos mainīgajos kautkur tavā spēles objektu klašu hierarhijā). Un nākamajā simulācijas solī, pielikt spēku pretēju lodes kustības virzienam (ar prastu AddForce). |
|
Back to top |
|
|
Vecais_Dumais_Laacis Guru
Joined: 29 Jan 2004 Posts: 800
|
Posted: Sun Dec 17, 2006 7:44 pm Post subject: |
|
neaceros kurai enginei bet bija iespeeja likt grupas id katram collision objektam. un noraadiit kuras grupas saduraas kuras nee _________________ ...un ja bites buutu laachi... |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Dec 17, 2006 7:50 pm Post subject: |
|
Ņūtonam ir: NewtonMaterialSetDefaultCollidable.
Bet to īsti lietot nevarēs, jo kolīzijas notikums ta ir jāreģistrē - lai varētu palēlināt to lodi. Un ja uzliks to, ka šīs divas grupas kolīzijas ir jāignorē, tad atbilstošie callbaki netiks izsaukti. |
|
Back to top |
|
|
|