Kristinka Hair 2.0

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

Re: Kristinka Hair 2.0

Post by izze » 08 Nov 2010, 17:38

That seems to work. I will continue to test. Thanks!

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

Re: Kristinka Hair 2.0

Post by Mathaeus » 11 Nov 2010, 20:54

izze wrote:Okay, I have rebuilt everything using nurbs surfaces. Now that I am in the animation process I noticed that I will now have to use the kH2 Strand Turbulence instead of KH2 Turbulence. But I have no idea where to plug it into my tree. HERE is a screen of my tree. Thanks.
Purpose of this is to allow the turbulence to modulate some other parameters along strand, not only pushing, let's say, now it's possible to add kH2 Strand Turbulence to kH2 Strand Curve.... even I have to say that I didn't found some especially smart usage of all that :) - no big deal to revamp the old way....

Btw, when using the 'fur' compounds, you can put a small compound called 'kh2 fur profile' into the 'fur' node ( into the 'strand array', and 'deform up vector'), and get curved strands - or combine a few of 'kh2 fur profile' with factory Linear Interpolate node. This way has some sense :) -at least I think so.

Cheers

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

Re: Kristinka Hair 2.0

Post by izze » 11 Nov 2010, 21:21

Hello Mathaeus, I was wondering what your thoughts were on animating hair near the mouth. Like a beard etc. I am using follow curves. And when the mouth moves for lip sync, the distance between curves changes. Hairs then relocate to different curves. Is this something I would have to use kH Stick To Strand Extrusion for? Convert my strands to poly, and envelope?

Cheers.

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

Re: Kristinka Hair 2.0

Post by Mathaeus » 11 Nov 2010, 22:32

izze wrote:Hello Mathaeus, I was wondering what your thoughts were on animating hair near the mouth. Like a beard etc. I am using follow curves. And when the mouth moves for lip sync, the distance between curves changes. Hairs then relocate to different curves. Is this something I would have to use kH Stick To Strand Extrusion for? Convert my strands to poly, and envelope?

Cheers.
For now, only way how I used animated deformations of emitter's surface, is something along 'fur' examples - that means, meshes as emitters, 'vector field' nodes (in case of mesh as emitter, 'vector field' will use values supplied by 'kh Init Mesh Static' -and this should reside bellow deformers in stack). Also 'Splay Fur', and modifiers such as Curls, Bend.

Anything other, especially 'form' nodes, might be too slow and hard to mach the deformations properly. kH Stick To Strand Extrusion will work properly *only* with non-deformed NURBS surface - only SRT is allowed.

Only convenient and 'safe' way to use deformed NURBS, AFAIK, is to add another, deformed copy of NURBS surface, and deform everything in another layer. For now, there is no node in pack that allow this. Sorry.

Of course, it's possible to simulate the point cloud. Now, only supported is 'one point dynamics' that actually just bends the strands - not nice for long strands.

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

Re: Kristinka Hair 2.0

Post by izze » 13 Nov 2010, 04:42

I see that I should be using polymesh for fur emission if animation is needed. Also use Init MeshUV Emitter on ice tree on polymesh after any deform operator. And, if using Vector Field, also use Init Mesh Static before deformation operator.

I find that when I explore for correct UV name in Init MeshUV Emitter node, Polymesh will collapse all points to 0,0,0. (instead of taking UV projection) And, Pointcloud will act randomly when changing peramiters in Emit Fur poincloud. I.E. strand emission type seems to change from Random Emission Type to quasi Grid Emission Type, and when changing emission Rate, strand are randomly eliminated from emitter.

But..... when emitter is animated with point cache, strand location does stay constant. :)

I have uploaded my scene HERE as example.

Thanks.

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

Re: Kristinka Hair 2.0

Post by Mathaeus » 13 Nov 2010, 17:11

I have no idea, honestly. Also I'm unable to open this with my XSI version.

Anyway, here's a short list of 'common' issues:

- SRT of emitter, not at world origin (position 0,0,0, rotation 0,0,0, scale 1,1,1)

- SRT of Point Cloud, not at world origin

- cluster called 'Sample', that has texture projection. You can get this name by importing from aanother apps. This is an old issue, for example, this was a cause for crash when exporting to FBX, sometime around XSI 5. It seems that ICE also don't like this name. Anything else than 'Sample' (samplee, bob, zample...) seems to be fine.

- units: not 'real' problem, but all defaults in kH nodes, are for 1 SI Unit = 10 cm - a lot of queries for closest location, have already set their cutoff distance for this convention. In case of 'big' models, nodes won't catch what they need.

- ICE tree on mesh emitter in modeling region: not 'real' prolem, but tweaking of texture projection won't update in point cloud, at least not immediately

- texture projection outside 0-1 range : not 'real' problem, but many nodes expect the 0-1 range.

- overlapping in texture projection - big problem, it can mess up values, used later in ICE tree.

- edges on mesh, not disconnected at seams of texture projection - big problem, it can mess up values, used later in ICE tree.


If fixing of all that still can't help, only what I can suggest is to use the standard XSI hair. It should fit very well for fur stuff, and you'll be able to bother SI guys :) with potential problems.

Cheers

xvampire
Posts: 6
Joined: 30 Nov 2009, 02:42

Re: Kristinka Hair 2.0

Post by xvampire » 01 Dec 2010, 02:27

hi, I rarely post here but this tool made me interested to do some stuff with it
however i am having problem to make to guides grow
here is my screen shot,
Image

do you know what is my problem?:(


thanks in advance

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

Re: Kristinka Hair 2.0

Post by Mathaeus » 01 Dec 2010, 20:56

Hi there,

First of all, did you have the compounds installed. If you building ICE tree from scratch, the all compounds from pack should be in folder, recognized by Softimage (something like users/......./ your SI version/Data/Compounds ).

Other than that, I sow something like this only a once, that NURBS surface 'doesn't respond', but this become solved after trying to tweak some points on NURBS surface.

Generally, kH nodes are not tested with closed NURBS surface as emitter - it only *might* work with nodes that you'll use later,
These nodes definitively are not 'generic strand tools' or something, protection against user's errors is just basic. Unless you're able to build your own system, I would suggest to start from provided samples, and follow the methods from samples.

Cheers

xvampire
Posts: 6
Joined: 30 Nov 2009, 02:42

Re: Kristinka Hair 2.0

Post by xvampire » 01 Dec 2010, 21:25

wow thank you so much for the response , it work now :D!

now i ll try to shape the hair guide :-bd ...., excuse me.1st... :-h

xvampire
Posts: 6
Joined: 30 Nov 2009, 02:42

Re: Kristinka Hair 2.0

Post by xvampire » 02 Dec 2010, 23:03

Image
Image

my current progress ...... :o3
the technical pressure is pretty nasty for old fashioned artist like me, luckily last night one of my friend helped me to learn ICE node.

User avatar
Hirazi Blue
Administrator
Posts: 4972
Joined: 04 Jun 2009, 12:15

Re: Kristinka Hair 2.0

Post by Hirazi Blue » 03 Dec 2010, 11:44

Well as you say you are an artist having trouble with the technical side of things, let's just say:
it doesn't seem to show in the end-result IMHO :-bd
...

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

Re: Kristinka Hair 2.0

Post by rray » 03 Dec 2010, 20:38

Very nice indeed for being only 3 days into the Kristinka technology!
softimage resources section updated Feb 7 2019

xvampire
Posts: 6
Joined: 30 Nov 2009, 02:42

Re: Kristinka Hair 2.0

Post by xvampire » 03 Dec 2010, 23:46

thanks ,

it has very good long hair control ( only made by two NURBS!), however as cons, when i plug strand curve to Size ( in emit hair ICE compound) it become significantly slower,
so to make a thick hair but less rendering time i make the hair size bigger . it physically less realistic, but for stylized art-work , I'm quite satisfied :)

I also using muh hair shader. for this render. http://www.xsibase.com/forum/index.php? ... adid=12253

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

Re: Kristinka Hair 2.0

Post by Mathaeus » 04 Dec 2010, 20:42

xvampire,

Well it seems to me, you're an artist for much, much longer than this few days of using Kristinka Hair ... :) Thanks !

About using kH Strand fCurve for setting the strand size, I thought that longer render time become from (possibly) bigger amount of data, created by variable strand size array. But, at least from simple test, it seems that just more strands are exposed. If kH Strand fCurve is set to linear, and interpolates from, for example 0.4 to 0.2, render time is almost the same as with constant size at 0.3. But who knows what detailed shadow maps have to say here....

I've also tried good old Muh Hair, but I've experienced memory leaks problems with this one. I've also tried p_hair_TK, which is based on Muh Hair - it seems it doesn't have memory leak problems, but it has a bit too much of additional stuff, for my taste. Anyway, it has a famous 'shifted' highlights, just as Muh Hair.

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

Re: Kristinka Hair 2.0

Post by Mathaeus » 21 Dec 2010, 13:33

Hi all,

I'm planning to post a new update in next few days, Kristinka Hair 2.2 or something...
So what's new:

1: Long hair styling:
Separate flows for Follow NURBS (the main long hair modifier) - there will be a simplified, for artists :) version, with a very few exposed parameters,
but still able to accept multiple inputs. On the other side, pro :) versions, kh Follow NURBS and kH Follow NURBS 2, will have a few more options (that are hidden for now). Also, there is a new sub-modifier for remapping the Follow NURBS, like 'kH Offset Curves', but with nurbs surfaces as inputs.

2: A bunch of nodes for utilizing the 'strand extrusion' feature, from NEST Melena or old MT-Strands-Addon. That includes the node that sticks the point cloud to extrusion, node that sticks extrusion back to point cloud (if you don't use scripted operator for mesh generation anymore, for any reason), node for transferring vertex colors/texture map color to strands, node for creating the UV projection on mesh extrusions, node for making selection (actually, just for fitting mesh into shape that allows easy selection - mainly for creating pins/nails for Syflex). For now, these nodes are based on simple re-mapping of strand-vertex 'indices'. Which means, as long as 'topology' doesn't change, any deformation, or freezing, or re-attaching is allowed. There is no 'reference pose', only one extrusion is enough. I think the speed of this method is very nice too.
There is a lot of tasks for using them. Simulations, baking colors to hair, creating simple feathers, polygon hair for games, so on.

3: A new 'Vector Field' nodes for fur styling, improved versions of nodes that I've already posted. Vector field by curve, by taking direction from null, look at null, circle around null....

4: Many small improvements all around.

Generally, new nodes are compatible with old ones. As usually, I'll add samples for important features, I hope I'll post here a few small (*very* small) tuts about usage - exclusive :) for SI-Community.


Cheers

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

Re: Kristinka Hair 2.0

Post by Mathaeus » 25 Dec 2010, 23:33

Hi all

Download for Kristinka Hair 2.2 is here.

Short change log:

kH Follow NURBS nodes:

New node, called 'kH2 Follow NURBS Lite'. It has a minimum of exposed parameters, but it's able to accept multiple NURBS inputs. Each of them acts as a new node, in similar way with old 'Follow NURBS m(ultiple). This time ICE multiple port feature is utilized, instead of 'iterate with counter' stuff.
A 'big' kH2 Follow NURBS and kH2 Follow NURBS 2 have an option (it's called 'AB end'), to input the end point for layering hair. Default is still the automatic 'maximum in set'.
Filtering of node influence is simplified. Now, this rely only on cutoff distance, and UV limits. For example, anything more than 'Y min 0' or less than 'Y max 1', forces the node to catch only points 'bellow' NURBS surface, not 'around'.
Hidden option from kH2 Follow NURBS, that allows to 'extend itself into empty space', isn't there anymore. I don't believe anyone used it, but it had some small impact to performance.

Old kH Follow NURBS nodes are still here, in preset folder called 'z-legacy' or something.

kH2 Offset By NURBS:

Image

Node for re-mapping the flow of kH2 Follow NURBS and kH2 Follow NURBS 2. Works in similar way as kH Offset Curves, but NURBS surfaces are used as inputs. Inputs acts in same way as Follow NURBS node - next has a precedence over previous.


Strand Extrusions:

Nodes for utilizing 'ICE strand extrusion' feature from NEST Melena or MT-Strands Addon. To get these nodes to work, NEST Melena or MT-Strands Addon should be installed.
Basically, all of them utilizes the way how meshes are created, by re-mapping indices between meshes and point cloud, which means:
- nodes can work properly, only for meshes created by mentioned addons.
- once the mesh is frozen, topology of mesh, as well as 'topology' of point cloud, should not change. For point cloud, 'rate' and 'segments' parameters should stay the same. Also, parameters from kH2 Subdivide Strands, or kH2 Optimize strands (if some of these two is used) should stay the the same. Anything else (applying additional 'form' nodes, modifiers..) is OK.
- it's *very* important to take care of dependency cycles. Before creating connections, remove any reference that can force ICE to think that dependency cycle exist.

Because samples were created with my own XSI 7.01, for mesh-to-point cloud direction, I've used intermediate point cloud. In SI 2010 and above, you can avoid this one by modifying compounds ( at least, I think so..). Basically it's replacement of 'ID To Location' node, with 'Point Index To Location', and re-naming custom attributes. I've added detailed instructions inside the compounds.

A 'hearth' of creating connections is 'kH2 Prepare For MT Extrusion' node. It's modification of node from MT-Strands addon ( a few parameters added, automatic use of already defined vectors for 'rolling', so on). This node should go at the end of ICE tree. It can stay there all the time.

Let's take look at some of them:

kH2 Stick Point Cloud To MT Extrusion

Image

It sticks point cloud to mesh, allowing usage of modifiers (curls, bend), *after* the sticking node. Node is mainly for using simulation engines such as Syflex or SICloth.

kH2 Stick MT Extrusion To PointCloud

Image

It does reverse, it sticks frozen 'polymsh_strands' to point cloud, used for creation. Count of mesh cross-section subdivisions need to be entered manually. Main parameters are still directed by 'kH2 Prepare For MT Extrusion' node.

kH2 Color Transfer On Hair Filler

Image

This one is applied to second, hair filler point cloud. That allows to stick the mesh to 'guides' point cloud, as well as transferring colors from mesh to hair filler point cloud. Here, for baking to vertex colors, I've used Binary Alchemy RayLength and it's famous transparency-occlusion feature. Probably better way is just a transparent shadow shader and light rig.

kH2 Create Cylinders From MT Extrusion
is a general purpose node, that just creates the one or many cylinders from strand extrusions. That allow easy creation of clusters for later selections, UV projections, so on.


Fur:

kH2 Vector Field by Null and kH2 Vector Field by Curve
improved nodes for fur's orientation.'kH2 Vector Field by Null' has a few option more. Also, nodes are able to output just 'weight' that can drive any else scalar-per-point parameter. Because 'Vector Field by Null' can accept the group of nulls, it can be used instead of factory 'Modulate bu Null'.


As an small addition, I've added setup for rendering motion blur, using only un-simulated ICE trees (example: Fur-Motion-Blur.emdl). That means, no bother with simulation, caching, re-timing..... anyway, it's just approximation that takes velocity from emitter, that gives some acceptable result only for short strands.

Cheers
Last edited by Mathaeus on 26 Dec 2010, 02:18, edited 1 time in total.