Morning,
Im fairly new to houdini, so please forgive the narrow nomenclature used to explain the issue.
We have a set dressing workflow that im trying to get working in houdini, so we do not need to save out per shot alembic for static geometry.
The data set is saved into a json file, with each asset, its pipe meta data, more importantly, the path to the static alembic, and a maya (Y-up) worldspace translation matrix. We also store the bbox, if that is useful to know.
What im not sure about is the best way to convert this matrix across and what node/ network i need to setup to translate the transform via this data set.
If some one can point me in the right direction would be great.
Cheers
Kym
transforming static alembic geometry from matrix
1820 4 1-
- kymwatts
- Member
- 22 posts
- Joined: Dec. 2016
- Offline
-
- kymwatts
- Member
- 22 posts
- Joined: Dec. 2016
- Offline
So i figured this out.
The geometry folder can take the worldspace transform.
Next question, On an efficiency side, if i have 1 alembic , that needs to be in 6 different locations.
in stead of making a geometry group per alembic, to transform it, do i gain better performance from converting the 6 ws locations to points and instancing the alembic file to it, Is there another way that i could attack the problem?
IS there an example or document that would point me the correct direction i would want to use in turns of set/ location dressing workflow?
Cheers
Kym
The geometry folder can take the worldspace transform.
Next question, On an efficiency side, if i have 1 alembic , that needs to be in 6 different locations.
in stead of making a geometry group per alembic, to transform it, do i gain better performance from converting the 6 ws locations to points and instancing the alembic file to it, Is there another way that i could attack the problem?
IS there an example or document that would point me the correct direction i would want to use in turns of set/ location dressing workflow?
Cheers
Kym
-
- tamte
- Member
- 8723 posts
- Joined: July 2007
- Offline
If you store your layout transform data in .csv file you can directly use Table Import SOP to import them as points with all necessary attributes convert them to instancing attribs and just copy your alembics onto them
Otherwise you can use custom Python SOP to import your .json as points with attribs and do the same
Or you can also export locators from Maya, bring them to Houdini as points using Alembic SOP, convert transforms to instancing attribs and cooy on those
I wouldn't use transform parameters in Geo Objects, it's not scalable, procedural not efficient
Otherwise you can use custom Python SOP to import your .json as points with attribs and do the same
Or you can also export locators from Maya, bring them to Houdini as points using Alembic SOP, convert transforms to instancing attribs and cooy on those
I wouldn't use transform parameters in Geo Objects, it's not scalable, procedural not efficient
Edited by tamte - Feb. 3, 2020 21:45:16
Tomas Slancik
FX Supervisor
Method Studios, NY
FX Supervisor
Method Studios, NY
-
- Kym Watts
- Member
- 36 posts
- Joined: Sept. 2014
- Offline
-
- dzigakaiser
- Member
- 17 posts
- Joined: Aug. 2012
- Offline
Hey Kym,
I just did something quite similar (and also got awesome help from Tomas - thanks again
).
I also used the Python SOP method and put my final transform matrix into the “transform” point attribute.
One more way you can go about spreading your instances is using a CopyToPoints SOP, enabling pack and instance (optional) and using a piece attribute as an asset identifier.
You can set a piece attribute in your Python SOP when creating the point cloud and also add it to your loaded Alembics.
Then you merge all loaded assets into one stream and connect all points and all assets to one CopyToPoints SOP.
Take care,
Dziga
I just did something quite similar (and also got awesome help from Tomas - thanks again
![](/static/djangobb_forum/img/smilies/big_smile.png)
I also used the Python SOP method and put my final transform matrix into the “transform” point attribute.
One more way you can go about spreading your instances is using a CopyToPoints SOP, enabling pack and instance (optional) and using a piece attribute as an asset identifier.
You can set a piece attribute in your Python SOP when creating the point cloud and also add it to your loaded Alembics.
Then you merge all loaded assets into one stream and connect all points and all assets to one CopyToPoints SOP.
Take care,
Dziga
Edited by dzigakaiser - Feb. 19, 2020 06:48:41
freelance matte painter & environment concept artist
-
- Quick Links