Jump to content

Hair modelling


murathan altunsoy

Recommended Posts

About first, generally you interpolate the relative, parametric UV location from first polygon, to extruded ones. These positions are control points for some kind of curve interpolation. Let's say in Houdini, Scatter SOP from initial set of polygons, XYZ distance VOP to find parametric UV, Primitive Attribute VOP for matching, Spline VOP to fit the lines on curves, while lines are copied from points. There should be a mechanism to  find the corresponding polygon - I think this part should be easier in H if sort of copying is used (polyextrude with 'side' option off, or like), because H XYZ distance VOP returns the primitive number, too.

 

About Melena 'hair from nurbs', basically it's 'boosted' H Creep SOP or what is called 'deform by surface' in SI or 'wrap' in Maya. However, to get it 'boosted', there's need to re construct the functionality with VOPs or something else. Here in 'finished work' section, there is a sort of translation to H, of SI ICE hair system, which was inspired by one Melena's predecessor, having a lot of appropriate trickery inside - not the same as Melena, anyway.

 

Note that, if something like believable hair is goal, work seems to be similar to building a rig for character - while nothing of required knowledge belongs to rocket science, only after few complete iterations, from scratch to final and believable result - you'll know what's 'appropriate' solution. So maybe it's best to create a 1:1 copy of some well known, widely accepted solution. Of course if related, possible copyrights allows such approach.

Edited by amm
  • Like 1
Link to comment
Share on other sites

I'd already started down the path amm suggested, but hit a problem; a copy sop will keep the parametric uv's identical for each copy, but a polyextrude doesn't guarantee this. Even with turning off sides and leaving front+back on, the parametric uv's flip almost at random per poly (I'm assuming this is becuause the point order doesn't stay consistent, therefore parametric uv's also can't stay consistent).

 

Using texture-uvs (from a uv quickshade or similar) do stay intact with polyextrudes, but then you run into the problem that you can't use primuv() to look this up. Bit of searching around and stabbing, came up with this solution:

 

  1. assign a unique @id to the starting grid, assign texture uvs (point uvs rather than vertex uvs)
  2. scatter points, store id, uv per point
  3. after you've made all your polyextrudes, flatten them all into texture uv space (@P=v@uv;)
  4. use findattribval() to lookup by @id all the matching prims for a given point
  5. use xyzdist to lookup the prim in texture-uv space return its matching parametric uv
  6. use primuv() to lookup that world position on the original polyextrudes

Modelling with polyextrudes is a bit of a chore, you have to keep enabling front+back, disable side for each go-round, also, I found I got most consistent results by manually selecting each time; I thought I could use the groups and have it reset the group on each extrude, but it didn't work. I must be missing something.

 

Anyway, good challenge. :)

 

post-7292-0-65458200-1451705064_thumb.pn

 

hair_from_extrudes_v02.hipnc

 

(edit, added colour and width mappings, slightly betterer modelling)

 

 

 

Edited by mestela
  • Like 1
Link to comment
Share on other sites

Those videos show great ideas, I am going to pay more attention to XSI videos since they have a different way to present great solutions it`s only a matter to port them to Houdini, thanks for those by the way.

 

Here is my contribution, my approach to mimic the 1st video was more a VOP SOP method and I had the same problem that Matt with the polyextrude and the uvs consistency but I don`t think that is that bad, actually I think it is a great solution to model strands, thanks again for the XSI videos.

 

And to mimic the 2nd video was like more straight forward using foreach to create strands from a nurbs esphere, off course with a more complex shape you have to rethink your methods but totally possible to do, it is a great start method to create your own procedural guides to use with Houdini fur asset.

 

Both methods are just prototypes with just a couple hours with try and error they can be much improved and then turn into digital assets for re-use later, I really like the way Matt used wrangles to create the points according to uv space.  :D

 

That`s what`s cool about Houdini you have a lot of ways to achieve the same solution.

 

I hope those files can help.

 

Cheers!

model_opt1_03.hipnc

model_opt2_01.hipnc

Edited by Mzigaib
  • Like 3
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...