Kristinka Hair 2.0

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair 2.0

Post by Mathaeus » 22 Aug 2010, 19:36

izze wrote:Oh yeah! That looks so neat. (and handy) Is that a poly mesh or nurbs doing the cutting?
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.

Thanks you, guys.

User avatar
rray
Moderator
Posts: 1775
Joined: 26 Sep 2009, 15:51
Location: Bonn, Germany
Contact:

Re: Kristinka Hair 2.0

Post by rray » 23 Aug 2010, 00:17

Very cool, that's the one I was missing but didn't know about it :D
softimage resources section updated Jan 5th 2024

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair 2.0

Post by Mathaeus » 23 Aug 2010, 21:53

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

izze
Posts: 176
Joined: 24 Sep 2009, 20:02

Re: Kristinka Hair 2.0

Post by izze » 24 Aug 2010, 22:22

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.
Last edited by izze on 25 Aug 2010, 00:10, edited 1 time in total.

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair 2.0

Post by Mathaeus » 24 Aug 2010, 23:48

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.
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.

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

izze
Posts: 176
Joined: 24 Sep 2009, 20:02

Re: Kristinka Hair 2.0

Post by izze » 25 Aug 2010, 00:11

Thanks for the info. I will work on that.

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair 2.0

Post by Mathaeus » 25 Aug 2010, 01:36

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

izze
Posts: 176
Joined: 24 Sep 2009, 20:02

Re: Kristinka Hair 2.0

Post by izze » 25 Aug 2010, 19:18

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. :)

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair 2.0

Post by Mathaeus » 25 Aug 2010, 22:53

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

izze
Posts: 176
Joined: 24 Sep 2009, 20:02

Re: Kristinka Hair 2.0

Post by izze » 25 Aug 2010, 23:11

I'm going to see if I can get that working now. Thanks again!

izze
Posts: 176
Joined: 24 Sep 2009, 20:02

Re: Kristinka Hair 2.0

Post by izze » 26 Aug 2010, 16:17

That worked great. This will really help when layering a lot of nurbs surfaces. I can upload the compound if it would help anyone else. (I was not sure if I could do that since this is Anto's project really)

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair 2.0

Post by Mathaeus » 26 Aug 2010, 21:59

Nice that you got it to work !

Modifications and additions are always welcome. Anyway, for a whole set of nodes, I trying to keep the system as much consistent. Probably this can be done with a separate node for everything in ICE tree - I'll check out this.

Cheers

User avatar
steven07
Posts: 89
Joined: 03 Jun 2010, 07:30
Skype: stevenpalomino
Location: Kansas City

kristinka Hair

Post by steven07 » 17 Sep 2010, 13:15

Hey all..

I just did a few tests with the kristinka hair system and I think I'm totally missing something.. this is with about 100,000 hairs.. it took somewhere from 10-15 minutes with the hairFromFur compound..

Is it even possible to emit hair from a polygon? it kept telling me I needed a nurbs surface.. I tried to follow along with the tuts but I think I'm just missing something.. a step-by-step would be awesome.. looks like this system has definite advantages over the default XSI one. Thanks again!
Attachments
testPPGz.jpg
testPPGz.jpg (232.28 KiB) Viewed 2083 times
hairTest01.jpg
hairTest01.jpg (199.51 KiB) Viewed 2084 times

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: kristinka Hair

Post by Mathaeus » 17 Sep 2010, 15:30

Hi there,

the compound in screen shot, looks like the one from older versions - and ICE tree doesn't seem to have everything to work properly.
It would be nice to use the last pack, and take look at fur samples. Only for latest version I wrote documentation.

With kH nodes, only fur or short hair can be emitted from polygons. It isn't possible to use styling nodes for long hair. Also, mesh need to be specially prepared for emission - this is mainly for keeping the correct behavior with deformations on mesh, and allowing at least 'faked' functionality of NURBS surfaces.

Cheers

izze
Posts: 176
Joined: 24 Sep 2009, 20:02

Re: Kristinka Hair 2.0

Post by izze » 21 Sep 2010, 02:35

I don't remember if you have explained this already, but why is it that guides cannot be emitted from a polygon mesh? Obviously the kH Init MeshUV Emitter only prepares it for fur and not guides. But I guess I don't understand why that is exactly. Is it a limitation of strands? Thanks.
Last edited by izze on 21 Sep 2010, 14:35, edited 1 time in total.

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair 2.0

Post by Mathaeus » 21 Sep 2010, 10:09

izze wrote:I don't remember if you have explained this already, but why is it that guides cannot be emitted from a polygon mesh? Obviously the kH Init MeshUV Emitter only prepares it for fur and nhttp://www.si-community.com/community/posting.php?mode=quote&f=19&p=6485ot guides. But I guess I don't understand why that is exactly. Is it a limitation of strands? Thanks.
Actually, what is called 'emit fur' is a equivalent of 'emit guides' - so if you try to use kH Follow NURBS in ICE tree that starts with kH Emit Fur, it might work - even I'm not sure I've provided that compatibility for everything (but I'll check out this).

What definitively won't work with the latest release, is a filler point cloud (Kh emit Hair and that stuff), after Point Cloud that starts with kH Emit Fur.

About limitations.... it's always a compromise, what someone wants and what is a price...
Current configurations for geometry emitters, should provide a stable emission, even with deformed emitters in non-simulated ICE tree. Next task is a unique emitter's UV space inside 0-1 unit (that allows using of function curves instead of weight maps, and some other nice features). And another task is a well defined orientation (instead of using tangent maps). - All that in single ICE tree and just one emitting geometry, using only the factory ICE nodes.


Cheers

Post Reply

Who is online

Users browsing this forum: No registered users and 59 guests