Kristinka Hair 2.0
Re: Kristinka Hair 2.0
Hi,
UV of emitter (PointUV from emit location) is re-mapped to UV of 'cross-section'. To line them up, basically there are two options:
- to add some NURBS surface, close to emitter ('close' means very close, I doing that by shrink-wrapping) , and plug this one in 'filtering NURBS' port. In this case, UV of emitter is replaced by 'filtering NURBS'.
- to model 'cross-section', in a way that all UVs (emitter, all 'cross-sections'), are lining up - that includes UV boundaries too. You can get that by repeating the 'swap UV' (in model> modify > srfmesh ), and inverting normals - some of solutions should match. You can see them by enabling 'NURBS boundaries' in view port. Or just to use copies of emitter - you can 'fit' copies later to get low count of points for tweaking, topology doesn't matter, here.
Cross Sections is actually first styling node I've created, almost two years ago.
Cheers
UV of emitter (PointUV from emit location) is re-mapped to UV of 'cross-section'. To line them up, basically there are two options:
- to add some NURBS surface, close to emitter ('close' means very close, I doing that by shrink-wrapping) , and plug this one in 'filtering NURBS' port. In this case, UV of emitter is replaced by 'filtering NURBS'.
- to model 'cross-section', in a way that all UVs (emitter, all 'cross-sections'), are lining up - that includes UV boundaries too. You can get that by repeating the 'swap UV' (in model> modify > srfmesh ), and inverting normals - some of solutions should match. You can see them by enabling 'NURBS boundaries' in view port. Or just to use copies of emitter - you can 'fit' copies later to get low count of points for tweaking, topology doesn't matter, here.
Cross Sections is actually first styling node I've created, almost two years ago.
Cheers
- shushens
- Posts: 192
- Joined: 13 Jun 2009, 07:34
- Skype: shushens
- Location: Paderborn, Germany
- Contact:
Re: Kristinka Hair 2.0
Fascinating! Now I feel like a loser, asking for help on hair everytime but never actually doing it.
Can I propose a newbie thread for those who want to make great hair (like izze did) but have no concrete idea how to go about it step by step?
I am saying this because a lot of stupid questions will be asked there (some of them definitely by myself).
Can I propose a newbie thread for those who want to make great hair (like izze did) but have no concrete idea how to go about it step by step?
I am saying this because a lot of stupid questions will be asked there (some of them definitely by myself).
My ill-maintained blog: http://visualdeceptions.info/blogger
Re: Kristinka Hair 2.0
Well instead of kH nodes, I would start with something more generic. Let's say, for modeling part, try to figure out how exactly works the standard XSI 'Deform by surface' operator. For ICE part.. I would play with factory particle/strand examples, and nodes that you can find under 'particle>modifiers' and 'surface>interaction'.
For kH stuff, I have to admit that styling approach is more 'indirect' (sliders, geometry queries, parameters, function curves...), than 'direct' modeling. By taking this article as an guideline - only creation of 'primary shape' belong to 'direct' modeling, 'secondary shape' is somewhere in between, 'tertiary shape' is completely indirect, procedural approach. Also I've tried to avoid a 'classic', curves/guides modeling, as much as I can.
Both because, for a long time that hair systems are available for public, I didn't sow so much good results ('so much' is a nice word), of using *only* 'direct' curves/guides modeling, especially for long hairs.
Anyway, it's not big deal to utilize this nice addon, to create curves from strands, somewhere after 'primary shape', then to use created curves for additional modeling. That needs a few more steps in creation, but I think it's still enough convenient. Possibly I'll add this as an option, in a near future.
Cheers
For kH stuff, I have to admit that styling approach is more 'indirect' (sliders, geometry queries, parameters, function curves...), than 'direct' modeling. By taking this article as an guideline - only creation of 'primary shape' belong to 'direct' modeling, 'secondary shape' is somewhere in between, 'tertiary shape' is completely indirect, procedural approach. Also I've tried to avoid a 'classic', curves/guides modeling, as much as I can.
Both because, for a long time that hair systems are available for public, I didn't sow so much good results ('so much' is a nice word), of using *only* 'direct' curves/guides modeling, especially for long hairs.
Anyway, it's not big deal to utilize this nice addon, to create curves from strands, somewhere after 'primary shape', then to use created curves for additional modeling. That needs a few more steps in creation, but I think it's still enough convenient. Possibly I'll add this as an option, in a near future.
Cheers
Re: Kristinka Hair 2.0
Hi all,
just a WIP of a new modifier called 'Cut By Geometry', that doing... well I think it's pretty obvious what it's doing. Actually there was one in some previous version, with similar functionality, but it wasn't sooo convenient.... This one is a single-step modifier with exactly two parameters ('Enable' and 'Invert').
Cheers
just a WIP of a new modifier called 'Cut By Geometry', that doing... well I think it's pretty obvious what it's doing. Actually there was one in some previous version, with similar functionality, but it wasn't sooo convenient.... This one is a single-step modifier with exactly two parameters ('Enable' and 'Invert').
Cheers
Re: Kristinka Hair 2.0
This set is getting better all the time!!
rob
SI UI tutorials: Toolbar http://goo.gl/iYOL0l | Custom Layout http://goo.gl/6iP5xQ | RenderManager View http://goo.gl/b4ZkjQ
So long, and thanks for all the Fish!!
So long, and thanks for all the Fish!!
Re: Kristinka Hair 2.0
Oh yeah! That looks so neat. (and handy) Is that a poly mesh or nurbs doing the cutting?
Re: Kristinka Hair 2.0
It can be any of two. Poly mesh is a much faster. Actually it doing the test, how many strand segments are on front or back side of mesh.izze wrote:Oh yeah! That looks so neat. (and handy) Is that a poly mesh or nurbs doing the cutting?
Thanks you, guys.
Re: Kristinka Hair 2.0
Very cool, that's the one I was missing but didn't know about it
softimage resources section updated Jan 5th 2024
Re: Kristinka Hair 2.0
So it's here.
BTW, it's not to much precise, 'unit' for cutting is a strand segment. Also, if it's applied to guides, it's good idea to keep the smooth cutting edge - hair filer needs to find closest guides with similar length and shape, to interpolate correctly.
It's using 'Point In Volume' geometry query - it keeps the strand shape, inside of mesh. It need to be single intersection per strand, if there are many intersections, sum of all will cut the strand. According to the docs, cutting geometry need to be closed. From my test, it's faster to use Point In Volume for this case, than Get Closest Location.
Cheers
BTW, it's not to much precise, 'unit' for cutting is a strand segment. Also, if it's applied to guides, it's good idea to keep the smooth cutting edge - hair filer needs to find closest guides with similar length and shape, to interpolate correctly.
It's using 'Point In Volume' geometry query - it keeps the strand shape, inside of mesh. It need to be single intersection per strand, if there are many intersections, sum of all will cut the strand. According to the docs, cutting geometry need to be closed. From my test, it's faster to use Point In Volume for this case, than Get Closest Location.
Cheers
Re: Kristinka Hair 2.0
Thanks a ton!
I wanted to ask a stupid question if you don't mind. How do you create the drop down arrows in your compounds? Like in Follow Curves. There is a Weight and Clump drop down (or Group?), when the compound is expanded. I ask this because, I am editing this compound to expose 100 curve ports, and renaming them numerically. But this makes the compound really really big. Soooooo I wanted to break my curve ports into groups of 25. So I could expand the first group and keep the rest minimized. Only to save space in my tree. (I can't seem to find my answer in the help file)
EDIT: Never mind. It never occurred to me to open the compound in a text editor. Figures, you spend all day on something, and figure it out once you post on the forums.
Also, I assume this will not break anything by doing this. I have 55 curves attached so far and it still seems fine.
Thanks.
I wanted to ask a stupid question if you don't mind. How do you create the drop down arrows in your compounds? Like in Follow Curves. There is a Weight and Clump drop down (or Group?), when the compound is expanded. I ask this because, I am editing this compound to expose 100 curve ports, and renaming them numerically. But this makes the compound really really big. Soooooo I wanted to break my curve ports into groups of 25. So I could expand the first group and keep the rest minimized. Only to save space in my tree. (I can't seem to find my answer in the help file)
EDIT: Never mind. It never occurred to me to open the compound in a text editor. Figures, you spend all day on something, and figure it out once you post on the forums.
Also, I assume this will not break anything by doing this. I have 55 curves attached so far and it still seems fine.
Thanks.
Last edited by izze on 25 Aug 2010, 00:10, edited 1 time in total.
Re: Kristinka Hair 2.0
Well this will not break anything, but can make things slower, much slower than 55 times. To find which curve belong to point (hair root), compound compares the UV distance between point itself and first point on curve - and 'plain' 'Sort Array With Key' node is used here. In case compound is used with guides, and allowed 8 curves, this is about 300-500 guides * 8 - not that much. But, if higher numbers are used, number of calculations is multiplied. At some point (especially with huge number of hairs), I'm afraid the calculation may take forever.izze wrote:Thanks a ton!
Also, I assume this will not break anything by doing this. I have 55 curves attached so far and it still seems fine.
Thanks.
If you're using multiple compounds, one after another, calculations are split to nodes - a bit better, but not enough.
So I think the best way for such number of curves, is to merge all curves into the one, and create a separate, simple point cloud that contains only points, on first points on curves (that's allow using of much faster 'Get Closest Location' node, which uses a lot of ICE magic, and will stop with searching when target is found, calculation is almost 1*1). I had a compound that works in this way (actually, 'Emit Hair' is something like that), but didn't want to bother people with yet another point cloud, used only for searching.
Also, if only curves are used, creating vectors for later deformations (curls,bend) is a risky business, in some cases everything is nice, in some other cases, deformations become weird.
Anyway, I hope I'll post a working example tomorrow (here's late evening, now).
For merging multiple curves into one, I'm using a good old script by.... Ciaran Moloney - probably you can find this script, or something similar, somewhere on internet.
Cheers
Re: Kristinka Hair 2.0
Thanks for the info. I will work on that.
Re: Kristinka Hair 2.0
Model with compounds is here. You can just export compounds. When changing a merged curve with another one, possibly good idea is to first disconnect both compounds from main ICE node (node on 'target' point cloud, and 'follow curvelist' node). 'Follow CurveList' is a modification of 'Follow Curve'. There is about 80 subcurves, merged into one.
Cheers
Cheers
Re: Kristinka Hair 2.0
Hey Mathaeus, I was working with follow nurbs m, and was wondering if it would be easy to have the strands that follow the nurb become a different color then the ones that are not? I sure you don't want to keep updating these compounds, so feel free to say no.
Re: Kristinka Hair 2.0
well If you're already in inside-compound-business - you can add a few nodes, like in screen shot. That will give a different, fully saturated color, per each NURBS - or a bit more pleasant color, by using gradient node, instead of 'HSVA to Color'. If you want just a color-per-node, plug 'is active' into the 'if' node, then 'set data' with Self.Color into 'true'.
Screen shot
Cheers
Screen shot
Cheers
Re: Kristinka Hair 2.0
I'm going to see if I can get that working now. Thanks again!
Who is online
Users browsing this forum: No registered users and 31 guests