How can I generate Perlin noise on a spherical surface?

I believe the approach is to actually use a 3 dimensional noise field (every point in a 3D space has a scalar noise value) as opposed to a 2 dimensional field (every point on a 2D plane has a noise value).

When using a 2D noise function to generate a height map, you offset the z value according to the noise value.

When using a 3D field, you sample the noise at points on the surface of a sphere, then use the noise value to offset each point radially away from or towards the center of the sphere.

3D noise is harder and slower to produce obviously, but you don’t have to deal with the complications of wrapping a surface around the sphere, and because the noise function is continuous there are no seams.

This can obviously be applied to any arbitrary shape.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)