Jump to content
toadstorm

Alembic primitive/point colors to Maya?

Recommended Posts

Hello,

I've been struggling with trying to apply custom Alembic attributes from Houdini to Maya objects... specifically, exporting point or primitive colors to Maya. I can read the attributes in Maya using getAttr, but there doesn't seem to be any direct way to connect the color attribute exported from Houdini to Maya's colorPerVertex.

I could write a Python script to make these connections manually by iterating through every point on the mesh, but my mesh has a changing number of points throughout the animation, and the script would be far too slow to allow smooth playback if it had to run every frame. Is there a better way to handle this? I don't have the C++ ability to actually get into the Alembic plugin and modify it.

Share this post


Link to post
Share on other sites

I think I solved my own problem... I figured I'd post the solution here in case anyone has the same question.

I used SOuP for Maya to read the data directly from the AlembicNode (instead of trying to read attributes from the mesh itself) because the mesh wasn't properly reading the color array. SOuP's arrayToPointColor node transferred the information into a Maya-compatible color set very quickly, and then can output into another mesh node.

  • Like 1

Share this post


Link to post
Share on other sites

Hello Galakgorr. thanks for your tip, have you tried to export velocity to mesh from houdini with alermbic to use in render?,

Thanks

Share this post


Link to post
Share on other sites

Hello Galakgorr. thanks for your tip, have you tried to export velocity to mesh from houdini with alermbic to use in render?,

I haven't tried that only because I don't think that Maya can do a whole lot with a point velocity attribute on a mesh... Maya can use them for particles, but I don't know of a way to use a point velocity attribute for rendering in mental ray or vray.

I suppose that you could use a VOP SOP to convert point velocity in Houdini to camera space, and then write that point attribute out in an Alembic cache. You could then use that attribute in Maya to write your camera space velocity to your material color. I know VRay can handle negative shader colors if you enable them... not sure about mental ray.

  • Like 1

Share this post


Link to post
Share on other sites

if there is an attribute in Maya on the shape node called ABC_foo this will be visible in Houdini as a primitive attribute - the attribute MUST be prefixed with 'ABC_'

then in Houdini make sure this gets promoted to a detail attribute and it should show up in Maya

HTH

Share this post


Link to post
Share on other sites

hi!

ABC_velocity for example works well as detail attribute, for static objects, but for changing topology unfortunately not, we have here a custom alembic exporter, where you have to promote v to vertex attribute, then maya will read it as vertex color, and since we are rendering with arnold it will give correct motion blur.

Would be nice if SESI could make this somehow compatible, so changing topology would render as nince with mb as not changing

Share this post


Link to post
Share on other sites

Hi bdukovec.

Are You using the default Alembic in maya 2013 to get the blur working on deforming.

You mention "we have here a custom alembic exporter"

Could you share some details .

Thanks A million

Mangi

Share this post


Link to post
Share on other sites

hi!

yes, we use the default alembic import/export in maya, but we have a slightly modified Alembic ROP in Houdini just to deal with changing topology and velocity importing into maya.

Share this post


Link to post
Share on other sites

Our "custom" alembic exporter for Houdini can be found here: https://github.com/johnnyquest/hAbcGeomExport

This exports the Houdini velocity (v) attribute to the .abc file in a way that can actually be read into Maya as a color set (the attribute should be promoted to per-vertex in Houdini first, for some reason, although per-point "should work" according to abc developers).

We chose this method since other than vertex color sets, there's no mechanism in Maya for storing per-point data. (Our maya-to-arnold exporter is hardwired to interpret this special color set as per-point velocity).

It would be very nice if ether the Houdini abc exporter and/or the Maya importer supported this, so there would be a painless way of translating this from one app to another.

Share this post


Link to post
Share on other sites

Hi Galakgorr,

I'm very interested in your post and would like to describe you my very special situation with Maya or 3D Max. Actually I know very little about this software but would have to use them for some special purpose.

I generated a group of 3D points and assigned one unique color for each point. Now I want Maya (or 3DMax) to render these points with the color I assigned. My question is:

1. Can the software do this, i.e., rendering of geometric primitives without lighting definations?

2. What file format should I use to import these points into Maya/3DMax with their color?

Great thanks!

Teddy

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×