vecinos vecino ruidos ruido que para musica materiales hacer habitacion exterior evitar escuchar eliminar como cancelador calle bloquear ambiental aislar image-processing textures perlin-noise simplex-noise

image-processing - vecino - materiales para aislar el ruido



Ruido simple contra ruido de Perlin (7)

"Si no está roto, no lo arregles".

Vea si puede encontrar a alguien que le explique por qué Simplex es mejor. "Es más rápido y se extiende a múltiples dimensiones" y "el ruido simple intenta reducir la complejidad de las funciones de ruido de mayor dimensión" fue lo que encontré. La mayoría de nosotros trabajamos en 2 o 3 dimensiones, tal vez 4 si tenemos la suerte de estar haciendo algo con el tiempo.

Creo que es justo decir que hay muy poco uso de Perlin en tiempo real que es demasiado lento de manejar, que para la mayoría de los propósitos, el ruido estándar de Perlin es suficiente. En los renderizados previos (como los utilizados en la industria del cine) el tiempo no es realmente importante ya que las representaciones son lentas de todos modos; y en simulaciones en tiempo real, tenemos suficientes formas de reducir el alcance del procesamiento continuo que es poco probable que genere mapas de ruido masivos cada pocas nano / milisegundos, eso es solo una optimización básica en tiempo real.

Me gustaría saber por qué el ruido de Perlin sigue siendo tan popular hoy en día después de que salió Simplex. El ruido simple fue hecho por el propio Ken Perlin y se suponía que se haría cargo de su antiguo algoritmo, que era lento para dimensiones más altas y con mejor calidad (sin artefactos visibles).

El ruido simple salió en 2001 y durante esos 10 años solo he visto a la gente hablar del ruido de Perlin cuando se trata de generar mapas de altura para terrenos, crear texturas de procedimientos, etcétera.

¿Alguien podría ayudarme? ¿Hay algún inconveniente en el ruido Simplex? Escuché rumores de que el ruido Perlin es más rápido cuando se trata de ruido 1D y 2D, pero no sé si es cierto o no.

¡Gracias!


Alguna preferencia por el ruido Perlin clásico puede provenir de la capacidad de utilizar valores conocidos que den como resultado características visuales conocidas, en lugar de invertir el tiempo requerido para encontrar los parámetros de entrada necesarios para obtener una salida equivalente usando ruido simple.

[el ruido simple] tiene un carácter visual ligeramente diferente, por lo que no siempre es un reemplazo directo del ruido clásico. Las aplicaciones que dependen de las características detalladas del ruido clásico, como el tamaño de característica preciso, el rango exacto de valores o las estadísticas de orden superior, pueden necesitar algunas modificaciones para verse bien cuando se usa ruido simple.
Stefan Gustavson''s Simplex noise desystified


Ken Perlin patentó su algoritmo de ruido simple. Su algoritmo clásico no está patentado, que yo sepa.


No me sorprendería en absoluto si fuera simplemente por el nombre. Debe elegir entre el ruido Perlin y el ruido Simplex. Este último es más nuevo y tiene algunas ventajas. Pero, sabes, suena como la versión ''simple'' de los dos. Iré con el más complejo; se supone que el ruido es complejo, ¿no?

La gente tiende a ser bastante irracional.


Solo una experiencia anecdótica, la razón por la que utilicé el ruido clásico de Perlin fue porque Ken Perlin tenía una implementación en C del ruido Perlin clásico, al tiempo que proporcionaba una implementación Java de ruido de Perlin mejorado. Aunque suene tonto, el ruido clásico de Perlin fue más fácil de copiar y pegar en mi programa, así que es por eso que lo usé. Siempre tuve la intención de trasladar la implementación de Java, pero el clásico Perlin parecía funcionar bastante bien, así que nunca me molesté en agregarlo.

Stefan Gustavson tiene algunas implementaciones C muy buenas de Simplex Noise, aquí


Todavía no he trabajado con el ruido simple pero puedo pensar en algunas razones:

  • Tal vez porque estamos acostumbrados a cuadrados y ángulos de 90 grados? Cuadrados, cubos, ... son mucho más naturales para nosotros que los triángulos, tetraedros o hipertetrados.
  • Cada capa en ruido perlin es solo un mapa de bits simple.
  • La salida del ruido perlin son cuadrados fácilmente enlosables. Y las texturas a menudo son cuadrados de azulejos.
  • Por lo general, usa un ruido de baja dimensión. En mi experiencia 2D y 3D son los más comunes.
  • El ruido simple es simplemente más difícil de entender que un implemento
  • Probablemente, los muestreadores en una tarjeta gráfica pueden hacer la interpolación para mapas de bits ortogonales como se usa en el ruido perlin, pero no la interpolación en mapas de bits con ángulos de 60 grados utilizados en el ruido simple. (este punto podría estar mal, no he trabajado con tarjetas gráficas durante algunos años)

Yo respondería la pregunta sin rodeos, diría que es porque el ruido de Perlin es muy simple de entender. El ruido simple por el contrario es una bestia mucho más compleja y hairer. Obtener una implementación de Perlin en funcionamiento es mucho más fácil que simplex y, por lo tanto, obtiene más uso. No ayuda el caso de Simplex que ambos sean muy similares en las imágenes (especialmente después de manipular el ruido un poco).

El mismo Kenneth Perlin diseñó el algoritmo simplex para una implementación basada en hardware y, por lo tanto, tomó decisiones de diseño que lo hacen más fácil. Un ejemplo de esto se puede ver en este quoute, de la patente.

Necesidad de memoria de tabla: el algoritmo original de ruido se basó en varias búsquedas de tabla, que son bastante razonables en una implementación de software, pero que en una implementación de hardware son costosas y constituyen un cuello de botella de costos, particularmente cuando se requieren múltiples instancias de la función Noise en paralelo. Idealmente, una implementación de ruido no debería depender de la presencia de tablas de tamaño significativo.