Fir Branch (Procedural)
In the file shipped with this product, you’ll find a curve object with the relevant geometry node tree already setup in the modifiers. You can use that existing branch as a base to make your own or create variations or use the same modifier on completely new objects. The geometry nodes setup must always be used on a curve object or it will not work. Once applied, you can edit the curves – move their handles and change their respective radii (by pressing alt+s or using the item>transform panel on the right side of the 3D-view) – and see the branch and it’s needles respond instantaneously. The needles always point in a set direction along the length of the branch, so you may need to swap start and end handles of a spline segment to get the needles pointing in the right direction. To create branching, I recommend sticking unconnected splines into one another.
Now to the settings you’re presented with in the geometry nodes modifier:
- pine_needles needs to contain a collection containing the models of the needles that will be instanced across the branch.
- Scale changes the overall scale of the features of the branch.
- needle_density changes the density of needle growth. Higher values result in more needles.
- dense_growth_cutoff is a value to define at what curve radius the branch shall stop densely growing needles and transition to sparser growth (as can be seen on the stem and thicker branches of a christmas tree).
- sparse_growth_density defines at what percentage of the full density that sparse growth shall occur.
- needle_size changes the length and thickness of the instanced needles.
- randomize_needle_size determines the amount of variation in the size of the needles.
- needle_spread gives the angle (in radians), at which the needles grow to the stem.
- needle_tilt determines how much the needles droop.
- needle_tilt_spread influences the spread of the droop angle.
- randomize_needle_rotation will give needles individual, random changes to their rotation and direction on top of the determinations made in the preceding parameters.
- Seed serves as seed to all randomly determined values in the node tree.
In many cases playing around with a parameter yourself can be more helpful to understanding it’s influence than the explanations given above.