Inconsistent Curve Interpretation

305 views
Skip to first unread message

Pete Segal

unread,
May 2, 2013, 1:35:15 PM5/2/13
to alembic-d...@googlegroups.com

I started looking into supporting curves in Alembic. Hopefully I’m mistaken, but so far I’m somewhat alarmed by the inconsistent curve interpretation I’ve seen. Going back over the Alembic Discussion threads doesn’t appear to clarify the issue.

 

Is anyone currently looking at the curve basis at all? My sample size may be small, but AFAICT, Maya treats all imported curves as NURBS (without checking the basis), and Cinema4D treats all curves a Cubic. From the discussion it would appear that only the RenderMan importer looks at basis.

 

Am I missing something, or is it really not possible to pass curves consistently from one application to another? Since I’ll need to write out both cubic splines & Bezier’s, I’d like to know that they’ll be imported properly. Similarly, I’ll need to know what to expect when bringing curves in from other applications.

 

Thanks,

Pete

Lucas Miller

unread,
May 2, 2013, 1:50:53 PM5/2/13
to alembic-d...@googlegroups.com
Curve handling between apps is very inconsistent.

All curves in Maya are NURBS curves and they don't support curve groups so every MFnNurbsCurve shape is a single curve.

We based our schema off of the prman spec which unfortunately doesn't include NURBS curve support.

The Maya exporter, AbcExport currently writes out the Nurbs curves with a Bspline basis as an approximation.

Lucas


--
You received this message because you are subscribed to the Google Groups "alembic-discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to alembic-discuss...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Ben Houston

unread,
May 2, 2013, 1:53:38 PM5/2/13
to alembic-d...@googlegroups.com
Hi Pete,

Exocortex Crate will export NURBS as proper NURBS curves using a
straight forward extension and load those NURBS as NURBS in both Maya,
Softimage and Max. I sent some reference files a few weeks ago to
this list. I understand that other programs may be understanding this
extension soon.

We also support cubic splines in Softimage and Maya primarily for
hair, strands, etc.

If you can send around some reference Alembic files of both types
(Bezier and cubic splines) to the list we can ensure that we support
them correctly in Maya, Softimage and Max. It shouldn't be too hard
to do.

Best regards,
Ben Houston
http://exocortex.com/alembic
> --
> You received this message because you are subscribed to the Google Groups
> "alembic-discussion" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to alembic-discuss...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>



--
Best regards,
Ben Houston
CTO, Exocortex Technologies, Inc.
http://www.exocortex.com

Pete Segal

unread,
May 2, 2013, 2:10:28 PM5/2/13
to alembic-d...@googlegroups.com

Thanks Lucas, Ben,

 

I’ve attached a very simple Alembic file with two curves. The curve on the left is a 5 vertex B-spline, and the one on the right is a 19 vertex Bezier. If anyone could confirm that I am indeed exporting these correctly, I would appreciate it greatly, as these don’t look right in anything I’ve tried so far.

 

Also, if you have any other curve files that you could share for testing (with reference images), that would be great too!

 

Thanks,

Pete

 

View looking from +X

image001.png
temp.abc

Lucas Miller

unread,
May 2, 2013, 5:47:02 PM5/2/13
to alembic-d...@googlegroups.com
These appear to be exported correctly, and look pretty good in Maya via AbcImport with Alembic 1.1.5.

What are you viewing it with, SimpleAbcViewer?

Lucas
image001.png

Pete Segal

unread,
May 3, 2013, 2:07:56 AM5/3/13
to alembic-d...@googlegroups.com

Lucas,

 

This is what we get in Maya with the 1.0.4 Alembic plugin - it appears to be treating the left curve as if the start/ends are control points & perhaps the right curve as a B-spline treating the tangents as a cage):

 

 

This is what we get in the latest Cinema4D – the left curve is correct, but the one on the right is not:

 

 

I would have liked to try the SimpleAbcViewer, but so far I’ve had no luck getting a Windows version to build. Similarly, I wasn’t able to build the latest Maya plugin, but as it wasn’t critical at the time, I didn’t pursue it.

 

On a related note, for the curve on the left, we’re exporting Catmull-Rom cubic splines, and we have the ability to make the end points tangents or actual points on the curve. In the case of a closed curve with points 0 1 2 3 0, we would use the adjacent points as the control points, i.e. [3] 0 1 2 3 0 [1], where the start and end vertices [3] & [1] would not be drawn, but 3-0 would define the input tangent to 0, and 0-1 defines the output tangent from 0.

 

Is there a way in Alembic to specify that either the start and/or end points are control points and not points on the curve?

 

Thanks,

Pete

image002.png
image003.png
image001.png

Lucas Miller

unread,
May 3, 2013, 12:31:20 PM5/3/13
to alembic-d...@googlegroups.com
You should be getting something like this in Maya, while not perfect is a much better approximation than what was in your screenshot.

Inline image 1

Are you building the Maya plugin yourself, or is it the one included with your version of Maya?  (and what version is that?)

Lucas
image.png

Tom Price

unread,
May 3, 2013, 12:35:05 PM5/3/13
to alembic-d...@googlegroups.com
We re using 1.1.3 in maya, the curve has been much better over 1.0, where it was trimmed in length because of the degree. I have a function to remove the points at duplicate WS positions though as this makes hair strands go mad.




--
You received this message because you are subscribed to the Google Groups "alembic-discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to alembic-discuss...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 


BAFTA Independent Production Company of the Year - 2012 Children's BAFTAs
twitter.com/blue_zoo | facebook.com/bluezooanimation | vimeo.com/bluezoo

blue-zoo, Chesterfield House, 385 Euston Road, London NW1 3AU
t. 020 7434 4111

image.png

Pete Segal

unread,
May 3, 2013, 1:25:12 PM5/3/13
to alembic-d...@googlegroups.com

Sorry Lucas, that email got long, so you might have missed the bottom. That was with the 1.0.4 version delivered with Maya. I had problems building the 1.1.3 version and wasn’t hard-pressed to rebuild it.

 

My other related question was: Is there a way in Alembic to specify that either the start and/or end points are control points and not points on the curve? Since we’re exporting Catmull-Rom cubic splines, we have the option to make the end points tangents or actual points on the curve. Is there a way to convey this in Alembic?

 

Thanks,

Pete

 

 

From: alembic-d...@googlegroups.com [mailto:alembic-d...@googlegroups.com] On Behalf Of Lucas Miller
Sent: Friday, May 03, 2013 12:31 PM
To: alembic-d...@googlegroups.com
Subject: Re: [alembic-discussion] Inconsistent Curve Interpretation

 

You should be getting something like this in Maya, while not perfect is a much better approximation than what was in your screenshot.

--

image001.png

Pete Segal

unread,
May 3, 2013, 1:28:01 PM5/3/13
to alembic-d...@googlegroups.com

For whatever reason, I haven’t been able to get SimpleAbcViewer to build on my Windows box, and since it’s not that much of a priority for me, I haven’t really had time to investigate it. Does anyone have an i64 executable they’d be willing to send me?

 

Thanks,

Pete

Jonathan Garrett

unread,
May 5, 2013, 7:48:01 PM5/5/13
to alembic-d...@googlegroups.com
hi Pete

here's my release build from Alembic 1.1.3 (I haven't got around to building 1.1.5): https://dl.dropboxusercontent.com/u/955495/SimpleAbcViewer.exe

Jonny

Brad Falk

unread,
May 6, 2013, 8:53:21 AM5/6/13
to alembic-d...@googlegroups.com
I get missing glut.dll errors with this. I have not compiled any alembic in my system. Is there any information you can pass about this?

thanks
Brad Falk


--
You received this message because you are subscribed to the Google Groups "alembic-discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to alembic-discuss...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 
twitter.jpg
youtube.jpg
facebook.jpg

Lucas Miller

unread,
May 6, 2013, 12:31:19 PM5/6/13
to alembic-d...@googlegroups.com
Isn't repeating the start or end points (the appropriate number of times) a mathmatically equivalent way to do this?

Lucas
image001.png

Ben Houston

unread,
May 6, 2013, 12:56:31 PM5/6/13
to alembic-d...@googlegroups.com
Yes, we should just keep it this way.  I think the current definition is sufficient (except for the lack of NURB support, which we have addressed via our custom extension.)
-ben
image001.png

Jonathan Garrett

unread,
May 7, 2013, 1:32:00 AM5/7/13
to alembic-d...@googlegroups.com
oops - yeah, it's linked against glut64 - here's the dll

Pete Segal

unread,
May 9, 2013, 12:13:31 PM5/9/13
to alembic-d...@googlegroups.com

Perfect, thank you!

 

If you ever update it and could let me know, that would also be great.

 

Thank you!

Pete

--

Jonathan Garrett

unread,
May 17, 2013, 12:26:18 AM5/17/13
to alembic-d...@googlegroups.com
updates will go here: http://goo.gl/r2Z8b

currently has the x64 libs and exes for 1.1.5

Jonny

To unsubscribe from this group and stop receiving emails from it, send an email to alembic-discussion+unsub...@googlegroups.com.

Jonathan Garrett

unread,
Jul 27, 2013, 5:57:37 AM7/27/13
to alembic-d...@googlegroups.com
x64 libs and exes for v1.5: http://goo.gl/r2Z8b

Jonny
Reply all
Reply to author
Forward
0 new messages