/ by Andy
okay i have to admit it. this decision was quite hard to make: our characters will have hair - and not cartoony hair, but believable realistic hair!
so for me that meant, dive into blender, research and hope that i’d find a solution. admittedly, to this day there were only few convincing hair renders done in blender.
- dupliverted curves are ok for fur, have a nice appearance, but tend to look too repetitive and produce jaggyies in render
- particles are good for overall control of the hair system and material appearance but look crappy when rendered
- the fiber script has the ability to style hair in a good way, but produces heavy heavy heavy meshes
- the beast script looks ok and renders fast, but still has that card based look to it which is not acceptable for long flowing hair.
sooo… this was kinda tricky. duh!
i decided to go the curve based way because with the ‘UV orco’ feature it enables me to spread texture properties over the indidividual hair strands (dark color and opaque at the root, brighter color and transparent at the tip). so i first tried to make a good old fashioned hair furry ball and then slowly nudge it into a more hairy direction…
blender renders 400 K hair strands (with 12 faces each) without any problems, but once we add the much needed transparency, render times climb up! but still… we were able to render a full HD (1920×1080) frame with hair in closeup in under 15 mins. this technique isn’t new, it’s been possible for ages - all the pics here to the left and right could have been done 6 years ago!
the tricky thing with geometry based fibers in blender is that once they’re more narrow than one pixel on rendertime, they show jaggy lines. z transparency helps to cure that a bit. and another drawback: it’s rather easy to make furry creatures with this technique but almost impossible to design a full fledged hairstyle!
so ton and i discussed this and we came to the conclusion that we need to extend the flexibility of the particle system to allow advanced styling and animation AND geometry based rendering with full shadow casting, specular, full control over material properties along the strands, render fast *takes breath* AAAND eliminate anti-aliasing issues to the maximum possible amount.
ton left, we went back too work. and only a couple of hours later i was completely amazed to see the first results in cvs - ready to play with!
the new improved hair solution is simple. static (animated) particles are rendered as a series of extruded faces which are parallel to the camera view, and blender makes sure that they’re rendered at the right size to produce no (or only minor) AA issues. workflow is easier than ever: make a mesh, assign static particles, add material - and off you go!
it’s also easy to add transparency and different color properties along the strand: since it uses the x axis to folow the strand you can simply add a blend texture with a colorband to control color and transp offset.
on the todo list is the inclusion of the new particle patch which allows for guide curves (think of softbody guide curves!) and much more goodies for animated particles, too! also there has to be significant speedup with ztransp rendering and anisotropic shading is also planned. further we should be able to use vertex colors to influence hair density, direction and lenght.
here is a little test to show you the possiblilities of the new particle rendering. it also uses a cloud texture on the eighth tex channel to make the hair curly. of course you need the latest, and i mean LATEST cvs to see it correctly (otherwise you’d just see the old usual crappyness)
UPDATE: now anisotropic (tangent) shading has been implemented:
see ya! =D