Avatar di Francesco Dellagiacoma

a cura di Francesco Dellagiacoma

Soft and rigid bodies

Chi utilizza programmi per la modellazione 3D, come Maya o Blender, probabilmente conosce bene la differenza che intercorre tra corpo rigido e corpo morbido, detti più comunement rigid body e soft body. Utilizzare un programma di questo tipo come esempio, può aiutare a far capire la differenza che passa tra queste due tipologie di corpi, in questo caso ci affidiamo ad una citazione:

In un soft body: possiamo trattare un oggetto come se fosse formato da n vertici collegati tra loro da delle molle, le distanze tra i punti non sono fisse, ma seguono complesse leggi fisiche.

In un rigid body: possiamo trattare un oggetto come se fosse formato da n vertici collegati tra loro da delle aste, le distanze tra i punti sono quindi fisse, e le interazioni dell'oggetto meno complesse da calcolare.

È doveroso spiegare che anche nel caso del soft body ci troviamo di fronte ad un'approssimazione, che per quanto complessa non è comunque completa: in termini prestazionali trattare un oggetto come se fosse "morbido" risulta comunque molto più pesante che costruirlo rigido. Ecco spiegato perché, soprattutto nei videogiochi, quasi tutti i modelli si appoggiano a strutture rigide, e gli sviluppatori utilizzano le animazioni per donargli un certo grado di "morbidezza". È quindi probabilmente giusto pensare che, durante le scene in cui mantelli e gonne dei nostri eroi svolazzano in aria, l'effetto sia dato da un'animazione pre-calcolata e che l'effetto sia totalmente fittizio.

Per ottenere una simulazione reale (nel vero senso della parola) di un corpo, dovremmo riuscire a calcolare e computare ogni sua parte singolarmente: visto il numero "non proprio basso" di particelle di cui è composta la materia, l'impresa risulta impossibile. Nei videogiochi è quindi necessario scegliere il compromesso migliore a seconda delle nostre esigenze, ed utilizzare corpi rigidi, ma animati, per le nostre simulazioni. Programmi 3D più importanti, spesso legati all'animazione in computer grafica (ma anche a ricerche scientifiche di vario tipo) trattano invece i corpi come morbidi, sfruttando calcolatori molto potenti per ottenere risultati soddisfacenti. 

Per il sistema del soft body, oltre a quella "a molla", esistono anche altri tipi di simulazione, come ad esempio il FEM. Il FEM è l'acronimo di Finite Element Method, sistema che utilizza una tecnica della meccanica strutturale nata nell'ambito dell'ingegneria per calcolare in maniera molto realistica la dinamica dei corpi. Il sistema in questo caso viene costituito da un numero finito di elementi, tali elementi possono avere diverse proprietà in termini di densità, elasticità e coefficienti di vario tipo.

Il corpo viene quindi modellato come un elemento elastico continuo, ovvero che riempie totalmente lo spazio occupato (ignorando quindi la composizione particellare della materia), formato da una serie come già detto finita di sotto-elementi. Le interazioni di questi sotto-elementi, solitamente tetraedrici, vengono risolte secondo un modello del materiale del quale sono costituiti.

Entra in gioco quindi la matematica dei tensori, strumenti geometrici particolarmente complessi che ci aiutano a capire lo stato della materia.  In questo caso, coloro che hanno famigliarità con il concetto troveranno una similitudine tra la triangolizzazione di un poligono (il ridurre una figura piana ad una serie di triangoli, e la "tetraedralizzazione" di un solido.

La modellazione dei corpi è una branca scientifica sicuramente molto complessa ed interessante, ma che - solitamente - incide poco sul carico di calcoli che un computer deve eseguire durante una sessione di gioco. Torneremo ancora a parlare di questi elementi nei prossimi approfondimenti, magari anche più nel dettaglio, per ora accontentiamoci di aver scoperto quanto può essere complicato trattare il comportamento di un oggetto in maniera "morbida".

Potete scoprire molto altro sulla scienza nei videogiochi leggendo tutti gli articoli di questa rubrica:

Leggi altri articoli