19 votos

¿Por qué es el gradiente de ruido de mejor calidad que el valor de ruido?

He estado leyendo acerca de las matemáticas detrás de ruido Perlin, un degradado de ruido en función a menudo se utiliza en gráficos de computadora, de Ken Perlin la presentación y Matt Zucker del FAQ.

Entiendo que cada punto de la cuadrícula, $X$, tiene una pseudo-aleatorio gradiente asociado, $g(X)$ - sólo un vector de la unidad de longitud que aparece al azar. A la hora de encontrar el valor de ruido en un punto de $P$, para cada punto de la rejilla que lo rodea, $Q$, el producto escalar de a $g(Q) \cdot (P-Q)$ se encuentra. A continuación, estos productos de puntos se interpolan para encontrar el valor de ruido en el punto de $P$.

La cosa que no entiendo, sin embargo, es por eso que el uso de gradientes. Hay otro tipo de ruido la función de llamada valor de ruido en el que cada punto de la rejilla tiene un valor escalar en lugar de un gradiente. He visto artículos que dicen que el gradiente de ruido produce una mejor calidad de ruido, pero no explican por qué. Me parece que no puede visualizar cómo este punto, producto hace que el ruido de la mejor calidad. ¿Qué significa "calidad" significa aquí? ¿Por qué Ken Perlin decidir el uso de los degradados?

9voto

palehorse Puntos 8268

Esto es sólo mi suposición.

En resumen: Gradiente de ruido conduce en general a más visual atractivo texturas, ya que corta las frecuencias bajas y enfatiza las frecuencias alrededor y por encima de el espaciado de la cuadrícula.

Vamos a comparar un ingenuo valor de ruido de procedimiento con ingenua de un gradiente de uno, para una imagen en escala de grises.

El valor de ruido: pintamos los puntos en la cuadrícula con valores aleatorios (ruido blanco) y rellenar los píxeles que lo rodean por interpolación lineal. Esto se verá feo porque (entre otras cosas) algunas de las aleatoria de los puntos de cuadrícula pasará a tener valores similares, y luego hay grandes manchas de color uniforme (de baja frecuencia). [*] Específicamente, los valores de los píxeles en la vecindad de un punto de la rejilla serán similares - y por lo tanto, dependen de la red de otros puntos distintos a tener altas frecuencias... y esto será en la mayoría de los (con suerte) de la orden de la rejilla de separación.

Degradado de ruido: calculamos aleatorio (uniforme, ruido blanco) gradiente en cada punto de la cuadrícula, y calcular los valores mediante la interpolación de los productos de puntos de la gradiente con las distancias. Considerar de nuevo lo que sucede en el neighborhoood de un punto de la rejilla, específicamente a través de una pequeña circunferencia, sin considerar el efecto de la distancia de los puntos de cuadrícula. Es evidente que la calculada valor de imagen (como un producto escalar) en este pequeño barrio de la visita -sin problemas, pero totalmente el blanco-negro de la gama. Entonces, podemos esperar que los valores de la imagen nunca tendrá puntos uniformes, es decir, no vamos a prácticamente tienen frecuencias por debajo de la de el espaciado de la cuadrícula.

[*] Un problema similar surge en semitonos/tramado: es visualmente desagradable utilizar el binario de ruido blanco debido a la baja frecuencia de la componente; un mejor algoritmo de tramado, como Floyd-Steinberg, produce en lugar de alta frecuencia ("ruido azul").

3voto

christina Puntos 18

La respuesta es fácil y matemática. Matemática de calidad.

Con el valor de ruido la función no tiene ningún cero en el punto de que el valor de - el entramado punto.

Si puede ver el valor en el punto de gradiente, tienes un cero de la función y el gradiente se define la tangente en ese punto.

La ventaja es una transición suave como la primera derivada partidos de la izquierda y el lado derecho de la gradiente, que conduce a un suave aparentemente de transición.

Con Perlins original polinomio de 3er grado, sin embargo, la segunda derivación no era cero, lo que significa que tenía una curvatura en el punto de celosía.

Más tarde se introdujo la mejora de Perlin con el polinomio de 5º grado, con, además, la segunda derivada es cero.

Con esto, la transición a través de una celosía punto es absolutamente lineal, no importa qué tan lejos "zoom" y es siempre suave.

2voto

PHeiberg Puntos 15909

Un laico de respuesta, a partir de la experiencia en el Libnoise de todos modos, es que el Valor de ruido no es como la curva de gradiente de ruido... degradado de ruido asimila blobs un poco más cerca de la ronda de blob estructuras, mientras que el valor de ruido parece producir muchos borde recto en forma de cápsula blobs, y si haces las montañas con ella en 3d y 2d ecuación de la fuente, usted encontrará muchas más montañas tienen algún tipo de forma de cápsula o un borde recto en uno de sus lados. creo que si a su menor calidad que buscan valor de ruido debe ser un poco más rápido.

En mi experiencia, el gradiente de ruido no es perfectamente lisa en las transiciones, al menos no es perfectamente lisa redondeada función de ruido... escribí el código que mide la suavidad de ruido perlin y me encontré con que toda la libnoise funciones que yo estaba usando, fueron igualmente lleno de ruido digital ( aunque yo no sabía cómo ajustar la configuración de calidad, la estaba usando por defecto libnoise valor de gradiente y ruido).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X