I have a bunch of voxels, let's just say 64x64x64, that I use to create a sphere / planet. It works fine, but once I try to apply noise to create a more interesting field, things go wrong.
3D noise works well, but I do not always want to create terrain with caves, overhangs, etc., so I thought that in this case 2D noise would be a good solution, but I do not know how To use correctly.
I've tried this, where pos (world position) is a float3 and x and y are the input values for the noise function:
float x = math.acos (pos.z / math.length (pos)); float y = math.atan (pos.y / pos.x);
This results in a very visible seam along an axis and a pinch at the poles.
Is there a way to convert the position of my 3D world into 2D coordinates so that the noise function (Perlin or Simplex) produces a continuous result without pinching?
It does not bother me at all that it causes symmetry or repetitive features.