[WML-Source: Particles.wml][TOC][Part00]

[chapter]Particle Effects

[section]A first particle system in a few steps

The particle system of Blender is fast, flexible, and powerful. Every Mesh-object can serve as an emitter for particles. Halos (a special material) can be used as particles and with the Duplivert option, so can objects. These dupliverted objects can be takes from every type of Blender objects, 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, flocks of birds, or even schools of fish. With static particles you can generate fur, grass, and even plants.

  1. Reset Blender to the default scene, or make a scene with a single plane added from the topview. 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.

      [images/simple01.tga]

  2. Switch to the AnimButtons (F7 ) and click the button "NEW Effect" in the middle part of the window. Change the appearing MenuButton from "Build" to "Particles". The ParticleButtons are appearing.

    (here highlited the parameters we are using in the next steps)
      [images/simple02.tga]

  3. Increase "Norm:" to 0.100 with a click on the right part of the button or use SHIFT-LMB to enter the value by keyboard.
  4. Play the animation by pressing ALT-A with the mouse over the 3DWindow. You will see a stream of particles ascending vertically.
Congratulations - you have just generated your first particle-system in a few easy steps!

To make the system a little bit more interesting, I will give you a few more hints:

  1. The parameter "Tot:" controls the overall count of particles. On modern speedy CPUs you can increase the particle count without noticing a major slowdown.
  2. You can change the lifetime of the particles with the "Life:" in the first row of the buttons.
  3. The "Rand:" value makes the particles going randomly. Try a value of 0.100 in your scene.
  4. Use the "Force:" values to simulate wind or gravity. A "Force: Z:" value of 0.100 will make the particles fall to the ground, for example.
  5. "Sta:" and "End:" control the time (in frames) in which particles are generated.

  [images/simple04.tga]

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 tutorials.

[section]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 white 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 also to add some lights. The Halos are rendered without light, but other objects need lights.

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

  [images/simple06_Material.tga]

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

You can now render a picture with F12 , or a complete animation and see thousands of stars flying around.

  [images/simple06_OneFrame.tga]

[subsection]Objects as particles

It is very easy to use a real object as particles. Start by creating a cube, or any other object you like, in your scene. It's worth thinking about how powerfull your computer is as we are going to have as many objects, as "Tot:" indicates, in the scene. 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 AnimationButtons (F7 ). The dupliverted cubes will appear immediately in the 3DWindow.

  [images/simple07.tga]

You can also see that I have checked 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.

Take care to move the original object out of the cameraview, because it will be rendered also.

  [images/simple07_render.tga]

[section]Making fire with particles

The Blender particle system is very useful for making realistic fire. 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 the perimeter of their area.

Load the scene "campfire00.blend" from the CD. It contains a simple setup for our fire.

[point]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 AnimationButtons F7 and add a new particle effect to the plane. The numbers given here should make for a realistic fire in the scene loaded from the CD. If you choose to build your own scene from scratch then some modification may be necessary.

  [images/FireParticleParams.tga]

In the 3DWindows, 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.

[point]The fire-material

  [images/FireMaterial.tga]

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

Give the material a fully saturated red color 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.

  [images/FireTexture.tga]

When 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 TextureButtons F6 . Add a new Texture and select the "Cloud"-type. Adjust the "NoiseSize:" to 0.600.

Go back to the MaterialButtons F5 and make the texture-color a yellow color 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 "HaloSize".

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.

Be sure that your animation is at frame 1 (SHIFT-LEFTARROW ) and move the mouse over the MaterialWindow. 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 IPOWindow. Activate the MaterialIPOs by clicking on the sphere-icon in the IPOHeader. You will see one curve for the Alpha-channel of the Material.

  [images/FireMaterialIPO.tga]

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 emiter in order to get more lively flames, or use more than one emiter.

A scene using some of these tricks can be found on the CD, as "campfire05.blend" , and as a rendered animation.

  [images/Campfire.tga]

[section]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.

  [images/Explosion_Film.tga]

As emitter for the explosion I have choosen an IcoSphere. To make the explosion not too regular, I deleted patterns of vertices with the circle select function in EditMode. 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. Take a look at the scene "Explosion00.blend" for the setup.

[point]The materials

The particles for the explosion are very straightforward halo materials, with a cloud texture applied to add randomness.

Material for the explosion cloud  [images/Explosion_Cloud.tga]

Material for the sparks  [images/Explosion_Sparks.tga]

  [images/Explosion_Texture.tga]

Animate the Alpha-value of the Haloparticles 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. This shapes the sparks a little bit. We could have also used a special texture to achieve this, however, in this case setting "Star" is the easiest option.

[point]The particle-systems

Particle system for the cloud  [images/Explosion_CloudSystem.tga]

Particle system for the sparks  [images/Explosion_SparkSystem.tga]

As you can see in the images, 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 a irregular shape.

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

[section]Fireworks

A button we have not used so far is the "CurMul:" button, located with the particle buttons. The whole third line of buttons is related to this. Load the scene "Fireworks00.blend" from the CD, and add a particle system to the plane.

  [images/Particles/FWParticleParams01.tga]

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 childs. So we'll need to increase the "Child:" value to about 90. You should now see a convincing firework made from particles, when you preview the animation with ALT-A .

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 nice material.

Ensure that you have the emiter selected and go to the MaterialButtons F5 . Add a new material with the MenuButton, and set the type to "Halo".

Material 1  [images/Particles/FWParticleMaterial01.tga]

I have used a pretty straightforward halo material; you can see the parameters in the figure "Material 1". The rendered animation will now look much better.

While the emiter is selected go to the EditButtons F9 and add a new material index by clicking on the "New" button.

  [images/Particles/FWParticleMaterialIndex.tga]

Now switch back to the MaterialButtons. You will see that the material data browse in the header has changed color to blue. The button labeled "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 to the color of the halo and the lines.

Material 2  [images/Particles/FWParticleMaterial02.tga]

Switch to the particle paramters and chnage 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 (thats the maximum of material indices) materials for particles.
Beside changing materials you also can use the material IPOs to animate material settings.

[section]A shoal of fish

In this tutorial, we will create a particle system that emits real objects. This kind of particle system can be used to make schrapnels for explosions, or animate groups of animals. We will use the fish from the UV-Texturing tutorial, to create a shoal of fish that can be used to add some life and motion to underwater scenes.

Please load the scene "FlockOfFish00.blend" from the CD. It contains an underwater environment. By doing a render you will be able to view it.

  [images/Flock/uwenvironment.tga]

[point]The emitter

Switch to layer three (3KEY ) to hide the layers with the environment, and add a plane in the sideview window at the 3D-cursor location. Without leaving the EditMode, subdivide the plane two times and then leave EditMode.

Go to the AnimationButtons F7 and add a particle effect to the plane.

  [images/Flock/ParticleSettings.tga]

Set up your emiter as shown in the picture. I used 30 as total number of particles, and I stopped the generation at frame 30. This is so that every second a new particle is generated. A small amount of randomness should be used. The lifetime of the particles should be long enough to make sure that the particles don't vanish in front of the camera. Activate the Bspline and Vect options; these become important later.

Now we have to load the fish from the UV-Texture tutorial. Press SHIFT-F1 to append the fish from the "UVTexFish.blend" . It will appear textured in the camera view if you have set it to textured mode (ALT-Z ). If it is too big, scale it down and then move it out of the camera view.

Select the fish and extend your selection to the particle emitter. Press CTRL-P to make the emitter the parent of the fish. Now select only the emitter and go to the AnimButtons (F7 ) and switch on Dupliverts. Instances of the fish will appear at the position of every single particle. In case the fish is oriented wrong, select the base object and do a clear rotation with ALT-R . Now you can play back the animation in the camera view to see how the fishes are moving. Experiment a bit with the particle setting until you get a realistic looking shoal of fish.

[point]Using a Lattice to control the particles

Create a Lattice with the Toolbox. Scale it so that it just covers the shoal of fish. Switch to the EditButtons (F9 )and set the "U:" resolution of the lattice to something approaching 10. Then select the emitter, extend your selection with the Lattice, and make it parent of the emitter. You can now deform the Lattice and the particle system will follow. After you have changed something, leave EditMode and do a "Recalc All" for the particle system. This will update them.

  [images/Flock/Lattice.tga]

With the Lattice you can make curved paths for the fish, or make the shoal extend and join by scaling certain areas of the lattice.

  [images/Flock/FlockOfFish_Film.tga]

[section]Static Particles

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

Try making a little character, or just a ball, to test the static particles. I model a little guy I had sitting on my monitor a while ago. An emitter is not rendered, so duplicate the mesh (or whatever object type you used and convert (ALT-C ) it into a mesh). I then did a fractal subdivide to the mesh to get some randomness into it. If you end up with mesh that is too dense, use "Remove Doubles" with an increased limit. I also cut out parts with the circle select where I did not want to have fur.

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

  [images/WuschelParticleParams.tga]

I used these parameters. 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 fiber 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 MaterialButtons F5 .

  [images/WuschelParticleMaterial.tga]

I use a very small Halosize (0.001). In the NumberButton 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.

  [images/WuschelParticleTexturColorband.tga]

Switch to the TextureButtons F7 and add a new "Blend"-texture. Choose "Lin" as type. Activate the colorband option and adjust the colors as in the figure. You will get a nice blend, from transparent through to purple and back again to transparent.

  [images/WuschelParticleMaterial_right.tga]

Go back to the MaterialButtons and make sure that "Alpha" is activated in the texture mapping output on the right of the MaterialButtons. Then use "sizeX" and "sizeY" to shape the halo in the material preview to a small fiber.

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.

  [images/Wuschel.tga]


-cw- Last modified: Sat Nov 4 17:59:20 CET 2000