TomRaynor Posted May 21, 2013 Share Posted May 21, 2013 Anyone know how to get a normals pass working on Houdini fur? If you just make a polygon sphere and apply the shelf tool fur to it, and then make sure that the final rendered hair curves have a normals attribute on them, I would have thought that just by adding an image plane for "N" in a mantra node would give you a working normals pass. It seems that whilst the underlying sphere renders correctly in the normals pass, the hairs just come out black. I was wondering if I might have to export out normals from inside the CVEX shader or something. Anyway, everything I have tried so far doesn't work. Anyone have any ideas? Cheers! Quote Link to comment Share on other sites More sharing options...
anim Posted May 21, 2013 Share Posted May 21, 2013 not sure if this will get you correct normals but go to your hair material and connect Hair Normal VOP to N port in surface_output node you can play with Do Rounding option on Hair Normal VOP Quote Link to comment Share on other sites More sharing options...
TomRaynor Posted May 22, 2013 Author Share Posted May 22, 2013 Thanks Tomas, I will give that a try tomorrow! Quote Link to comment Share on other sites More sharing options...
old school Posted May 23, 2013 Share Posted May 23, 2013 Hi Thom, Having a quick look at the vex code in the three hair models inside the Hair shader used by the Fur Tools, all three normalize the input N to nN and N is the global N since there is no user-supplied N input in to the top level VOP. From this, I would just put down a new Global Inputs VOP, wire the N from that in to a Normalize VOP then either wire this in to the N tab of the Output VOP or export a net new attribute called nN using a Bind Export VOP. At least you should be exporting the normals that are used by the three hair bsdf lighting models. I personally haven't tried to use these normals to do augmented lighting in comp. Please give this a try and see if they work. 1 Quote Link to comment Share on other sites More sharing options...
TomRaynor Posted May 23, 2013 Author Share Posted May 23, 2013 Cool, I just tried it out and I do indeed get some form of normals pass on the hairs and they seem to not just be one block colour per hair but be a varying colour over the length of each hair which is interesting. I was kind of expecting that by passing normals from the skin mesh to the hairs that each hair would have the same value of "normal" across the length of each hair... I hope it is a good thing that they don't. I am going to try using this for relighting and see it it actually works... Quote Link to comment Share on other sites More sharing options...
symek Posted May 23, 2013 Share Posted May 23, 2013 Afaik physically based hair bsdfs don't use N at all despite its surface normal is connected to global N. You can change it to what ever you like, it won't do anything to the image. Also current hair procedural produces geometry which doesn't have implicit normals for whatever reason (I assume optimization). Hair is a flat ribbon, shaded only on a single edge (thus could not have an automatic normals from a surface derivatives?). So as anim suggested using Hair Normal Vop is a way to go (it computes normals from a direction of a hair an eye). Quote Link to comment Share on other sites More sharing options...
TomRaynor Posted May 23, 2013 Author Share Posted May 23, 2013 Oh right I see. So your saying that I don't even need to bother passing an "N" attribute from my skin mesh to my rendered hairs, I can just generate some normals using the "hair normal" VOP in the shader at render time? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.