Curves and Surfaces with ICE - WIP

Discussions about SOFTIMAGEs© Interactive Creative Environment©
User avatar
Daniel Brassard
Posts: 878
Joined: 18 Mar 2010, 22:38
Location: St. Thomas, Ontario

Curves and Surfaces with ICE - WIP

Post by Daniel Brassard » 24 Sep 2011, 02:46

I have been experimenting for a while now on curve creation using ICE and I have created quite a few nodes.
Below is what I have done so far.
You do not have the required permissions to view the files attached to this post.
Last edited by Daniel Brassard on 02 Nov 2011, 02:06, edited 1 time in total.
$ifndef "Softimage"
set "Softimage" "true"
$endif

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

Re: Curves in ICE - WIP

Post by Daniel Brassard » 24 Sep 2011, 02:51

Reading various SIGRAPH papers and math books I notice that they are using matrices. So I improved on the ICE nodes and created various nodes in matrix form. The _m at the end of their names identify the curve as a matrix form.

I am still researching chordal / centripetal / uniform curves and NURBS curves.

I will then move to piece wise curves and then surfaces. That should be interesting.

More to come.
You do not have the required permissions to view the files attached to this post.
Last edited by Daniel Brassard on 24 Sep 2011, 02:59, edited 1 time in total.
$ifndef "Softimage"
set "Softimage" "true"
$endif

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

Re: Curves in ICE - WIP

Post by Daniel Brassard » 24 Sep 2011, 02:55

And ... just for the sake of it and if you want to join the adventure, here is two ICE nodes curves in matrix form:

BD_Bezier4_m
DB_RationalBezier4_m

Enjoy!

Dan
You do not have the required permissions to view the files attached to this post.
$ifndef "Softimage"
set "Softimage" "true"
$endif

User avatar
Hirazi Blue
Administrator
Posts: 5113
Joined: 04 Jun 2009, 10:15

Re: Curves in ICE - WIP

Post by Hirazi Blue » 24 Sep 2011, 09:12

Could you perhaps show a screenshot of these compound in action,
i.e. where they go in an ICE tree and what they actually do?
Stay safe, sane & healthy!

User avatar
bottleofram
Posts: 355
Joined: 17 Aug 2010, 09:21

Re: Curves in ICE - WIP

Post by bottleofram » 24 Sep 2011, 10:58

Heres a quick screenshot of my tests of the compounds. Much like fabric Bezier compounds they construct the curves (or rather description for the curve since ICE doesnt support xsi curves yet) except they are constructed differently. Im using debugging tools to display them here.

Interesting work, Daniel.
You do not have the required permissions to view the files attached to this post.

User avatar
Maximus
Posts: 1121
Joined: 09 Jun 2009, 13:45

Re: Curves in ICE - WIP

Post by Maximus » 24 Sep 2011, 11:17

Wish i would understand whats going on :D lol

iamVFX
Posts: 697
Joined: 24 Sep 2010, 16:28

Re: Curves in ICE - WIP

Post by iamVFX » 24 Sep 2011, 19:14

Great compounds, thanks!

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

Re: Curves in ICE - WIP

Post by Daniel Brassard » 25 Sep 2011, 21:42

Thank you for all the good feedbacks.

A curve in matrix form is easier to experiment with and I have noted little difference in speed between the polynomial formula and the matrix form. The advantage with the matrix form is how easy it is to switch between curve definitions by just changing the matrix.

As an example, here is the rational bezier3 in matrix form and it's equivalent in polynomial form. The polynomial form is more daunting and can become a mess very quickly.
You do not have the required permissions to view the files attached to this post.
Last edited by Daniel Brassard on 26 Sep 2011, 12:09, edited 2 times in total.
$ifndef "Softimage"
set "Softimage" "true"
$endif

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

Re: Curves in ICE - WIP

Post by Daniel Brassard » 25 Sep 2011, 21:45

Here are two more nodes that I will use to demonstrate their usage:

DB_Bezier3_m
DB_RationalBezier3_m
You do not have the required permissions to view the files attached to this post.
Last edited by Daniel Brassard on 26 Sep 2011, 11:50, edited 1 time in total.
$ifndef "Softimage"
set "Softimage" "true"
$endif

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

Re: Curves in ICE - WIP

Post by Daniel Brassard » 25 Sep 2011, 21:53

If you try to create a circle with the normal bezier3, you will approximate it but it will not be a correct circle. With the rational bezier3 you can create a perfect circle.

A rational curve introduce the notion of weight on each point. Each points are therefore a 4D representation (x, y, z, w) where the w is how much influence the point will have on the curve (pull toward (w greater than 1) or push away (w less than 1) from the point, with 1 being neutral)

As an example, here is a perfect circle created with three rational bezier3 curves. The tip of the triangle has less weight at those points (0.7071) to create the circle. Every where else, the points have equal weight of 1.

Each rational bezier3 represent a segment of the circle (one third of it) with the end of one segment being the start of the next segment. To close the circle, we make the last point the first point of the circle. The red triangle is only to show a representation of the three rational bezier3, linked together (not normally needed). Each curve segments are colored differently.
You do not have the required permissions to view the files attached to this post.
Last edited by Daniel Brassard on 26 Sep 2011, 12:03, edited 1 time in total.
$ifndef "Softimage"
set "Softimage" "true"
$endif

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

Re: Curves in ICE - WIP

Post by Daniel Brassard » 25 Sep 2011, 21:57

And here is the circle created with four rational bezier3 curves. Again, we get a perfect circle.

If you play with the weights of some points (the w of the 4D vector) you will pull or push away the curve segment at that point. Try it.
You do not have the required permissions to view the files attached to this post.
$ifndef "Softimage"
set "Softimage" "true"
$endif

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

Re: Curves in ICE - WIP

Post by Daniel Brassard » 25 Sep 2011, 22:02

What I did to create the circles is called piecewise curve (linking curve segments to create a bigger curve). Try to create a rounded square.....

Hint! You will need four bezier2 (linear interpolation between two points) for the straight line segments!

Cheers!

Dan
Last edited by Daniel Brassard on 26 Sep 2011, 21:00, edited 1 time in total.
$ifndef "Softimage"
set "Softimage" "true"
$endif

User avatar
Hirazi Blue
Administrator
Posts: 5113
Joined: 04 Jun 2009, 10:15

Re: Curves in ICE - WIP

Post by Hirazi Blue » 26 Sep 2011, 10:35

Thanks for adding the screenshots.
Now at least I can see at a glance what I don't get... :D
(but that's just MY ignorance, I hasten to add)
Stay safe, sane & healthy!

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

Re: Curves in ICE - WIP

Post by Daniel Brassard » 27 Sep 2011, 02:50

Here I am showing the effect of changing the weight at the corner's control points using the four segments circle previously illustrated.

Top right: w = 0.7071. The curve describe a perfect arc circle. (note the with a value of 1, the curve is pulled slightly toward the point, this is why the non-rational bezier3 cannot represent a circle exactly).

Top left: w = 0. This result in eliminating the influence of that point on the curve and therefore we get a line.

Bottom left, w = 10. This result in pulling the curve toward the point creating sort of a rounded corner.

Bottom right: w = -0.5. This result in pushing the curve away from the point creating an inside arc.

Now imagine you have an object with all the points represented with the x,y,z,w you could use the w to influence the object points and sculpt details using say ...... a weight map!

Now is this a novel idea .... ;)
You do not have the required permissions to view the files attached to this post.
$ifndef "Softimage"
set "Softimage" "true"
$endif

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

Re: Curves in ICE - WIP

Post by Daniel Brassard » 28 Sep 2011, 05:05

Using the points created by the bezier nodes, I was able to create a polymesh topology driven by two curve bezier3 nodes.

Here is a screen of the results so far.
You do not have the required permissions to view the files attached to this post.
$ifndef "Softimage"
set "Softimage" "true"
$endif

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

Re: Curves in ICE - WIP

Post by Daniel Brassard » 29 Sep 2011, 01:17

And by changing one of the curve description to another type of curve (Rational Bezier4), I easily changed the shape of the topology.
You do not have the required permissions to view the files attached to this post.
$ifndef "Softimage"
set "Softimage" "true"
$endif