Okay, so as usual I was sitting around not really doing anything, and so I thought I might as well do something useful! So I decided to check out on how I could use particle systems – or more precisely, particle flow – to make some decent asteroids quick and easily! First of all, we'll need an object to scatter around within our asteroid-belt. Create a geosphere and scale it slightly non-uniformly, before adding a rough noise-modifier to it. Then create a big box. This box will be the volume area in which the asteroids will be scattered within. You can of course change this later on. Add a turbosmooth on top of that if you feel it's too sharp – it depends on how close you are going to view this (Fig.01).
One thing I should mention is that you don't want your box to be visible – it's just supposed to be a scatter area. So, right-click it > Properties, and uncheck the "Renderable" option.
Using Particle Flow (hit '6' on your keyboard to activate the menu) I'm going to use an "Empty Flow", and a "Birth" Event. Set both Emit Start and Stop to 0, and set the amount of asteroids you want. I've set mine to 50 in this example.
Within the birth event, I'll add the following:
- Position Object – this will position the particles
- Shape Instance – this will instance the asteroid we made earlier
- Rotation – to make the asteroids have different directions
- Scale – so that they will come in many sizes
- Spin – so that they will spin around
First, within the position object, we'll pick the big box we made earlier as the emitter object. Then we'll set the location to "volume", so that all particles will be generated randomly within the designated area.
Then, selecting the "shape instance", we'll select the asteroid-mesh we made in the beginning as the geometry object. We could of course scale it here instead of using a designated scale-operator, but I like to have as much control and overview as possible; besides, we have more options when using the scale-operator.
Within the rotation, we'll just leave it at Random 3D, which suits our needs here.
Set the scale to some random values that you are satisfied with. The goal here is to add randomness in all directions so that we can get all kinds of shapes out of the main shape (Fig.02). You don't have to follow my values – experiment yourself!
And lastly, the spin operator; again, it's just about experimenting! I've set it to Random 3D, at a Spin Rate of 60 and a Variation of 50. This means that each one of the asteroids will have a randomly assigned value from 60 (+-50), which means a value of 10 – 110. This might be too fast and it may differ too much, but check out the result. I'll probably change it to around 50 (+-20), meaning from 30 – 70, in the end.
Now, all we need are some textures! Google "starfield" or "stars", or something like that, and find a decent image to put in your environmental background. Google "asteroids" as well, and you'll see that they are usually just greyish in colour with a few holes!
For the material, we'll make a standard material with a grey-tone noise-map (choose two almost similar greyish colours). Reduce the size on the noise-map until you have a nice distribution of the grey colours, and so that you can not immediately spot where the two colours change into each other. Then add a cellular map into your bump slot. What we're going to do here is to create four different sized cells, and space out their distribution so that they are not overlapping too much (Fig.03).
Four, you ask? Yes. First, we'll make one size. It doesn't matter what you make first. Then, exit the cell map and go up a level back to maps in the material editor. Then add a mix map in the bump slot and keep the old map. Copy it to the other slot and set a mix amount to 50. You can of course vary the mix amount depending on which craters you want to see the best. Enter the new cellular that you copied (no instance!) and tweak the sizes.
Exit again to maps, add a new mix map in the bump slot and keep the old map (which should be a mix map with two cellular maps). You should now have a mix map that contains two mix maps, which each contain two cellular maps. Enter the new cellular maps and tweak their sizes.
When you're done, reverse the bump value. I've put it to -38. Instance the bump map into the specular slot, and set specular to a negative value as well. I've put mine at -40, with a glossiness value of 35 (Fig.03 image does not reflect these specular/glossiness changes). I'm going to assign this material to our base asteroid model, but we could also have added a "material static" operator within the particle system, and then assign a material to that one. Here is the final result (Fig.04). I have used no lights in this tutorial, so it's just default lighting.
If you want to take this to the next level you can make a big, round planet in the middle and add a big torus around it, and use the torus instead of the box as a scatter object. Then you'll get nice asteroid belts around the planet. Increase the birth amount to as many as you want. If the asteroids overlap you can use the "separation" option within the Position Object operator to push them apart (Fig.05).
That's all for now! I hope at least someone has found some parts of this useful.
And, in true Jeff Patton-style, here is the Max scene if anyone wants to take a look at the finished scene.
Get the scene here!
(You'll need Max 2009 or 3ds Max Design 2009)