PixarAnimationStudios / OpenUSD

Universal Scene Description
http://www.openusd.org
Other
5.48k stars 1.14k forks source link

Prims generated by PointInstancer are invisible when using new SceneIndex pipeline #3011

Open robp-sidefx opened 2 months ago

robp-sidefx commented 2 months ago

It looks like when using UsdImagingPiPrototypePropagatingSceneIndex, pointinstancer prototypes now live under the original prototype location (whereas previously they lived under the pointinstancer). I assume as a result, they can now inherit invisibility from a parent scope.

Concretely, when not using the Stage Scene Index pipeline, the following USD snippet results in a visible instance of the sphere; when using the new pipeline the instance is invisible.

def Scope "prototypes"
{
    token visibility = "invisible"
    def Sphere "sphere"
    {
        double radius = 1
    }
}

def PointInstancer "instancer"
{
    point3f[] positions = [(0, 0, 0)]
    int[] protoIndices = [0]
    rel prototypes = </prototypes/sphere>
}

inst

jesschimein commented 2 months ago

Filed as internal issue #USD-9468

spiffmon commented 2 months ago

Yep, definitely a bug, @robp-sidefx , and sigh, it really is a pain supporting non-encapsulated prototypes ;-P