2
$\begingroup$

I would like to achieve a voronoi pattern like this: enter image description here

What I want to do is place a curve and control the size of the voronoi cells using proximity.

Since there is no way to control the size of the cells the way I have described it. I did come up with a work-around which involves the use of multiple voronoi texture nodes with different scales.

enter image description here

Now, there is a small problem with this setup. You can see that in the ref image, all the cells feel connected. But in the workaround that I have come up with, the next size will be a sudden jump. Now in theory, I could just use more and more voronoi nodes. But that will come with the cost of performance which is something that I want to avoid. Also, that won't completely solve the issue of them not being naturally connected.

$\endgroup$

2 Answers 2

5
$\begingroup$

Distribute random points with density based on proximity to given geo. Spawn overlapping cones - looking at them from top orthographic view is a cheap way to find intersections:

Color the cones:

Result:

You can animate the bottom radius for an effect like on Wikipedia page:

(the cell points visible above is just a happy accident due to camera clipping)

Set the Vertices $ = 4$, for Manhattan distance:

$3$ and $5$ vertices also look fun…

$\endgroup$
1
$\begingroup$

This one takes a leaf out of @vklidu's book, for creating triangle-cell-based Voronoi geometry.

This version takes as input a plane, and a curve.

  • The plane is scaled up and subdivided, to distribute points with variable density
  • The density is based on a mapping of proximity to the curve
  • A 1-point curve primitive is instanced on the points, and realized
  • The scaled plane is converted to a curve, combined with the points, and triangle-filled.
  • The Dual is taken of the triangulation
  • The whole is Boolean-trimmed with a box created from the input plane.

enter image description here

Producing this kind of result, in geometry:

enter image description here

As @Markus points out in the commentary, this is not a true representation of regions closest to the distributed points, so you would have to watch out for that, if you needed it.

$\endgroup$
2
  • $\begingroup$ Awesome. I learned the "fill 0-length curves" trick from vklidu as well. Nice touch to just resample it to 1 point. This is not true Voronoi BTW, but honestly, it looks better than the true Voronoi. $\endgroup$ Commented Sep 20, 2023 at 10:04
  • $\begingroup$ @MarkusvonBroady Hmm. True, The Dual is not a distance-function from the vertices, is it. So if you needed minimum-distance-from-points for something else,, it wouldn't work. $\endgroup$
    – Robin Betts
    Commented Sep 20, 2023 at 10:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .