In Perlin noise, perché hanno bisogno di vettori e come usarli esattamente?

5

Sto leggendo questo tutorial sul rumore di Perlin: link che sembra essere il più chiaro ma non perfetto. Molti dettagli vengono saltati e un sacco di codice non spiegato.

La mia domanda generale è, perché abbiamo bisogno di vettori per il rumore di Perlin (invece di solo valori di rumore a coordinate specifiche), perché devono essere vettori unitari e come combinarli con le coordinate del punto di input date?

Inoltre, l'articolo fornisce questo pezzo di codice come calcolo vettoriale che sembra cercare di trovare le coordinate di una cella quadrata (ad eccezione di 1 viene sottratto invece di essere aggiunto per qualche motivo):

// Computing vectors from the four points to the input point
float tx0 = x - floorf(x);
float tx1 = tx0 - 1;

float ty0 = y - floorf(y);
float ty1 = ty0 - 1;

Non sembra alcuna operazione vettoriale.

    
posta Val 08.01.2016 - 15:53
fonte

1 risposta

1

Perlin Noise è un concetto in matematica. Se riesci ad immaginare una sezione di una catena montuosa, otterresti un movimento relativo, fluido, come un'onda sinusale distorta. Il concetto è che ogni posizione, (x, y) posizione è relativa al suo "vicino". Questa è l'idea con i vettori. I vettori sono una direzione, non un punto statico. Quindi, il vettore viene utilizzato per fornire una transizione uniforme tra i punti. Fornisce una direzione generale delle linee. Altrimenti si finirebbe con qualcosa che assomiglia a un grafico del mercato azionario. Una bitmap con valori di gradiente casuali molto probabilmente non avrà transizioni - non avrebbe senso.

Immaginate cosa sarebbe la bitmap del valore del gradiente casuale come una mappa dell'altezza. Le proprietà di una rete saranno caotiche. Enormi aumenti e diminuzioni senza flusso generale.

    
risposta data 17.08.2018 - 05:36
fonte

Leggi altre domande sui tag