PROYECTO: Ruido Perlin 2D

Generación Procedural y Visualización Dinámica

Volver al Portafolio

Conceptos Clave

Tecnologías

[PYTHON / NUMPY]

  • Lenguajes: Python.
  • Librerías: NumPy, Matplotlib, FuncAnimation.

Dominio

[GENERACIÓN PROCEDURAL]

  • Algoritmos de Generación Procedural.
  • Ruido Perlin Clásico 2D.
  • Computación Gráfica.

Tópicos Matemáticos

[ÁLGEBRA / CÁLCULO]

  • Producto Punto (Dot Product).
  • Interpolación Lineal (Lerp).
  • Vectores de Gradiente.

I. Implementación del Generador Central

Se diseñó y codificó la clase central PerlinNoiseGenerator en Python, encapsulando toda la lógica de cálculo y el estado de la grilla. Esto facilita la generación de campos de ruido coherentes y repetibles.

Detalle Técnico

II. Análisis y Comparación Algorítmica

Un objetivo clave del proyecto fue la validación y comprensión del algoritmo mediante la creación de variantes comparativas. Esto demuestra la importancia de los pasos de **suavizado** e **interpolación** en la calidad del resultado.

Perlin Clásico vs. Lineal

Comparación del algoritmo estándar con una variante (perlin_linear) que omite la función de suavizado (fade). El resultado demuestra la aparición de artefactos o "costuras" al usar solo la interpolación lineal sin curvar.

Contribución Aislada

Implementación del método perlin_contribucion_sw para aislar y visualizar la influencia del producto punto de una sola esquina (Suroeste). Esto clarifica cómo las cuatro contribuciones se suman mediante la interpolación para formar el ruido final.

III. Visualizaciones Dinámicas y Estáticas

Se desarrolló un módulo de visualización para transformar los datos de NumPy en representaciones gráficas didácticas usando Matplotlib y su extensión de animación.

Características Destacadas

IV. 🏔️ Explorando el Caos Controlado: Teoría del Ruido Perlin 2D

El Ruido Perlin, desarrollado por Ken Perlin, es una función de generación procedural que simula texturas orgánicas como el humo, el agua o el terreno. A diferencia del ruido aleatorio puro, que produce un resultado caótico, el Ruido Perlin genera un patrón de **"caos controlado"** que es continuo y coherente en el espacio.

1. La Grilla de Gradientes: El Esqueleto del Ruido

El proceso comienza dividiendo el espacio 2D en una cuadrícula regular de puntos (nodos). En lugar de asignar un valor aleatorio a cada nodo (como haría el ruido de valor), el Ruido Perlin asigna un **vector de gradiente** aleatorio a cada nodo de la grilla.

2. La Contribución del Producto Punto

Para calcular el valor de ruido en cualquier punto dentro de una celda de la cuadrícula, el algoritmo realiza el siguiente paso por cada una de las cuatro esquinas de la celda:

El producto punto es la clave: indica **cuánto contribuye** el gradiente de esa esquina al valor del ruido en ese punto. Si el vector distancia está alineado con el gradiente, la contribución será alta; si es perpendicular, será cercana a cero.

3. La Doble Interpolación: Creando la Continuidad

Una vez que tenemos cuatro valores de contribución, necesitamos combinarlos de manera suave para obtener el valor final del ruido en ese punto:

El resultado es un generador eficiente y una herramienta didáctica que desmitifica cómo las matemáticas simples pueden crear la base para la generación procedural en los gráficos por computadora.