Material Variants
Material Variants:
- Material variants allow you to define different material options for a prim and switch between them as needed. This is useful for look development and scenarios where multiple material options are required.
- Variants are defined using
variantSetsand can be switched dynamically.
Example:
from pxr import Usd, UsdShade, Sdf
stage = Usd.Stage.Open("path/to/your.usda")
prim = stage.GetPrimAtPath("/path/to/prim")
variantSet = prim.GetVariantSets().AddVariantSet("materialVariant")
variantSet.AddVariant("option1")
variantSet.AddVariant("option2")
variantSet.SetVariantSelection("option1")
with variantSet.GetVariantEditContext():
material1 = UsdShade.Material.Define(stage, "/path/to/material1")
UsdShade.MaterialBindingAPI(prim).Bind(material1)
variantSet.SetVariantSelection("option2")
with variantSet.GetVariantEditContext():
material2 = UsdShade.Material.Define(stage, "/path/to/material2")
UsdShade.MaterialBindingAPI(prim).Bind(material2)
```