Fur and Hair Help (Version 8.1.710+, 8.2.x)

   22825   24   4
User Avatar
Member
4262 posts
Joined: July 2005
Offline
Fur & Hair Help: (Versions > 8.1.710)

Note: This help is in a state of flux, I'm constantly adding to it and making changes as the Fur Tools evolve.
For a brief history checkout

Fur example? [sidefx.com]
RFE: Allow fur layers to have a uniform scale [sidefx.com]
Proto Fur Comments and Questions [sidefx.com]

8.1.710 Update
The Fur procedural got some love in 8.1.710 and now supports all the same parameters as the Fur SOP. You can now pass the density scale and the rest group to the procedural. (-d and -G) I added these options to the list below.

8.1.681 Update
As of version 8.1.681 the Proto Fur tools got a bit of a upgrade, leaving the old examples & workflows more or less useless.

There are some major improvement in this version. The first is the ability for attributes on the guide hairs to be interpolated across the generated ones. For example attaching velocity attributes to the guides is now possible, in additon to having complete control over the width of a hair.

The second improvement is the with clumping. Before you had no control over where the clumping took place. In the current version you actually place guide clump hairs manually then with additional attributes control the effect each guide clump has.

Installation of Fur Tools:

Currently the Fur Tools are unsupported and not included in the standard installation. The Fur Tools along with other unsupported tools from SESI can be installed using the proto_install command. On Linux or Windows open a shell and go to $HB. (houdini_install_dir/bin) The type proto_install (or proto_intall.exe on Windows.) Pick the number that corresponds to SOP_Fur.inst, then pick an installation location. (I susgest reading the ReadMe too.)

The next time you launch Houdini you will now have an extra SOP called the Fur SOP.

Fur Example:

I've attached an example hip file, (FurBall.hip), which sets up a basic fur ball. It makes use of all the current fur attributes and fur effects. Currently the sample lacks any sort of grooming/combing/dynamics of the fur but the skin deforms. For the sample to work you will need to save out the guides, rest and clump geo ROPs in the /obj/FurBall network.

Mantra Procedural:

Rendering fur directly from the Fur SOP can be quite expensive. The IFD that will be generated for Mantra will be extremely large and cause slow load times. Luckily there is a Fur Procedural [odforce.net] for Mantra. Currently there is no Dialog/UI for the Procedural you can still type the command in manually using the following options.


-u <int> : seed the random number generator
-i <int> : Toggle on fur_id attrib
-b <float> : Internal Bounding Box expand.
-c <float> : shutter speed
-C <bgeo> : Clump geometry
-T <str> : Guide attributes to use (space seperated list)
-t <str> : Rest Skin attributes to use (space seperated list)
-g <bgeo> : Guides geometry
-s <bgeo> : Rest Skin
-d <float> : Density Scale
-G <str> : Primitive rest groups (space seperated list)

Note: When using the -c for motion blur you need to add an additional -C and -g option. The first in the line will be the first motion sample, the second occurance will be the second motion sample

fur -c 1 -C clumps.0001.bgeo -C clumps.0002.bgeo -t “surfUV” -T “width Cd” -s rest.bgeo -g guides.0001.bgeo -g guides.0002.bgeo
Edited by - June 19, 2007 10:08:13

Attachments:
FurBall.hip (209.3 KB)
Fur.zip (8.6 KB)

if(coffees<2,round(float),float)
User Avatar
Member
12482 posts
Joined: July 2005
Offline
Thanks for this, Jim! I'll check it out too!
Jason Iversen, Technology Supervisor & FX Pipeline/R+D Lead @ Weta FX
also, http://www.odforce.net [www.odforce.net]
User Avatar
Member
4262 posts
Joined: July 2005
Offline
Houdini 8.1.710 got a Fur update so I updated the help above. Also, with each verison the documentation (readme) included in the proto_install gets more informative, be sure to read it.
if(coffees<2,round(float),float)
User Avatar
Member
110 posts
Joined:
Offline
Hey Wolfwood, i'm checking out your scene, and dunno if i'm doing something wrong, but when i hit to render i keep getting an error.


mantra: fur: unable to load geometry from ‘rest.bgeo’
mantra: fur: unable to load geometry from ‘guides.bgeo’
mantra: fur: unable to load geometry from ‘guides2.bgeo’


Might have been that i did something wrong.
User Avatar
Member
4262 posts
Joined: July 2005
Offline
Just missing a step, (which I didn't provide). For the fur procedural to work you need to save out bgeo (geometry) files of the clumps, guides and rest skin. (The three inputs to the Fur SOP.)

I've added a new example (FurBall.hip) to the post above which is much cleaner. It also demonstrates the following:

  • Scattering clump points on deforming geometry.
    Orienting different guides and clump guides to the geometry using the N,up and rot attributes.
    Creating a procedural bounding box for the fur using the Fur SOP.

Attachments:
FurBall.jpg (24.4 KB)

if(coffees<2,round(float),float)
User Avatar
Member
1192 posts
Joined: July 2005
Offline
The FlowField SOP (also in the proto_install) seems to belong to the hair/fur toolset too. I did just a little experimenting by adding edge forces to a curve with the Point SOP, and it seems a good tool for shaping/animating the guide hairs. Does anyone have some more experience with this?

Dragos
Dragos Stefan
producer + director @ www.dsg.ro
www.dragosstefan.ro
User Avatar
Member
523 posts
Joined: July 2005
Offline
Hello,


I'm testing the fur sop and example: FurExample_v8.1.861.hip.

Is it possible that I see FUR without any lights in the scene ?
I saved out the bgeo files of rest, guides and clumps .
When I render I see fur…



thanks,


bernard
User Avatar
Member
4262 posts
Joined: July 2005
Offline
Bernard
Is it possible that I see FUR without any lights in the scene ?

Yes. I have a constant shader applied to the hair. The color of the hair is completely determined by the Cd attribute.
if(coffees<2,round(float),float)
User Avatar
Member
523 posts
Joined: July 2005
Offline
Thanks Wolfwood,


I see there is a VEX op (called FurAttributes) in this example.
What do I have to use in my own project for this OP? (how can I get this VEX OP in my files…)



many thanks,



bernard
User Avatar
Member
4262 posts
Joined: July 2005
Offline
Look at the other example I attached. Its cleaner and doesn't require the FurAttribs OTL.

In the previous versions of the Fur Tools there were a large number of attributes that needed to be applied to the geometry for the Fur to work. Instead of using lots and lots of AttribCreate SOPs I just wrote a simple VEX SOP that did the same thing in one node. In the current version of the Fur Tools there are only a few attributes that you need, (the most important being furdensity), so the FurAttrib SOP isn't really needed anymore.
if(coffees<2,round(float),float)
User Avatar
Member
523 posts
Joined: July 2005
Offline
Hello,

I'm trying a bit with the FurAttributes OTL (SOP).

I created an attribute create on my guides (width).
What must I give for values in this attribute create, to make my FurAttribute's
Tip Width and Root Width work.
If I set for example a width of 0.004, the render works fine, but I cannot change the tip and root width with the FURAttribute SOP

thanks,



bernard
User Avatar
Member
4262 posts
Joined: July 2005
Offline
Bernard
Hello,
I'm trying a bit with the FurAttributes OTL (SOP).

Don't. Its out dated and obsolete.

I created an attribute create on my guides (width).

This part is correct.

What must I give for values in this attribute create, to make my FurAttribute's
Tip Width and Root Width work.
If I set for example a width of 0.004, the render works fine, but I cannot change the tip and root width with the FURAttribute SOP

Ignore Tip Width and Root Width. The only thing that matters is the width attribute. The width attribute can be applied to vertices or points. Since each point can have a different value you can vary the width of the curve with just the width attribute. At the base of the curve have a width of 0.01 and at the top have a width of 0.005.

Try looking at the example above again. (The node Guide_Width)

It uses the $MAPU variable, (the u texture coordinate) to apply a varying width attribute to the guide hair. When $MAPU is 0 (the root) it has a width of 0.012 and when $MAPU is 1 (the tip) it has a width of 0.007.
if(coffees<2,round(float),float)
User Avatar
Member
7730 posts
Joined: July 2005
Offline
digitallysane
The FlowField SOP (also in the proto_install) seems to belong to the hair/fur toolset too. I did just a little experimenting by adding edge forces to a curve with the Point SOP, and it seems a good tool for shaping/animating the guide hairs. Does anyone have some more experience with this?

No direct experience here but this tool was originally created for hair/fur. I think it was used to to do some cheap collision handling based on flow (or vector) fields. For hair styling, this concept has been proposed before (eg. Hadap and Magnenat-Thalmann 2000 [miralab.unige.ch]).
User Avatar
Member
4262 posts
Joined: July 2005
Offline
Since my life is an empty void until the third season of Battlestar Galatica starts I had some spare time to put together this digital asset. :wink: (Attached to the top post.)

Its fairly simple and is suppose to serve as a front-end for the fur procedural. Instead I having to enter the all the options for the Mantra Procedural parameter it builds the string for you. It also has all standard transform, shading and rendering parameters so it can behave like any other object.

Attachments:
fur_otl.jpg (48.5 KB)

if(coffees<2,round(float),float)
User Avatar
Member
325 posts
Joined: July 2005
Offline
hey, Wolfwood,

great work! I am not sure whether this is a good thing to pollute such a teh pure topic with blunt flatter, still I am sure you've deserved it We've been just discussing your efforts in mirc (#odforce) and now comes this DA. Perfect! U rock!
I liked the Mustang
User Avatar
Member
523 posts
Joined: July 2005
Offline
Hello,


what's the best way to render the FUR with shadows and how can I do this?
(maybe deep shadows- how does this work in Houdini ?)



thanks,



bernard
User Avatar
Member
4262 posts
Joined: July 2005
Offline
Bernard
what's the best way to render the FUR with shadows and how can I do this?
(maybe deep shadows- how does this work in Houdini ?)

On your lights turn on “Auto-generate Depth Map” and also turn on “Deep Shadow Generation”.
if(coffees<2,round(float),float)
User Avatar
Member
523 posts
Joined: July 2005
Offline
Hello,


first I render with no depth map settings, the with the needed settings.
I don't see any difference between the two…

What am I missing ?



thanks,
User Avatar
Member
4262 posts
Joined: July 2005
Offline
first I render with no depth map settings, the with the needed settings.
I don't see any difference between the two…

What am I missing ?

Could be a 100 different things.

Is the shadow map working correctly? If you replace the Fur with just a sphere does that sphere cast a shadow? If you open up your shadow map file in mplay do you see anything? (You might have to hit Shift-R to remap the pixel range in mplay to see anything.)

If all else fails can you post a hip/hipnc file?
if(coffees<2,round(float),float)
User Avatar
Member
523 posts
Joined: July 2005
Offline
Thanks Wolfwood.

I see that I must give a filename for depth map . What must be the extension for this file?

I made a test scene of a sphere and a plain, and when I render with Fast shadows I see the whole shadow.

When I render with depth map, I see a little stroke of shadow…



I don't know anything about generating depth maps. Just starting out…


many thanks once again,



bernard
  • Quick Links