Static Particle systems can be used to render in three ways:

- With a halo material, which is like painting with small brushes

- As a Duplicator, with a copy of a parented Object on each static particle line segment

- As screen-aligned "hair strands", the new default.

 

See this page for the new options in the Particle system.

 

Hair strands are small polygons, which are extruded to follow the direction of the static particle line, but whose width is exactly perpendicular to the viewing angle and precisely 1 pixel wide. This ensures that for any distance the strands will render without alising problems. In this sense it resembles a bit the "Wire render" option, with the main difference being that here the actual face normal still is valid for rendering, and always points - perpendicular to the strand - in the direction of the camera.

 

Best results will be obtained when using an alpha Blend Texture (make sure you set the ZTransp option) to make the endpoints look sharp or thin. For this purpose a new Texture "Map Input" channel has been added, named "Strand".

Options for Strand rendering are found in a pop-up menu in the first Material Panel.

 

Use Tangent Shading

This option, which is the default for particle strands, ignores the face normal for rendering, and instead uses the vector of the direction of the strand (the "tangent"). Shading in Blender then switches to using Anisotropic reflection for both diffuse and specular.

 

For Diffuse, it computes a fake normal, representing the optimal hair normal pointing towards the light. All current builtin shaders work with this, including ramps.

 

For Specular, it uses another formula to remap dot products for all

lines that now use the tangent vector instead of the normal:

 

dot = vector * tangentvector

dot = sqrt(1.0 - dot*dot)

 

Officially (according the papers) this trick could be used for diffuse too, but then hair becomes very flat. Now you can control the flatness easily with ramps or using Oren-Nayer for example.

 

Disabling the "Tangent Shading" option will still render nicely, but resembles more solid strands, as though made of metal or wood.

Tangent render, using anisotropic specular.
Using regular normals for rendering.

Strand width settings

 

You can also set a start and end width for strands. This interpolates linearly by default. The "Shape" slider allows you to control the interpolation. A negative value will make the strand narrower (spiky), a positive value will make it fatter (like a leaf).

 

The images here show (top to botom), strands with size 1, with a linear transition from 10 to 0.5 pixel, and with a more spiky transition.

 

 

 

 

 

 

 

Shadows

 

Since the strands are screen-aligned flat polygons, shadows will show a great deal of aliasing when ray traced, not to mention the little dark dots of shadows of hairs on hairs. Much better results can be achieved with using the Shadow Buffer option. Be sure to create a large enough buffer, with high sample and amount settings.

Hairball, 1 pixel strands
Hairball, 5 to 1 pixel fat strands