Thinking Particles: Forrest by Height Plane

In this tutorial you will learn how to control particle size based on distance to specific geometry.

It’s based on this tutorial from Anselm Van Seherr, done it with pflow toolbox3, check also his other very cool tutorials. We will do the same with TP5.

Let’s start with a basic plane (Where our particles will born), copy this plane and more divisions an add a noise modifier (this plane will control our particles heigh), create the object that will be scattered, I use a cone, but can be anything, a tree, a stone,….

Let’s start creating our thinking particles dynamics sets, here is the basic creation:

In node add your plane base, from this we will read his surface with a “SurfacePos” operator set to “face”. This position is readed by “PositionBorn node” set as “Pistol shot” and add here as many objects as you want to scatter over the plane, delete speed, and add a hight life span, send this particles to a group system (I used “particles” group). Connenct a “GeomInstance” to it, and select your object to be scattered (I use the cone).


Now the important part, changing our objects based on a plane distance:

Add an “Object” node and select your plane with noisemodifier applied, this node is feed in “Geom Particle”, this node is reading geometric informaction. This two nodes are new in TP5.

We need to add an initiator, in this case we want to modify our “particles” group. so feed with this group the “GeomParticle” node and “Scale” node.

Expose from “Scale” “Zscale” since we only want to change Zscale. If we connect “Colsest Point Distance” to “Zscale” directly you will see than our particles are scaled but a lot more than desired scale. To correct this only is needed to add a “AddMultiply” to “A*B” and a float to a small value (I use 0,01 but you can play with it).

Ok, this is all! now particles are scaled defined by our plane. You can edit this plane to have a custom shape, or also animate it! Nice and interesting results with this.

Anselm did a last thing on his tutorial, delete particles that are smaller than a certain value, here is how you can do it with TP:

Its only an initiator node with our particles, send to “particle die” node, expose “on” parameter and add a conditional “treshold” to it, check “inside” and change “Threshold2″, all particles with a scale below this value will be deleted.

You are done, a nice procedural system to control our particles:


One Comment

  1. Nikolay Nikiforov

    When combined with RadiusEffector is possible to make animated forrest,

Leave a Comment

Awesome! You've decided to leave a comment. Please keep in mind that comments are moderated.