5 Simulazione in Blender 2.76 di un oceano: progetto “Baia”
5.1 Modellazione e richiami alla teoria
Questo progetto si compone di numerosi elementi, che vanno ad arricchire la scena simulata e che, nel seguito, verranno mostrati. Di questi, però, il più importante risulta essere il mare, la cui simulazione è oggetto di questa trattazione. Quando viene applicato ad un oggetto geometrico, il modificatore oceano, nel pannello proprietà è possibile impostare numerosi parametri, diversi dei quali trovano una corrispondenza diretta con la teoria. Di seguito si elencano i più importanti.
La geometria è il più importante e definisce il modo con cui viene simulato il mare ed il suo comportamento. Questa può essere generate o displace. Utilizzando la geometria generate, il simulatore crea delle tiled mesh che corrispondono alla risoluzione dei dati e che vanno a sostituire la geometria già esistente, cioè l’oggetto iniziale, con una griglia. Con la seconda geometria, invece, si usa il
piano per la creazione di vertici che vengono poi spostati sull’asse verticale. E’ possibile vedere queste due tipologie di geometria nei sotto-paragrafi 4.4.2 e 4.4.3, nei quali la geometria displace corrisponde all’uso del campo di altezze per la simulazione.
Non essendo state effettuate operazioni di “scalatura”, nelle figure 3, 4 e 5 si possono notare alcune differenze che risultano maggiormente visibili nel caso il piano venga animato. Nel caso la geometria sia generate l’oggetto iniziale, come già specificato, viene sostituito, conseguentemente è necessario introdurre un canale UV che permetta di far corrispondere allo spazio UV, la griglia simulata. In questo progetto, per la creazione di un’ambientazione realistica, si è preferito l’utilizzo della geometria generate che ha permesso una lavorazione più immediata e semplice.
Figura 3a - Piano senza modificatori Figura 3b Piano con modificatore Oceano Generate
Figura 3c – Piano con modificatore Oceano Displace
Il parametro tempo permette, grazie all’impostazione di keyframe, di effettuare l’animazione vera e propria del mare.
Il parametro depth o profondità, il quale viene trattato nella teoria al paragrafo 4.4 e a cui ci si riferisce con il simbolo H, va a modificare la tipologia di mare simulato e la velocità delle onde. Come già specificato nella trattazione, per valori bassi del parametro, si rappresentano acque basse aventi onde più piccole e velocità minore.
Il parametro resolution è quello che va ad influenzare maggiormente la qualità e i costi, di conseguenza la velocità, della simulazione. Questo parametro, infatti, indica la risoluzione della griglia 2D generata dalla simulazione, cioè la dimensione dei dati contenuti in essa, indicata come potenza del due la cui base è il valore del parametro. Una valore pari a quattordici, indica che si avranno dei dati di dimensione 196𝑥196.
Va di per sé che, la qualità della simulazione e il costo computazionale, sono direttamente proporzionali al valore di tale parametro.
La choppiness e la scala sono due dei parametri più importanti per la definizione delle onde e, quindi, per una loro realistica e plausibile simulazione. Già dal nome, è possibile collegare il primo parametro
al capitolo precedente, con la costante λ di choppiness. Come già introdotto (paragrafo 4.4.3), questa permette, assumendo valori nell’intervallo [0,1], di modificare lo spostamento delle onde e i picchi delle onde. Blender pone un limite superiori pari a quattro, tuttavia per valori superiori a uno in combinazione con la scala si possono generare buchi nella mesh. Per choppiness pari a zero, il mare viene spostato lungo l’asse verticale, mentre per valori maggiori, vengono simulati anche gli spostamenti relativi agli assi orizzontali. Il parametro scala, indicato nel paragrafo 4.4.3 come 𝐴𝑖𝑗, modifica l’ampiezza delle onde, andando a
scalare tutti gli aspetti della simulazione dallo spostamento sugli assi alla schiuma del mare.
Figura 4 - Oceano con choppiness=0 e scale=0. Caso limite piano.
Figura 5 - Oceano con choppiness=2 e scale=6. Caso limite mesh rotta.
La combinazione di choppiness e scala permette la simulazione di mari relativamente calmi a mari molto mossi. Nelle figure 6 si può comprendere meglio come tali parametri modifichino l’oceano.
I parametri allineamento, direzione e
smorzamento. Il primo specifica la forma
delle onde in relazione al vento, per valori elevati, il vento soffia verso una direzione specifica, comprimendo le onde. Il parametro direzione specifica, appunto, tale direzione. Il parametro
smorzamento indica, invece, come le onde si riflettono le uno con le altre e la direzione di tale riflessione. E’ intuitivo che il secondo e terzo parametro siano subordinati al primo. Infine, vi è la possibilità di impostare un valore minimo limite della dimensione delle onde, applicando così un filtro, un valore di velocità del vento e parametri per la generazione della schiuma.
Figura 6a-Choppiness=0 e scale=1. Figura 6b-Choppiness=0 e scale=2. Figura 6c-Choppiness=2 e scale=4.
Figura 6d-Choppiness=1 e scale=1 Figura 6e-Choppiness=1 e scale=2 Figura 6f-Choppiness=1 e scale=4
Figura 7 – Pannello dei parametri del modificatore oceano.
La figura 7 mostra il pannello proprietà, in cui sono mostrati i valori impostati per i vari parametri nella simulazione dell’oceano.
Considerata la scena che si è voluta creare, i parametri evidenziati di giallo nella figura 7 variano nel tempo, così da poter mostrare gli effetti che questi hanno direttamente a video e ottenere una simulazione realistica.
Figura 8 – Graph editor per l’oggetto oceano. In viola il parametro tempo, che controlla l’animazione dell’oceano, in arancione la scala delle onde.
Alla modellazione dell’oceano si unisce quella degli altri elementi della scena, quali la barca, il pontile, le palme, la spiaggia e tutti gli elementi in essa presenti.
Questi, ad eccezione delle palme e dei cespugli, sono stati modellati a partire da forme geometriche di base tramite le tecniche fornite da Blender. Le palme, infatti, data la complessità di modellazione di un albero, sono state realizzate grazie ad un plug-in. Di seguito si mostra il modello dell’intera spiaggia.