Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 28 odgovora
  • 8.491 pregleda

Najnovija ↓

Sudar dva mesh-a 07.12.2003. u 18:18 · pre 279 meseci #1
Kako da utvrdim da li su se dva mesh-a sudarila?
Potpis
Hide me away from danger
Re: Sudar dva mesh-a 07.12.2003. u 20:57 · pre 279 meseci #2
To je jedno relativno komplikovano pitanje - postoje citave knjige koje se bave tom problematikom. Pogledaj na guglu malo o "bounding box"ovima, to je jedan od nacina da utvrdis da li je doslo do dodira izmedju dva mesha. D3DXComputeBoundingBox je D3DX funkcija koja sluzi za racunjanje bounding boxova, ali ipak treba da pogledas prvo malo teorije.

Bilo bi dobro i da nabavis neku knjigu o 3D programiranju - jer lako je poceti, nacrtati nesto sto se vrti na ekranu, ali posle toga se stvari brzo komplikuju.
Re: Sudar dva mesh-a 09.12.2003. u 23:50 · pre 279 meseci #3
Reljam je u pravu... Zavisi od toga koliko zelis "siguran" sudar. Mozes da koristis
od bounding boxova, sfera, uproscenih mesheva ili bas svih vertexa/poligona.

Sto je proracun precizniji, trosi se vise CPU vremena. Za izuzetno precizne sudare
prave se specijalne strukture podataka za svaki mesh i metode kojima se daje odredjeno
vreme za proracun (u milisekundama), pa sto vise vremena potrose dobijes precizniji rezultat.

No da ne sirim previse... ako je za igru... onda uzmi neku jednostavnu metodu... (boxovi ili sfere)

yooyo
Re: Sudar dva mesh-a 10.12.2003. u 22:54 · pre 279 meseci #4
Naravno da mi treba najprostiji vid sudara, ali kako?
Potpis
Hide me away from danger
Re: Sudar dva mesh-a 11.12.2003. u 00:03 · pre 279 meseci #5
Hmmm.. Napravi boundary box oko svakog objekta i chekiraj da li su se 2 boxa negde presekla (dodirnula) i to je to... Ako su boxovi poravnati sa osama (axis aligned) sistema,
onda se presek svodi na nekoliko poredjenja.

Ako imas mnogo objekata, onda raspodeli objekte u npr. octree, pa ces
na taj nacin eliminisati veliki broj nepotrebnih poredjenja.

Ako koristis sfere onda se sudar detektuje ako je rastojanje izmedju 2 sfere
manje od zbira njihovih poluprecnika.

yooyo
Re: Sudar dva mesh-a 11.12.2003. u 00:20 · pre 279 meseci #6
Tacno, i samo jedna mala ispravka / optimizacija: kvadrat razdaljine treba da bude manji od kvadrata zbira poluprecnika. :)
Re: Sudar dva mesh-a 11.12.2003. u 02:48 · pre 279 meseci #7
Zar ne govorite uvek da ne treba ništa optimizovati ("to je gubljenje vremena")?

Sve će to hardver pozlatiti.
Re: Sudar dva mesh-a 11.12.2003. u 10:59 · pre 278 meseci #8
Citat:
Gojko Vujovic:
Zar ne govorite uvek da ne treba ništa optimizovati ("to je gubljenje vremena")?

Sve će to hardver pozlatiti.


:)))

Ko je to rekao!?

yooyo
Re: Sudar dva mesh-a 11.12.2003. u 12:15 · pre 278 meseci #9
Pogledao sam u Help-u kako napraviti Bounding Sphere i sve mi je jasno osim sledeceg:
Code:

objectRadius = Geometry.ComputeBoundingSphere(vertexData,
                                              pMesh.NumberVertices,
                                              pMesh.VertexFormat,
                                              out objectCenter);


Sta je objectCenter kada nije predhodno definisano; sta znaci OUT i kako to prevesti u VB?
Hvala
Potpis
Hide me away from danger
Re: Sudar dva mesh-a 11.12.2003. u 20:36 · pre 278 meseci #10
Citat:
Gojko Vujovic:
Zar ne govorite uvek da ne treba ništa optimizovati ("to je gubljenje vremena")? Sve će to hardver pozlatiti.
Pa, postoji razlika izmedju optimizacije i koriscenja provereno losijih algoritama (bubble sort?). Ovo ipak spada u drugu kategoriju. A inace jedna od odlika iskusnijih programera je da znaju sta treba, a sta ne treba optimizovati. Ako vas zanima vise o ovoj temi, kao i o kriterijumu sta treba optimizovati, mozemo slobodno da otvorimo temu u "Art of Programming".
Re: Sudar dva mesh-a 12.12.2003. u 19:27 · pre 278 meseci #11
ima li koga?
Potpis
Hide me away from danger
Re: Sudar dva mesh-a 12.12.2003. u 19:47 · pre 278 meseci #12
Ima, ali ovo je prvenstveno forum za grafiku, ne za VB. ObjectCenter je, jelte, centar objekta. Dakle tacka koja predstavlja centar objekta. A posto je out parametar, to znaci da ce funkcija tebi to da vrati, ne treba ti njoj da prosledjujes vrednosti, vec samo da joj das promenljivu u koju ce to ona da zapise. Pogledaj help za out parametere ili neku knjigu za Visual Basic.
Re: Sudar dva mesh-a 12.12.2003. u 22:03 · pre 278 meseci #13
Hvala na odgovoru
Znam da forum nije za VB ali je pitanje prvenstveno vezano za grafiku i grafiku u VB-u.
Pozdrav.
Potpis
Hide me away from danger
Re: Sudar dva mesh-a 13.12.2003. u 17:35 · pre 278 meseci #14
Uspeo sam da napravim boundarySphere, ali: na objektu koji ima koordinate 0,0,0 vrednosti za ObjectCenter su 0.6639903, 11.74995, 44.98951, a precnik 204.6698. Kada pomeram objekat vrednosti za centar sfere se ne menjaju! Sta nije u redu?
Hvala unapred.
Potpis
Hide me away from danger
Re: Sudar dva mesh-a 13.12.2003. u 21:10 · pre 278 meseci #15
Bounding sphere se nalazi u koordinatnom sistemu tvog objekta, znaci ne pomera se kada pomeris objekat. Da bi je imao u world coordinates, treba da pomnozis poziciju bounding sphera sa istom transformacijom (world transform) sa kojom mnozis objekat da bi ga pomerio.
Re: Sudar dva mesh-a 13.12.2003. u 23:12 · pre 278 meseci #16
Hvala.
A BoundaryBox?
dva out paramaetra min,max kao vector3.
Sta predstavljaju min i max i koju vrednost vraca funkicja (kao sto ova sa sferom vraca precnik sfere). HVALA.
Potpis
Hide me away from danger
Re: Sudar dva mesh-a 13.12.2003. u 23:55 · pre 278 meseci #17
To su dva vektora koji odredjuju bounding box. Posto je poravnat sa koordinatnim osama, to je sve sto ti treba da bi definisao 'kocku' (nije bas kocka, ali bas ni 'kutija' ne zvuci mnogo bolje).
Re: Sudar dva mesh-a 14.12.2003. u 23:01 · pre 278 meseci #18
Da li je moguce prikazati boundaryBox na ekranu?
Potpis
Hide me away from danger
Re: Sudar dva mesh-a 15.12.2003. u 09:13 · pre 278 meseci #19
Jeste, ali moras sam da ga iscrtas. Najlakse je tako sto uzmes model kocke koja ima velicine strane 1, namestis joj neku poluprovidnu teksturu, i onda je namestis tamo gde treba.
Re: Sudar dva mesh-a 15.12.2003. u 11:38 · pre 278 meseci #20
1. Kako da u max-u nacrtam kocku a da njena ivica bude 1?
2. Kocka sa ivicom 1 treba da bude poravnata sa osama tako da se koordinatni pocetak nalazi u centru kocke ili u jednom uglu?
3. Kakva je veza izmedju min i max vektora i dimenzija kocke?

Hvala.
Potpis
Hide me away from danger
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme