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, Martie  2002

Efecte speciale cu 3D Studio Max (II)


Ionuț Ghionea

Așa cum am promis în numărul trecut, continuăm cu prezentarea a încă două soluții edificatoare pentru posibilitățile produsului 3D Studio Max.

Modelarea unei sticle al cărei conținut se varsă pe o masă
Ne propunem de această dată să creăm o sticlă, răsturnată pe o masă și din care curge lichid. Deși pare complicată la prima vedere, modelarea sticlei și a lichidului este foarte simplă, dacă se urmăresc câțiva pași de bază.

Pentru început, se desenează sticla, realizând cu comanda [Line] din [Create] -> [Shapes] profilul din Figura 1.

Se aplică apoi modificatorul [Lathe] din [Modify], rotind profilul creat cu 3600, obținându-se sticla din Figura 2. Numărul de segmente (Segments) trebuie să fie cel puțin egal cu 30, iar după rotire se mai poate aplica modificatorul [Modify] -> [MeshSmooth] pentru a rotunji unele colțuri și a da o formă cât mai reală sticlei.

În acest moment, sticla stă în poziție verticală. Pentru a simula scurgerea lichidului, aceasta trebuie răsturnată. În acest scop, se adaugă în scenă o masă rotundă, se rotește sticla cu 900 și se poziționează deasupra mesei. Adăugarea câtorva lumini și a unei camere este necesară, obținându-se Figura 3.

Până aici nimic deosebit. A venit momentul creării lichidului, cu ajutorul sistemului de particule.

Sistemele de particule prezintă o variație în timp, modificându-și permanent aspectul. Un sistem de particule creează o serie de mici particule controlate printr-o diversitate de parametri. Aceste sisteme sunt folosite în simulări ale ploii, zăpezii, focului, fumului, lichidelor curgătoare etc. Asupra sistemelor de particule pot acționa și diferite elemente de deformare spațială (space warp - modificatori ce afectează obiectele în coordonate spațiale universale), cum ar fi vântul, gravitația și deflectorii, ce controlează mișcarea particulelor în cadrul scenei.
3D Studio Max 4 acceptă șase tipuri de sisteme de particule:

  • Spray: creează efecte de tip spray de complexitate redusă;
  • Snow: creează un efect de ninsoare și folosește câțiva parametri suplimentari legați de forma, dimensiunea și viteza de cădere a particulei;
  • Pcloud: creează un nor static de particule și este utilizat pentru a crea efecte precum câmpuri tridimensionale de stele;
  • Parray: folosit pentru efecte avansate de explozie;
  • SuperSpray: este o versiune îmbunătățită a sistemului spray standard și, probabil, cel mai utilizat sistem de particule;
  • Blizzard: este, de asemenea, o versiune mult îmbunătățită a efectului de ninsoare.


În cazul de față, pentru a simula cu mare precizie lichidul, se va folosi sistemul SuperSpray din panoul [Create] -> [Geometry] -> [Particle Systems] -> [Super Spray]. Se poziționează sistemul de particule în capătul sticlei, orientat (cu săgeata) către exteriorul acesteia (Figura 4).

Valorile parametrilor folosiți sunt: în meniul Basic Parameters, opțiunea Spread de la Particle Formation va lua valoarea 3, iar Percentage of Particles se va seta la 20%. În meniul Particle Generation, Use Rate are valoarea 20, Particle Motion -> Speed=7, Emit Start=0, Emit Stop=100, Display Until=100, Life=30, Particle Size -> Size=20. În meniul Particle Type se alege MetaParticles. Toate celelalte opțiuni rămân nemodificate.

În acest moment, mișcând bara de animație din poziția 0 spre poziția 100, se observă că din capătul sticlei ies niște particule, pe o direcție paralelă cu masa. Aceste particule trebuie să ajungă pe masă pe o traiectorie curbă. Pentru aceasta, din [Create] -> [Space Warps] -> [Particles & Dynamics] se alege [Gravity]. Se poziționează elementul de gravitație ca în Figura 4, alături de sistemul de particule, pe o direcție perpendiculară pe acesta, îndreptat în jos. Pentru ca acestea sa fie influențate de gravitație trebuie ca cele două elemente (Gravity și Super Spray) să fie legate (link), folosind în acest scop butonul [Bind to Space Warp], aflat în bara de butoane din partea superioară a ecranului.

Mișcând bara de animație, se observă că particulele și-au schimbat traiectoria, trec prin masă și se îndreaptă spre partea de jos a ecranului.

Cum va rămâne lichidul (sistemul de particule) pe masă? Foarte simplu: trișăm puțin. Lichidul va fi lăsat pe traiectoria sa descendentă și se desenează pe masă, chiar acolo unde lichidul o atinge, o formă oarecare, folosind [Create] -> [Shapes] -> [Line]. Noua formă trebuie să semene oarecum cu o mică baltă de lichid. Odată forma stabilită, se aplică asupra acesteia modificatorul Extrude și MeshSmooth, pentru a-i rotunji marginile ca în Figura 5.

Normal este ca în poziția 0, forma să fie foarte mică, aproape invizibilă, iar în poziția 100, să fie mult mai mare, datorită lichidului care se presupune că s-a scurs din sticlă. Ușor de realizat: se duce bara de animație în poziția 0, se micșorează forma cu butonul [Select and Uniform Scale], se apasă apoi butonul [Animate] de sub bara de animație. În poziția 100 se mărește forma până la dimensiunea finală. Se apasă iar butonul [Animate], acesta revine în poziția normală, iar animația este gata.

Se mapează masa cu un material de lemn, lichidul cu un material roșu (spre exemplu), dar puțin transparent. Evident, ultima formă creată, acumularea de lichid de pe masă, trebuie mapată cu același material ca și lichidul.

În scenă se poate adăuga o cameră care va lua locul viewport-ului Perspective și se începe renderizarea animației.

În figura 5 se observă că lichidul trece efectiv prin masă, dar, datorită acesteia, nu se mai vede în animație.

Folosirea sistemului de particule Super Spray cu opțiunea MetaParticles este puțin pretențioasă deoarece timpul de renderizare este destul de mare și crește proporțional cu numărul de particule. Totuși, MetaParticles, într-o setare corectă, imită cel mai bine lichidul. De asemenea, trebuie avută în vedere legătura între volumul de lichid care curge din sticlă și viteza de creștere a acumulării.

În figurile 6 și 7 se prezintă două imagini oarecare din timpul animației.

Se observă că iluzia creată este aproape perfectă. În acest tutorial nu s-a insistat asupra formei sticlei, a mesei sau a altor elemente, a fost prezentată numai tehnica de modelare a unui lichid.

Simularea spargerii unui obiect în momentul coliziunii cu altul
Cea de-a doua temă pe care v-o propunem este modul de utilizare a particulelor de tip Metaparticles (Metaballs) în simularea spargerii unei picături de metal topit pe o suprafață plană.

Parametrii legați de tipul particulelor permit definirea acelora ce vor afișate la renderizarea scenei. Porturile de vedere utilizează, în general, marcaje pentru reprezentarea sistemelor de particule, dar la renderizarea finală, se vor obține mai multe particule de anumite forme și mărimi ce sunt definite de utilizator. În 3D Studio Max 4 pot fi utilizate trei tipuri de particule:

  • Standard Particles: conțin particule geometrice standard, precum: triunghiuri, sfere, prisme, cuburi, dodecaedre etc;
  • MetaParticles: fiecare particulă este înlocuită cu elemente de tip Metaball. Modelarea Metaball creează tensiuni superficiale între sfere pentru a genera suprafețe cu aspect organic. Metaparticulele sunt folosite pentru a simula lichide curgătoare, ploaie, explozii etc;
  • Object Fragments: creează particule din fragmentele unui obiect. Object Fragments se folosește doar cu opțiunea Particle Array din meniul [Create] -> [Geometry] -> [Particle Systems] -> [Parray].
  • Instanced Geometry: geometria instanțiată înlocuiește fiecare particulă din sistem cu o instanță a unui element geometric selectat. Astfel, se creează un singur obiect cu o animație oarecare și se va folosi într-un sistem de particule (stoluri de păsări, stropi de apă, câmpuri de asteroizi, frunze luate de vânt etc).

Tutorialul de față prezintă realizarea unei scurte animații în care o picătură cade de la o înălțime oarecare, se lovește și se sparge de o suprafață plană.
Pentru început, se va desena suprafața plană [Create] -> [Geometry] -> [Standard Primitives] -> [Box]. Deasupra acesteia se va adăuga cel de-al doilea obiect [Create] -> [Geometry] -> [Standard Primitives] -> [Sphere]. Sfera creată va fi editată pentru a obține forma alungită a picăturii. Din [Modify] -> [Modifier List] se alege Edit Patch, cu opțiunea Vertex în secțiunea Selection. După editare, sfera trebuie să arate ca în Figura 8.
Se va folosi și o sursă de lumină albă, de tip Omni [Create] -> [Lights] -> [Omni]. Dimensiunile suprafeței și picăturii nu contează foarte mult, dar trebuie să existe, totuși, o anumită proporție între aceste două obiecte (Figura 9).

Pasul următor este realizarea animației picăturii, ce se va deplasa din poziția inițială, în jos, va intersecta suprafața, trecând de aceasta. Având picătura în poziția inițială și bara de animație (din partea de jos a ecranului) la momentul de timp 0 se începe animația. Se deplasează bara de animație la momentul de timp 30, se apasă butonul [Animate] (care se colorează în roșu), se deplasează picătura în jos, dincolo de suprafața plană și se apasă din nou butonul [Animate] (Figura 10).

Astfel, picătura se va deplasa pe verticală, din poziția inițială (timp=0) în poziția finală (timp=30).

Odată animarea deplasării picăturii terminată, vor începe etapele în care aceasta se sparge când atinge suprafața plană.

Din [Create] -> [Space Warps] -> [Deflectors] se alege Deflector și se plasează deasupra suprafeței plane, așa cum se observă în Figura 11.

În secțiunea Parameters, se setează valoarea Bounce la 0,3.

Din [Create] -> [Geometry] -> [Particle Systems] -> [PArray] se adaugă în scenă un sistem de particule folosit pentru efecte avansate de explozie. Acest sistem se va plasa sub suprafața plană, ca în Figura 12.

Sistemul de particule conține un set complex de parametri, ce vor fi modificați după cum urmează: în meniul Basic Parameters, secțiunea Object-Based Emitter se apasă butonul [Pick Object] și se selectează picătura, iar în secțiunea Viewport Display se selectează opțiunea Mesh și Percentage of Particles=25%. În meniul Particle Generation, secțiunea Particle Quantity, se selectează opțiunea Use Total, cu valoarea 450. În secțiunea Particle Motion, parametrii au valorile: Speed=1,06 și Divergence=0. În secțiunea Particle Timing, Emit Start=16 (poziția în care picătura atinge suprafața) și Emit Stop=18, Display Until=100, Life=100. De asemenea, se bifează și opțiunea Emitter Rotation.

Până în prezent, setarea opțiunilor de mai sus are următoarea semnificație: se vor emite 450 de particule, se vor afișa în forma reală (mesh) și vor avea viteza egală cu 1,06. Emiterea particulelor se va face între cadrele 16 - 18 și vor fi afișate până la cadrul 100. În secțiunea Particle Size, prin valorile Size=8, Variation=20 și Grow For=2, particulele își vor modifica dimensiunile până la valoarea 8, în numai două cadre.

În meniul Particle Type, secțiunea Particle Types se alege opțiunea Metaparticles, în secțiunea MetaParticle Parameters se stabilește valoarea Tension=0,4 și Variation=20%, iar în secțiunea Mat'l Mapping and Source se apasă butonul [Get Material From:] și se selectează Picked Emitter. Astfel, sistemul de particule va folosi materialul obiectului emițător, în cazul de față, materialul picăturii. În meniul Object Motion Inheritance se stabilește valoarea Multiplier=0,3.

În pasul următor, sistemul de particule (PArray) se va lega de Deflector prin intermediul butonului [Bind to Space Warp], aflat în partea de sus a ecranului, imediat sub bara de meniuri. Sensul corect în care se realizează legătura este de la Deflector la PArray.

Se presupune că picătura, după ce atinge suprafața plană, se sparge și, implicit, dispare. Dispariția picăturii în momentul timp=16 se realizează executând click dreapta pe aceasta când se află în poziția amintită. Din meniul ce apare se selectează [Properties] și se modifică valoarea Visibility din 1 în 0, având și butonul [Animate] apăsat pentru a crea un cadru cheie (Figura 13).

Astfel, picătura dispare complet din scenă, locul ei fiind luat de sistemul de particule. În acest moment, se observă că particulele ating suprafața plană, apoi se ridică, fără a mai reveni (Figura 14).

Se impune introducerea în scenă a altui element din categoria Space Warps, Gravity (gravitație). Acest element se plasează în scenă foarte aproape de PArray, practic suprapus sistemului de particule (Figura 15).

Gravity nu are prea multe variabile, în cazul de față acestea luând valorile: Strength=0,05, Decay=0 și cu opțiunea Planar bifată.
Adăugarea gravitației impune lichidului o stabilitate mărită, singura mișcare rămasă fiind împrăștierea sa circulară pe suprafața plană.

În Figurile 16 și 17 sunt prezentate două imagini din timpul renderizării:

După cum se poate observa, în scenă s-au adăugat materiale pentru fiecare obiect (sistem de particule și suprafața plană), mărind gradul de realism.

Acest tutorial poate fi îmbunătățit și, implicit, complicat, atât prin adăugarea altor elemente cu care să interacționeze sistemul de particule, cât și prin modificarea parametrilor acestuia.

fig 1
fig 2
fig 3
fig 4
fig 5
fig 6
fig 7
fig 8
fig 9
fig 10
fig 11
fig 12
fig 13
fig 14
fig 15
fig 16
fig 17

 


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

Copyright © 1999-2002 Agora Media.

[email protected]

LG - LifeŽs Good

www.agora.ro

deltafri

www.agora.ro

www.agora.ro

www.agora.ro