psrdnoise: Periodic Rotating Simplex-Like Dimensional Noise
Advanced Periodic Noise with Gradient Rotation Control
The psrdnoise
function generates Perlin-like noise patterns with enhanced control over periodicity and gradient rotation. Unlike standard noise functions, it provides seamless tiling capabilities and gradient rotation parameters for sophisticated texture generation.
The mathematical foundation follows simplex-like grid transformations with explicit control over periodic boundaries:
where represents corner weights, are rotated gradient vectors by angle , and are distance vectors from simplex corners.
Basic Usage Patterns
const fragment = () => { const p = position.xy.mul(iTime) const n = psrdnoise(p) return vec4(vec3(n), 1) }
Mathematical Properties
Property | Description | Implementation |
---|---|---|
Period Control | Seamless tiling boundaries | vec2(px, py) period parameters |
Gradient Rotation | Dynamic gradient direction | alpha rotation angle parameter |
Dimensional Support | 2D and 3D implementations | psrdnoise2D , psrdnoise3D |
Derivative Access | Surface normal computation | Built-in gradient calculation |
Function Variants
The implementation provides multiple overloads for different use cases:
Function | Input | Output | Purpose |
---|---|---|---|
psrdnoise(x) | vec2 | float | Basic 2D noise |
psrdnoisePeriod(x, p) | vec2, vec2 | float | Periodic 2D noise |
psrdnoiseAlpha(x, p, α) | vec2, vec2, float | float | Rotated 2D noise |
psrdnoise3(x) | vec3 | float | Basic 3D noise |
psrdnoise3Alpha(x, p, α) | vec3, vec3, float | float | Rotated 3D noise |
Advanced Pattern Generation
The combination of periodicity and rotation enables complex pattern synthesis:
This layered approach creates intricate textures with controllable animation characteristics and seamless boundaries for tileable patterns.