Solaris layout tool not picking up overrides

   2312   17   2
User Avatar
Member
52 posts
Joined: Oct. 2016
Offline
Howdy,

seems when i try to override the materials or other object properties of objects created by layout node in houdini 19, solaris ignores these changes. Using layout tool with instanceable references.

Any idea how to fix this?
User Avatar
Member
396 posts
Joined: July 2013
Offline
It may help to include a screenshot/and or simplified scene that demonstrates the issue, in order to assist with troublshooting.
Houdini Indie
Redshift 3D
User Avatar
Member
52 posts
Joined: Oct. 2016
Offline
Sure! Here i am assigning a red shader to every mesh in my scene, but some reason is not affecting the objects created by layout node.
Also haven't succeeded assigning redshift matte attribute to them.Here just assigned it to top node and it works fine for every object except the layout ones. Tried also assigning every mesh or * still same.
Is this something with opinions, or bug, or i just do it completely wrong ?

Attachments:
redshiftmatte.jpg (297.3 KB)
layoutassignment1.jpg (290.0 KB)

User Avatar
Member
6241 posts
Joined: Sept. 2011
Offline
blakshep
Sure! Here i am assigning a red shader to every mesh in my scene, but some reason is not affecting the objects created by layout node.
Also haven't succeeded assigning redshift matte attribute to them.Here just assigned it to top node and it works fine for every object except the layout ones. Tried also assigning every mesh or * still same.
Is this something with opinions, or bug, or i just do it completely wrong ?

The mesh prim highlighted is a child of an instanceable prim, therefore it's not editable directly. It's possible to create an 'inherits' arc that contains the assignment that overlays the instanceable prims.

If possible, use variants of the assets without materials in the layout and then assign the material to an ancestor prim.
User Avatar
Member
52 posts
Joined: Oct. 2016
Offline
So i guess its same reason matte wont work?

How do you make an inherit arc?

It is needed to able override materials or render properties like every single project.

Im testing the compounentbuilder workflow where i have assets already made with shaders. Load em up without shaders and load em again and do assignments with each and every asset doesn't sound fun.

Thanks for your help.
User Avatar
Member
52 posts
Joined: Oct. 2016
Offline
should i change mode to references from instancable references?
if i do that would usd put the object multiple times in memory?
User Avatar
Member
44 posts
Joined: May 2017
Offline
the component builder creates the inherits arc by default. If you've used that you can create your material override on the prim it inherits from. just make sure the namespaces match up.
User Avatar
Member
52 posts
Joined: Oct. 2016
Offline
Which prim its inheriting from?
Isnt it inheriting from the usd file? Cause if just use a * to assign to everything still wont work.
User Avatar
Member
44 posts
Joined: May 2017
Offline
Inherit arcs cannot be made to external files. You can see which prim its inheriting from (if any) from the metadata of the prim. Looking at your screenshot im guessing its /__class__/apple01.

So you can try setting the Material Path Prefix on your material library node to /__class__/apple01/mtl/ and name your material the same as the one you want to override (and uncheck the assign to geometry checkbox). i havent used the layout node myself, but thats a way to override materials on instances.
Edited by frostfx - Feb. 11, 2022 13:44:14
User Avatar
Member
52 posts
Joined: Oct. 2016
Offline
Thanks for your answer but im still so confused
i have no class thing for the objects have issue with.
the metadata of one of my object is attached dont really get what can i read of it.
I actually dont want to override material though it is very often needed.
I just want to make these objects matte by adding redshift matte attribute to it but it just ignores it therefor i tried override material to so i see issue in opengl view

Attachments:
metadata.jpg (59.4 KB)

User Avatar
Member
44 posts
Joined: May 2017
Offline
check the value under the inheritPaths
User Avatar
Member
52 posts
Joined: Oct. 2016
Offline
thanks! it is pointing to class thingy which doesnt exist in scene....
User Avatar
Member
52 posts
Joined: Oct. 2016
Offline
like this class object is there when you create the componentbuilder but its not when you load up asset with layout node

Attachments:
inheritpath.jpg (29.7 KB)

User Avatar
Member
44 posts
Joined: May 2017
Offline
as long as the metadata exists, the prim will look at that location.
User Avatar
Member
41 posts
Joined: Aug. 2019
Offline
you have to create the class prim in your scene if you wanna use the inherit, the component builder simply stores the information so it can inherit from that prim.
Once you create the prim with the same path in your scene and do stuff to it your asset will inherit this.
That said tho there can be an issue with your material assignment, i always create the material prim with my class deactivate it to loose all assigments and then assign whatever material i want onto the geo prim in the class so the asset will pick it up.
User Avatar
Member
52 posts
Joined: Oct. 2016
Offline
oh jolly sound very user friendly ill give it a go thanks
User Avatar
Member
222 posts
Joined: Nov. 2013
Offline
When I use the layout lop set to instanceable references I get the prototypes placed on the stage under a "Prototypes" scope. From there its possible to direct edits using whatever lop to the prototypes rather than the instances. The only catch out the box is that the prototypes come in instanced as well, which prevents overrides. That's an easy fix though - just use a configure primitive lop set to /layout/Prototypes/* and check "instanceable: Not Instanceable". If that works the prototype models text should go from blue to yellow in the scenegraph tree.

Heres an example with a color override on three instanced spheres and two instanced cubes using a single edit properties lop



The inherits workflow is also ok but not as convenient as the prototypes because lop primitive pattern matching can't traverse the contents of the classes.
Edited by antc - Feb. 11, 2022 19:10:48

Attachments:
prototype_edit.png (733.2 KB)

User Avatar
Member
52 posts
Joined: Oct. 2016
Offline
oh my thank you so much after deinstancing prototypes everything just works! yayaay
  • Quick Links