The most appropriate combination is VariantSets, Purposes, and AssetResolvers because each feature addresses one of the stated production problems at the correct abstraction level. Variant sets provide artist-facing switches for alternative representations of the same asset, including material variations, geometric variations, and LOD-style alternatives. NVIDIA’s Learn OpenUSD guide states that variant sets define alternative representations that can be switched at runtime, and that variants may override properties, define descendant prims, or author composition arcs.
Purposes help separate representation classes such as proxy, render, and guide. NVIDIA’s glossary describes purpose as a UsdGeomImageable attribute used to classify geometry into selective visibility categories, allowing clients to include or exclude categories during rendering, bounding, or interactive traversal.
Asset resolvers address asset versioning and storage indirection. NVIDIA’s asset-structure guidance specifically recommends keeping instances within a specific version and leveraging storage and asset-resolver capabilities to keep assets atomic.
Option B is more renderer/Hydra-infrastructure focused and does not directly solve artist-facing variation and versioning. Option C contains useful composition and shading tools, but it is not the best combined solution for LODs, material options, and asset versions. This aligns with Pipeline Development → Artist Workflows, Variant Sets, Purpose, Asset Resolution, and Asset Versioning .