USD Format Support
Learn about USD (Universal Scene Description) format support in Pixyz, including import and export capabilities for geometry, materials, animations, and advanced features.
読み終わるまでの所要時間 6 分最終更新 1ヶ月前
Pixyz SDK provides comprehensive support for importing and exporting USD (Universal Scene Description) files, including all USD file format variants. Built on Pixar's official USD library, Pixyz offers extensive support for geometry, materials, animations, cameras, lights, and advanced USD features such as variants and instancing.
USD Version Support
Pixyz SDK supports all versions of USD files across all format variants. The implementation is built on Pixar's USD 22.x library and maintains backward and forward compatibility with USD files created by other applications.
Supported File Formats
Pixyz SDK supports all four USD file format variants:
Extension | Description | Import | Export |
|---|---|---|---|
| Binary or ASCII USD | ✓ | ✓ |
| ASCII USD | ✓ | ✓ |
| Binary (Crate) USD | ✓ | ✓ |
| Compressed USD package | ✓ | ✓ |
All formats support both import and export operations with full feature parity.
USD Import Features
Geometry Support
Meshes (UsdGeomMesh)
Full mesh import support including:
- Vertex positions, normals, and UVs
- Face counts and indices
- Vertex colors (displayColor and displayOpacity)
- GeomSubsets for multi-material meshes
- Orientation handling (left-handed vs right-handed)
- Multiple UV channels
Primitives (UsdGeom)
Standard USD primitives are fully supported:
- Cube (UsdGeomCube)
- Sphere (UsdGeomSphere)
- Cone (UsdGeomCone)
- Cylinder (UsdGeomCylinder)
- Capsule (UsdGeomCapsule)
NURBS Support
Comprehensive NURBS import support:
- NURBS Patches (UsdGeomNurbsPatch)
- NURBS Curves (UsdGeomNurbsCurves)
- Basis Curves (UsdGeomBasisCurves)
- Bezier, B-spline, and Catmull-Rom curve bases
Material Support
Material System
Full support for UsdShadeMaterial with both PBR and Specular workflows:
- Albedo/BaseColor (diffuseColor/baseColor)
- Normal maps
- Metallic
- Roughness
- Occlusion/Ambient Occlusion
- Opacity/Transparency
- Specular (in specular workflow)
- Emissive/Emission
Texture Support
Advanced texture import capabilities:
- UsdUVTexture nodes
- Texture transforms (tiling, offset, rotation)
- Multiple UV channels
- UDIM texture tiles (with placeholder support)
<UDIM> - PTex textures (.ptx files)
Scene Structure
Transforms (UsdGeomXformable)
- Local and global transformations
- Transform operations and matrices
- Pivot points
Hierarchies
- Parent-child relationships
- UsdGeomScope for scene organization
- Nested structure preservation
Instancing
Full instancing support for optimized scene representation:
- Point Instancers (UsdGeomPointInstancer)
- References
- Inherits
- Prototypes
Variant Support
Complete USD VariantSets support:
- Visibility variants
- Material variants
- Color variants
- Geometry/mesh variants
- Multi-level variant hierarchies
- Variant instancing
To control variant loading during import, use the parameter:
LoadVariantpxz.core.setModuleProperty("IO", "LoadVariant", "True")
Camera Support
Full UsdGeomCamera import with all standard properties:
- Perspective and Orthographic cameras
- Focal length
- Horizontal and vertical aperture
- Aperture offset
- Clipping planes (near/far)
- fStop (depth of field)
- Focus distance
- Stereo role
- Shutter timing (open/close)
- Exposure
Light Support (UsdLux)
Supported Light Types
- Distant Light (Directional) - Full support
- Sphere Light - Full support
- Dome Light - Partial support
- Rect Light - Partial support
- Disk Light - Partial support
- Cylinder Light - Partial support
Light Properties
- Power/Intensity
- Color
- Diffuse and Specular contribution
- Exposure
- Color temperature
- Normalize option
- Texture files (for dome and rect lights)
- Angle/CutOff (for distant lights)
- Radius, width, height (shape-specific)
Animation Support
Skeletal Animation (UsdSkel)
Complete skeletal animation import pipeline:
- UsdSkelRoot hierarchies
- UsdSkelSkeleton definitions
- UsdSkelAnimation data
- Joint hierarchies and relationships
- Skinning data (joint indices and weights)
- Bind transforms
- Inverse bind matrices
- Animation channels (translation, rotation, scale)
- Time codes and keyframe data
To control animation import, use the parameter:
ImportAnimationspxz.core.setModuleProperty("IO", "ImportAnimations", "True")
Additional Import Features
- Visibility: Full support for UsdGeomImageable visibility attributes
- Metadata: Stage metadata import (metersPerUnit, upAxis, timeCodesPerSecond)
- Payloads: USD payload composition support
- References: External file references and layer composition
- Partial Loading: Ability to load specific prims from USD files on demand
- Coordinate System Conversion: Automatic conversion between X-up, Y-up, and Z-up coordinate systems
- Scale Handling: Automatic stage scale conversion based on metersPerUnit
USD Export Features
Geometry Export
Meshes
Complete mesh export capabilities:
- Vertex positions, normals, and UVs
- Face topology (triangles and quads)
- Vertex colors
- Multiple UV channels
- Double-sided materials
- Subpart materials using GeomSubsets
Primitives
Export of standard primitives (cubes, cones, cylinders, spheres)
Material Export
Material System
- UsdShadeMaterial creation
- PBR materials with all standard properties
- Material binding to geometry and GeomSubsets
Texture Export
- UsdUVTexture node creation
- UsdTransform2d for texture transforms (scale, offset, rotation)
- UV reader connections
- External texture files or embedded textures (for .usdz packages)
- Automatic texture file naming
- Complete material shader connectivity graphs
Scene Structure Export
Transforms
- UsdGeomXform node creation
- Local transformation matrices
- Transform operations
Hierarchies
- Parent-child relationship preservation
- Proper USD path naming conventions
- Automatic unique path generation to handle name conflicts
Instancing
- Prototype and instance export
- Instance material binding and overrides
Camera Export
- Camera export with all properties
- Both perspective and orthographic projection types
Light Export
- All supported light types
- Complete light properties and parameters
Animation Export
Complete skeletal animation export pipeline:
- UsdSkelRoot creation
- UsdSkelSkeleton with joint hierarchies
- UsdSkelAnimation with keyframe data
- Bind transforms
- Rest transforms
- Joint path definitions
- Translation, rotation, and scale animation channels
To control animation export, use the parameter:
ExportAnimationspxz.core.setModuleProperty("IO", "ExportAnimations", "True")
USDZ Package Export
Complete USDZ archive creation:
- Main .usdc file
- All dependent texture files
- Proper internal USD references
- Path resolution for external assets
Additional Export Features
- Valid Name Generation: Automatic conversion of invalid characters in USD names
- Visibility Export: Optional export of hidden geometry
- Metadata Export: Optional USD metadata export
- Coordinate System Configuration: Configurable output coordinate system (Up Axis)
- Performance Optimization: Multi-threaded mesh export for large scenes
Configuration Options
Import Configuration Properties
Property | Type | Description |
|---|---|---|
| Boolean | Enables partial/lazy loading of USD files for memory optimization |
| Boolean | Controls whether skeletal animations (UsdSkel) are imported |
| Boolean | Controls whether USD VariantSets are loaded and applied |
| Boolean | Controls whether hidden elements are imported |
| Enum | Target coordinate system (Y-up, Z-up, or X-up) for automatic conversion |
| Boolean | Additional coordinate system adjustment for handedness |
Export Configuration Properties
Property | Type | Description |
|---|---|---|
| Boolean | Controls whether skeletal animations are exported to UsdSkel |
| Boolean | Include or exclude hidden geometry in the export |
| Boolean | Export scene metadata properties to USD |
| Enum | Output coordinate system (Y-up, Z-up, or X-up) |
Example: Configuring USD Export
# Configure USD export settingspxz.core.setModuleProperty("IO", "ExportAnimations", "True")pxz.core.setModuleProperty("IO", "ExportHiddenParts", "False")pxz.core.setModuleProperty("IO", "UpAxis", "Y")# Export to USDpxz.io.exportScene("output.usdz")
Current Limitations
Partial Light Support
Some light types have partial support and may be converted to alternative light types during import:
- Dome, Rect, Disk, and Cylinder lights have partial support
- Distant and Sphere lights have full support
Material System Limitations
- PTex textures have limited conversion support when used in complex material networks
Export Limitations
- BREP/CAD geometry is exported as tessellated meshes only (no native BREP export)
- PMI (Product Manufacturing Information) is not preserved in USD export
Best Practices
Format Selection
- Use .usdz format for AR/mobile applications with all assets packaged together
- Use .usdc (binary) format for production pipelines requiring faster load times
- Use .usda (ASCII) format when human readability or version control is important
Performance Optimization
- Enable VariantSets for configuration-driven assets (product variants, LODs, etc.)
- Use Instancing for repeated geometry to optimize file size and performance
- Use PartialLoad for large USD files to reduce memory usage
Coordinate Systems
Configure the parameter to match your target application's coordinate system to ensure correct orientation during import/export.
UpAxis