Native USD Instancing of source crowd geometry

   1338   1   2
User Avatar
Member
167 posts
Joined: Nov. 2013
Offline
Following a thread on the USD Interest email group, I began trying to implement what's seen here: https://graphics.pixar.com/usd/release/api/_usd_skel__instancing.html [graphics.pixar.com]

However when importing the default crowd street example it seems like the SopCrowdImport LOP appears to be doing this automatically by setting the SkelRoot to be instanceable? When I inspect the flattened stage I see the following:
        def SkelRoot "geometry" (
            instanceable = true
            add references = </Flattened_Prototype_1>

Is this what's happening - the SopImportCrowd LOP is doing this for me? How comparable is this to the crowd procedural in Mantra?

I've also found that whilst 10,000 chars from the crowd street example uses about 6GB RAM in Karma, it uses ~100GB RAM in Redshift and VRay. What could I point their developers to in order to make sure their renders correctly respect prims tagged as instanceable?
User Avatar
Staff
727 posts
Joined: Oct. 2012
Offline
SOP Import is indeed creating a similar setup to instance the bind state prims. However, when rendering through Hydra this is ignored (https://github.com/PixarAnimationStudios/USD/commit/08ceaf53d653becf469aeb02f8e1e7f9345243b2) so the benefit is just on the scene graph side of things currently.

Note that this is very different from Mantra's crowd procedural, which attempts to detect agents that have similar enough poses that their final deformed geometry can be directly instanced.
  • Quick Links