Soluții - PC Magazine Romania, Iunie 2003
Simularea ciocnirii a două bile folosind modulul de dinamică
Ionuț Ghionea
Modulul de dinamică implementat în 3D Studio Max este utilizat pentru producerea
de animații care simulează procesele fizice din lumea reală. Acest modul are
la bază teoria dinamicii corpurilor rigide, mișcarea realistă a unui obiect
putând fi obținută pe baza proprietăților fizice ale sale și a forțelor care
îl influențează. După cum se știe, în dinamica corpurilor rigide, poziția și
rotația unui obiect se calculează pe baza forțelor care acționează asupra sa,
fără ca acesta să se deformeze (rigid).
În această aplicație se prezintă modul în care se poate simula ciocnirea
a două bile rigide, care își păstrează forma intactă după impact, dar își schimbă
pozițiile.
În portul de vedere Top se creează un paralelipiped ([Create]
-> [Geometry]
-> [Standard Primitives] -> [Box]), având următorii parametri:
Length=204, Width=350 și Height=3. Acest paralelipiped va fi suportul pe care
se poziționează
cele două bile care intră în coliziune.
În portul de vedere Top se creează o sferă cu raza Radius=17 și Segments=32.
Din meniul Edit -> Clone se obține o a doua sferă identică cu prima. Cele
două sfere se poziționează deasupra paralelipipedului, la oarecare distanță
una de alta, ca în Figura 1:
Fig. 1 Poziționarea obiectelor în scenă
Din panoul de comenzi [Create] -> [Space Warps] -> [Forces] -> [Gravity]
se adaugă în scenă o deformare spațială de tip gravitație, utilizată la deplasarea
primei sfere, spre ciocnirea cu cea de-a doua. Gravitația se poziționează în
scenă deasupra paralelipipedului, la distanță mică de a doua sferă, cu sensul
orientat de la stânga spre dreapta (fig.2):
Fig. 2 Poziționarea deformării spațiale gravitație
Din panoul de comenzi [Utilities] -> [Dynamics], în zona Dynamics, se creează
(butonul [New]) o nouă simulare, cu numele Dynamics00. Mai jos, în zona Objects
in Simulation, se apasă butonul [Edit Object List] și este afișat meniul din
Figura 3. În panoul din stânga se selectează cele două sfere și se adaugă în
panoul din dreapta (fig.3):
Fig. 3 Includerea celor două sfere în simulare
Tot în zona Objects in Simulation, se apasă butonul [Edit Object] și este afișat
meniul din Figura 4. Se alege prima sferă (Sphere01), din zona Assign Effects/Collisions,
apăsând butonul [Assign Object Effects], i se adaugă gravitația (în panoul
din dreapta), iar apăsând butonul [Assign Object Collisions] i se adaugă
sfera a doua (Sphere02), ca obiect cu care intră în coliziune.
În zona Collision Test se bifează opțiunea Sphere, iar în zona Material Editor
Physical Properties se stabilesc parametrii: Bounce=0,3, Static Friction=0,1
și Sliding Friction=0,1.
Parametrul Bounce precizează cât de mult va ricoșa obiectul în urma ciocnirii,
parametrul Static Friction stabilește cât de greu este deplasat un obiect
staționar, iar parametrul Sliding Friction precizează cât de greu este
menținut un obiect
în mișcare. Valorile parametrilor Bounce, Static Friction și Sliding Friction
pot fi stabilite atât în meniul de comenzi Edit Object (cazul de față),
cât și prin editorul de materiale, în secțiunea Dynamics Properties.
Fig. 4 Atribuirea efectelor pentru ambele sfere
Celei de-a doua sfere i se modifică doar valoarea Bounce=0,1, fără a-i adăuga
efecte sau coliziuni.
În panoul de comenzi [Utilities] -> [Dynamics], zona Timing & Simulation
se stabilesc valorile: Start Time=0, End Time=25 și Time Scale=0,1 (fig.5):
Fig. 5 Stabilirea timpului de animație a coliziunii
Următorul pas este legarea celor două sfere de deformarea spațială, gravitația.
Se selectează sferele, se apasă butonul [Select and Link], aflat pe bara
cu instrumentele de lucru (fig.6) și se leagă de gravitație.
Fig. 6 Instrumentele de selecție Select and Link și Select and Unlink
Pentru a lega sferele de deformarea spațială (gravitație), se apasă butonul
[Select and Link]. Apoi, în momentul în care se indică sferele selectate,
cursorul va lua forma Make Link. Se execută click pe sfere și, ținând butonul
mouse-ului apăsat, se deplasează cursorul până la gravitație. Cele trei obiecte
(două sfere și gravitația) vor fi unite cu o linie, iar cursorul ia forma
Accept Link.
În panoul de comenzi [Utilities] -> [Dynamics], zona Dynamics, secțiunea
Solve, se apasă butonul [Solve] pentru ca programul să efectueze toate calculele
simulării (fig.7). Timpul de calcul este destul de mare, în funcție de complexitatea
obiectelor incluse în simulare.
Fig. 7 Butonul Solve, important
pentru calculul simulării
După ce s-a încheiat procesul de calcul al traiectoriei sferelor înainte și
după coliziune (simularea), 3D Studio Max generează automat traiectoriile și
cadrele cheie de mișcare ale acestora (fig.8):
Fig.8 Traiectoriile Și cadrele cheie de miȘcare ale sferelor
În Figurile 9 și 10 sunt prezentate două imagini succesive din animație:
Fig. 9 Poziția sferelor în momentul ciocnirii
Fig.10 Poziția sferelor după ciocnire
Renderizând animația se observă că sferele, în urma ciocnirii, capătă și o
mișcare de rotație, exact ca în realitate, modulul de dinamică implementat
în 3D Studio Max fiind foarte performant.
|