Kristinka Hair 3.0 released

Plugins linking to this thread: (hide)

Kristinka Hair 3.2Author: Anto Matkovic
The July 2014 update is another big one introducing new nodes like »Fit NURBS«, »Curls advanced«, »Curvature Amplifier«, »Grouping in Form« »Follow CurveList« »Stretch Hair« »Hair Filler Rounded« — for a full description see the si-community thread and the updated documentation.

The Kristinka Hair toolset is a new and unique way to set up, style and simulate hair using ICE nodes. A set of fully customizable ICE nodes Scalable, from only a few basic compounds for building basic hair, to very complex structures. Hair styling that always considers the whole shape of the hair. Styling works well for short and for long hair. Unlimited hair length, unlimited number of hair segments. Automatic, procedural generation of details - always with full control. Locks, clumps, curls, turbulence, are created by ICE compounds Additional modifiers, like cutting hairs by external geometry, constant strand length for key frame animation, resampling and subdividing strands, morphing with another hair, modulating hair's distribution over emitter, so user can increase density on most visible areas Full support for the Sofimage's built-in Strand Dynamics Framework simulation engine. Only factory ICE nodes were used, it should work nicely with any Softimage version from 7.01 on.

Other media available: Version 3.1's online 'first steps' tutorial. si-community user Bronco67 has created a video introduction for an earlier version available here. Also: A rendering tests thread, a TV ad by PsyOp featuring Kristinka Hair.

In case you want to apply kH3 nodes and dynamics on top of strands that were not generated by kH3 itself, here is a setup to enable that.

local backup: kristinka_hair_32_02july2014.rar

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

Re: Kristinka Hair 3.0 released

Post by izze » 13 Sep 2013, 20:24

Point taken. Thanks for your time. I appreciate all the help you have given me.

gitarrenvogel
Posts: 35
Joined: 20 Apr 2013, 17:40

Re: Kristinka Hair 3.0 released

Post by gitarrenvogel » 19 Nov 2013, 00:07

Hey! I experimented with your compounds for a few days now and they're really great - thanks!!
But I have one problem. I "iced around" a while and got to the look in the image, by using emit from polygons, the fur compound with the fur vector by null node and then some splay and curl compounds and of course some randomization. Is there a way to just use the first two emit and fur compounds for the basic "guides" and simulate them, then to clone those and build the rest splay-curl-and-randomize-thing in another point cloud. I tried your clone point cloud but from there I'm not able to use splay.

Here's the image and a link to a simulation test video - as you can see, I just need some very basic dynamics, so it would be great, if I could use this as the guides for my characters hair.

https://www.dropbox.com/s/1oir42vtw5ym5 ... racter.jpg

https://www.dropbox.com/s/pphvv0fkgm856 ... namics.mp4

Cheers, Lukas

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

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 19 Nov 2013, 01:14

gitarrenvogel wrote: Is there a way to just use the first two emit and fur compounds for the basic "guides" and simulate them, then to clone those and build the rest splay-curl-and-randomize-thing in another point cloud. I tried your clone point cloud but from there I'm not able to use splay.

Cheers, Lukas
Hello,

should be 'emit hair filler' node, able to create the filler strands in another point cloud. However, I don't remember does someone used this one for long time( including me). Theoretically it should work.
Otherwise, you can put the hair filler node in post-simulation. That is, create new ICE tree in post-sim region, put the 'hair filler' there, or anything else, including modifiers. Only basic emitter node is assumed to be into un-simulated ICE tree, bellow simulation region, all the time. That's why 'hair filler' is separate node, by the way.
Same procedure is for caching - if you load cache through 'cache on file' or in another way, I think still it's good idea to keep the basic emitter node ( as it creates necessary ICE attributes, but ICE likes to omit them when saving the cache).

'clone point cloud' is more a shading utility, if you want separate shadow caster, so on. It doesn't contribute in system.

gitarrenvogel
Posts: 35
Joined: 20 Apr 2013, 17:40

Re: Kristinka Hair 3.0 released

Post by gitarrenvogel » 19 Nov 2013, 11:56

Thanks very much - your effort is really appreciated!
It works fine, to use it in the post-simulation ice-tree.

gitarrenvogel
Posts: 35
Joined: 20 Apr 2013, 17:40

Re: Kristinka Hair 3.0 released

Post by gitarrenvogel » 23 Nov 2013, 20:51

Hey, I have a few more questions. When I freeze a hair-pointcloud, how can I restick the hair to the geometry? I don't quite understand the "stick roots" and "stick roots and strands" - compounds. Are they, what I'm looking for?
And I'm wondering, whats the problem with quad-meshes. You wrote, that we should use triangles for emitters but it also worked on quads - what are the limitations with using them?

Cheers, Lukas

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

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 23 Nov 2013, 22:42

gitarrenvogel wrote:Hey, I have a few more questions. When I freeze a hair-pointcloud, how can I restick the hair to the geometry? I don't quite understand the "stick roots" and "stick roots and strands" - compounds. Are they, what I'm looking for?
And I'm wondering, whats the problem with quad-meshes. You wrote, that we should use triangles for emitters but it also worked on quads - what are the limitations with using them?
freezing the point cloud : I never tried this. Don't know what happens with custom attributes in this case. I'm afraid, if custom attribute disappears, leaving only the 'ordinary' strand position, system will be dead, then.
Don't forget, that ICE likes to keep the custom attribute during SI session, even this attribute is not used. But, on saving the scene, I think there's cleanup. So, final result is what you have on re-load.

'stick roots' or 'stick strands'. As version 3 does planar interpolation in triangle, if you want roots to exactly follow some underlying surface, these two are here to provide this additional correction, on price of additional calculation. Nothing more than that. Personally, never used these two.

triangles, quads: in case of quads, it will work, but hair filler won't fill quads evenly. You'll see something like some hair disease. Interpolation into area of triangle, it's only planar interpolation, enough robust to hold all deformations, coming later. If quad or more will be introduced, this will introduce a chain of rules for modifiers.
For small example, I have version of hair filler, which does rounded interpolation, relative to triangle ( not on root, only later on strands). But, in order to work properly, it needs three strand segments to be aligned, perpendicularly to average tangent of three strands. Even it's not big deal to do, it needs more complex modifiers. As well as arbitrary decision how and where to blend the interpolations (that is, even more options in PPGs).
In short, I'll stay with triangles, with as much equal proportion ( all three angles the same).

Ahmidou
Posts: 106
Joined: 04 Jan 2010, 14:00

Re: Kristinka Hair 3.0 released

Post by Ahmidou » 24 Nov 2013, 01:32

You can freeze an ICE tree, as soon as the attributes are used in another ICE tree the attributes will stay.
if you are in 2013+ you can eventually create static ice attributes by script ( but not locations).

gitarrenvogel
Posts: 35
Joined: 20 Apr 2013, 17:40

Re: Kristinka Hair 3.0 released

Post by gitarrenvogel » 24 Nov 2013, 12:02

Thank you very much, didn't get that right but I already wondered, that I didn't loose my strands after freezing :D
So what's the intended workflow, when using something like the cut by geo volume compound? I just want it to influence the basic hairstyle, which should be "frozen", so it doesn't continuously change the hair, when the character moves. Same for the fur-vector field by null, or do I get their usage wrong?

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

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 24 Nov 2013, 14:22

gitarrenvogel wrote: So what's the intended workflow, when using something like the cut by geo volume compound? I just want it to influence the basic hairstyle, which should be "frozen", so it doesn't continuously change the hair, when the character moves. Same for the fur-vector field by null, or do I get their usage wrong?
Well I think, most of your questions are answered in docs, there are about twenty samples as well.
Anyway, if there is no simulation, there's 'deform hair' node, sample with same name too. It utilizes deformed copy of emitter, to move entire point cloud.
In short, everything you have in ICE tree with emitter node, it's just static modeling - something to consider if there's simulation, as simulation can destroy most of that initial modeling.

gitarrenvogel
Posts: 35
Joined: 20 Apr 2013, 17:40

Re: Kristinka Hair 3.0 released

Post by gitarrenvogel » 24 Nov 2013, 20:23

Sorry, that I missed that! There's very much documentation and I'm no native english speaker, so I didn't get everything that is written there.
So thank you, you helped me a lot! :)

Edit: Tried it and "deform hair" was exactly what i was looking for, thanks!

j3st3r
Posts: 121
Joined: 11 Jun 2009, 09:13

Re: Kristinka Hair 3.0 released

Post by j3st3r » 31 Jan 2014, 09:41

Hey!

I'd like to use the Hair Filler compound, but apparently it has no effect. Maybe I missed something, could somebody explain how should I use it?

User avatar
mattmos
Posts: 445
Joined: 02 Dec 2009, 16:59

Re: Kristinka Hair 3.0 released

Post by mattmos » 31 Jan 2014, 09:48

The hair filler compound only works in conjunction with the hair emission type set to guides + filler, rather than random. Also check your emission mesh is all tris.

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

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 06 Apr 2014, 15:48

hello,

there's small change in plan, instead of releasing the eternity :) version during this summer, I think it's better idea to split work into smaller, on (some) weekend chunks.
So first task is the setup for sticking the guides to curves, in 1:1 way - together with built in 'walker' on strands, to get a nice continuous deformation. This should allow:
1: ability to edit the hair manually, at some arbitrary point.
2: sticking the point cloud, at guides level, to curves, simulated by Syflex or something else.
3: single ICE tree setup, reduced to only two steps, generation of curves and sticking the point cloud back to curves. One point cloud plus curves, generated from guides, that's all. I hope I'll be able to put everything into single ICE node, having a switch of these two modes, or something like.

Now, few questions.
For now, I'm using Fabricio Chamon's StrandToCurves plugin, to generate curves. While it works nicely, I wanted it to create linear, instead of defaulted curved curves, in order to get 1:1 match to strands. Linear thing is much faster to edit, and it gives a cleaner visual feedback ( imho). So, after one night of messing with these lovely forth-back VBdata.toArray() things, dozens of crashes an so on, finally I've figured out that trick is to just leave the empty knot attribute, if degree 1 is set( 1 is linear). Just info, because I wasn't be able to find a ready made solution.
Instead of this, in last line....

Code: Select all

var curve = Application.ActiveSceneRoot.AddNurbsCurve(aControlPoints);
curve.name = object.name+"_StrandsToCurves_curve"+i;
							
if (merge){
var VBdata = curve.ActivePrimitive.Geometry.Curves(0).Get2( siSINurbs );
var data = VBdata.toArray();
var crtlvertices = data[0];
var knots = data[1];
var isclosed = data[2];
var degree = data[3];
var parameterization = data[4];

oNurbsCurveList.ActivePrimitive.Geometry.AddCurve(crtlvertices, knots, isclosed, degree , siUniformParameterization);
deleteObj(curve.fullname)
is this:

Code: Select all

oNurbsCurveList.ActivePrimitive.Geometry.AddCurve(crtlvertices, null, isclosed, 1 , siUniformParameterization);
deleteObj(curve.fullname)
Questions:
1: what people uses for simulation on curves, linear or curved curve. I guess this has no effect - but would be nice to know. To say again, linear curve simplifies many things there, a lot.
2: if there is a code master, willing to create a sort of 'StrandToCurves Pro', having exposed options for linear curves, perhaps option to do not generate ICE trees on curves, or additional SI center OP ( all that should be faster) - would be great. All that is somehow too much for my coding capabilities. Basically, I know how to mess up or comment out, something.

User avatar
mattmos
Posts: 445
Joined: 02 Dec 2009, 16:59

Re: Kristinka Hair 3.0 released

Post by mattmos » 07 Apr 2014, 00:30

Not sure I've tried simulating on curves - can you control it with weightmaps? I was getting somewhere with extrusions and looking forward to 2015 coming out to use the most up to date syflex. Linear curves sounds good though, was having a few issues with hair not reacting to forces as much at angles as opposed to flat on with the poly strips. Wish I could help you out with the coding, but still mostly cut and paste myself!

Bullit
Moderator
Posts: 2621
Joined: 24 May 2012, 09:44

Re: Kristinka Hair 3.0 released

Post by Bullit » 07 Apr 2014, 01:14

For that more advanced stuff i think an idea would be asking for help in mailing list. I am not sure if many will catch your question here.

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

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 07 Apr 2014, 01:17

mattmos wrote:Not sure I've tried simulating on curves - can you control it with weightmaps? I was getting somewhere with extrusions and looking forward to 2015 coming out to use the most up to date syflex. Linear curves sounds good though, was having a few issues with hair not reacting to forces as much at angles as opposed to flat on with the poly strips. Wish I could help you out with the coding, but still mostly cut and paste myself!
Honestly, all I know about ICE syflex on curves, that's coming from public available docs. Well there is weight map input in docs, at least. Anyway setup is almost already there. I exaggerated a bit, about coding. After all, it wasn't coding issue, just a logic of creation of curves, linear one can't have the same knots as default cubic, as far as I understand this.

Regarding mesh stripes, I have impression that syflex do not expect them, there's tendency to twist, I guess, because syflex relies on neighboring polygons, here ( that's wild guess). But, should be possible to attach the guides only by positions, leaving the orientation to 'walker' along strands.

Post Reply

Who is online

Users browsing this forum: No registered users and 57 guests