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.
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? –
È 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
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. –