[Bf-committers] Blender Hair Modeling

Ton Roosendaal ton at blender.org
Tue Jun 6 15:58:21 CEST 2006


Hi all,

Jonathan has submitted a very high ranked - but unfortunately not 
rewarded - submission for the GSoC project. He has expressed interest 
to continue working on it nevertheless. I already started discussions 
with him about it, but suggested it would be better to move that to the 
public bf-committers list. :)

Below the history sofar:


> From: Jonathan <>
> Date: 28 May, 2006 20:14:48 GMT+02:00
> To: "Ton Roosendaal" <ton at blender.org>
> Subject: Re: Google/Blender project
>
> I think this will be specialized hair modeling rather
> than general particle systems. It occured to me that
> the system is more like an extended, more powerful
> duplivert tool where multiple base objects are used
> and interpolated across the faces of the mesh
> to generate and place the duplicates with
> varying density and shape. Of course, the simulation
> engine will be specialized for hair and hair-like objects,
> but the simulation will control the control hairs and
> the rest of the hair is interpolated into position.
>
> Here's an example hair tutorial for shave and a haircut
> I found on the internet:
> www.computerarts.co.uk/__data/arts_pdfs/cap56_shave.pdf
>
> It's not exactly what I aiming for, but it isn't too far off. I've
> attached a file (blender-hair.txt) with the an outline of
> the final form of an artist's workflow for hair.
>
> Ornatrix also has some tutorials on its website sush as
> http://www.ibmr.net/Ornatrix/index.php?dest=tutorials&tut=basic_hair
>
> -- Jonathan
>
> On 5/27/06, Ton Roosendaal <ton at blender.org> wrote:
>> Hi Jonathan,
>>
>> > Thanks for letting me know about the mentors' positive response
>> > and for your personal response. I've been thinking it over, and I've
>> > decided to work on the hair system improvement without the
>> > grant.
>>
>> Coolness. :)
>>
>> As you already note below; there's a couple of complex design 
>> decisions
>> to be made in advance. How much of this is "general particle system" 
>> or
>> rather is "specialized hair modeling"?
>>
>> I can help you with this part (integration design) best when I first 
>> get
>> the big picture. In your original proposal you mention how C4D has it
>> implemented; which is afaik was inspired by Joe Alter's "Shave and a
>> Haircut".
>>
>> Maybe you have a couple of interesting links describing the 3d 
>> artist's
>> workflow of hair modeling, what you like to achieve?
>>
>> Thanks,
>>
>> -Ton-
>>
>>
>> > I'll divide the hair system into several parts: (a) control curve
>> > creation, (b) control curve manipulation, (c) control curve physics
>> > simulation, (d) interpolation between control curves, (e)
>> > conversion of control curves to particle systems or meshes for
>> > rendering, and (f) collision detection and response.
>> >
>> > I've already begun looking through the source code and worked
>> > on adding a general morphing modifier patch the last few days,
>> > but since there's an modifier stack upgrade for a summer of code
>> > project, I'll put that on hold until after the upgrade is completed.
>> >
>> > For (a) I'm only going to consider adding hair to meshes and
>> > save adding hair to nurbs and metaobjects for later. I figure
>> > without the time constraints from google, I can experiment more
>> > and proceed slower.
>> >
>> > I figure for each region of hair growth there can be two vertex
>> > groups- one indicating which vertices to grow control curves out
>> > of and one indicating the region to grow hair from. Initially, the
>> > vertex group will need to be manually setup. and once I have an
>> > the first version of the hair engine ready, I'll add a new mode
>> > specifically for creating and manipulating hair. I think I'll limit
>> > each hair growth region to one material each. The control curves
>> > themselves will be normal curve paths so (b) can be done
>> > with the current tools for the moment. An idea for a
>> > control curve manipulation tool that occurred to me
>> > is a proportional editing tool specially designed to handle the
>> > control curves.
>> >
>> > I think I'll skip the physics and collision detection until I've 
>> done
>> > the interpolation and rendering sections. Right now I'm reading
>> > "Real-time collision detection" by Christer Ericson to help prepare
>> > myself for when I reach this section.
>> >
>> > I'm considering adding hair as a new object type. Is this
>> > a good idea? Maybe I could add hair as a new effect or
>> > are effects being replaced by the modifier stack?
>> > Plus, I'm not sure how to attach an object to the mesh so that
>> > the object will be updated/notified whenever the mesh is
>> > changed by editing or through animation. Will I need to add a
>> > modifier to the modifier stack to accomplish this? (When I
>> > skimmed through the armature code, I got the impression that
>> > I'll need to add a modifier.)
>> >
>> > Also, in the UI I was thinking of putting hair under
>> > Object --> Physics buttons --> Hair panel (next to
>> > soft body/fluid simulation panel). In the hair
>> > panel I would have three tabs- editing with
>> > options for individual control curves, dynamics
>> > options, and rendering conversion options.
>> >
>> > Any suggestions or comments? Once more
>> > of the details are hammered out, I'll revise
>> > my blender wiki page for the hair system too.
>> >
>> > Thanks,
>> > Jonathan
-------------- next part --------------
=Artist's Workflow=

A. Select mesh.
B. Enter hair mode.
C. Create hair region and control hairs.
	1. Add and mark hair region
		a. Use existing selection tools to select vertices to form a 1-ring connected vertex group.
		b. New tool to check validity of region and note invalid vertices
	2. Add control hairs to active hair region or automatically generate the control hairs
		a. For manually adding control hairs:
			1. Use existing tools to select one vertex.
			2. Use new tools that provides a list of default control hair shapes
				(1) ex: long hair following curvature of mesh in choosen direction
		b. Add seams to indicate partings in the hair.
		c. Previewing enabled beyond this point.
			(1) show hair in 3d view as lines if particle system or as mesh if polygons mesh/nurbs
	3. Adjust control hairs in active hair region
		a. Use existing tools for curves
		c. Dynamics simulation from original initial position to new initial position
		b. Set options for each control hair or use tools
		d. New Tools such as brush, hair blower, curler, etc.
D. Visuals
	1. Add a material to each hair region.
	2. Select a rendering structure to represent hair (default will be particles)
		a. Choices include: particles, polygon mesh/nurbs
			(1) particles would be used for realistic hair and fur
			(2) polygon mesh or nurbs would be used for cartoon hair or other shapes like tentacles
E. Exit hair mode.
F. Animate hair
	1. Setup
		a. Select deflector objects
		b. Set up wind and other forces, including those caused by being within a fluid
		c. Activate collision detection
	2. Manual animation
		a. Actions and NLA using the control hairs as animated curves
		b. Add desired Ipos to most hair options such as length and clumping
			(1) what about cutting hair? not sure how to handle this
	3. Physical simulation
		a. Activated if desired
G. Render
	1. Rendered with the rest of the scene



-------------- next part --------------
>
------------------------------------------------------------------------ 
--
Ton Roosendaal  Blender Foundation ton at blender.org  
http://www.blender.org


More information about the Bf-committers mailing list