Collections and overs

From what I’ve been reading, it seems that without resorting to code (querying a collection’s members and programmatically modifying each member), the only thing you can do to collections in a USD stage is bind them to materials.

Is there anything else that can be done? I would love to be able to do overrides like this:

over "CollectionsPrim.collection:stuff" {
  token visibility = "invisible"
}

Is something like that possible without code?

Individual schemas can impart behavior to collections, just as the MaterialBindingAPI does. LightAPI’s builtin lightLink and shadowLink collections provide a specialized form of visibility override for light and shadow rays, driven by collection.

We have been discussing for years generalizing that capability to a more generic visibility schema that would contain potentially two collections and a “type of visibility” for the first set of objects to state with respect to the second set… much like MaterialX’s visibility element. I do think we’ll get there eventually, but I would not expect to see any more general way of attaching arbitrary overrides via collection - that would break USD’s composition system in unsustainable ways.

1 Like