Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuţii   




Cartea de oaspeţi   




Mesaje   





Agora   








Clic aici
PC Report - ultimul numar aparut


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.


PC Magazine Ro | CD ROM | Redactia | Abonamente | CautareArhive

Copyright © 1999-2002 Agora Media.

webmaster@pcmagazine.ro

LG - Life´s Good

deltafri

Concurs de Grafica Digitala si Web Design

www.agora.ro

www.agora.ro