Kristinka Hair Tests

Comments on work in progress
User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair Tests

Post by Mathaeus » 09 May 2011, 22:52

guillaume wrote: Here is "Create Extrusion Along Strands" V2 working with your hair system (and also Fabricio procedural Tree) : viewtopic.php?f=15&t=1456
Thank You, Master! :)

Well, now I need to stop with my 'happy negative' approach to forum life, probably forever :)

Back to Jester's question, particularly for Kristinka Hair nodes, 'custom array of up vectors' is defined by custom attribute called kH_UpVectorAlongStrand.
Generally, 'form' ('orange') nodes, always creates this attribute in some way, and it's often used by 'modifiers' (curls, bend, push...).
So, for getting the behavior of 'aligned' meshes, for example meshes aligned to NURBS surface used for kH Follow NURBS node, it's enough to type into Get Data node:

Self.kH_UpVectorAlongStrand

, plug this into the custom up vector input, enable 'vector mode' - that should be all. There is *no* need to activate 'Start From Root' option in kH Emit Guides.


Btw, maybe it's interesting maybe it's not, here is short overview of two variances of 'Fill Interpolated Array' (or 'Build Linearly Interpolated array') node.
Node is a 'working horse' for strand generation.
Second is a 'first strand position on top of point position', which is more elegant, there is no need to calculate the point position separately, you can just use 'Select in array' and fit the point position to first strand position - but in some cases this can cause problems, if something tries to create 3d vector (that is, tangent') in between. Let's say, in rendering, 'short hair' shading model uses just this, 'root normal' to simulate the normal of underlying surface ( at least that's how I understand this).


Image

imding
Posts: 15
Joined: 25 Jun 2009, 00:21

Re: Kristinka Hair Tests

Post by imding » 04 May 2015, 21:23

hi first thanks to Mathaeus for the wonderful k hair.

i'm really new to ICE so forgive me if my question sounds foolish XD

i've got this hair set up but some hair is going into the character mesh, i managed to detect hair whose emit location is inside the mesh and delete them, but i am not so sure how to style the hair so that they appear to collide with the mesh and curl away from the mesh. it would be great if someone can point me in the right direction, like which node to use etc. thanks in advance.

- Ding
Attachments
hair.jpg

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

Re: Kristinka Hair Tests

Post by Mathaeus » 04 May 2015, 23:28

imding wrote: i've got this hair set up but some hair is going into the character mesh, i managed to detect hair whose emit location is inside the mesh and delete them, but i am not so sure how to style the hair so that they appear to collide with the mesh and curl away from the mesh. it would be great if someone can point me in the right direction, like which node to use etc. thanks in advance.
Hello,
unfortunately there is no node in download, able to prevent any kind of interpenetration. Had some prototypes for particular cases, but never ever managed to have an enough global, robust and predictable solution for system, available for public.

imding
Posts: 15
Joined: 25 Jun 2009, 00:21

Re: Kristinka Hair Tests

Post by imding » 05 May 2015, 10:37

hi thanks for the reply.

I'm not asking for a simulation function, all i want to know is which node in the current K Hair system is most suitable to style the hair to look like it collides with the mesh (maybe a few follow nurbs nodes perhaps), this is my 2nd time using k hair so some experienced suggestion would be greatly appreciated.

thanks again i really like these nodes :D

User avatar
FXDude
Posts: 1129
Joined: 19 Jun 2012, 21:59

Re: Kristinka Hair Tests

Post by FXDude » 05 May 2015, 13:02

Can you perhaps have the frizz frequency start very small (small curls) near the scalp, and gradually go to current frequency at about an "inch" off the head?

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

Re: Kristinka Hair Tests

Post by adrencg » 04 Jun 2015, 00:29

I'm using the Syflex tutorial to make a Kristinka wig, and all has gone well -- but only when the character model is static.

In the top part of the pic, you'll see the roots are neat and aligned nicely. In the bottom part, I have the head rotated slightly and the roots start to twist and other parts of the hair become distorted. The further the rotation, the worse it gets.

In my setup, I have deformed emitter enveloped to the head bone. Is it better to make the wig at 0,0 and then move it up to the head?

Image

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

Re: Kristinka Hair Tests

Post by Mathaeus » 05 Jun 2015, 12:25

adrencg wrote:I'm using the Syflex tutorial to make a Kristinka wig, and all has gone well -- but only when the character model is static.

In the top part of the pic, you'll see the roots are neat and aligned nicely. In the bottom part, I have the head rotated slightly and the roots start to twist and other parts of the hair become distorted. The further the rotation, the worse it gets.

In my setup, I have deformed emitter enveloped to the head bone. Is it better to make the wig at 0,0 and then move it up to the head?
Yeah, emitter is supposed to do not move. Current behavior allows an styling operator to filter itself by distance to hair roots. When you move the styling geometry, ICE automatically adjust the entire style. But you don't want this in animation.
Expected way is to use deformed copy of emitter. Plug the geometry reference of deformed copy, into 'initialize poly mesh... ' compound in ICE tree on emitter.
Since there are small changes in latest version (kristinka_hair_32_02july2014.rar), in order to work smoothly with SI 2015, too, I think it's good idea to take look at provided samples, first.

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

Re: Kristinka Hair Tests

Post by adrencg » 05 Jun 2015, 14:34

Mathaeus wrote:
adrencg wrote:I'm using the Syflex tutorial to make a Kristinka wig, and all has gone well -- but only when the character model is static.

In the top part of the pic, you'll see the roots are neat and aligned nicely. In the bottom part, I have the head rotated slightly and the roots start to twist and other parts of the hair become distorted. The further the rotation, the worse it gets.

In my setup, I have deformed emitter enveloped to the head bone. Is it better to make the wig at 0,0 and then move it up to the head?
Yeah, emitter is supposed to do not move. Current behavior allows an styling operator to filter itself by distance to hair roots. When you move the styling geometry, ICE automatically adjust the entire style. But you don't want this in animation.
Expected way is to use deformed copy of emitter. Plug the geometry reference of deformed copy, into 'initialize poly mesh... ' compound in ICE tree on emitter.
Since there are small changes in latest version (kristinka_hair_32_02july2014.rar), in order to work smoothly with SI 2015, too, I think it's good idea to take look at provided samples, first.
Thanks, but I wasn't able to make it work by plugging in the deformed emitter to the initialize node.

But, I did make it work by moving the center of the hair rig model to the center of the wig, and parenting the whole model to the head controller. Now it works as needed.

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

Re: Kristinka Hair Tests

Post by Mathaeus » 05 Jun 2015, 15:38

adrencg wrote:
Thanks, but I wasn't able to make it work by plugging in the deformed emitter to the initialize node.
There should be appropriate node too, 'deform hair' or purple node from Syflex samples ( really don't know name, right now). If goal is to just transform the entire hair at once, I think there's node called 'deform hair by two nulls' or something. First null represent the static, reference pose, transformation is performed by another null ( zero is when both nulls are on same position - rotation - scale).

Anything else is your risk - for example, in case of getting the data from location, ICE takes the global transform, in case of 'switch context', it takes the local. kH use both options. There's good chance to get something undesired, by compensating the transforms out of ICE tree.

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

Re: Kristinka Hair Tests

Post by adrencg » 05 Jun 2015, 15:59

Seems to be holding up fine so far, but I'll reference your last post if something goes wrong.

Image

Image

By the way, what's the difference between the grouping and clumping nodes? I seem to get better results with grouping.

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

Re: Kristinka Hair Tests

Post by Mathaeus » 05 Jun 2015, 16:31

adrencg wrote: By the way, what's the difference between the grouping and clumping nodes? I seem to get better results with grouping.
'Clump' refers to one triangle of emitter, it's fixed to that, should be 1:1 predictable. 'Group' is arbitrary, able to take more (but not less) than one triangle of emitter. However there's small chance for 'group' to do something undesired, let's say in case of your model, to create the group, passing through the shoulder. There is some mechanism to avoid that, but it could fail, in case of too large group.

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

Re: Kristinka Hair Tests

Post by adrencg » 12 Jun 2015, 17:51

I set up everything again because I didn't like the way the hair was laying, and figured out what I did wrong the first time (the root twisting problem)...

I didn't realize the main emitter needed to be static. I removed the Gatored envelope and it worked correctly with nice, straight roots. The only issue I get now is if my Syflex pin has too little stiffness the roots relax too much and I get little kinks near the parting line. Have any ideas on what that might be?

I can control it by using a stiff pin, but it would be great if I can let the roots lay closer to the head without messing up the strands.

Image

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

Re: Kristinka Hair Tests

Post by Mathaeus » 12 Jun 2015, 21:28

adrencg wrote:
I can control it by using a stiff pin, but it would be great if I can let the roots lay closer to the head without messing up the strands.
I suppose you're using node 'kH3 Stick Hair To Mesh Extrusion 2' for attaching hair to stripes (this is only provided way). This node allows to gradually blend the shape driven by stripes, back to plain deformation of hair, driven by deformed copy of emitter mesh (it works if there's deformed copy of emitter, plugged in 'kh initialize... node, in ICE tree on emitter mesh - deformed copy has to be just *deformed*, plain SRT won't work). Let's say, to use 'kh strand fcurve' node for blending. So, it should be possible to have original shape around the roots, full simulation around the tips. I think entire setup for described, is in 'v32_syflex_done' sample.

Regarding simulation, to develop a nice layering around roots, I think we'll need much more of elements to simulate, than 200-700 stripes. Which won't be fast. Imho only feasible option is a sort of blending to styled shape, around roots. If you want to do this directly in sim, using Syflex 'smooth pin', should be better, as blend is performed directly by simulation engine.

Post Reply

Who is online

Users browsing this forum: No registered users and 44 guests