Piles Of Rubble
By Neil Blevins
Created On: Feb 26th 2007
Updated On: July 27th 2018

Here's a tutorial discussing how to make piles of rubble inside 3dsmax. The original version of the tutorial used the Rigid Body Simulator Reactor (that lesson is down below for posterity), but since that was removed from 3dsmax almost a decade ago, I have now updated the tutorial to use MassFX, the rigid Body simulator that ships with more modern copies of 3dsmax.

Preparing Your Scene

1) First I made some simple pieces of rubble. These are all just poly modeled boxes with a simple concrete material applied. If this was a real production, I'd add much more detail, but these should be fine to show off the technique. Also, make sure their pivots are in the center of the objects.

Figure 1

2) I create a simple ground plane.

3) I use the clone function to place a whole bunch of the debris objects above the ground plane (I use instance to save on memory). Make sure none of them interpenetrate. Also, play with different positions of the objects to get different types of piles.

Figure 2

4) Randomly scale and rotate the objects. To do this, I used the transformRandomizer script available at http://www.neilblevins.com/cg_tools/scripts/3dsmax/soulburnscripts.htm. Because their pivots are at the center, you can rotate them around their center point using the script (just make sure "Use Pivot Point Center" is used on your Main Toolbar).


5) The simulation will run better if the transforms on the objects have been reset, I use my xFormResetter script: http://www.neilblevins.com/cg_tools/scripts/3dsmax/soulburnscripts.htm

Rubble Using MassFX

1) Select your rubble
2) Open the MassFX Toolbar
3) Click the second button, "Create Dynamic Rigid Body". Each object receives a MassFX Rigid Body Modifier on it.


4) Click "Play Simulation", and watch the chunks fall on top of each other and bounce around. Press a second time to stop simulation.


5) Now you may have noticed that the items bounced a lot, which real piles of rock or concrete won't do. So let's adjust the physical materials properties of our objects.
6) Reset the simulation by pressing "Reset Simulation"


7) Select your rubble
8) Click the MassFX Tools button


9) Click the third tab, go to the Physical Material Rollout, click Preset "Concrete". That gives you some good numbers to start with, but feel free to tweak the Friction further in the dialog below the preset.
10) Rerun the simulation. Far less bouncing, and a more realistic rubble pile. Also note, there may be some slight floating or interpenetration from the sim, in which case, just manually move the object to fix it.
11) Experiment with different chunk shapes, different sizes and positions, and different initial heights from the ground to get different piles of rubble.
12) If you want to bake the final position of the rubble pieces into the mesh, go to the second tab of the MassFX Tools, "Simulation Tools", and click on "Capture Transforms". Collapsing the meshes removes the MassFX modifiers to permanently bake their position for all eternity.

Results

Figure 4

And there you have it, a nice easy quick pile of rubble. Here's a max file you can use (max 8 format).

Rubble Using Reactor

1) Go to Create -> Helpers -> Reactor -> RBCollection and add all your objects.
2) Select the ground plane, Go to Utilities -> Reactor -> Properties, check unyielding and Concave Use Mesh (choose other options if your ground plane isn't a perfectly flat plane)
3) Select your debris objects, Go to Utilities -> Reactor -> Properties, choose a large mass, say 500 kg, and a friction of 0.9.
4) Adjust the Col Tolerance value in the World rollout. Reducing this means objects are more accurate when they try and avoid interpenetrating. For the size of my scene, 0.5 works well.
5) Go to the Preview & Animation rollout of Reactor, click Preview In Window
6) In the reactor window, press Simulation -> Play. Pause it after all the rubble comes to rest. Don't worry if some of the rubble pieces fall off the edge. Either make your ground plane bigger, or just delete those objects once you return to max.
7) Choose Max -> Update Max in the reactor window
8) Close the Reactor Window, now you have your pile of rubble.
9) Do a cleanup phase. Due to limitations in your Reactor settings, you may find some of your debris is floating ever so slightly above other debris or the ground plane, etc. A quick check for interpenetrating will solve this, and you may need to move an object or two to avoid any obvious overlaps.

Other techniques to try...

1) Use the scatter compound object to place tons of debris on the ground. Make sure to use some sort of random face selection on your distribution object so you don't get a uniform distribution. The two issues with this technique is objects will interpenetrate each other, and you won't get objects piled on top of one another other.

2) Use Peter Watje's scatter utility instead of the built in max scatter, http://www.maxplugins.de/max8.php?search=scatter&sort=Author. The advantage of this is you have more control over distribution, and adding multiple types of geometry. The disadvantage is it's not a procedural object, so once you've created it, you can't easily go back and tweak its creation parameters.

3) Pflow particle system, with it you can distribute objects based off bitmaps, which might be useful for adding specific types of debris in specific places over a large surface quickly. Check my Replacing Scatter Using Pflow lesson for more information.

4) Use the script called objectDropper http://www.neilblevins.com/cg_tools/scripts/3dsmax/soulburnscripts.htm. This does a similar job to reactor, except again, it won't keep the objects from interpenetrating, and you can't say have the pieces bounce or slide a little once they hit the ground.

5) Use the Advanced Painter http://www.scriptspot.com/start.asp?p=main_scripts&Sort=Name&BrowseType=Search&SearchField=advanced+painter to paint objects on the ground.

6) Use the objectPainter script http://www.neilblevins.com/cg_tools/scripts/3dsmax/soulburnscripts.htm, which is very similar to Advanced Painter, except a little more functionality, and is more recently updated.

7) Use some sort of texture and displacement material to add wreckage looking stuff on the ground for cheap.

And remember, all these techniques can be mixed together too, so you can use the technique that's best for placing whatever sort of debris you want to place. Like maybe do most of your small rubble using scatter, then place a few larger hero pieces using the reactor technique.


This site is ©2018 by Neil Blevins, All rights are reserved.
Back to NeilBlevins.com