THINKING PARTICLES - CONDITIONS.


I possibili nodi che possono essere inseriti nella Schematic View si trovano nel pannello di creazione che appare quando si seleziona una Dynamic.

 

 

 

 

Vediamo cosa c'è dentro cominciando dalle CONDITIONS.

 

Le Conditions sono utilizzate per controllare il flusso di dati di elementi Operator e Helper.

Le Conditions si trovano qui:

Le Conditions funzionano come dei test di tipo "If-Then". Cioè "SE si verifica una condizione ALLORA fai quella cosa".

Tutte le Conditions hanno un output di tipo Boolean che invia un valore "true" oppure "false" in base al parametro che è stato testato.

Esempio:

Con questo sistema viene fatta variare l'emissione di particelle in base alla distanza fra due oggetti.


ALWAYS TRUE.

L'Always True genera sempre un valore booleano "true" (1).

 


DISTANCE.

Questa condizione misura la distanza fra due particelle o oggetti. Quando la distanza è inferiore al valore stabilito si ottiene in uscita un valore "true".

 

I parametri sono questi:

TIME.
Questo parametro si utilizza per specificare il tempo locale del nodo, effettuando un ovverride sul calcolo del tempo globale del sistema.

POSITION1/2.
Posizione del nodo n.1/2

DISTANCE.
Distanza fra i due nodi.

DIRECTION.
Direzione XYZ normalizzata definita dalle posizioni dei due Node.

RADIUS1/2.
Se la distanza fra i due nodi cade all'interno del range specificato da [Radius1...Radius2] allora la condizione è "true".

Ad esempio prendiamo 2 scatole che si avvicinano e si allontanano. Quando la loro distanza è inferiore a un certo valore le particelle cambiano forma.

 

 


IN GROUP.

Questa condizione si utilizza per controllare se una particella appartiene a un gruppo particolare.

IN GROUP.
Qui si sceglie il gruppo a cui la particella deve appartenere per rendere la condizione "true".

SUBTREE.
Se è attiva vengono considerati anche i sottogruppi appartenenti al gruppo selezionato nel menù InGroup.

Esempio: solo le particelle appartenenti al gruppo ParticelleA cambiano forma durante l'intervallo specificato in Time Interval:

 

 


IN MESH

Questa condizione serve a definire se una particella si trova all'interno di un volume oppure no.

Esempio:

In questo caso le particelle cambiano forma quando entrano all'interno del volume dell'oggetto.
Si noti che il nodo InMesh necessità di 2 input:
NODE: qui si specifica la geometria che si comporta come volume di controllo.
POSITION: qui occorre collegare l'output POSITION del nodo che specifica le particelle.


LIGHT.

Questo nodo pone una condizione quando una particella viene illuminata da una sorgente luminosa. Il test è effettuato sul valore di illuminazione per un singolo punto dello spazio; per considerare con maggiore precisione l'illuminazione occorre usare l'operatore MatterWaves.

 

POSITION.
Si utilizza per definire l'oggetto utilizzato come punto in cui viene calcolata l'illuminazione. Quando l'oggetto è illuminato, la condizione è vera. Altrimenti è falsa. L'oggetto viene definito con un helper di tipo Node connesso a questo input.

NORMAL.
Si utilizza per calcolare l'illuminazione della particella in base alla direzione della sua normale rispetto alla direzione della luce.

THRESHOLD.
Intensità di luce al di sopra della quale la condizione è "true".

COLOR.
Imposta un colore utlizzato per verificare se la particella è illuminata.

VARIATION.
Variazione percentuale del colore della luce.

 

Ad esempio consideriamo questa situazione:

Facciamo passare davanti alla luce la teiera. Al suo passaggio, le particelle cambiano forma. Quando la teiera esce dalla luce le nuove particelle create riassumono la forma originale, mentre quelle che hanno cambiato forma restano immutate.


 


PARTICLE AGE.

La condizione Particle Age è usata per definire l'età di una particella. Produce in uscita un valore boolean di tipo "true" quando viene soddisfatta una condizione in un preciso istante della vita della particella.

Tra i parametri di input ce ne sono alcuni particolari. Ad esempio questo:

TYPE (intero)
Rappresenta il tipo di condizione sull'età della particella che deve essere testata.
0= nascita.
1= morte.
2= ingresso nel gruppo.
3= relativo.
4= assoluto.

I parametri della condizione sono questi:


BORN/DIE/ENTERS GROUP.
La condizione è considerata "true" per una particella nell'istante in cui questa nasce/muore/entra nel gruppo collegato alla condizione.

RELATIVE.
Percentuale di vita delle particelle: il valore minimo è 0, il massimo 100. I valori Time1/2 servono a identificare gli estremi dell'intervallo di percentuale di vita da considerare.
La condizione vale "true" per una particella quando la sua vita entra dentro l'intervallo qui specificato.

ABSOLUTE.
Tempo calcolato in valori assoluti di frame da quando la particella entra nel gruppo. Time1/2 indicano gli estremi dell'intervallo di tempo considerato.

Esempio:
Le particelle partoono come cubetti ma cambiano forma in corrispondenza del 20% della loro vita diventando sferette. Poi arrivate all' 50% tornano cubetti.


 


 

STD COLLISION.

Questa condizione si utilizza per verificare se avviene una collisione fra una particella e uno space warp standard di 3DStudio. Viene generato un valore "true" per ogni collisione valida.

NODE.
Tutti gli space warp di collisione (es.: i Deflector) legati al nodo che viene connesso qui saranno utilizzati al posto di quelli linkati direttamente al l'icona del ThinkingParticle.

POSITION/VELOCITY.
Posizione e velocità delle particelle che collidono.

Questi sono i parametri:

Da qui si attivano e disattivano gli space warp presenti nella scena a cui il Thinking Particle è linkato. Gli space warp appaiono nella lista Inactve solo dopo essere stati creati nella scena ed essere stati linkati all'icona del ThinkingPaticles.

In questo esempio è stato creato uno space warp Deflector. Quando le particelle incontrano il deflettore non cambiano traiettoria, ma la loro forma viene modificata.



THRESHOLD.

Questa condizione controlla che un valore in input raggiunga un certo valore prima di produrre un output.

VALUE.
Valore da testare. Se cade nell'intervallo specificato da 2 valori limiti (Threshold1/2), allora la condizione genera un valore output di tipo "true".

INSIDE.
Definisce se il Value in input è valutato all'interno dell'intervallo [Theshold1....Threshold2] oppure all'esterno.

Esempio: le particelle cambiano forma in base alla loro età.

Queste sono le due soglie che definiscono l'intervallo Treshold.

 


 

TIME INTERVAL.

Questa condizione è usata per definire un intervallo di tempo all'interno del quale accade qualcosa. Può essere utilizzato ad esempio per limitare la durata di un test o l'attivazione di un operatore.

INVERT.
Inverte l'intervallo temporale su cui la condizione è attiva.

Ad esempio utilizziamolo per limitare l'emissione di particelle.