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.

