Replacing Scatter Using Pflow
By Neil Blevins
Created On: Mar 14th 2009
Updated On: Feb 9th 2014

Go here to read this tutorial in Russian.

Ever wanted to scatter a bunch of objects on top of another object, but the Scatter Compound Object just wasn't cutting it? Sadly, the Scatter Compound Object hasn't been updated since like max 4 or 5, so if you want to do things like multiple scatter objects, scatter by distribution map, etc, you're kinda out of luck. But there is a workaround. You can use the Pflow particle system to scatter objects onto another object. It far more time consuming to setup, but once you do, it has a lot of useful options.

Please note, Pflow sadly doesn't have all of the options that scatter does either, like controllable random rotations, so Pflow can't completely replace scatter, but it can in many situations.

Here's the result I'm going for, a bunch of rocks on a landscape. Notice the Pflow icon on the upper right of the screen, for your final scene, you would just hide this to get it out of the way.

Go here for the example file in max 2009 format.

To make this model, start with a ground object and a rock object. Now create a Pflow emitter anywhere in the scene. This is what the pflow graph will look like once you're done...

So first create a graph that looks like the one above, placing and removing operators as needed (an operator is, for example, a Birth Operator, A Speed By Surface Operator, etc). Then go into each Operator and set them like below.

Have it start and stop particle emission on the first frame. Amount is the number of rocks you want scattered.

Choose your ground as your emitter object. Location is set to Surface, so the particles emit at the surface.

Choose the Ground as your surface geometry, and have direction be "Parallel To Surface".

Now set rotation to Speed Space. This will align your objects to the surface normal of your emitter object. Play around with the Axis amount (if necessary) to get the orientation of your rocks to look the way you want them.

Now, since we don't actually want the particles to move, we just gave them a speed in order to align them to the surface, we now set the speed to 0 so they don't animate.

The Shape Instance we want to use is our Rock shape. If "Acquire Material" is selected, your rock objects will have the same material as your original rock.

Also, if you want to put multiple different types of rocks on the ground, take your Rock objects, group them, and then select the Group as your "Particle Geometry Object", and check the "Group Members" checkbox to have it randomly choose one of the group members for each particle.

Set the Scale like above to give each rock a slightly random size.

The Material Static operator isn't necessary, since the rocks already have their material, but if you want something a little more complex like assigning random Mat IDs to your rocks to give them variety, this operator will let you do that.

Finally, set Display as Geometry, and Visible at 100% so you can see the placement of all your rocks. Feel free to make the display number smaller if you have a lot of rocks, and don't need to see where they all are.

Now you have something that can replace the scatter compound object in many situations. And it has a lot of extra features that can make it useful. If you later want to convert your particles into an actual mesh, use the mesher compound object, which lets you converts particles to real geometry.

Thanks to Bobo for some help on this technique.

This site is ©2023 by Neil Blevins, All rights are reserved. Twitter Mastodon Bluesky Instagram Blogger Facebook LinkedIn ArtStation Kickstarter Gumroad YouTube IMDB