20.3. Particle Effects

Relevant to Blender v2.31

The particle system of Blender is fast, flexible, and powerful. Every Mesh-object can serve as an emitter for particles. Halos can be used as particles and with the DupliVert option, so can objects. These dupliverted objects can be any type of Blender object, for example Mesh-objects, Curves, Metaballs, and even Lamps. Particles can be influenced by a global force to simulate physical effects, like gravity or wind.

With these possibilities you can generate smoke, fire, explosions, Fireworks or even flocks of birds. With static particles you can generate fur, grass, and even plants.

20.3.1. A first Particle System

Reset Blender to the default scene, or make a scene with a single plane added from the top view. This plane will be our particle emitter. Rotate the view so that you get a good view of the plane and the space above it (Figure 20-3).

Figure 20-3. The emitter.

Switch to the Effects Tab in the Object Context (F7 or ) and click the button NEW Effect in the middle part of the Panel. Change the dropdown MenuButton from Build to Particles. The Particle Buttons are now shown (Figure 20-4).

Figure 20-4. The Particle Buttons.

Set the Norm: NumButton to 0.100 with a click on the right part of the button or use SHIFT-LMB to enter the value from the keyboard.

Play the animation by pressing ALT-A with the mouse over the 3DWindow. You will see a stream of particles ascending vertically from the four vertices.

Congratulations - you have just generated your first particle-system in a few easy steps!

To make the system a little bit more interesting, it is necessary to get deeper insight on the system and its buttons (Figure 20-5):

Figure 20-5. Particles settings.

This should be enough to get you started, but don't be afraid to touch some of the other parameters while you're experimenting. We will cover them in detail in the following sections.

20.3.2. Rendering a particle system

Maybe you've tried to render a picture from our example above. If the camera was aligned correctly, you will have seen a black picture with greyish blobby spots on it. This is the standard Halo-material that Blender assigns a newly generated particle system.

Position the camera so that you get a good view of the particle system. If you want to add a simple environment, remember to add some lights. The Halos are rendered without light, unless otherwise stated, but other objects need lights to be visible.

Go to the Material Buttons (F5) and add a new material for the emitter if none have been added so far. Click the Button "Halo" from the middle palette (Figure 20-6).

Figure 20-6. Halo settings

The Material Buttons change to the Halo Buttons. Choose Line, and adjust Lines: to a value of your choosing (you can see the effect directly in the Material-Preview). Decrease HaloSize: to 0.30, and choose a color for the Halo and for the lines (Figure 20-6).

You can now render a picture with F12, or a complete animation and see thousands of stars flying around (Figure 20-7).

Figure 20-7. Shooting stars

20.3.3. Objects as particles

It is very easy to use real objects as particles, it is exactly like the technique described in Section 21.2.

Start by creating a cube, or any other object you like, in your scene. It's worth thinking about how powerful your computer is, as we are going to have as many objects, as Tot: indicates, in the scene. This means having as many vertices as the number of vertices of the chosen object times the value of Tot:!

Scale the newly created object down so that it matches the general scene scale.

Now select the object, then SHIFT-RMB the emitter and make it the parent of the cube using CTRL-P. Select the emitter alone and check the option "DupliVerts" in the Anim Settings Panel of the Object Context (F7). The dupliverted cubes will appear immediately in the 3DWindow.

Figure 20-8. Setting Dupliverted Particles.

You might want to bring down the particle number before pressing ALT-A (Figure 20-8).

In the animation you will notice that all cubes share the same orientation. This can be interesting, but it can also be interesting to have the cubes randomly oriented.

This can be done by checking the option Vect in the particle-parameters, which causes the dupli-objects to follow the rotation of the particles, resulting in a more natural motion (Figure 20-8). One frame of the animation is shown in (Figure 20-9).

TipOriginal Object
 

Take care to move the original object out of the camera view, because, differently than in regular Mesh Dupliverts, in Dupliverted particles it will also be rendered!

Figure 20-9. Dupliverted particles rendering.

20.3.4. Making fire with particles

The Blender particle system is very useful for making realistic fire and smoke. This could be a candle, a campfire, or a burning house. It's useful to consider how the fire is driven by physics. The flames of a fire are hot gases. They will rise because of their lower density when compared to the surrounding cooler air. Flames are hot and bright in the middle, and they fade and become darker towards their perimeter.

Prepare a simple set-up for our fire, with some pieces of wood, and some rocks (Figure 20-10).

Figure 20-10. Campfire setup.

20.3.4.1. The particle system

Add a plane into the middle of the stone-circle. This plane will be our particle-emitter. Subdivide the plane once. You now can move the vertices to a position on the wood where the flames (particles) should originate.

Now go to the Object Context F7 and add a new particle effect to the plane. The numbers given here (Figure 20-11) should make for a realistic fire, but some modification may be necessary, depending on the actual emitter's size.

Figure 20-11. Fire particles setup.

Some notes:

  • To have the fire burning from the start of the animation make Sta: negative. For example, try -50. The value of End: should reflect the desired animation length.

  • The Life: of the particles is 30. Actually it can stay at 50 for now. We will use this parameter later to adjust the height of the flames.

  • Make the Norm: parameter a bit negative (-0.008) as this will result in a fire that has a bigger volume at its basis.

  • Use a Force: Z: of about 0.200. If your fire looks too slow, this is the parameter to adjust.

  • Change Damp: to 0.100 to slow down the flames after a while.

  • Activate the Bspline Button. This will use an interpolation method which gives a much more fluid movement.

  • To add some randomness to our particles, adjust the Rand: parameter to about 0.014. Use the Randlife: parameter to add randomness in the lifetime of the particles; a really high value here gives a lively flame.

  • Use about 600-1000 particles in total for the animation (Tot:).

In the 3DWindow, you will now get a first impression of how realistically the flames move. But the most important thing for our fire will be the material.

20.3.4.2. The fire-material

With the particle emitter selected, go to the Shading Context F5 and add a new Material. Make the new material a halo-material by activating the Halo button. Also, activate HaloTex, located below this button. This allows us to use a texture later.

Figure 20-12. Flames Material.

Give the material a fully saturated red colour with the RGB-sliders. Decrease the Alpha value to 0.700; this will make the flames a little bit transparent. Increase the Add slider up to 0.700, so the Halos will boost each other, giving us a bright interior to the flames, and a darker exterior. (Figure 20-12).

Figure 20-13. Flames Texture.

If you now do a test render, you will only see a bright red flame. To add a touch more realism, we need a texture. While the emitter is still selected, go to the Texture Panel and add a new Texture select the Cloud-type for it in the Texture (F6) Buttons. Adjust the NoiseSize: to 0.600. (Figure 20-13).

Go back to the Material Buttons F5 and make the texture colour a yellow colour with the RGB sliders on the right side of the material buttons. To stretch the yellow spots from the cloud texture decrease the SizeY value down to 0.30.

A test rendering will now display a nice fire. But we still need to make the particles fade out at the top of the fire. We can achieve this with a material animation of the Alpha and the Halo Size.

Be sure that your animation is at frame 1 (SHIFT-LEFTARROW) and move the mouse over the Material Window. Now press IKEY and choose Alpha from the appearing menu. Advance the frame-slider to frame 100, set the Alpha to 0.0 and insert another key for the Alpha with IKEY. Switch one Window to an IPO Window. Activate the Material IPO Type by clicking the pertinent Menu Entry in the IPO Window header. You will see one curve for the Alpha-channel of the Material (Figure 20-14).

Note

An animation for a particle material is always mapped from the first 100 frames of the animation to the lifetime of a particle. This means that when we fade out a material in frame 1 to 100, a particle with a lifetime of 50 will fade out in that time.

Figure 20-14. Fire Material IPO

Now you can render an animation. Maybe you will have to fine-tune some parameters like the life-time of the particles. You can add a great deal of realism to the scene by animating the lights (or use shadow-spotlights) and adding a sparks particle-system to the fire. Also recommended is to animate the emitter in order to get more lively flames, or use more than one emitter (Figure 20-15).

Figure 20-15. Final rendering.

20.3.5. A simple explosion

This explosion is designed to be used as an animated texture, for composing it with the actual scene or for using it as animated texture. For a still rendering, or a slow motion of an explosion, we may need to do a little more work in order to make it look really good. But bear in mind, that our explosion will only be seen for half a second (Figure 20-16).

Figure 20-16. The explosion

As emitter for the explosion I have chosen an IcoSphere. To make the explosion slightly irregular, I deleted patterns of vertices with the circle select function in Edit Mode. For a specific scene it might be better to use an object as the emitter, which is shaped differently, for example like the actual object you want to blow up.

My explosion is composed from two particle systems, one for the cloud of hot gases and one for the sparks. I took a rotated version of the emitter for generating the sparks. Additionally, I animated the rotation of the emitters while the particles were being generated.

20.3.5.1. The materials

The particles for the explosion are very straightforward halo materials, with a cloud texture applied to add randomness, the sparks too have a very similar material, see Figure 20-17 to Figure 20-19.

Figure 20-17. Material for the explosion cloud.

Figure 20-18. Material for the sparks.

Figure 20-19. Texture for both.

Animate the Alpha-value of the Halo particles from 1.0 to 0.0 at the first 100 frames. This will be mapped to the life-time of the particles, as is usual. Notice the setting of Star in the sparks material (Figure 20-18). This shapes the sparks a little bit. We could have also used a special texture to achieve this, however, in this case using the Star setting is the easiest option.

20.3.5.2. The particle-systems

Figure 20-20. Particle system for the cloud

Figure 20-21. Particle system for the sparks

As you can see in Figure 20-20 and Figure 20-21, the parameters are basically the same. The difference is the Vect setting for the sparks, and the higher setting of Norm: which causes a higher speed for the sparks. I also set the Randlife: for the sparks to 2.000 resulting in an irregular shape.

I suggest that you start experimenting, using these parameters to begin with. The actual settings are dependent on what you want to achieve. Try adding more emitters for debris, smoke, etc.

20.3.6. Fireworks

A button we have not used so far is the Mult: button. The whole third line of buttons in the Panel is related to this. Prepare a plane and add a particle system to the plane.

Adjust the parameters so that you get some particles flying into the sky, then increase the value of Mult: to 1.0. This will cause 100% of the particles to generate child particles when their life ends. Right now, every particle will generate four children. So we'll need to increase the Child: value to about 90 (Figure 20-22). You should now see a convincing firework made from particles, when you preview the animation with ALT-A.

Figure 20-22. Particle Multiplication buttons

When you render the firework it will not look very impressive. This is because of the standard halo material that Blender assigns. Consequently, the next step is to assign a better material.

Ensure that you have the emitter selected and go to the Shading Context and Material Buttons (F5). Add a new material with the Menu Button, and set the type to Halo.

Figure 20-23. Firework Material 1

I have used a pretty straightforward halo material; you can see the parameters in Figure 20-23. The rendered animation will now look much better, yet there is still something we can do.

While the emitter is selected go to the Editing Context F9 and add a new material index by clicking on the New button in the Link and Materials Panel (Figure 20-24).

Figure 20-24. Adding a second material to the emitter.

Now switch back to the Shading Context. You will see that the material data browsehas changed colour to blue. The button labelled 2 indicates that this material is used by two users. Now click on the 2 button and confirm the popup. Rename the Material to "Material 2" and change the colour of the halo and the lines (Figure 20-25).

Figure 20-25. Material 2

Switch to the particle parameters and change the Mat: button to "2". Render again and you see that the first generation of particles is now using the first material and the second generation the second material! This way you can have up to 16 (that's the maximum number of material indices) materials for particles.

TipFurther enhancements
 

Beside changing materials you also can use the material IPOs to animate material settings of each different material.

20.3.7. Controlling Particles via a Lattice

Blender's particle system is extremely powerful, and the course of particles can not only be determined via forces but channelled by a lattice.

Prepare a single square mesh and add a particle system to it with a negative z-force and the general parameters in Figure 20-26.

Figure 20-26. Particle settings

This could be good for the smoke of four small fires fire in a windless day, but we want to twist it! Add a lattice and deform it as in as in Figure 20-27.

Figure 20-27. Lattice settings

Parent the particle emitter to the lattice (CTRL-P). If you now select the particle emitter, switch to Animation buttons (F7) and press RecalcAll you will notice that the particles follows, more or less, the lattice (Figure 20-28 on the left).

As a further tweak, rotate each horizontal section of the lattice 60 degrees clockwise in top view, incrementally, as if you were making a screw. After this, recalculate again the particles. The result is in Figure 20-28 on the right.

Figure 20-28. Lattice deformation effects

The twist is evident, and of course you can achieve even stronger effects by rotating the lattice more or by using a lattice with more subdivisions. If you give the emitter a halo material and you render you will see something like Figure 20-29 on the left.

Figure 20-29. Normal particles, left; Vector particles, centre; and DupliVerted objects following the particles, right.

If you select the emitter, turn to animation buttons and press the Vect Particle Button the particles will turn from points to segments, with a length and a direction proportional to the particle velocity. A rendering now will give the result of Figure 20-29 in the middle.

It you now Duplivert an object to the emitter, by parenting it and by pressing the Duplivert button, the DupliVerted objects will have the same orientation of the original object if the particles are normal particles, but will be rotated and aligned to the particle direction if the Particles are set to vert. By selecting the Original Object and by playing with the Track buttons you can change orientation (Figure 20-29 on the right).

20.3.8. Static Particles

Static particles are useful when making objects like fibres, grass, fur and plants.

Try making a little character, or just a ball, to test the static particles. Try for example a small 'ball of fur' guy. An emitter is not rendered, so duplicate the mesh (or whatever object type you used and convert (ALT-C) it into a mesh). A fractal subdivide to the mesh to get some randomness into it, is usually a good idea. If you end up with mesh that is too dense, use "Remove Doubles" with an increased limit. Cut out parts with the circle select where you do not want to have fur.

Now, assign the particle system and, switch on the Static option.

Figure 20-30. Static particle settings

Use these parameters in Figure 20-30. With the combination of Life and Norm you can control the length of the hair. Use a force in a negative z-direction to let the hair bend. Check Face to generate the particles, not only on the vertices but also distributed on the faces. Also check Vect; this will generate fibre like particles. The Step value defines how many particles per lifetime are generated. Set this to a lower value to get smoother curves for the particles, and be sure not to overlook setting the Rand value.

When you now render, you will get very blurred particles. The material used for static particles is very important, so add a material for the emitter in the Shading Context (F5).

Figure 20-31. Material settings

I use a very small HaloSize (0.001). In the Number Button you can't see that, so to adjust click the button with the LMB while holding SHIFT. Enable the Shaded option to have the particles influenced by the lights in the scene, and then activate HaloTex. We are going to use a texture to shape the hairs (Figure 20-31).

Figure 20-32. Texture Colorband settings

Switch to the Texture sub-context (F6) and add a new Blend type texture. Choose Lin as sub-type. Activate the Colorband option and adjust the colors as in Figure 20-32. You will get a nice blend, from transparent through to purple and back again to transparent.

Figure 20-33. Texture settings in the Material buttons

Go back to the Material Buttons sub-context and make sure that Alpha is activated in the texture mapping output on the right of the Material Buttons. Then use sizeX and sizeY to shape the halo in the material preview to a small fiber (Figure 20-33).

If your fur is not dense enough, then increase the particle count with Tot or add more emitters. Also, change the particle parameters for these additional emitters a little so that you get some variation in the hairs (Figure 20-34).

Figure 20-34. Final result