Material-IDs/Facesets for heterogenous meshes

392 views
Skip to first unread message

Sascha Herfort

unread,
Jul 4, 2014, 6:06:24 AM7/4/14
to alembic-d...@googlegroups.com
Hey guys!

The never-ending quest of transferring face-material-assignment-information continues.

I have a thinking particles fracture simulation that I'm trying to export as alembic and it seems to work with Exocortex's Crate plugin as long as I stay in 3dsmax.
However in Maya 2014 the plugin still imports the old FACESET attributes, which do not seem to support having a different content at every frame.
Importing with Maya 2014's alembic importer generates shadingEngine nodes which correspond to the materials I had in 3dsmax, but the mesh does not render in the viewport, which usually means that no material is applied at all (not even "initialShadingGroup")

Looking at the HDF5 tree of the cache reveals that there are the expected facesets per material with a static list of faces (materialname.prop.faceset.faces.smp0).
In addition there's a custom attribute on the shape's geometry which seems to actually store an integer per face per frame (shapename.prop.geom.materialids.smpi).
I'm assuming that Exocortex's plugin generates some kind of additional custom attribute for animated material-IDs in the case of heterogenous meshes.
When I create a heterogenous mesh with multiple materials inside Maya, it also comes in with shadingEngines hooked up, but not rendering in the viewport.

[TL;DR]:
I thought the standard way to store face-material-assignment in alembic was facesets. This is what we built our pipeline around.
But it seems that this does not work with heterogenous meshes.

I'm surprised that I read so little about this topic.
Does nobody else rely on per-face-material-assignment?
How do you guys deal with fracture caches where the internal faces have a different material than the surface for example?

Cheers!
-Sascha

Lucas Miller

unread,
Jul 5, 2014, 1:51:42 AM7/5/14
to alembic-d...@googlegroups.com

Importing with Maya 2014's alembic importer generates shadingEngine nodes which correspond to the materials I had in 3dsmax, but the mesh does not render in the viewport, which usually means that no material is applied at all (not even "initialShadingGroup")


The issue you are having with no materials being applied is most likely the same as this one:

Lucas

Jonathan Litt

unread,
Jul 7, 2014, 12:26:01 PM7/7/14
to alembic-d...@googlegroups.com
"I'm surprised that I read so little about this topic.
Does nobody else rely on per-face-material-assignment?
How do you guys deal with fracture caches where the internal faces have a different material than the surface for example?"

I think the answer is that most vfx studios don't handle this case natively in Maya. They are either using plugins that read alembic files directly within the renderer or they aren't using Maya for lighting at all. Katana easily handles this, for example. Pushing large and/or heterogeneous Alembic data through Maya has so many other issues that this is just one of the problems you might run into. Motion blur based on vector attributes is another common limitation.

Note: If you happen to be using V-Ray in Maya, it should be possible to handle this with proxies that point to Alembic files.

Hope that helps even if it's not the best news.

-Jonathan


--
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/d/optout.

Ben Houston

unread,
Jul 7, 2014, 12:42:41 PM7/7/14
to alembic-d...@googlegroups.com
Hi Sascha,

> I thought the standard way to store face-material-assignment in alembic was facesets. This is what we built our pipeline around.
> But it seems that this does not work with heterogenous meshes.
>
> I'm surprised that I read so little about this topic.
> Does nobody else rely on per-face-material-assignment?
> How do you guys deal with fracture caches where the internal faces have a different material than the surface for example?

We can extend our Maya plugin to read dynamic face sets. It shouldn't
be that hard as we have done some research into that previously. It
just wasn't a priority until now. I'll have a look over the next
little while.

> Note: If you happen to be using V-Ray in Maya, it should be possible to handle this with proxies that point to Alembic files.

Yes, V-Ray does read this information from the Alembic files exported
from Exocortex Crate. :)

For 3DS Max internally material assignment is done via material IDs on
each face. We just exposed this directly to Alembic to make
Max-to-Max and Max-to-VRay workflows completely lossless when it can
to dynamic topologies as this was requested from us. We can continue
to expand this workflow to the other packages as it is useful.

Best regards,
Ben Houston
Voice: 613-762-4113 Skype: ben.exocortex Twitter: @exocortexcom
http://Clara.io - Free Online 3D Modeling and Rendering

Sascha Herfort

unread,
Jul 15, 2014, 10:33:22 AM7/15/14
to alembic-d...@googlegroups.com
 
Thanks for shedding some light on this, guys!
Now I'm curios as to how other companies deal with this problem. :)

I'll be at Siggraph this year, speaking about our alembic integration into CryEngine and I'd love to use to opportunity to discuss the future of Alembic as well.
Do you think the Birds of a Feather event is a suitable platform for this?

Ben, thanks for the details!
It's great to see how feature-rich exocortex's alembic pipeline has become.
Do you think we can help push for standard alembicesque way of transferring this information? (right now every importer/exporter expects/writes slightly different data)
If you're also at Siggraph this year, I'd love to chat with you!
Reply all
Reply to author
Forward
0 new messages