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.
|