Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
robp-sidefx opened this issue Mar 20, 2024 · 7 comments

Comments

@robp-sidefx
Copy link

robp-sidefx commented Mar 20, 2024

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
Copy link
Collaborator

Filed as internal issue #USD-9468

@spiffmon
Copy link
Member

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

@robp-sidefx
Copy link
Author

This still occurs with 24.08 ... is a fix on the radar?

@pixar-oss
Copy link
Member

Hi Rob -- yes, this is on our radar! We haven't had a chance to start working on it yet though. Is this blocking anything for you?

@robp-sidefx
Copy link
Author

We're renewing our push towards Solaris being a Scene Index Hydra 2 future-embracing platform, and this trips up one of our internal tests. It's not blocking us, but we're just trying to manage our internal expectations as to what dev work we'll need to do, what's still coming in the next few USD releases, and what'll need to be in a "known limitations".

@robp-sidefx
Copy link
Author

In poking around the source code for the piPrototypePropagatingSceneIndex, I got to reading some of the comments at the top of the file and noted that if we change def Scope "prototypes" to over "prototypes" in the test case, it'll work with Hydra 2. I'm not going so far as to say "all good, close this ticket", but leaving the information here for completeness and future pondering amongst all parties :)

@tcauchois
Copy link
Contributor

This is an incredibly easy asset fix, for sure. The code fix is a nightmare because it means that transform/visibility inherit from prototype root to point instancer, while all other attributes inherit up namespace, precluding most of the drama-free implementations. I think last time we looked at assets in the wild (both inside/outside Pixar), we decided that not fixing this would get us in trouble, so we're continuing to kick at this for 25.05.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants