1
$\begingroup$

Having followed this tutorial on scatter, and this one on scattering via weight paint. I created this .blend file where I scatter a bunch of plant assets over some topography object.

Question, is there a way, with Geometry Nodes, to 'clump' these plants together? That is, to not evenly distribute them, but distribute them so any plant instance is more likely to be next to another instance of the same type. Ideally, having this 'clump factor' as part of the geometry node graph. ... So going from something random like this... to something more 'clumpy'. :) Like this...

$\endgroup$
2
  • $\begingroup$ if you provide your blend file i will try to help you. Remember: we help you for free in our spare time. So you should make it as easy as possible for us to help you. thx. is Blender 4.1 ok for you or just older Blender versions? $\endgroup$
    – Chris
    Commented Nov 14, 2023 at 17:15
  • $\begingroup$ Thanks @Chris, the .blend file is linked in the post above. I'm currently in 3.6. $\endgroup$ Commented Nov 14, 2023 at 18:42

1 Answer 1

2
$\begingroup$

To have clumps of different instances you first distribute a reduced amount points, capture their indices (to use for picking instance), duplicate them by the desired amount (may be a random in a range) and offset them to a random direction perpendicular to the surface normal by a random scale controlled by a float curve. At the end you move them to the closest point on the surface, since its very likely they are not touching it after the offset.

To get a random direction perpendicular to the surface normal, you get a unit vector on the $XY$ plane, like $(1,0,0)$, and rotate it by the rotation given by the Distribute Points on Faces node. After that rotate that vector in the normal axis by a random angle in the interval $\left[-\pi,\pi\right]$. This vector is then scaled by the float curve and another value to control how far it is offset.

After all of the process above use the captured index to pick instances.

Full node tree:


$\small\text{Blender 3.6.5}$


To control the 'clumpiness' by a value you can define the max clump with the float curve and give a factor to it's factor input:

$\endgroup$
1
  • $\begingroup$ cool!... just saw this now. Will have to get my head into this and play around. Thanks! $\endgroup$ Commented Nov 30, 2023 at 3:11

You must log in to answer this question.

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