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"
}
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.