I'm attempting to create a sphere with terrain (aka planet). I managed to procedurally create an icosahedron, and I am able to subdivide it (yay), but now I'm stuck on terrain. My current idea is to create a Perlin like "3D Noise Field" and sample noise where each of the spheres vertices fall. this way i should be able to tweak the noise (add octaves, etc) to roughen the "NoiseField" and thus the spheres surface. rough example: for (int i = 0; i < sphere.VertCount; i++) Sphere.verts[i] = Sample3DNoise(Sphere.verts[i]) * scale;//ehh public float Sample3DNoise(Vector3 point) { //??? should probs work ??? float x = Mathf.PerlinNoise(point.x, 0.0000f); float y = Mathf.PerlinNoise(0.0000f, point.y); float z = Mathf.PerlinNoise(point.x, point.y); //the average of the coords, returns "density at this point" return (x + y + z) / 3; } that should work, right? I'm not just doing something absurd? is there a better way to do this? (as a side question how do i render a Textrue3D? i populated one using my noise as the textels (alpha value), but how do i display it?)