2012-01-10 23 views
6

Cerca di fare il massimo che posso, non riesco a trovare alcun tutorial su Perlin \ Samplex Noise in 1D.Perlin Noise for 1D?

Ho cercato in tutto Internet ma non riesco a trovare nulla. Di solito, i siti che menziono il rumore 1D perlin sono molto poco chiari o mostrano semplicemente il codice

+0

Il codice che hai trovato non funziona per te? Sembrano esserci diversi esempi di codice online che si applicano alla tua domanda ([una delle quali] (http://lotsacode.wordpress.com/2010/02/24/perlin-noise-in-c/)). Se il codice è disponibile e stai cercando il codice, quale sembra essere il problema? –

+0

È una combinazione di tutto il codice là fuori che è relativamente difficile da seguire, e se c'è del codice non c'è quasi nessuna spiegazione su di esso. – DubyaDubyaDubyaDot

+1

Stai chiedendo un algoritmo complicato. Ovviamente qualsiasi codice che lo implementa sarà difficile da seguire. Hai capito cosa dovrebbe fare * il codice *? Se lo facessi, il codice in rete sarebbe probabilmente meno difficile da seguire. –

risposta

-1

So che questa domanda è vecchia e ha già avuto risposta, ma non è possibile semplicemente prendere le righe dal rumore Perlin 2D, ad es. usa sempre 0 per x o y?

+0

Sarebbe comunque una grande perdita di prestazioni. –

+0

Sì, è vero ... – Jwosty

+0

dovrebbe essere un commento –

1

So che questa è una vecchia questione, ma qui è una delle più chiare spiegazioni circa l'interpolazione tra i punti fissi che compongono 1d disturbo Perlin http://webstaff.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf

Una delle cose più importanti da sapere, utile a tutta la programmazione è la funzione di interpolazione ...

http://paulbourke.net/miscellaneous/interpolation/

una volta che hai i punti casuali con smoothstep interpolazione, si dispone di una sorta di funzione regolare rumore 1d.

vedere smoothstep su wiki. molto sull'argomento via google. https://en.wikipedia.org/wiki/Smoothstep

a quanto pare il collegamento ipertestuale è instabile, eccolo di nuovo:

rumore Simplex demistificato

Ken Perlin presentato “rumore simplex”, una sostituzione per il suo algoritmo di rumore classico. Il classico "Perlin noise" gli è valso un premio per l'accademia ed è diventato un onnipresente aspetto procedurale primitivo per la grafica computerizzata nel corso degli anni, ma a ben vedere ha alcune limitazioni. Ken Perlin stesso ha progettato il rumore simplex in modo specifico per superare queste limitazioni, e lui ci ha dedicato molto buon pensiero. Pertanto, è un'idea migliore del suo algoritmo originale.

Alcuni dei vantaggi più importanti sono:

• rumore Simplex ha una complessità computazionale inferiore e richiede un minor numero moltiplicazioni.

• Il disturbo simplex scala a dimensioni superiori (4D, 5D e superiori) con costi di calcolo molto inferiori, la complessità è per le dimensioni anziché per il rumore classico.

• Il disturbo simplex non presenta artefatti direzionali evidenti.

• Il disturbo simplex presenta un gradiente continuo ben definito ovunque, che può essere calcolato a un prezzo abbastanza basso da .

• Il rumore semplice è facile da implementare nell'hardware.

Purtroppo, anche adesso all'inizio del 2005 pochissime persone sembrano capire il rumore simplex e quasi nessuno lo usa, motivo per cui l'ho scritto. Cercherò di spiegare l'algoritmo un po 'più a fondo di quanto Ken Perlin abbia avuto il tempo di fare nelle sue note di corso dal Siggraph 2001 e 2002, e spero che sia chiaro che non è così difficile da capire come sembra. Da quello che ho imparato, ciò che confonde maggiormente la gente è la natura impenetrabile dell'implementazione di riferimento di Ken Perlin in Java.Presenta un codice molto compatto e non commentato a dimostrando il principio, ma quel codice non è chiaramente pensato per essere letto come un tutorial. Dopo alcuni tentativi di ho rinunciato al codice e ho letto il suo documento, che era molto più chiaro.

Non cristallo chiaro, tuttavia, poiché presenta l'algoritmo principalmente in parole e frammenti di codice. Vorrei che apprezzi alcuni grafici e figure e alcune utili equazioni, ed è quello che cerco di fornire qui, per rendere più facile per gli altri capire la grandezza e la bellezza del rumore simplex. Lo spiegherò anche le cose in una e due dimensioni per rendere le cose più facili da spiegare con i grafici e le immagini, quindi passare a tre e quattro dimensioni. Rumore classico Per spiegare il rumore simplex, è utile avere una buona conoscenza del rumore Perlin classico. Ho visto alcune spiegazioni cattive e disinformate in quest'area, quindi per assicurarmi di avere il lavoro necessario, presenterò prima il classico rumore di Perlin.

Il disturbo perlinico è un cosiddetto disturbo gradiente, il che significa che si imposta un gradiente pseudo-casuale in punti regolari nello spazio e si interpola una funzione uniforme tra quei punti. Per generare il disturbo Perlin in una dimensione, si associa un gradiente (o pendenza) pseudo-casuale per alla funzione rumore con ogni coordinata intera e impostare a zero il valore della funzione su ciascuna coordinata intera .

Per un dato punto a metà tra due punti interi, il valore viene interpolato tra due valori, cioè i valori che sarebbero stati il ​​risultato se le piste lineari vicini dal sinistra e verso destra erano stati estrapolati al punto in questione. Questa interpolazione è un algo liscio.

+0

Il link è morto –

+1

Non era morto ho cliccato su di esso lo stesso giorno in cui è stato controllato. è viva. –

+0

Mi dispiace, ora funziona. –