Kristinka Hair 2.0

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

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

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

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.

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

Re: Kristinka Hair 2.0

Post by xvampire » 25 Dec 2010, 23:35

OMG u are amazing! :ymhug:
thank u!!
I will give a shot once i have time back to my stuff!!!

Pooby
Posts: 501
Joined: 27 Aug 2010, 22:25

Re: Kristinka Hair 2.0

Post by Pooby » 26 Dec 2010, 00:30

This looks ace. Thankyou very much for your hard work and generosity.

I look forward to having a crack at learning it.

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

Re: Kristinka Hair 2.0

Post by Hirazi Blue » 26 Dec 2010, 10:59

Ah, a true christmas present...
Thank you "Santa" Mathaeus :ymparty:
Stay safe, sane & healthy!

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

Re: Kristinka Hair 2.0

Post by rray » 29 Dec 2010, 14:31

Awesome!Thanks! Going to check them out very soon.
softimage resources section updated Jan 5th 2024

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

Re: Kristinka Hair 2.0

Post by izze » 11 Jan 2011, 00:20

Could you expand further on how to transfer strand color to the rendered shader? Thanks.

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

Re: Kristinka Hair 2.0

Post by Mathaeus » 11 Jan 2011, 00:45

izze wrote:Could you expand further on how to transfer strand color to the rendered shader? Thanks.
you call color attribute in render tree ('attributtes' nodes...), I think sample called 'MT-Extrude-Transfer-Color' already has Rendertree setup. Color attribute need to be created in ICE tree, in some way.

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

Re: Kristinka Hair 2.0

Post by izze » 11 Jan 2011, 01:43

Thank you again for your help. I missed the sample scene. Sorry.

Cheers

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

Re: Kristinka Hair 2.0

Post by j3st3r » 03 Feb 2011, 14:12

A question, is it possible to UV map the resulting mesh?

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

Re: Kristinka Hair 2.0

Post by Mathaeus » 03 Feb 2011, 14:44

Of course :)

I think it's explained a few post above. There are a few compounds just for that.
Basically there two methods:
1. compound called 'Set UVs On MT Extrusion' (or something similar). First you set some UVs on MT extrusion, then ICE node re-arranges UVs. This one is working on stripes only.
2. compound called 'Create Cylinders From MT Extrusion', that fits the mesh into one or more vertical cylinders or stripes (according to subdivision count), so you an set UVs in your own way.

Plus a few 'utility' nodes for 'sticking' mesh to Point Cloud (if mesh is frozen, so there is no Helge's operator on it anymore), reverse of that, depending on what you need.

For now, limitation is that point cloud need to have 'uniform' strand array, same count of segments for each strand (no 'Optimize strand' , node), also, once the mesh is frozen, Point Cloud should keep the 'topology' - same count of points and segments, as well as same topology on mesh . Nodes were built on simple, but relative fast math (modulo, divide by scalar, so on), that does 'remapping' of IDs from strands to mesh, or reverse.

Cheers

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

Re: Kristinka Hair 2.0

Post by j3st3r » 03 Feb 2011, 16:02

Sorry guys the queston, but I have to solve urgent issues, and that's why I'm asking. Technically I'd like to make hair with Kristinka for games, using poly strips.

The next question is that how I use the collision mesh? I have guide hairs that penetrates into the head of the character....


Thanks!

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

Re: Kristinka Hair 2.0

Post by Mathaeus » 03 Feb 2011, 16:31

'collision mesh' name, is actually a heritage from some early versions. In a few last versions, no one node is using this. However, there is a chance you can find compound called 'Push strands outside geo' (or something like...) in Helge's stuff (Melena or MT-strands..). As name says, this only moves strands outside of *closest* polygons.

If interpenetration happens only on hair filler, and you're using Follow NURBS node on guides, probably you can fix this by moving 'Split on Y' slider at bottom of PPG.

Good luck

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

Re: Kristinka Hair 2.0

Post by j3st3r » 03 Feb 2011, 22:01

Thanks I need it...unfortunately I couldn't found the above mentioned compound....

Post Reply

Who is online

Users browsing this forum: No registered users and 37 guests