A couple Alembic issues

Is anyone having trouble with alembic and opensubdiv? I have a fractured geo from Houdini with 3000-some pieces and about 380K polygons. The alembic loads and plays back, and subdiv modifier works ok, but OpenSubDiv (OpenMP) crashes. I haven’t tried any other compute mode (this might be the issue). Can someone else please try to replicate this from another app?

Spec:
CentOS 7
Dual e5-2630 v2
56GB Ram
M4000 (8gb VRAM)

Another issue I ran across is that Houdini point groups come in as material layers, which is kind of cool. Except that there is no vertex group associated with the material. This is easy to fix in houdini, but it would be cool if the materials were loaded with the vertex group. Maybe if it were a vertex group it would work … not sure you can group vertex in houdini?

Last, I could not get micropoly displacement to behave at all. It was a big spiky mess and would not respond to scaling. It was either equally spiky or zero no mater how the disp map was scaled.

Blender should never crash. So this is de facto worthy of a bug report, including a file to reproduce the issue. If this is indeed due to the mesh sequence cache modifier then it will be up to me to fix the bug. I’m trying to make some room in my schedule to fix the current known Alembic bugs, and maybe make some improvements to the Alembic implementation. (Feel free to DM any crashing/buggy alembic files if you don’t want to share them publicly).

Another issue I ran across is that Houdini point groups come in as material layers, which is kind of cool. Except that there is no vertex group associated with the material. This is easy to fix in houdini, but it would be cool if the materials were loaded with the vertex group. Maybe if it were a vertex group it would work … not sure you can group vertex in houdini?

Alembic does not have the concept of vertex group or point group, the closest thing to it is material (face sets) group, so this is what Houdini must be using to write point or vertex groups. The one thing I can do is automatically add a corresponding vertex group for each material assignment. The remaining question would be: should it be assumed the user wants it as default or should there be an option in the import operator UI for it? (I’m not a huge fan of adding more buttons, but I am open minded when it comes to user control.)

Last, I could not get micropoly displacement to behave at all. It was a big spiky mess and would not respond to scaling. It was either equally spiky or zero no mater how the disp map was scaled.

At last check micro-polygon displacement was working fine, though there was a small bug fixed by maiself a couple of months ago iirc, which brings to the question: what version of Blender are using, official release or nightly build?

I’ll get a bug report in when I am less busy. Not sure how practical it will be to load the whole sequence. I’ll try to replicate with a few frames.

Alembic does not have the concept of vertex group or point group, the closest thing to it is material (face sets) group, so this is what Houdini must be using to write point or vertex groups. The one thing I can do is automatically add a corresponding vertex group for each material assignment. The remaining question would be: should it be assumed the user wants it as default or should there be an option in the import operator UI for it? (I’m not a huge fan of adding more buttons, but I am open minded when it comes to user control.)

I do not think it would be particularly valuable to create a material without a corresponding vertex group. It would be easier to just delete any unneeded materials if all you want is the vertex group than to go back in and change the group to an attribute and import it as a color.

At last check micro-polygon displacement was working fine, though there was a small bug fixed by maiself a couple of months ago iirc, which brings to the question: what version of Blender are using, official release or nightly build?

I am using the official release.

I think the material assignments would definitely be worth, probably an option in the import to check whether you want those assignmates made or not.

KWD, I am surprised Alembic does not understand vertex groups - does that mean other attribute maps like a simple scalar or an arbitrary vector per point (not linked to velocity, say a color) cannot be exported/imported along with the geometry ? I haven’t used Alembic much so far but I am looking at taking particle sims from Houdini into Blender.

edit after doing some research it seems Alembic totally understands custom per point attributes - unless I misread ? - isn’t a vertex group just a scalar attribute map ?

Hadrien

Yes, Alembic fully understands arbitrary per-point data. I do not know if it supports other attribute classes or not. But it certainly supports custom, arbitrary point-level data. In fact, looking at the Houdini spreadsheets, it would appear that groups are just such attributes only that they are flagged as being a group so that they respond to group contexts.

To clarify, what I meant was Alembic does not have a “VertexGroup” primitive like Blender that would allow seamless sharing vertex groups between DCCs, though you can still write your data in your own specific way. Similarly for UVs, Alembic only supports one UV set per object, but a convention was agreed on on how to read and write extra UV sets.

As far as arbitrary properties go, they can be per point, per polygon or per polygon vertex (i.e. one value per face corner, like vertex colors are stored in Blender).

While speaking of per vertex attributes: are there plans to support custom split normal im- and export for Alembic?
This would make exchange during projects much more convenient, especially when dealing with meshes coming from CAD apps.

:slight_smile:

Ok thanks for your answers. Soooo… until we get object nodes, there’s no arbitrary assignment of point attributes to either vertex colors or vertex weights and we have to set a fixed convention instead…