Hi there,
I’m struggling to import animated NURBS from Houdini to Touchdesigner. Can anyone point me out if it is even possible? I succeded in importing with alembic sop but they are interpreted as polyline/primitive (zigzag lines). I know i can convert them with convert sop but as you know this process adds a considerable CPU cost.
No success exporting/importing even with fbx.
I attach an example with a 15 frames animation (toe+abc). If I open back in Houdini or Cinema4d the nurbs are interpreted right.
Cheers
The supported Alembic primitives are polymesh, curves, and points for geometry. Furthermore, for realtime performance everything should be polygons anyways, and TouchDesigner does need to convert everything to polygons at rendering time in openGL.
So I’d recommend trying to convert to polygons in Houdini of C4d, the tools there will do a better job converting natively before exporting. Start with a very high polygon count to keep your smooth surfaces, then once you get them into TouchDesigner you’ll know how much further the models need to be reduced for the realtime performance targets you are after.
Dear Ben,
thanks for the clear answer that saved me from further endless export/import attempts.
I slightly changed the subject of the post so to ask few more clarification about alembic sop.
From the wiki I read that alembic sop supports both standard attributes like N and v and custom attributes as well.
I succeeded in having touchdesigner correctly read Position, color attributes (cd), pscale and any custom float attribute, but there is no way to have recognized the normal, velocity and width attribute I exported from Houdini (i tried both uppercase and lowercase). Width and velocity are simply discarded, normal is overwritten with 0,0,0 and custom vector attributes are skipped as well. Alpha attribute is read as a custom float and not transferred to cd(3).
As a workaround I assume I can export velocity, normal and whatever vector attribute as custom float attributes with random name and then convert/rename them in touch, but I’d lose the possibility to pass the alembic straight to GPU.
Am I struggling over something I can’t obtain? Again
I attach screenshots from Houdini spreadsheet and touch dat for quick attributes namematching and also a touch project with imported alembic.
Thank you so much for any help!
Sorry for the delay in answering this. Looking at the .abc file, it seems like the color is only written as vector 3 (IC3fGeomParam), and Houdini isn’t merging the alpha into a IC4fGeomParam attribute. We don’t support the custom ‘Alpha’ attribute that Houdini uses, I would have expected them to merge their Cd and Alpha into a IC4fGeomParam attribute in the alembic file.
I’ve also fixed the issue where the curves aren’t imported correctly/placed correctly.
We are going to further look at the issue with normals and velocity
I’ want to second the need for better attribute support from Alembics. I did a lot of testing about which attributes are supported and which are not and if the attribute name matters… and well my test shows that “custom name vec3 attributes are not supported data type for either point of vertex”.
but it looks like the 9 “standard” attributes (P) (v) (force) (Cd) (Alpha) (N) (uv) (mass) (pscale) are sort of included always by default and some of these are vec3 like Cd and N… (probably becasuse these attribute names have been grandfathered into Houdini and TouchDesigner from the start) – some of these are tricky like velocity but they need to be spelled exactly like this (v) if it is spelled (V) it wont work.
I would love to have string support as a data type as well.
my work around for right now is to take the alembics and convert them to bhclassic… because the bhclassic format actually supports ALL data types! (yay) but there are production reasons why we need to be importing alembics. I can provide you with as much test files as you need to sort this. its kind of a high priority as we would like to use Alembics more on productions. I love attributes and use them all the time, it really makes TouchDesigner more powerful to be able to use them.