(Using Blender 3.6.12)
This proposal is based on a Boolean Random Value
node to draw the probability to instance an object. The probability distribution is controlled by a Float Curve
node. The dark grey area of this curve shows the probability as a function of the dot product of the normal with the vertical direction (Z axis). For the demonstration, it is set such that for Value higher than 0.7, the probability is 1. Consequently, an instance is spawn for all faces with the criterion higher than 0.7. Then, the probability decreases sharply with the Value. The mid control point is such that for a dot product of about 0.52, the probability drops to 0.32 (i.e. 32%, i.e. about 1 chance out of 3). It is to notice that in the original GN graph, the Greater Than or Equal
node behaves like a Heavyside step function set as Float Curve
, with 0 below the threshold and 1 above.
The following picture illustrates a Shader helping to visualise the criterion (captured as the named attribute "QoI", standing for Quantity of Interest in this demonstration) controlling the probability. Probabilities lower than 50% are rendered in black.
The Random Value
& Mesh to Points
nodes combo can be replaced by a Multiply
math node computing a Density from the probability to be input in a Distribute Points on Faces
node as shown below:
Eventually, Random Value
and Distribute Points on Faces
nodes can also be combined as shown below:
Resources: