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

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

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 30 Apr 2013, 10:50

adrencg wrote:When looking through the Kristinka example models, I noticed that the Syflex sim separates the hair based on the strips. That's exactly what I needed.
Well, great if you needed this, not reverse :). This separation is some kind of workaround, actually it keeps the distance to guides, which was before attaching to mesh stripes. If not, there's chance to intersect with collision geometry, let's say if two guides are on opposite sides of shoulders. Otherwise I'd really need to write some kind of automatic splitting.

By the way, *if* you'll be playing with this stuff more, maybe it's good to know, that, technically, hair splits all the time, according to triangles of emitter geometry. However, by using some surface for styling, like Nurbs surface, these strips are kept together. Something almost impossible for human hand, but not big deal for machine. Structure is similar to UVs in texture editor. One strip = "chunk" in some nodes.

adrencg
Posts: 195
Joined: 05 May 2012, 00:50

Re: Kristinka Hair 3.0 released

Post by adrencg » 02 May 2013, 22:45

Is it possible you're mistaken about the MDD? I made a new set of guides with the "strands to curve" plugin. But the point oven interface won't allow a curve object to be placed in the MDD processing area.

I can export a LWO object with the exporter, and then I run the LWO to curves python script in modo to make the curves. But the curves have open breaks in the middle and are useless.

Can you make a short list of steps that you took to get those guide curves into Modo from XSI.

adrencg
Posts: 195
Joined: 05 May 2012, 00:50

Re: Kristinka Hair 3.0 released

Post by adrencg » 02 May 2013, 22:56

Figured it out...I needed to change the python script number of points to 28 instead of 14.

User avatar
Werner
Posts: 157
Joined: 09 Jun 2009, 13:30

Re: Kristinka Hair 3.0 released

Post by Werner » 31 Jul 2013, 12:29

Hi,

We are having a bad day with fur on one of our characters, and found the problem to be "PolygonRefFrame" that gets screwed up once a mesh has been subdivided by zbrush or Mudbox. Subdividing the mesh in xsi seems to work ok, and does not affect the poly orientations.

We use KH Deform hair and this creates a checkerboard pattern on short fur. Have a look at the sample images to see what I mean. Emitting from the low res mesh works perfectly, but once we use higher subdivided meshes from zbrush or mudbox, this pops up.

Any help regarding this would be most welcome, and I know that this might not be a KH compound problem, but rather a problem when using KH on subdivided geometry.
You do not have the required permissions to view the files attached to this post.

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

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 31 Jul 2013, 14:04

Werner wrote:Hi,

We are having a bad day with fur on one of our characters, and found the problem to be "PolygonRefFrame" that gets screwed up once a mesh has been subdivided by zbrush or Mudbox. Subdividing the mesh in xsi seems to work ok, and does not affect the poly orientations.

We use KH Deform hair and this creates a checkerboard pattern on short fur. Have a look at the sample images to see what I mean. Emitting from the low res mesh works perfectly, but once we use higher subdivided meshes from zbrush or mudbox, this pops up.

Any help regarding this would be most welcome, and I know that this might not be a KH compound problem, but rather a problem when using KH on subdivided geometry.
Hello,

PolygonRefFrame is used to calculate delta, between static and deformed mesh. How mesh is subdivided, what SI assumes as polygon orientation, this should be irrelevant - as long as exact copy is used for deformation. Definitively, copy should be created in SI, after all changes in topology (like subdivision, regardless where it's performed). Otherwise there's chance for all sort of problems, like different indexing. I think it's good idea to re-calculate the tangent map too, after all topology changes (kH stuff expects tangent map on static, "emitter" mesh, tangent map could be frozen).

By the way, there's a bit better version of "deform hair" node, on previous page of this thread. It won't solve this problem, but it gives a smoother interpolation. It compares orientations, created by point normal (which is interpolated, while PolygonRefFrame is not), and first axis of PolygonRefFrame.

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

Re: Kristinka Hair 3.0 released

Post by izze » 30 Aug 2013, 19:06

Is it possible to get the hair tips to taper to 0 relative to SI Units? I am using Strand Screen Size in SI Units with KH2 and KH3, but get the same result. Longer strands get a longer taper.

Image

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

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 30 Aug 2013, 22:56

izze wrote:Is it possible to get the hair tips to taper to 0 relative to SI Units? I am using Strand Screen Size in SI Units with KH2 and KH3, but get the same result. Longer strands get a longer taper.

Hello Izze,
should be something like this
Image
Firstly, length in SI units should be calculated, as nothing in kH stuff does this automatically. A few nodes plugged in second "rescale" node, are to fit re-mapping from SI units, to relative length. "0.81", means, only the rang of 0.81 SI units, from tip down, is for rescaling. That is, for something meaningful, you want all hairs to be longer than that range.

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

Re: Kristinka Hair 3.0 released

Post by izze » 03 Sep 2013, 14:54

Thank you very much for the info. I am not getting the correct results as of yet. But I am now on the right track of thinking. I appreciate it.

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

Re: Kristinka Hair 3.0 released

Post by izze » 13 Sep 2013, 17:12

Hey Anto,

I am revisiting baking the null vector field to vertex colors. That file you shared with us a little while ago... I am unsure how to call the vertex colors as the vector field once the polymesh is baked. The group comment you supplied in that emdl is empty, and I am not sure how to apply the baked_emitter vertex colors to the fur vertex field port. Thanks in advance.

Image

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

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 13 Sep 2013, 20:20

izze wrote:Hey Anto,

I am revisiting baking the null vector field to vertex colors. That file you shared with us a little while ago... I am unsure how to call the vertex colors as the vector field once the polymesh is baked. The group comment you supplied in that emdl is empty, and I am not sure how to apply the baked_emitter vertex colors to the fur vertex field port. Thanks in advance.

So you want me to switch to Maya, or what...
Now seriously, if I remember correctly, this was a setup for convenience, how to get rid of nulls, on price of killing the flexibility. Nothing smart to get except a bit faster playback.
Generally, if you're not sure for what purpose is some "execute" port, you look into compound plugged into this port ( those on left side of your screenshot). Probably it is some 3d vector attribute. In case you already have proper vertex colors on emitter mesh, should be something like:
get emit location > get vertex color > convert color to RGBA > convert RGB ( scalars) to vector>
set mentioned attribute. Not in front of XSI right now, really don't know attribute's name, but again, should be easy to find by opening the compound.

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: 1763
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia

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: 1763
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia

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