home/ atoms/ perlin-noise-3d-procedural-texture

Perlin noise is a repeatable pseudo-random function of 3D position used for procedural textures

Perlin noise maps a 3D spatial coordinate to a smooth pseudo-random scalar value. It is deterministic — the same input always returns the same value — but appears random to the eye. The smoothness comes from gradient interpolation at lattice points using Hermite curves; turbulence stacks multiple octaves at increasing frequencies to create fractal-like detail. In ray tracing (and shaders generally), Perlin noise drives procedural textures: marble, wood grain, terrain, and clouds without any image files. A single 3D noise field produces patterns that are continuous in all directions, so textures tile seamlessly on any 3D surface without UV unwrapping.

Examples

Marble texture: sin(z + 10turbulence(p)) maps 3D noise to a sine wave, creating the characteristic veining. Wood: noise(4p) modulated by distance from z-axis.

Assessment

Why does Perlin noise look smoother than white noise? What is turbulence and how is it computed from multiple noise octaves?

“A key part of Perlin noise is that it is repeatable: it takes a 3D point as input and always returns the same randomish number.”