Can I use a 3D implementation of simplex noise to create noise on a spherical surface?

Let's say I want to create noise over a sphere.

I want to do this for the procedural creation of 3D "blobs". And use these blobs to generate low poly trees, something like this:

enter image description here

Can I accomplish this as follows?

  • First, we define a sphere consisting of a certain number of vertices, each of which is determined by the known coordinates (x, y, z)
  • Then, create an additional entropy (or noise) value e like this:

    var e = simplex.noise3d (x, y, z)

  • then use scalar multiplication to offset or extrude the origin into 3D space by the entropy value e:

    point.position.multiplyScalar (e)

  • Then, finally, we will reconstruct a new mesh from these newly computed offset points.

Is it possible to define a sphere consisting of a certain number of vertices, each of which is defined by known coordinates (x, y, z) and then generates an entropy or noise value

I am considering this approach because it is widely used to create bumped meshes using 2D noise on a 2D plane, resulting in a 3D plane:

two-dimensional noise example

Looking at the examples, I understand this concept of terrain generation using 2D noise as follows:

  • You are defining a two-dimensional grid of points, essentially a plane. Thus, each point has two known coordinates and is defined in 3D space as (X, Y = 0, Z). In this case, Y is the height that will be computed by the noise generator.

  • You pass the X and Z coordinates of each grid point to a simplex noise generator that returns the Y noise value.

    var point.y = simplex.noise2d (x, z);

  • Now our mesh of points is offset along the Y axis of our 3D space, and we can create a natural mesh of the terrain from them.

Can the same approach be used to generate noise on a spherical surface using 3D noise. Is this even a good idea? And is there an easier way?

I am implementing this in WebGL and Three.js.

+3


source to share


1 answer


If you want something to look like a tree, you should use a tree growth algorithm to simulate the tree branching pattern first and then poly the outside surface of the tree. Different types of trees have so-called "habits" or chiral patterns that determine how they grow. One article that describes some basic equations for branch / leaf modeling is expressed:



http://www.math.washington.edu/~morrow/mcm/16647.pdf

+1


source







All Articles