Vertex Color gets imported as “Max_Vertex_Color_Map0” you can remap this to Cd in the Alembic SOP before.
And you can see all the attributes as soon you unpack the alembic file e.g. with the Unpack SOP.
Here you can also see that vertex color is now called “Cd”, because I converted it earlier.
The default UV Channel is imported as “uv” all additional UV Channels are named “Max_Map_Channel_2”, “Max_Map_Channel_3”, “Max_Map_Channel_4”, etc.
Houdini is handling UV Attributes as a 3-Float Attribute. The UV0 Channel is imported correctly as “uv” 3-Float Attribute. But any additional UV Channels are being imported as 2-Float Attributes along with a local variable which has the same name as the attribute.
In order to work with them correctly they need to be converted to 3-Float Attributes and the local variable needs to be reapplied to export it correctly in the end. (e.g. with an Attribute Create SOP)
This is I came up with the UVs… but there must be a more elegant way
Found 17 posts.
Search results Show results as topic list.
Technical Discussion » How to preserve Multi Sub Object Material ID Order with Alembic Export
- Qwertzus
- 17 posts
- Offline
Technical Discussion » How to preserve Multi Sub Object Material ID Order with Alembic Export
- Qwertzus
- 17 posts
- Offline
Yes the Alembic workflow got a lot better since 3dsMax 2019. It now supports a bunch of custom Alembic attributes.
So there is no need anymore for the hacky Material ID method
Material IDs got a lot easier: For example, if you name your primitive group “group_12” in Houdini, the faces will get material id 12 in 3dsMax.
If you need more custom attributes, all you must do is check the attributes you want to export in Max (e.g. Material Name).
In Houdini use the Alembic Import SOP and check “User Properties: Load Values and Metadata”. You should now see "abc_userProperties“ and ”abc_userPropertiesMetadata".
Then use a bit of Python to extract the data to use it in Houdini. You can find more information here: Alembic extension functions [www.sidefx.com]
Before export you must bring your Alembic attributes back to the 3dsMax specific json format in the beginning. This means you need to exactly export "abc_userProperties“ and ”abc_userPropertiesMetadata".
In case of the Material Name you can just write a litte maxscript to automatically re-assign the materials to the imported alembic objects.
So there is no need anymore for the hacky Material ID method
Material IDs got a lot easier: For example, if you name your primitive group “group_12” in Houdini, the faces will get material id 12 in 3dsMax.
If you need more custom attributes, all you must do is check the attributes you want to export in Max (e.g. Material Name).
In Houdini use the Alembic Import SOP and check “User Properties: Load Values and Metadata”. You should now see "abc_userProperties“ and ”abc_userPropertiesMetadata".
Then use a bit of Python to extract the data to use it in Houdini. You can find more information here: Alembic extension functions [www.sidefx.com]
Before export you must bring your Alembic attributes back to the 3dsMax specific json format in the beginning. This means you need to exactly export "abc_userProperties“ and ”abc_userPropertiesMetadata".
In case of the Material Name you can just write a litte maxscript to automatically re-assign the materials to the imported alembic objects.
Technical Discussion » Alembic export with attributes on packed prims?
- Qwertzus
- 17 posts
- Offline
I would also like to know how to actually export abc_userProperties correctly…
If I directly import as “Alembic Delayed Load Primitives” and export it right after it with the Alembic ROP everything works fine.
But as soon I unpack, edit and transfer the “abc_UserProperties” back and pack it again, the abc_userProperties don't get exported correctly.
If I directly import as “Alembic Delayed Load Primitives” and export it right after it with the Alembic ROP everything works fine.
But as soon I unpack, edit and transfer the “abc_UserProperties” back and pack it again, the abc_userProperties don't get exported correctly.
Technical Discussion » How to preserve Multi Sub Object Material ID Order with Alembic Export
- Qwertzus
- 17 posts
- Offline
Yes this works. But:
Not as soon your IDs have more than 1 digit.
If you have IDs beyond _9, lets say, _12 there will be chaos.
That's why I still need to split the model and rename each Object according to its Material ID. This is how I force Houdini to export it back correctly.
Not as soon your IDs have more than 1 digit.
If you have IDs beyond _9, lets say, _12 there will be chaos.
That's why I still need to split the model and rename each Object according to its Material ID. This is how I force Houdini to export it back correctly.
3rd Party » Who is using RenderMan? Why or why not?
- Qwertzus
- 17 posts
- Offline
Unfortunately not, I tried to build it several times on windows but I failed.
Now I am patiently waiting for the installer, which was announced by Aghiles on Oct. 3.
Maybe there will be more progress with the release of Houdini 18?
Now I am patiently waiting for the installer, which was announced by Aghiles on Oct. 3.
Maybe there will be more progress with the release of Houdini 18?
Edited by Qwertzus - Nov. 20, 2019 04:20:16
3rd Party » Who is using RenderMan? Why or why not?
- Qwertzus
- 17 posts
- Offline
aghiles
We are indeed pushing to get some very interesting tech into the hands of the Houdini crowd (efficient packed primitives, *fast* volumes, multi-light, cloud rendering, etc.). We open sourced the plug-in so everyone can follow:
https://gitlab.com/3Delight/3delight-for-houdini [gitlab.com]
Many things to finalize still, but will be very usable before the end of this year, that's for sure.
Thank you very much for sharing this with us! 3Delight sounds really promising and I would very much like to try it out even now.
Unfortunately I can't figure out how to build it for Windows. Or better: As an artist my knowledge of building code is rather lacking In the ReadMe on GitLab it is written that it was not tested under Windows. But it is possible you said? Would you mind updating some information for Windows there as soon it is tested?
Houdini Indie and Apprentice » Rotate Camera after rendering a sequence and rerender
- Qwertzus
- 17 posts
- Offline
Thanks for your reply!
I actually want to render the same animation from different angles. Let's say 30 Frames and I want to render 32 directions.
Up to now I always increased the whole timeline to 32Directions * 30Frames. Resulting in a large timeline and I have to cycle each animated Parameter manually.
But I already came to a better solution: The WEDGE Rop! It seems perfect for doing that job
Now I can keep my timeline length to the actual animation length.
I actually want to render the same animation from different angles. Let's say 30 Frames and I want to render 32 directions.
Up to now I always increased the whole timeline to 32Directions * 30Frames. Resulting in a large timeline and I have to cycle each animated Parameter manually.
But I already came to a better solution: The WEDGE Rop! It seems perfect for doing that job
Now I can keep my timeline length to the actual animation length.
Houdini Indie and Apprentice » Rotate Camera after rendering a sequence and rerender
- Qwertzus
- 17 posts
- Offline
Hi there,
I have a question: I want to render out a frame sequence but in a row with different camera angles.
I basically could do this by adjusting the timeline and cycle the keyframes. But then I have to keyframe and cycle all the other keyframed objects in my scene as well.
But how can I do this this in a different way? Maybe via Pos-Scripts? But I don't know how they work…
I hope you can help me,
thanks in advance!
I have a question: I want to render out a frame sequence but in a row with different camera angles.
I basically could do this by adjusting the timeline and cycle the keyframes. But then I have to keyframe and cycle all the other keyframed objects in my scene as well.
But how can I do this this in a different way? Maybe via Pos-Scripts? But I don't know how they work…
I hope you can help me,
thanks in advance!
Technical Discussion » How to preserve Multi Sub Object Material ID Order with Alembic Export
- Qwertzus
- 17 posts
- Offline
Hi, I solved it.
The solution is to create single objects according to every single Material ID in the Multi/Sub-Object Material.
For example: You have an object with 5 Material IDs and a matching Multi/Sub-Object Material with 5 Slots. Detach all faces which have the same ID and name the new object like the material ID.
Object with 5 IDs means 5 detached objects: 001, 002, 003, 004, 005.
It's important to preserve the correct order as in the Multi/Sub-Object Material.
001 has Slot 1
002 has Slot 2
003 has Slot 3
…
You can automatize this process with several maxscripts (Scriptspot).
Then select all numbered objects and export them as Alembic.
In Houdini Alembic SOP check “Load As -> Unpack Alembic..”
and “Primitive Groups -> Name Groups Using Shape Node Name”
You can see the groups by middle click the Alembic SOP now.
On Export just make sure you export only the groups you imported. So the ID order stays intact.
Then apply the Multi/Sub-Object Material and you should see the correct IDs.
The solution is to create single objects according to every single Material ID in the Multi/Sub-Object Material.
For example: You have an object with 5 Material IDs and a matching Multi/Sub-Object Material with 5 Slots. Detach all faces which have the same ID and name the new object like the material ID.
Object with 5 IDs means 5 detached objects: 001, 002, 003, 004, 005.
It's important to preserve the correct order as in the Multi/Sub-Object Material.
001 has Slot 1
002 has Slot 2
003 has Slot 3
…
You can automatize this process with several maxscripts (Scriptspot).
Then select all numbered objects and export them as Alembic.
In Houdini Alembic SOP check “Load As -> Unpack Alembic..”
and “Primitive Groups -> Name Groups Using Shape Node Name”
You can see the groups by middle click the Alembic SOP now.
On Export just make sure you export only the groups you imported. So the ID order stays intact.
Then apply the Multi/Sub-Object Material and you should see the correct IDs.
Technical Discussion » Alembic Face Sets exported randomly
- Qwertzus
- 17 posts
- Offline
thank you very much! I'll try it out for the next project, when there is a production build - because for the current project I found a workaround.
My current workflow is to merge the whole building in order to create one MultiSubMaterial then splitting the Mesh by its material IDs by a script.
All faces with ID 1 are named: 001
All faces with ID 2 are named: 002
All faces with ID 3 are named: 003
and so on….
After importing the .abc file as “Unpack Alembic Delayed Load Primitives” in Houdini I can see the prim groups named 001, 002, 003,…
Then I export it and everything is in the correct order.
But however this is kind of a hacky way…
My current workflow is to merge the whole building in order to create one MultiSubMaterial then splitting the Mesh by its material IDs by a script.
All faces with ID 1 are named: 001
All faces with ID 2 are named: 002
All faces with ID 3 are named: 003
and so on….
After importing the .abc file as “Unpack Alembic Delayed Load Primitives” in Houdini I can see the prim groups named 001, 002, 003,…
Then I export it and everything is in the correct order.
But however this is kind of a hacky way…
Technical Discussion » Alembic Face Sets exported randomly
- Qwertzus
- 17 posts
- Offline
Technical Discussion » Alembic Face Sets exported randomly
- Qwertzus
- 17 posts
- Offline
Bottom = Original
Top = Alembic Export
I made a test with some primitives. If I stay under 9 IDs, everything is okay.
But when I have more it will mix them up…
Top = Alembic Export
I made a test with some primitives. If I stay under 9 IDs, everything is okay.
But when I have more it will mix them up…
Technical Discussion » Alembic Face Sets exported randomly
- Qwertzus
- 17 posts
- Offline
yes of course!
I am using 3ds Max' Multi Sub Object Material.
On the left side you see the original mesh with correct Material ID order and on the right side the imported Mesh with the wrong material order. The grouping is basically right, but they dont't have the correct order/ID…
These are my simple import export nodes:
I am using 3ds Max' Multi Sub Object Material.
On the left side you see the original mesh with correct Material ID order and on the right side the imported Mesh with the wrong material order. The grouping is basically right, but they dont't have the correct order/ID…
These are my simple import export nodes:
Technical Discussion » Alembic Face Sets exported randomly
- Qwertzus
- 17 posts
- Offline
Hi!
did anyone experience the same issue?
I imported an Alembic file with different Face IDs to Houdini. But when I export it back via Alembic. The Face IDs are fine, but randomly distributed? I cannot see any pattern. It's neither alphabetically nor based on face count.
My node tree consists of: Alembic Import Node –> Unpack –> ROP Alembic Output.
Does anyone has a solution for this?
Thanks in Advance!
did anyone experience the same issue?
I imported an Alembic file with different Face IDs to Houdini. But when I export it back via Alembic. The Face IDs are fine, but randomly distributed? I cannot see any pattern. It's neither alphabetically nor based on face count.
My node tree consists of: Alembic Import Node –> Unpack –> ROP Alembic Output.
Does anyone has a solution for this?
Thanks in Advance!
Technical Discussion » How to preserve Multi Sub Object Material ID Order with Alembic Export
- Qwertzus
- 17 posts
- Offline
Hi there!
Do you guys have an idea how to preserve the order of my Material ID's when I export my Alembic file back to 3ds Max?
I need this for a building destruction simulation later on. I'm quite new in Houdini.
In Max I created a building and applied a multi sub object material with 20 materials and named them _1, _2, _3, _4 … (According to this video: https://vimeo.com/113366813). [vimeo.com]
Then I imported the Alembic file in Houdini and unpacked it. The object consists of the exact amount of prim groups that I had previously created as materials. And the prim groups are correctly applied and named.
But then it comes: when I export my model back to max, the face IDs are basically correct but the id numbers are totally messed up when I apply the previous multi sub object material.
How can I tell Houdini to export the face ID's in the correct order or what do I need to do? Is there another better workflow maybe?
Thank you very much in advance!
Do you guys have an idea how to preserve the order of my Material ID's when I export my Alembic file back to 3ds Max?
I need this for a building destruction simulation later on. I'm quite new in Houdini.
In Max I created a building and applied a multi sub object material with 20 materials and named them _1, _2, _3, _4 … (According to this video: https://vimeo.com/113366813). [vimeo.com]
Then I imported the Alembic file in Houdini and unpacked it. The object consists of the exact amount of prim groups that I had previously created as materials. And the prim groups are correctly applied and named.
But then it comes: when I export my model back to max, the face IDs are basically correct but the id numbers are totally messed up when I apply the previous multi sub object material.
How can I tell Houdini to export the face ID's in the correct order or what do I need to do? Is there another better workflow maybe?
Thank you very much in advance!
Edited by Qwertzus - March 16, 2017 17:47:54
Houdini Learning Materials » How to give Inside Surface the same Material Group when Fracturing?
- Qwertzus
- 17 posts
- Offline
Okay I found a simple solution for my problem. Maybe it helps somebody who also just started to learn Houdini.
First I tried Attribute Transfer, but it works by proximity and produced bad results.
So I stumbled over the Attribute Copy SOP (Geometry Node).
With middle mouse button on my node I realized that there is an attribute called shop_materialpath and name which seems to be the imported materials and the created group names.
So I wrote them into the Attribute to Copy and Attribute Match text fields and changed the Group Type to Primitive.
Source and Destination groups outside and inside were declared in the Voronoi Fracture SOP by standard.
and it worked
First I tried Attribute Transfer, but it works by proximity and produced bad results.
So I stumbled over the Attribute Copy SOP (Geometry Node).
With middle mouse button on my node I realized that there is an attribute called shop_materialpath and name which seems to be the imported materials and the created group names.
So I wrote them into the Attribute to Copy and Attribute Match text fields and changed the Group Type to Primitive.
Source and Destination groups outside and inside were declared in the Voronoi Fracture SOP by standard.
and it worked
Edited by Qwertzus - March 13, 2017 05:11:10
Houdini Learning Materials » How to give Inside Surface the same Material Group when Fracturing?
- Qwertzus
- 17 posts
- Offline
Hi!
I am stuck with this problem and wonder if anyone has an advise for me how to handle this?
Btw I am a Houdini Noob and just started to learn it
I imported a single model from 3dsMax consisting of 3 different materials via FBX Import.
When I fracture my model the inside surface will be a different material or group:
How can I apply the same Material/Group to the inside surfaces? (E.g. Green Bricks have green inside surface and red pillars have red inside surface, etc.)
Thanks in advance!
I am stuck with this problem and wonder if anyone has an advise for me how to handle this?
Btw I am a Houdini Noob and just started to learn it
I imported a single model from 3dsMax consisting of 3 different materials via FBX Import.
When I fracture my model the inside surface will be a different material or group:
How can I apply the same Material/Group to the inside surfaces? (E.g. Green Bricks have green inside surface and red pillars have red inside surface, etc.)
Thanks in advance!
-
- Quick Links