nz_worley3s


Returns 3D Worley noise values [cell_x, cell_y, cell_y, noise] at (x, y, z) coordinates.

It divides the space into grids. The nucleus of each cell is randomly placed in a grid.

Since: 2.3

Parameters

  • points : A list of [x, y, z] coordinates.
  • seed : The random seed.
  • grid_w : The grid width. Default to 10. Smaller grid_w makes more cells.
  • dist : The noise value of each point is based on its distance to other cells. Different distance strategies make different noises. The dist parameter accepts "euclidean", "manhattan", "chebyshev" or "border".

Examples

use <pixel/px_sphere.scad>;
use <noise/nz_worley3s.scad>;

tile_w = 10;
dist = "euclidean"; // [euclidean, manhattan, chebyshev, border] 
seed = 51;

points = px_sphere(20);
cells = nz_worley3s(points, seed, tile_w, dist);

for(i = [0:len(cells) - 1]) {
    c = (norm([cells[i][0], cells[i][1], cells[i][2]]) % 20) / 20;
    color([c, c, c])
    translate(points[i])
        cube(1);
}

nz_worley3s

You can build things like worley_noise_ball.

nz_worley3s

nz_worley3s