Las texturas procedurales se generan a partir de funciones matemáticas en lugar de capturarse de fotografías o pintarse a mano. Son independientes de la resolución (puedes evaluarlas a cualquier resolución), inherentemente sin costuras (cuando se usa ruido repetible) e infinitamente variables (cambiar una semilla produce un resultado completamente nuevo). Todos los generadores de texturas de Texturize usan técnicas procedurales internamente.
Funciones de ruido: la base
La mayoría de las texturas procedurales comienzan con una función de ruido — una función matemática que produce valores pseudo-aleatorios pero suaves y continuos a través de un espacio de coordenadas. A diferencia de los generadores de números aleatorios que producen ruido blanco no correlacionado, las funciones de ruido para texturas producen valores que varían suavemente, creando gradientes y manchas de apariencia orgánica.
Ruido de valor
El enfoque más sencillo. Se asignan valores aleatorios a los puntos de una cuadrícula de enteros y los valores intermedios se interpolan (típicamente con interpolación cúbica o quíntica). El ruido de valor es rápido pero tiende a producir artefactos visibles alineados con la cuadrícula porque los extremos siempre ocurren en los puntos de la cuadrícula. Funciona bien para nubes simples o como base para efectos más complejos.
Ruido Perlin
El ruido de gradiente de Ken Perlin (1983, mejorado en 2002) asigna vectores de gradiente aleatorios a los puntos de la cuadrícula y calcula productos escalares con la distancia al punto de evaluación. El resultado tiene valores cero en los puntos de la cuadrícula (no extremos), lo que elimina el problema de los artefactos alineados con la cuadrícula. El ruido Perlin es el estándar del sector para texturas orgánicas — nubes, terreno, venas de mármol, cáusticas de agua.
Ruido Simplex
También desarrollado por Ken Perlin (2001), el ruido simplex utiliza una cuadrícula triangular (simplex) en lugar de una rectangular. Esto reduce el número de evaluaciones de gradiente de 4 (2D) u 8 (3D) a 3 (2D) o 4 (3D), haciéndolo más rápido para dimensiones superiores. El ruido simplex también tiene menos artefactos direccionales que el ruido Perlin clásico. Las implementaciones modernas como OpenSimplex2 evitan los problemas de la patente original.
Movimiento browniano fraccional (FBM)
Una sola octava de ruido produce formas suaves y redondeadas. Las superficies del mundo real tienen detalle a múltiples escalas: una montaña tiene una forma amplia, crestas medianas y grietas finas. El FBM superpone múltiples octavas de ruido a frecuencia creciente y amplitud decreciente para simular este detalle a múltiples escalas.
La fórmula típica: fbm(p) = ruido(p) + 0.5 × ruido(2p) + 0.25 × ruido(4p) + ... Cada octava dobla la frecuencia (lacunaridad = 2.0) y reduce la amplitud a la mitad (ganancia = 0.5). El número de octavas controla el nivel de detalle fino — de 4 a 8 octavas es habitual. Más octavas añaden coste de cómputo pero su impacto visual disminuye a partir de 8.
Deformación de dominio
La deformación de dominio introduce la salida de una función de ruido en las coordenadas de otra: f(p) = fbm(p + fbm(p)). Esto distorsiona el campo de ruido, creando formas orgánicas y fluidas que parecen mármol en espiral, flujos de lava o veta de madera envejecida. Encadenar múltiples niveles de deformación produce patrones cada vez más complejos e impredecibles.
Nuestro Generador de mármol utiliza deformación de dominio para crear patrones de vena realistas. El Generador de lava encadena la deformación con la remapificación de color para simular flujos fundidos.
Otras primitivas procedurales
Voronoi / Ruido de Worley
El ruido de Worley (también llamado ruido celular) genera patrones basados en la distancia a puntos semilla dispersos aleatoriamente. La función F1 (distancia al punto más cercano) crea patrones similares a células: barro agrietado, escamas, adoquines. La función F2−F1 produce redes similares a venas. Prueba el Generador Voronoi para experimentar con estos patrones.
Funciones de onda y franjas
Las funciones seno y coseno crean franjas regulares. Combinadas con ruido para el desplazamiento, producen veta de madera (anillos concéntricos distorsionados por ruido), tejidos y patrones de ondas. El Generador de madera utiliza anillos sinusoidales desplazados para modelar patrones de crecimiento.
Hacer que el ruido procedural sea sin costuras
La técnica estándar evalúa el ruido 2D en la superficie de un toro de mayor dimensión. Para texturas 2D sin costuras, mapeas (x, y) a cuatro coordenadas en un toro 4D: (cos(2πx/w), sin(2πx/w), cos(2πy/h), sin(2πy/h)) y evalúas el ruido 4D. Esto garantiza un ajuste perfecto sin artefactos de mezcla. Es más costoso computacionalmente que el ruido no repetible pero produce costuras matemáticamente perfectas.
Cómo Texturize usa la generación procedural
Todos los generadores de la biblioteca de Texturize están construidos sobre ruido Perlin sembrado, FBM, deformación de dominio, Voronoi o funciones de patrón matemático. El enfoque basado en semillas significa que cada configuración es reproducible — comparte los mismos parámetros y semilla, y obtendrás exactamente la misma textura cada vez. Toda la evaluación de ruido usa variantes repetibles para que cada salida esté garantizada sin costuras.