Hair in Blender

While promising as a concept for noobs like me, hair-particles in Blender have turned to be mostly frustrating.

So I started to work on “alternative ways of making hair” as shown in several videos you can find on Youtube, aiming at a simple workflow that allows me to shape hair quick and easily.

My result after 2 hours of fun in that new workflow?

hair2

It completely relies on a simple base-image to create strands using transparancy and bump maps in Blender. This is the one I used, based on meshing together other peoples work:

hairstrands

Here is the summary of the process I used to create the hair:

1: Working on the 3D mesh:

Step 1: creating the surface to project the hair on.

  1. Create a plane to create a simple base-mesh based.
  2. Stretch it to your liking in edit mode.
  3. Use “Loop cut and slide” to subdivide the mesh so it has a “spine”
  4. Raise the “spine” to create a wedge so that the thing gets “volume”.
  5. Add “ribs”.
  6. Done.

This is what such a hair-plane might look like:

hair-plane

I start out with a simple plane, stretch it in edit mode and mainly use Loop cut and slide to create the “ribs” and the “spine”. Then I tweak the shape so it gets volume.

 

Step 2: creating a bezier curve, to shape the surface

This is the fun part. Instead of spending (many frustrating) hours melding your hair-meshes to fit the head of the model, you simply use a bezier curve. This curve allows you to shape and reshape the planes along any set of curves you like.

Easy hairdressing for the win.

  1. Create a bezier curve where you need it.
  2. Straighten it out.
  3. Position it correctly in the direction you want your hair to run
  4. Curve it properly.
  5. Done (with this step)

This is what it will look like (depending on your model and other facotrs)

beziercurves

In the image you see a selected Bezier-curve with nodes and their handles to determine the direction and strenght of the curve from those nodes.

Along with it I kept several planes visible, that follow that specific bezier-curve.

As you tweak the curve itself, Blender will updat the attached planes as well.

 

Step 3: adding de “Deform – Curve” modifier

Note: Do NOT apply the modifier until (ever never) (or when) you are done.

This point in yoir process is where the “look mom! almost without hands” hair-sculpting magic happens.

  1. Select the “hair” plane you created.
  2. Add the “Deform – curve” modifier.
  3. Select the appropriate bezier-curve in the “object” drop down (underneath the apply-button and marked yellow)
  4. Move the hair-plane so that it will nicely follow the curve as you want or need it to do.
  5. Play with the bezier-curve that you added in the previous step, to get things right
  6. Use ALT-D to duplicate your hair-plaine as a linked object. (More on that below) And plce them where wanted/needed.
  7. Done (for this step).

beziercurves-deform

Marked in yellow are the important bits.

What you see in this image:

We selected the 2D plane. Then we applied the Deform – Curve-modifier. The bezier curve I marked yellow is the one we use as the modifier. It is called: “Side left”. Notice how the selected plane follows that curve nicely.

The more horizontal and vertical distance you use, the more it will start “guessing”  the path to follow, making it less and less precise.

 

Limitations

There is at least one limitation to this method: you can’t use the bezier-curve to twist the plane. It will move through 3D-space, but you cant rotate the object around the axis you bend it along.

 

Using ALD-D to duplicate

One thing I started doing recently is to create linked objects instead of copies. The big benefit is that if I need to change the resolution of all hair-planes, I can do so on the one single object I “duplicated” all others will automatically update as well.

 

Rotating the object (in object mode) so it is easier to place

To make your plane move nicely along the curve, position it properly first by rotating it. Also note I try and put the 0/0 point at the “root”  of the hair-plane.

Below some examples, based on planes I already placed.

 

Forward:

b-forward-facing

Sideways:

b-sideways-facing

Backwards:

backwards-facing

After applying the Deform – Curve modifier, these hair-planes will follow the bezier nicely.

 

2: Applying the “hair material”

The hair-material is created with the following nodes (click for full-size image):

hair-material

There are 4 parts here:

  1. VisibilityPurpose: we want to make all part of the surfaces that are not hair-strands 100% tranparant. Solution: I use the grey- and white-values of the hair-map as a pass-through filter. White = 0% transparancy. Black = 100% transparancy. Issue: As the hair-map contains grey-values, I want to “boost” the white-levels. I do that with the RGB-curves thingy.
  2. Bump mapPurpose: we want life-like hair and to do so, we want to simulate light-fall on individual hair strands. Solution: use the hair-map also as bump-map. It contains nice grey-values to simulate the height-differences.
  3. Hair colorPupose: the hair has a specific color.  Solution: we simply choose a dark-brown for the Diffuse BSDF.
  4. Hair glossPurpose: hair is quite glossy. Solution: we add a Gloss BSDF. Notice that we use a lighter brown. Most natural hair has a slightly different gloss-color. This makes the hair itself more interesting as well, I think.

A visual breakdown :

All (gloss, bump, transparancy) implemented:

Notice the individual strands of hair. (I forgot to switch visibility on for some of the back strands, hence the gap showing the skull)

hair-all

Without transparancy:

hair-notransp

Without gloss:

hair-nogloss

Without bump map:

hair-nobump

And that’s basically it. 🙂

 

 

 

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s