From BlenderWiki

Jump to: navigation, search

If you use an older version of Blender: documentation for version 2.45 and earlier.

Image 1: Particle hair with Softbody animation (blend file).

This page does not contain any “new” information, it tries to compile methods to create particle hair as realistic as possible. I invite any experienced user to discuss the contents of this page on the discussion page of this article, you may well have other experiences.

There are always several ways to achieve a certain result. Some road marks up front:

  • The easiest thing to create is fur. If you have 2GB RAM you may render up to 2.000.000 particles quite fast. If you need more particles, which may happen with several large characters in the foreground, you need more memory or have to split the scene.
  • If you want to animate the hair with Soft Body physic, take care of the amount of particles (some 1.000). Else the soft body calculations may take really long time. Collision is facilitated if you use an invisible, simplified collision mesh instead of the original mesh (no ears, no eye socket).
Blender3D FreeTip.gif
Collision is still not working perfectly
Your best way to go is to use it as little as possible. Fake it, weight paint it, post produce it - I have not managed yet to create 100% perfect collision, though you can come pretty close.


  • You have to use weight painting if you want to animate with soft body physics.
  • Children can be emitted from Faces or from Particles. Children from faces have some advantages:
    • They are distributed more even on the mesh, even if you have a relatively small amount of parents.
    • They always start from the mesh.
    • You can Use Seams to part the particles.
    • You have a Level of Detail function, i.e. the objects will be rendered simpler when the distance to the camera increases. So you can use more particles.
  • Children from particles do follow their parents better though.

If you have not yet read the fur tutorial, it would be a good idea to do it now and come back after that.

Particle system

Image 2a: A first, simple particle system.
  • We’re going to start with an UVSphere as “head”, activate AutoSmooth and then SetSmooth.
  • Add a Subsurf modifier.
  • Add a new particle system. 1000 particles are enough here, so we can work fast in the 3D window. For a real hair cut I would use more particles (5.000 upwards), but to animate them with soft body physics is quite demanding for the CPU.
    • Type Hair.
    • Emit from Faces.
    • Activate Random and Even, so that the hair distributes evenly on the object. Without Even small faces would emit as many particles as large faces.
  • Set the parameter Normal in the Physics panel to 0.5.

The hair has now a certain length, the emitter is invisible in the render (Image 2a).

To let the particles be emitted only from a certain part of the mesh there are three possibilities:

  1. Use a vertex group.
  2. Use a texture.
  3. Use another mesh.

I’ve used a vertex group.

Image 2b: The emission was controlled with a vertex group. The emitter uses another material than the particles.
  • Create a vertex group in Edit mode. The simplest way to do that would be to select the regarding vertices and press CtrlG → Add selected to new Group. Rename that group to “Hair”.
  • Use this group in the Extras panel in the section Vertex Group. Attribute: Density. If the hair is still emitted from the complete object change the particle system type to Emitter and back to Hair, now it should work.
  • To render the emitter also, activate Emitter in the Visualization panel.
  • Use material no.2, we don’t have any materials till now, but we’re going to create some soon.
  • Since were going to work with many particles, we use the button Strand Render in the Visualization panel. This activates the keypoint strand render. See the manual page regarding Strands for pros and cons of the different strand shaders.
  • Create two new materials for the object in the Editing context, the Link and Materials panel, and assign them both. The material that shall be used for the emitter object should be assigned at last.
  • It is really a good habit to name the materials properly. I’ve named the first material “Skin”, the second material “Hair”. The “Hair” gets a simple, blue material (Image 2b).
Image 2c: Settings for the particle system till now.


Add volume and dress

To increase the amount of hairs, we add Children.

Image 3a: 10 children and a bit dressed.
  • Activate Children from: Faces in the Children panel. Set the Render Amount to 10, so that you can do relatively fast test renders.
Children from: Faces don’t follow their parents too well. So probably some of the children will penetrate the head (e.g. at the ears). This problem can’t be avoided automatically. If you have errand hairs visible in a still image the fasted way may be to get rid of them with post processing. Children from: Particles do follow their parents better, especially if you use many parents.
  • Click on Set Editable in the Particle System panel to dress the hair.
  • Change to Particle mode with the dropdown list in the window header of the 3D window.

Now by default only the parents are visible, because we can edit only them.

  • N activates the Particle Edit Properties panel.
  • You see the control points of the hair in Point Select mode (directly next to Limit Selection to Visible in the window header, see Particle Mode).

Now dress the hair to your liking. This may take it’s time, I’ve found it took quite a few attempts to get any useful hairstyle (Image 3a). If you have selected single control points you edit only the selection. You can hide controlpoints with H.

If you want to animate the hairs as softbodies, you have to adjust the weight of the controlpoints. Points with a weight of 0 (in black) follow the softbody physics completely, points with a weight of 1 (white) don’t follow the softbody animation. Hairs directly adjacent to the head should get a weight of 1, so that it is not necessary to calculate the collision. I would painstakingly difficult to use softbody animation for hairstrands behind the ear, this will never work correctly.

Use a small weight for the tips of long hair and the sections that shall move freely.

Insert a basic lighting (also a Spot lamp with shadow buffer), to judge the flow of the hair and the material. If the hair is too angled (like in Image 3a), increase the amount of Rendersteps (Visualization panel) carefully (only one at a time). Many rendersteps need much RAM. Each segment is subdivided into smaller rendersegments.

Material

To let the hair look like hair, you have to change the hair color and it’s thickness. At first we will set the hair color with the RGB color of the material. You can also create color variations with a texture. The basis color of the particle is the color of it’s emission point. Often we use an additional texture along the strand to fade the hair towards its tip. That makes the hair more fluffy looking and softer. At last you need the right amount of children. Number of particles and thickness of hair create the effect you’re looking for. If you have 1.000 parent particles you need around 50 to 100 children. Thin hair (blond) need more, thick hair (black) need less particles.

The color of the hair is - especially with thin hair - governed by the specular highlights, so it may be wise to set the Spec color also.

Black hair

Image 4a: 140.000 particles, keypoint strands.

Black hair is quite simple, so we will begin with that. Simply set the RGB color to black.

  • Strand-Shader: The most important settings are in the Materials tab, hidden behind the button Strands in the Links and Pipeline panel. Hair stays nearly as thick at the end as at the beginning. Start: 0.86, End: 0.854, Shape: -0.686.
  • Textures: We need at least one texture, to fade the strand towards the tip. Map Input: Strand, Map To: Alpha, DVar: 0. With a custom blend texture we can fade the strand at discretion.

To make the hair really transparent, you have to activate ZTransp.

Blond hair

  • Strand settings:
    • This time we use Blender Units. Set Start to 0.003 and End to 0.002 (if you need thinner hair you have to enlarge the object). Set Minimum to 2. This fades the hair, without using an additional texture.
    • Leave Shape on 0, or set it to something like -0.5. The hair will then become relatively early (at its root) thinner, but the hair is already so thin, that it may be too much.
  • Material settings:
    • The hair color is relatively dark (0.37, 0.30, 0.22). The hair will become blond because the specular highlights are bright.
  • Textures: With a texture you change the color of the specular highlights. Map To panel settings:
      • Csp.
      • Color (0, 0, 0) (black).
      • Use a relatively high resolution, random texture, for example a Marble texture with a high Turbulence value.

The material I have used for (Image 1) is by courtesy of Len. It’s the same that he has used for his Saskia.

Animation

For animating hair particles with the Soft Body simulation see Combination of Soft Bodies with hair particles.

Links




Introduction
What is Blender?
Introduction
Blender’s History
License
Blender’s Community
About this Manual
What's changed with Blender 2.4
Installing Blender
Introduction
Python
Installing on Windows
Installing on GNU/Linux
Installing on Mac
Installing on other Operating Systems
Configuring Blender
Directory Layout
Starting
The Interface
Introduction
Keyboard and Mouse
Window System
Arranging frames
Headers
Console window
Window Types
Screens (Workspace Layouts)
Scenes
Configuration
Modes
Contexts
Menus
Panels
Buttons and Controls
Internationalization
Your First Animation
1/2: A static Gingerbread Man
2/2: Animating the Gingerbread Man
The Vital Functions
Quick render
Undo and Redo
Default scene
Screenshots
Help!
Setting Preferences
Configuring Preferences
Interface
Editing
Themes
File
System
Interaction in 3D
Introduction
Introduction
Navigation
Introduction
3D View
3D View Options
3D View Usage
Camera View
Layers
Local or Global View
Sketch in 3D Space
Introduction to Grease Pencil
Drawing sketches
Layers and Animation
Converting sketches to geometry
Transformations
Introduction
Basics
- Grab/Move
- Rotate
- Scale
- Gestures
Advanced
- Mirror
- To Sphere
- Shear
- Warp
- Push/Pull
Transform Control
Introduction
Precision of Transformations
Numeric Transformations
Transform Properties
Reset Object Transforms
Manipulators
Transform Orientations
Axis Locking
Pivot Point
- Active object
- Individual Centers
- 3D Cursor
- Median Point
- Bounding Box Center
Snapping
Snap to Mesh
Proportional Edit
Data System and Files
Blender's Data System
Blender's Library and Data System
Blender's Datablocks
Scenes
Working with Scenes
The Outliner Window
Appending and Linking
File operations
Introduction
Opening blender files
Saving blender files
Modeling
Introduction
Introduction
Objects
Objects
Selecting Objects
Editing Objects
Groups and Parenting
Tracking
Duplication
- DupliVerts
- DupliFaces
- DupliGroup
- DupliFrames
Mesh Objects
Meshes
- Mesh Structures
- Mesh Primitives
Selecting
- Selectable Elements
- Selection Basics
- Advanced Selecting
- Selecting Edges
- Selecting Faces
Editing
Basic Editing
- Translation, Rotation, Scale
- Adding Elements
- Deleting Elements
- Creating Faces and Edges
- Mirror editing
Vertex Editing
Edge Editing
Face Editing
Deforming Tools
- Mirror
- Shrink/Fatten Along Normals
- Smooth
- Noise
Duplicating Tools
- Duplicate
- Extrude
- Extrude Dup
- Spin
- Spin Dup
- Screw
Subdividing Tools
- Subdivide
- Subdivide fractal
- Subdivide smooth
- Loop Subdivide
- Knife Subdivide
- Bevel
Miscellaneous Tools
Retopo Tool
Sculpt Mode
Multi Resolution Mesh
Vertex Groups
Weight Paint
Mesh Smoothing
Curve Objects
Curves
Selecting
Editing
Advanced Editing
Surface Objects
Surfaces
Selecting
Editing
Text Objects
Texts
Editing
Meta Objects
Metas
Editing
Empty Objects
Empties
Group Objects
Groups
Scripts
Modeling Scripts
Modifiers and Deformation
Introduction
Introduction
Modifiers Stack
Modify
UVProject
Generate
Array
Bevel
Booleans
Build
Decimate
EdgeSplit
Mask
Mirror
Subsurf
Deform
Armature
Cast
Curve
Displace
Hooks
Lattice
MeshDeform
Shrinkwrap
SimpleDeform
Smooth
Wave
Simulate
Cloth
Collision
Explode
Fluid
Particle Instance
Particle System
Soft Body
Lighting
Introduction
Introduction
Lights
Introduction
Light Properties
Light Attenuation
Light Textures
What Light Affects
Lights In Other Contexts
Shadows
Introduction
Shadow Properties
Raytraced Shadow Properties
Volumetric Lights
Introduction
Lamps
Introduction
Lamp Light
- Raytraced Shadows
Spot Light
- Raytraced Shadows
- Buffered Shadows
- Halos
Area Light
- Raytraced Shadows
Hemi Light
Sun Light
- Raytraced Shadows
- Sky & Atmosphere
Lighting Rigs
Radiosity
Introduction
Rendering
Baking
Scene Light
Ambient Light
Ambient Occlusion
Exposure
Exposure
Materials
Introduction
Introduction to Shading
Materials Introduction
Usage
Assigning a material
Material Preview
Material Options
Multiple Materials
Properties
Diffuse Shaders
Specular Shaders
Ambient Light Effect
Color Ramps
Raytraced Reflections
Raytraced Transparency
Subsurface Scattering (SSS)
Strands
Node Materials
Material Nodes
Nodes Editor
Node Controls
Nodes usage
Nodes Groups
Material Node Types
- Input Nodes
- Output
- Color
- Vector
- Convertor
- Dynamic
Vertex Paint
Using Vertex Paint
Halos
Halos
Textures
Introduction
Introduction
UV/Image Editor
Common Options
Texture Stack
Texture Types
Texture Types
Procedural Textures
Image Textures
Video Textures
Texture Nodes
- Nodes Editor
- Node Controls
- Nodes usage
- Nodes Groups
-- Textures Input Nodes
-- Textures Output Nodes
-- Textures Color Nodes
-- Textures Patterns Nodes
-- Textures Textures Nodes
-- Textures Convertor Nodes
-- Textures Distort Nodes
Texture Plugins
Texture Painting
Painting the Texture
- Projection Paint
Mapping
Mapping
Environment Maps
UV Unwrapping Explained
- Unwrapping a Mesh
- Managing the UV Layout
- Editing the UV Layout
- Applying an Image
Influence
Influence
- Material
-- Bump and Normal
-- Displacement
- Particles
- World
World and Ambient Effects
World
Introduction
World Background
Ambient Effects
Mist
Stars
Rigging
Introduction
Introduction to Rigging
Armatures
Armature Objects
Panels overview
Bones
Visualization
Structure
Selecting
Editing
- Bones
- Properties
- Sketching
- Templating
Skinning
Introduction
Linking Objects to Bones
Skinning to Objects’ Shapes
Retargeting
Posing
Introduction
Visualization
Editing Poses
Pose Library
Using Constraints
Inverse Kinematics
Constraints
Introduction
Introduction
Constraints Common Interface
Constraints’ Stack
Transform Constraints
Copy Location
Copy Rotation
Copy Scale
Limit Distance
Limit Location
Limit Rotation
Limit Scale
Transformation
Tracking Constraints
Clamp To
IK Solver
Locked Track
Stretch To
Track To
Relationship Constraints
Action
Child Of
Floor
Follow Path
Null
Rigid Body Joint
Script
Shrinkwrap
Animation
Introduction
Introduction
The Timeline
Markers
3D Views
Animation Editors
Animation Editors
Ipo Editor
Ipo Curves and Keyframes
Ipo Datablocks
Ipo Types
Ipo Editor Interface
Editing
- Ipo Curves
- Keyframes
Ipo Drivers
Action Editor
Editing Action Channels
NLA Editor
Editing NLA Strips
Strip Modifiers
Animation Techniques
Introduction
Animating Objects
- Using Constraints
- Moving Objects on a Path
Animating Shapes
- Shape Keys
- Editing Shape Keys
- Animating Shape Keys
- Shape Keys Examples
Indirect Shape Animation
Animating Armatures
- Stride
Animating Lamps
Animating Cameras
Animating Materials
Animating Textures
Animating World
Physical Simulation
Introduction
Introduction
Dynamics
Force Fields
Collisions
Particles
Particles
Types
Physics
- Newtonian
- Keyed
- Boids
Visualization
Controlling Emission, Interaction and Time
Cache & Bake
Hair
Children
Vertex Groups
Particle Mode
Soft Body
Introduction
Exterior Forces
Interior Forces
Collisions
Simple Examples
Combination with Armatures
Combination with Hair Particles
Reference
Cloth
Introduction
Fluids
Fluid
Using the Game Engine
Using the Game Engine
Rendering
Introduction
Introduction
Camera
The Camera
Perspective (Vanishing points)
Depth Of Field
Render
Displaying Renders
Basic Options
Antialiasing (Oversampling)
Rendering Animations
Panoramic
Render Baking
Using the Command Line
Output
Output
Video Output
Effects and Post Processing
Introduction
Render Layers
Render Passes
Edges & Toon
Stamp
Color Management & Exposure
Depth Of Field
Motion Blur
Render Performance
Rendering Performance
Distributed Rendering
External Render Engines
Introduction
YafRay
Compositing with nodes
Composite Nodes
Introduction
Nodes Editor
Node Controls
Nodes usage
Nodes Groups
Composite Node types
Composite Node types
Input Nodes
Output Nodes
Color Nodes
Vector Nodes
Filter Nodes
Convertor Nodes
Matte Nodes
Distortion Nodes
Editing Sequences
Introduction
Introduction
The sequencer
Usage
Sequencer Modes
Sequence Screen Layout
Effects
Built-in Effects
Plugin Effects
Audio
Audio Sequences
Extending Blender
Introduction
Introduction
Python Scripting
Python Scripting in Blender
Setting up Python
The Text Editor
A working example
References
Python Scripts
Script Catalog
Bundled Scripts
Plugins
Blender's Plugins System
Texture plugins specifications
Sequence plugins specifications
Game Engine
Introduction
Introduction
The Logic Editor
Usage
Game Properties
Sensors
Introduction
Sensor Types
Controllers
Introduction
Expressions
Actuators
Introduction
Action
Camera
CD
Constraint
Edit Object
Ipo
2D Filters
Game
Message
Motion
Parent
Property
Random
Scene
Shape Action
Sound
State
Visibility
Cameras
Cameras
Dome Camera
Physics
Physics Engine
Material Physics
Object Types
- Static
- No Collision
- Dynamic
- Rigid Body
- Soft Body
- Occluder
- Sensor
Python API
Bullet physics
VideoTexture
Various resources
List of Features
External resources
Game Engine Basics (BSoD Tutorial)
FAQ