How do you render curves?
-
Daniel Brassard
- Posts: 878
- Joined: 18 Mar 2010, 22:38
- Location: St. Thomas, Ontario
How do you render curves?
Hi,
I have these curves I create in ICE and I would like to render them as strands, but they are not "curves" in the pure sense of the word, how would you suggest I render them?
Thanks for the help!
I have these curves I create in ICE and I would like to render them as strands, but they are not "curves" in the pure sense of the word, how would you suggest I render them?
Thanks for the help!
You do not have the required permissions to view the files attached to this post.
Last edited by Daniel Brassard on 22 Aug 2011, 21:22, edited 2 times in total.
$ifndef "Softimage"
set "Softimage" "true"
$endif
set "Softimage" "true"
$endif
-
Chris_TC
- Posts: 411
- Joined: 22 Mar 2010, 16:43
Re: How to render curves
Hi Daniel,
How are you displaying these in the viewport?
For rendering you could make strands. You'd feed the curve point positions to the strand.
How are you displaying these in the viewport?
For rendering you could make strands. You'd feed the curve point positions to the strand.
-
Daniel Brassard
- Posts: 878
- Joined: 18 Mar 2010, 22:38
- Location: St. Thomas, Ontario
Re: How to render curves
Hi Chris,
To display the lines, I use the display line factory node. You can find a bunch of them in the debug section (Display point, line, etc). Useful for visualization.
I have tried to feed the strand position to see the curve but my attempt was lame. I need to investigate further Stephen Blair method (strand without emit) on XSI Support, I think the solution is in there but I have not figure it out yet.
The control points are fed direct right now but idealy, I would like to feed three nulls for each control point, one that display the point location (P0, P1, P2, P3, etc) and two that define the tangency (added automatically for each control point), so that I can adjust the curve sharpness/weight at a point. Then I would like it to be traced with more than the points needed to create a segment of the curve (multiple segments), and expand from there. Too bad we don't have the "empty surface mesh" similar to the empty polygon mesh to create a surface (I am patient, I know it will come eventually). I can do mesh surface in JScript (parametric formula plugin), I would like to do the same in ICE.
This is for experimentation and learning. There is the curve tool from Eugen Sares (Keyvis curve tool) and Fabricio PowerExtrude tool available so no point to re-invent the wheel. Maybe I will look at their methods as well to learn from.
To display the lines, I use the display line factory node. You can find a bunch of them in the debug section (Display point, line, etc). Useful for visualization.
I have tried to feed the strand position to see the curve but my attempt was lame. I need to investigate further Stephen Blair method (strand without emit) on XSI Support, I think the solution is in there but I have not figure it out yet.
The control points are fed direct right now but idealy, I would like to feed three nulls for each control point, one that display the point location (P0, P1, P2, P3, etc) and two that define the tangency (added automatically for each control point), so that I can adjust the curve sharpness/weight at a point. Then I would like it to be traced with more than the points needed to create a segment of the curve (multiple segments), and expand from there. Too bad we don't have the "empty surface mesh" similar to the empty polygon mesh to create a surface (I am patient, I know it will come eventually). I can do mesh surface in JScript (parametric formula plugin), I would like to do the same in ICE.
This is for experimentation and learning. There is the curve tool from Eugen Sares (Keyvis curve tool) and Fabricio PowerExtrude tool available so no point to re-invent the wheel. Maybe I will look at their methods as well to learn from.
$ifndef "Softimage"
set "Softimage" "true"
$endif
set "Softimage" "true"
$endif
-
Daniel Brassard
- Posts: 878
- Joined: 18 Mar 2010, 22:38
- Location: St. Thomas, Ontario
Re: How do you render curves?
Made some progress on the curve and strand, I can now drive a bezier4 with four nulls, feed their point positions to a strand and display the result on screen. That was simpier than I thought. Here were I am so far.
You do not have the required permissions to view the files attached to this post.
$ifndef "Softimage"
set "Softimage" "true"
$endif
set "Softimage" "true"
$endif
-
Memag
- Posts: 339
- Joined: 08 Aug 2010, 23:37
- Location: Tits
Re: How do you render curves?
3delight can render SI curves, as far as I remember.
There is a free, 2core version, you can download.
There is a free, 2core version, you can download.
-
ActionArt
- Posts: 853
- Joined: 25 Nov 2010, 17:23
- Location: Canada
Re: How do you render curves?
I don't know if this helps at all but there is a render curves compound here:
http://frenchdog.wordpress.com/2009/02/ ... nd-update/
http://frenchdog.wordpress.com/2009/02/ ... nd-update/
-
Daniel Brassard
- Posts: 878
- Joined: 18 Mar 2010, 22:38
- Location: St. Thomas, Ontario
Re: How do you render curves?
Thanks Memag and ActionArt for your replies. I will investigate Guillaume RenderCurve compound, that look like what I am looking for (hoping it works on 2012 Sp1).
I was thinking of a MR contour shader (I may still do it for fun).
I want to experiment with a control cage next, starting with a simple implicit plane and draging the points around to see what happen to the underlying "surface". I'll probably start with the bezier4.
I already figured out the algorithm for a multi segment bezier4 curve (3n, 3n+1, 3n+2, 3n+3 .... where n is the segment index starting with segment0 ... so simple)
I was thinking of a MR contour shader (I may still do it for fun).
I want to experiment with a control cage next, starting with a simple implicit plane and draging the points around to see what happen to the underlying "surface". I'll probably start with the bezier4.
I already figured out the algorithm for a multi segment bezier4 curve (3n, 3n+1, 3n+2, 3n+3 .... where n is the segment index starting with segment0 ... so simple)
$ifndef "Softimage"
set "Softimage" "true"
$endif
set "Softimage" "true"
$endif
-
ActionArt
- Posts: 853
- Joined: 25 Nov 2010, 17:23
- Location: Canada
Re: How do you render curves?
Very interesting! Keep us posted on how it goes 
-
Mathaeus
- Posts: 1778
- Joined: 08 Jun 2009, 19:11
- Location: Zagreb, Croatia
Re: How do you render curves?
well if you mean the same MR contour shader as in Max or Maya, this option doesn't exist in SI. SI toon ink lens shader is another story.Daniel Brassard wrote:
I was thinking of a MR contour shader (I may still do it for fun).
I want to experiment with a control cage next, starting with a simple implicit plane and draging the points around to see what happen to the underlying "surface". I'll probably start with the bezier4.
I already figured out the algorithm for a multi segment bezier4 curve (3n, 3n+1, 3n+2, 3n+3 .... where n is the segment index starting with segment0 ... so simple)
I think the best idea is to go with ICE strands, segment type, usually used for hair.
Btw, if you're using 3delight for ICE strands of this type, curves are created automatically in render time. Some kind of Catmull-Rom, I think. So you can go with linear curve, just by supplying the control points as a strand array. No need for these Bezier compounds. Quality of interpolation is controlled by 3dl shading rate.
-
Daniel Brassard
- Posts: 878
- Joined: 18 Mar 2010, 22:38
- Location: St. Thomas, Ontario
Re: How do you render curves?
Hi Mathaeus,
BTW, I want to take this opportunity to congratulate you for a job well done on Kristinka Hair v3. It's quality piece of software like yours that keep Softimage going and getting stronger.
That is exactly what I was thinking. I am well aware of the issue and how many have tried before to code the shader. I have MR programming books and have coded several shaders in the past. But this is future work unfortunately. I have to remain focus on the task at hand.well if you mean the same MR contour shader as in Max or Maya, this option doesn't exist in SI.
Agreed. For this project I am only interested with strands and how far I can push it to influence and create topology.I think the best idea is to go with ICE strands, segment type, usually used for hair.
Thank you for the information, this is good to know. I have not used 3DL so this would be new territory for me. I'll give it a try for sure. I read good things about the renderer.Btw, if you're using 3delight for ICE strands of this type, curves are created automatically in render time. Some kind of Catmull-Rom, I think. So you can go with linear curve, just by supplying the control points as a strand array. No need for these Bezier compounds. Quality of interpolation is controlled by 3dl shading rate.
BTW, I want to take this opportunity to congratulate you for a job well done on Kristinka Hair v3. It's quality piece of software like yours that keep Softimage going and getting stronger.
$ifndef "Softimage"
set "Softimage" "true"
$endif
set "Softimage" "true"
$endif
-
Daniel Brassard
- Posts: 878
- Joined: 18 Mar 2010, 22:38
- Location: St. Thomas, Ontario
Re: How do you render curves?
I did a little bit more investigation (into the MR books) and to render curves in MR, the recommended method is not the contour shader (which require a material and you cannot assign material to a curve within SI) but to use the hair shader.
Duh! Why did it not occur to me before.
To recap so far:
Duh! Why did it not occur to me before.
To recap so far:
- Use the render curve addon and compound from Guillaume
Distribute a large amount of tiny particles along the curve
Extrude a small shape along the curve
use a hair to display the curve at render time
instanciate and offset the curve and loft between the two curves, attach a material
$ifndef "Softimage"
set "Softimage" "true"
$endif
set "Softimage" "true"
$endif
-
Daniel Brassard
- Posts: 878
- Joined: 18 Mar 2010, 22:38
- Location: St. Thomas, Ontario
Re: How do you render curves?
Below is how I render the curve using an extrusion along the strand. The principle is the same as what Stephen Blair explained at XSI Support. A couple of gotcha to whatch, start the bezier iteration very small, not at zero (mine is 0.0001). I also adjusted the strand size to zero to start so that the point is sharp (and not a cone at the first extrusion).
Here is the result and the ICE tree!
Here is the result and the ICE tree!
You do not have the required permissions to view the files attached to this post.
Last edited by Daniel Brassard on 01 Sep 2011, 01:14, edited 1 time in total.
$ifndef "Softimage"
set "Softimage" "true"
$endif
set "Softimage" "true"
$endif
-
Daniel Brassard
- Posts: 878
- Joined: 18 Mar 2010, 22:38
- Location: St. Thomas, Ontario
Re: How do you render curves?
This setup give us a good test bed for curves in ICE. I will use this setup to experiment with subdivisions.
A quick render test with the curve and some basic shape
Cheers!
A quick render test with the curve and some basic shape
Cheers!
You do not have the required permissions to view the files attached to this post.
$ifndef "Softimage"
set "Softimage" "true"
$endif
set "Softimage" "true"
$endif