If the points don't have to be locally uniform, but should be globally uniform, and don't have to follow any set pattern, you can use a variant of dart-throwing algorithm to distribute n points on a sphere with radius r, on average dist points apart. These values are then roughly:
- If you want to have a specific amount of vertices:
- n = (desired amount of vertices)
- dist = 2 × r × √(π / n)
- If you want to have a specific average distance between the vertices:
- n = 4 × π × (r / dist)2
- dist = (desired average distance)
In the simplest case, you can then uniformly pick points at random by picking two uniformly distributed variables u and v from (0, 1) and calculating the polar coordinates from them according to the formulas θ = 2 × π × u and ϕ = arc cos (2 × v - 1); then dismissing any points which lie too near to the already picked points. For a slightly more complex and significantly better-performing algorithm, see "Dart Throwing on Surfaces" by Cline, Jeschke, White, Razdan and Wonka.
After you picked your first four points (assuming no three of them are degenerate, that is - they don't lie on the same great circle, but that's highly unlikely), you can create four faces between them, and each time you add a new point, you can split the face it belongs to accordingly into three sub-faces.
For texturing purposes you can then map the points to a cube map.