Does anyone have a normalised bezier node?

Discussions about SOFTIMAGEs© Interactive Creative Environment©
Pooby
Posts: 501
Joined: 27 Aug 2010, 20:25

Does anyone have a normalised bezier node?

Post by Pooby » 08 May 2013, 19:31

I am looking for an ice compound that works exactly like the 'fit bezier curve' node ( feed in an array of positions and a 't' scalar ( can be an array) and it will output the position (or array of positions) on the generated curve)
but I want it normalised so that a t value of .5 will be half way along the full curves length, irrespective of where the control points are.
If anyone knows of one that works this way please let me know. If not then If anyone can MAKE or adapt the existing one, then I will be hugely grateful and indebted to you.
This is wthe kind of thing where my own lack of maths skills rains on my ice parade.

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

Re: Does anyone have a normalised bezier node?

Post by Mathaeus » 08 May 2013, 20:03

There's "strand fitting", hard - coded node in Melena or related packs. It can take any array of 3d vectors (not only strands), and output a new, normalized array - so middle of array should be at middle of length. As far as I know, it's x times faster than solution based on "repeat" node. I've used it a lot for strand work, normalizing the nurbs Surface, whatever.

If Helge's "strand fitting" doesn't fit, I think is not hard to build something based on 'normalized U to location". but necessary "repeat" node is slow, that's it.


User avatar
Daniel Brassard
Posts: 878
Joined: 18 Mar 2010, 22:38
Location: St. Thomas, Ontario

Re: Does anyone have a normalised bezier node?

Post by Daniel Brassard » 09 May 2013, 02:50

Use one of these nodes, it shoul be trivial to normalize them.

https://www.si-community.com/forum/v ... =15&t=1802
$ifndef "Softimage"
set "Softimage" "true"
$endif

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

Re: Does anyone have a normalised bezier node?

Post by Mathaeus » 09 May 2013, 08:46

Third looks like a hard-coded, real thing. But, how to be sure it will be updated for your next SI version.
Imho it's really, really disappointing that, after all that years of ICE, still nothing of that basic stuff when it comes to curves, at least some "normalized U to location".
To explain it simple, if you want equivalent of XSI path constrain in ICE, you have to build a pretty complex ICE tree, all that not even close to performance of "ordinary" XSI path constrain.
At least from my little knowledge, when it comes to real life, a lot of curves with multiple segments, let's say for hair.... only a very, very simple math is able to survive, if standard ICE trickery is used (select in array, modulo, so on). ICE Fitted bezier, Piecewise B Spline... this is somewhere at border of slowness, crashing, so on. Both even without lovely 'repeat' node.
Last edited by Mathaeus on 09 May 2013, 09:35, edited 1 time in total.

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

Re: Does anyone have a normalised bezier node?

Post by Pooby » 09 May 2013, 09:23

Daniel Brassard wrote:Use one of these nodes, it shoul be trivial to normalize them.

https://www.si-community.com/forum/v ... =15&t=1802
I wouldnt know where to start with normalizing them

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

Re: Does anyone have a normalised bezier node?

Post by Pooby » 09 May 2013, 09:25

Mathaeus wrote:There's "strand fitting", hard - coded node in Melena or related packs. It can take any array of 3d vectors (not only strands), and output a new, normalized array - so middle of array should be at middle of length. As far as I know, it's x times faster than solution based on "repeat" node. I've used it a lot for strand work, normalizing the nurbs Surface, whatever.

If Helge's "strand fitting" doesn't fit, I think is not hard to build something based on 'normalized U to location". but necessary "repeat" node is slow, that's it.

This works really well with the normalizing, but produces a linear result. However, by feeding it through the factory 'Fit bezier' first, I can get something that does what I want.

Thanks very much