Search This Blog

Labels

Saturday, December 4, 2010

Getting Started with Blender’s Particle System

In this article series by Reynante Martinez, we’ll discuss the following:
  • What is a particle system and where can we find it in Blender?
  • What are the types of Blender particle system?
  • Basic and practical uses of the Particle System
  • Creating Dust
  • Creating Smoke
  • Creating Fire
  • Creating Bubbles
  • Simulating Rock Slides
  • Creating Hair/Fur/Grass
We’ll cover a general introduction about Blender’s particle system; how to use it, when to use it, how useful it is on both small scale and large scale projects, and an overview of its implications. In this article, I’ll also discuss how to use the particle system to instance objects
These are just but very few examples of what can really be achieved with the particle system, there’s a vast array of possibilities out there that can be discovered. But I’m hoping with these examples and definitions, you’ll find your way through the wonderful world of visual effects with the particle system.
If you remember watching Blender Foundation’s Big Buck Bunny, it might not seem as a surprise to you that almost the entire film is filled up with so much particle goodness. Thanks to that, great improvements have been made to Blender’s particle system.
As compared to my previous articles, this one uses Blender 2.5, the latest version of Blender which is currently in Alpha stage right now but is fully workable. However, in this article I wouldn’t be telling you what each of the button would do since that would take another article in itself and might deviate from an introductory approach. If you wanted to know more in-depth information about the whole particle system, you can check out the official Blender documentation or the Blender wiki. There had been great improvements on the particle system and now is the right time to start trying it out.
So what are you waiting for? Hop on and ride with me in this journey!
You can watch the video here.

Prerequisites

Before we begin with this article, it’s vital to first determine our requirements before proceeding on the actual application. Before going on, we need to have the following:
  1. Latest Blender 2.5 (you can grab a copy at http://www.blender.org or http://www.graphicall.org)
  2. Adequate hard disk space
  3. Decent processor and graphics card

What is a Particle System and where can we find it in Blender?

A particle system is a technique in Computer Graphics that is used to simulate a visual effect that would otherwise be very difficult and cumbersome if not impossible to do in traditional 3D techniques. These effects include crowd simulation, hair, fur, grass, fire, smoke, fluids, dust, snowflakes, and more.
Particle Systems are calculated inside of your simulation program in several ways and one of the most common ones is the Newtonian Physics calculation which regards forces like wind, magnetism, friction, gravity, etc. to generate the particle’s motion along a controllable environment. Properties or parameters of particle systems include: mass, speed, velocity, size, life, color, transparency, softness, damping, and many more. Particle’s behavior along a certain span of time are then saved and written on to your disk. This process is called caching, which enables you to view and edit the particle’s behavior within the timeframe set. And when you’re satisfied with the way your particles act on your simulation space, you can now permanently write these settings to the disk, called baking. Be aware that the longer your particle system’s life is and the greater the number, the more hard disk space it uses, so for testing purposes, it is best to keep the particles number low, then progressively increase them as needed.
Particle mass refers the natural weight (in a gravitational field) of a single particle object/point, where higher mass means a heavier particle and a lower mass implies a lighter particle. A heavy particle is more resistant to external forces such as wind but more reactive to gravitational force as compared to a lighter particle system which is a direct opposite.
Particle speed/velocity refers to how fast or slow the particle points are being thrown or emitted from their source within a given time. They can be displaced and controlled in the x, y, or z directions accordingly. A higher velocity will create a faster shooting particle (as seen in muzzle flares/flash) and a lower one will create slower particle shots.
Size of the particles is one of the most important setting when using a particle system as object instances, since this will better control the size of the objects on the emitting plane as compared to manually resizing the original object. With this option, you can have random sizes which will give the scene a more believable and natural look and offcourse, an easier setup as compared to creating numerous objects for this matter.
Particle life refers to the lifespan of the particles, for how long they will be existent until they disappear and die from the system. In some cases, having a large particle life is useful but it can have some speed drawbacks on your machine. Imagine emitting one million particles within 5 seconds where only half of it is relevant within the first few seconds. That could mean 500,000 particles cached is a sheer waste and rendering your machine slower. Having smaller particle lives sometimes is also useful especially when you’re creating small scale smoke and fire. But all these really depend on the way you setup your scenes. Play around and you’ll find the best settings that suit your needs.
Note though that in Blender, only Mesh objects can be particle emitters (which is simply rational for this purpose). You can modify the size and shape of the mesh object and the particle system reacts accordingly. The direction from which particles are emitted is dictated by the mesh normals, which I will discuss along the way.
In Blender 2.5, we can find the Particle System by selecting any mesh object and clicking the Particles Button in the Properties Editor, as seen in the screenshot. Later, we’ll add and name particle systems and go over their settings more closely.
Blender 2.5’s Particle System

What are the types of Blender particle system?

Currently, there are only two types of particle systems in Blender 2.5, namely Emmiter and Hair.  With few on the list, these two have already proved to be very handy tools in creating robust simulations.
Particle System Types
Let’s begin by learning what an Emitter Type is. Aside from the fact that the term emitter is used to define the source of the particles, the emitter type is one different thing on its own.
The Emitter, being the default particle type, is one of the most commonly used particle system type. With it you can create dust, smoke, fire, fluids, snowflakes, and the like. Inside Blender, make the default cube a particle emitter with the type set as Emitter. Leave the default settings as they are and press ALT+A in the 3D Viewportto playback the animation and observe the way the particles act in your observable space, that is, the 3D space that your object is in. During the playback process, the particle system is already caching the position of the particle points in your space and writing these on to the disk. Naturally, this is how the emitter type will act on our space, with a slight pulse from emitter then it drops down as an effect of the gravity. That pulse is coming from theNormal value which tells how strong the points are spurted out until they get affected by external forces. There’s more to the emitter type than there seems to be, so don’t hold back and keep changing the settings and see where they lead you to. And if you can, please send me what you got, I’d be very pleased to see what fun things you came up with.
Emitter Type
Leaving from the default settings we had awhile back, change your current frame to 1 (if it is not yet set as such) then let’s change the type from Emitter to Hair. Instantly, you’ll notice that strands come bursting out of our default mesh. This is the particle hair’s nature, whichever frame you are in now, it will stay in the same frame, regardless of any explicit animation you add in. As compared to the Emitter type, Hair doesn’t need to be cached to see the results, it’s an on-the-fly process of editing particle settings. Another great advantage of the hair type over the emitter type is that it has a dedicated Particle Mode which enables you to edit the strands as though you were actually touching real hair. With the hair type, you can create systems like fur, grass, static particle instances/grouping, and more.
Hair Type

Basic and Practical Uses of the Particle System

Now let’s on the real business. From here on, I’ll approach the proceeding steps in a practical application manner. First, let’s check some of the default settings and see where they lead us.
Fire up a fresh Blender session by opening up Blender or by pressing CTRL+N (when you already have it open from our steps awhile ago).
Fresh Blender 2.5 Session
Delete the default cube and add in a Plane object.
Adding a Plane Primitive
Position the camera’s view such that the plane is just on top of the viewing range, this will give us more space to see the particles falling.
Adjusting the View
Select the Plane Mesh and in the Particle Buttons window, add a new Particle System and leave the default values as they are. In the 3D Viewport, press ALT+A to play and pause the animation or use the play buttons in the Timeline Window. Pick a frame you’re satisfied with, any will do right now.
New Particle System
Next, add a new material to the Plane Mesh and the Particle System. Activate the Material Buttons and add a new material, then change the material type from Surface to Halo. Halos is a special material type for particles; they give each point a unique shading system compared to the Surface shaders. With halos, you can control the size of the particles, their transparency, color, brightness, hardness, textures, flares, and other interesting effects. With just the default values, let’s render out our scene and see what we get.
Halo Material
Halo Rendered
Right now, this doesn’t look too pleasing, but it will be once we get the combinations right. Next, let’s try activatingRings under the halo menu, then Lines, Star, and finally a combination of the three. Below are rendered versions of each and their combination.
Additional Options for Halo
Halo with Rings
Halo with Lines
Halo with Star
Halo with Rings, Lines, and Star
Just by altering the halo settings alone, we can achieve particle effects like pollen dust as seen in the image below where the particle effect was composited over a photo.
Particle Pollen Dust

Creating a Particle Smoke

With the release of Blender 2.5, part of the development process was the birth of a new smoke simulator which is, as far as I’m concerned, a very robust, powerful, and fun feature to play with. Discussing that, however, would again take an article on its own and instead of trying to elaborate it here, I’d rather point you to a wonderful tutorial made by none other than the owner of BlenderGuru, Andrew Price. Here’s a link to his comprehensive tutorial >http://www.blenderguru.com/introduction-to-smoke-simulation/.
In this article, I’ll lead you through the particle way (or you may call it the “old school” way) of doing smoke in Blender via Halo materials. Ready? Let’s go.
Start a fresh Blender scene, delete the default Cube, and replace it with a UV Sphere.
You might have noticed that after adding the UV Sphere, there are  no pop-up windows asking us for the number of divisions, just like how we would expect it in Blender 2.49. Don’t fret though, it is still there, it just isn’t too naked to our vision. Right after adding the sphere, you can press T to view the Tool Shelf which will appear on the left part of your 3D Viewport and here you can see the tool options for the object we just added. Almost any operation we perform is tracked by the tool options.
Adding a UV Sphere
Since we don’t want to render our Sphere as edgy and polygonal as it looks now, let’s go ahead and add smooth shading to it. You can either: 1) proceed to Edit Mode, select all vertices, and press W then select Shade Smooth from the menu, or 2) click Smooth on the Tool Shelf under Shading.
Smoothing the UV Sphere
Next, create a new particle system and name it “smoke”. This will be our basis system to create our simulation of smoke.
Adding a Particle System to the UV Sphere
Afterwards, we add two materials to our UV Sphere.  Why two though? The first one will be the sphere’s material itself and the other one will be the halo material which will give our particle points a halo property.  We did this to ensure that our sphere would still be there even during render and not shown as an array of halo dots (which would be the case by default).
Two Materials for the UV Sphere Object
Next, make sure that the Sphere Mesh is in layer 1 and still is the active layer. Add a Texture Force Field on top of the UV Sphere with the Force Field’s z-axis pointing up (as shown in the image below).
Adding a Force Field on Top of the UV Sphere
Force Field Settings
Having the emitter (sphere) and the force field in the same layer makes it possible for both of them to interact. We used a force field so that when we render and playback our animation later on, we’ll see how the halos react to the texture force, which will further give them a more random movement.
Now, let’s reselect the sphere object and edit the Particle Settings. This part is more of a trial and error phase until you get the right settings you want for your scene, but just for a clear reference, you can check my settings below. It is highly suggested that every time you change the settings, you should play back your animation in the 3D viewport by either pressing ALT+A or pressing the play button in the Timeline window. This way, you’ll see what changes have been made and how the affected your system.
First, let’s take a look at the cache settings. Caching is an important phase in simulating a particle system since this is the aspect that writes your settings to disk so you won’t lose them in case you wanted to get back on the simulation. You wouldn’t want to redo an hour-long simulation each time you open your file, would you? In the screenshot below, we typed a filename for the cache (which will go to wherever your current .blend file is saved, as a new directory), and specified that it should cache on your disk.
Smoke Cache
Next, we take a look at the Emission settings which will tell us how the particles are spurted out of the emitter object. For simulation purposes, an amount of 1000 particles (which is default in Blender) is already a fair number so let’s leave it be. Specify the start frame and end frame with which the particles are emitted. In this case, since our scene is only from frame 1 to 250, I basically matched that with the start and end of the particle system, since beyond that is already not observed. However, you can set a negative start frame if you wanted to see your particles already born or are already emitted right when you start your simulation at frame 1. Play around with it and eventually you’ll get the hang of things. Then finally, the Lifetime indicates how long will the particles exist in the scene and the random value tells us the variation value of the particles lives relevant to the lifetime that we set.
Emission Settings
We now proceed to the Velocity Settings which is of same importance to the Emission Settings. This panel describes how fast or slow particles are being emitted and to what direction will they go in time. Below is a screenshot of the settings I have. I only added a bit of velocity value to the z-axis which will create an upward motion to the particles, but there’s more options later on that will support this particle movement.
Velocity Settings
On to the Physics Settings. This is probably one of the most vital settings that you should consider. Without physics, your particles will never move and will never be affected by forces that we set. For now, we’ll enableNewtonian physics, which should be default, and adjust the size and Brownian settings. Brownian motion adds a slight jitter and self-movement to each particle point in our simulation.
Physics Settings
Then, the Render Settings. Here, we’ll see why we needed to create multiple materials for our emitter awhile ago. I changed the Material number from 1 to 2. This is so Blender knows that this system will use the 2nd material in our material stack that we added before, that is, the halo material. If we used the default of 1, it will then use the shader material that we have used for the emitter object and we don’t want that since we wanted to take advantage of the versatility of the halo material. Checking emitter enables our emitter mesh, in our case a UV Sphere to be shown on the render, if not, we will only see halos on our render, which could sometimes be fine but often undesired.
Render Settings
The Display Settings simply tells how the particle system is viewed in the 3D viewport, for a clearer understanding of what’s going on.
Display Settings
And finally, Field Weights Settings tells us how much influence the external forces will apply on our particles. Since we don’t have that much forces on our scene and we are only concerned with the effect of gravity on the system, we’ll only adjust the gravity settings for now. Gravity is a force that pulls things closer to source. Just like how we understood how gravity on earth affects objects that are on it. By default, the gravity value is set to 1, which should make all physics particles to fall into oblivion, but since we’re doing smoke, it would be unusual to see smoke depressing and not rising. So to fix this, we’ll simply set the gravity to a negative value such that our particles will rise up as they are born.
Field Weights Settings
And that’s about it for the Particle Settings. Now, we need to tell Blender how these particles are shaded so they look good and convincing in our render. Let’s proceed to the Material Properties. Select the second material in the stack that we’ve added awhile back and set it as a Halo material.
Halo Material
Next, we proceed to the Shading Settings and Halo Settings which would generally tell us about the shading information needed for our halo material. Since we are emitting a thousand particles in our scene, it would rather look odd if each particle point looks like a solid shaded material, as though they were magic effects in a cartoon movie. But since we’re creating smoke material, the Alpha value should be adjusted low such that when multiple particle halos overlay each other, they add up their transparency and create a seemingly opaque illusion. Next, we give it a nice color to distinguish it even more to be smoke. Size refers to the halo size that would be seen in the render, keep changing this setting until you’re satisfied with your halo’s size on your render. All other settings that you see in this field are self-explanatory. Just make sure that Texture is enabled; this will give our halo points the capability to receive textures, just like how surface materials are.
Shading and Halo Settings
Halo Texture
With the camera set in place, a good world color as background, and some lighting, here’s what we should get from our initial render:
Smoke Test Render 

No comments:

Post a Comment