Hey Everyone! I have recently been building an asset structure for a pipeline. I am running into a few problems. I’ll add a screenshot below how exactly this structure is on disk.
The v0019 surfacing file looks like so.
(
defaultPrim = "Bob"
endTimeCode = 1001
framesPerSecond = 25
metersPerUnit = 0.01
startTimeCode = 1001
timeCodesPerSecond = 25
upAxis = "Y"
)
def Xform "Bob" (
kind = "component"
variants = {
string mtl = "main"
}
prepend variantSets = "mtl"
)
{
def Scope "mtl"
{
uniform token purpose = "default"
}
variantSet "mtl" = {
"main" (
prepend payload = @\\storage\NewTest\03_Production\Assets\Bob\Export\headSurf\master\Bob_headSurf_master.usda@
) {
}
}
}
the payload file has over specifier to have opinions of the mtl scope and geo to apply materials.
All of this is automated (im not psychotic to be doing this by hand), although somehow the materials are not getting the material binding to the geo or as far as I know, not even loading.
#usda 1.0
(
defaultPrim = "Bob"
endTimeCode = 1001
framesPerSecond = 25
metersPerUnit = 0.01
startTimeCode = 1001
timeCodesPerSecond = 25
upAxis = "Y"
)
over "Bob"
{
over "mtl"
{
over "headmtl"
{
token outputs:ri:surface.connect = </Bob/mtl/headmtl/pxrsurface1.outputs:bxdf_out>
over pxrsurface1
{
uniform token info:id = PxrSurface
color3f inputs:diffuseColor = (0, 0.5, 0) (
customData = {
dictionary HoudiniPreviewTags = {
double3 default_value = (0.18, 0.18, 0.18)
string ogl_diff = 1
}
}
)
over geo
{
over character_geo(
prepend apiSchemas = [MaterialBindingAPI]
)
{
rel material:binding = </Bob/mtl/headmtl>
}
}
}
As I was building this, I thought that the scope for mtl is defined by the parent layer so it’ll just bring in the material from the variant “over” them, but it just seems to be breaking and I have no idea why. The composition also looks wrong in houdini.
What could I be doing wrong here? I am quite new to USD, so im pretty clueless about this issue.
Not sure if it’s worth nothing, everything composes fine if those “over” sepcifiers are “def” instead and also If I just add one singular “PxrSurface” shader and publish that with the over specifier, it remains fine, as soon as I start ading even one more node, it starts breaking.