NCP-OUSD study materials
NCP-OUSD study resources

NCP-OUSD: Data Exchange and Interoperability

NCP-OUSD · Work through your exam, one topic at a time.

All guide sections

Data Exchange and Interoperability

This domain tests moving USD in and out of a pipeline without breaking references, materials, or units.

Formats and packaging

  • .usda is text, .usdc is binary, .usd resolves by content. usdcat converts between them.
  • USDZ is a zero-compression zip with 64-byte alignment and no absolute paths, required by ARKit and QuickLook. Build it with usdzip or UsdUtils.CreateNewUsdzPackage, and validate with usdchecker --arkit.
  • Package-relative addressing looks like @./asset.usdz[textures/albedo.png]@, keeping dependencies inside the package.
  • Ar maps logical SdfAssetPaths to real paths. Custom resolvers implement ArResolver; SdfAssetPath keeps paths unresolved until needed.

Materials and DCC interop

UsdShade networks are the exchange currency. MaterialX maps through usdMtlx (source asset plus shader translation); glTF and FBX import through plugins producing UsdGeom and UsdShade; Alembic geometry is wrapped or converted. Always check upAxis (Y vs Z) and metersPerUnit on import - mismatch is the most common interop defect.

Worked example

A chair exported to USDZ loses its texture in QuickLook. The texture was referenced by an absolute path outside the package. Copy the texture beside the layer, author the relative @./textures/albedo.png@, repackage, and the layer resolves inside the zip via package-relative paths.

Traps

Shipping absolute paths or a compressed USDZ; omitting defaultPrim so the package opens empty; skipping unit and axis conversion; and assuming a glTF or FBX round trip preserves variants, composition arcs, or USD-specific metadata - it does not.