question

Klaus Skovbo avatar image
Klaus Skovbo asked ·

Curve width issue with catmull-rom - Houdini curve to Maya

Hi,


How can I get Arnold to read the curve width attribute from Houdini and using catmull-rom curve basis at the same time?


Workflow:
I am creating my curves in Houdini and exporting them as alembic. In Maya I am importing the .abc file through a "standin" node. I am then applying the following two operators:


This is the result. The radius of the curve is constant.


If I change the 'basis' to "Linear", I get the correct width, but obviously no longer the subD curves.


I tried putting a setParameter 'radius' = 'width', but that didn't work. What do I need to do to get arnold to read the below width attribute from Houdini?


Exported houdini curves attributes



Thank you!

Klaus


arnoldmtoahoudinialembiccurves
1595163253864.png (20.8 KiB)
1595163301506.png (298.7 KiB)
1595163465536.png (179.6 KiB)
houdinisettings.jpg (265.8 KiB)
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Ashley Handscomb Retallack avatar image
Ashley Handscomb Retallack answered ·

You can't use the overrides panel/set_parameter node to set the basis of the curve and keep the radius data. You need to add the user data curves:basis to tell the procedural to convert radius data attribute to match the knots on the curve.

 declare curves:basis constant STRING
 curves:basis "bezier"


I've added an edited version of your scene, and will had a feature request to add this easily via the maya UI


1595841744840.png (40.1 KiB)
Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Klaus Skovbo avatar image
Klaus Skovbo answered ·

Hey,


Here are the details of the curves I sent you, straight from Houdini. There are 62,704 points.. is that not what Arnold is expecting to use for the width attributes?


I read the documentation of the "basis" here, https://docs.arnoldrenderer.com/display/A5NodeRef/curves

So if I change the basis to be Bezier or Catmul-rom it will change the actual number of points and therefore render the 'width' attribute useless?


Basically how can I have smooth curves and use the width attribute at the same time?


cheers,

Klaus


1595444745636.png (34.2 KiB)
5 comments Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

There are 5334 points in the Arnold curves node (I exported to ASS and expanded the Alembic procedural to check).

So there is a mismatch between the number of points and the radius. I don't get that in my own tests. How are you exporting to abc?

Different basis expect different number of points. All that is determined at translation time (when the scene is exported to Arnold), not at render time.

At this point, I can't say whether it's a bug in translation, a problem in the scene setup, or a render time problem. Need to do more testing.

0 Likes 0 · ·
Stephen Blair avatar image Stephen Blair ♦♦ Stephen Blair ♦♦ ·

I think it's a bug in the Arnold alembic procedural.

Can you use ass files instead, for now?

0 Likes 0 · ·
Stephen Blair avatar image Stephen Blair ♦♦ Stephen Blair ♦♦ ·

Or load the abc file directly into the application?

0 Likes 0 · ·
Show more comments
Show more comments
Stephen Blair avatar image
Stephen Blair answered ·

The width (radius) is found, but there's a mismatch:


For the catmull-rom and bspline basis, I get

WARNING |  [curves] /body_body/HAIRS: invalid radius specification: found 62704, expected 1, 5334 or 52036 (constant, uniform or varying); just using the first



Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Klaus Skovbo avatar image
Klaus Skovbo answered ·

testScene.zip (Maya scene)

test23.zip (curves)


Hey,


Thanks for taking the time to look at this. I have uploaded a less dense version of the groom I am testing this out on. Also I have uploaded the Maya scene file with the operators on the Standin.


Again any helpers would be much appreciated, as I am still unable to get the width to work.


cheers!


test23.zip (846.5 KiB)
testscene.zip (2.6 KiB)
Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Stephen Blair avatar image
Stephen Blair answered ·

Please post a scene or abc file, it's too hard to figure out from screenshots.

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Klaus Skovbo avatar image
Klaus Skovbo answered ·

Hi,


This is the result with basis = bezier. I get all these random areas of the curves not rendering visible.

close up - Can see the point width is all inconsistent.

Bezier settings:


-


Here is B-spline. Still don't get the width attribute come through.

B-spline settings.




What am I doing wrong? Any pointers would be appreciated :-)

Do you guys have a sample scene that works using alembic curves?


thanks,

Klaus


1595354581131.png (1.3 MiB)
1595354820855.png (558.9 KiB)
1595354914001.png (42.4 KiB)
1595354987450.png (821.1 KiB)
1595355003324.png (42.3 KiB)
Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Stephen Blair avatar image
Stephen Blair answered ·

Different basis have different number of points and so different number of width values.

By default, Alembic curves are bezier

If possible go for b-spline. Only Bezier expects to have the widths to equal number of vertices-2.



1595269520088.png (3.7 KiB)
Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Klaus Skovbo avatar image
Klaus Skovbo answered ·

Hey,


Thanks for the reply. I am trying out what you mentioned just now, still does not render correctly. Am I doing something fundamentally wrong here?


Current settings on the standin node.



catmull-rom with 'width'

catmull-rom without 'width'

When using the width attribute in the "Radius Attribute Name" slot, the above happens where the curve is now linear and still does not have the correct radius. Why is this?


As seen in the image my previous post, Houdini shows the .abc with the correct 'width' attribute on the points.



- What do you mean by knots? The points on the curve?

- What is the correct workflow for getting subD curves from an alembic file, e.g smooth curves?


Thanks again and any help would be appreciated please,


cheers,

Klaus


1595268488179.png (56.4 KiB)
1595268578353.png (58.4 KiB)
1595268589734.png (72.6 KiB)
Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Stephen Blair avatar image
Stephen Blair answered ·

If you're changing the basis, the number of knots may not match up with the new basis.

And the Arnold alembic procedural expects the curve widths to be in a widths attribute. Use the Radius Attribute Name box (aiStandin attribute editor) to make it use width instead.

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Welcome to the Arnold Answers community.

This is the place for Arnold renderer users everywhere to ask and answer rendering questions, and share knowledge about using Arnold, Arnold plugins, workflows and developing tools with Arnold.

If you are a new user to Arnold Answers, please first check out our FAQ and User Guide for more information.

When posting questions, please be sure to select the appropriate Space for your Arnold plugin and include the plugin version you are using.

Please include images, scene and log files whenever possible as this helps the community answer your questions.

Instructions for generating full verbosity log files are available for MtoA, MaxtoA, C4DtoA, HtoA, KtoA, and Kick.

If you are looking for Arnold Documentation and Support please visit the Arnold Support site.

To try Arnold please visit the Arnold Trial page.

Bottom No panel present for this section.