-
Découvrez USDKit et les nouveautés d’OpenUSD
Plongez au cœur des dernières avancées de la prise en charge d'Universal Scene Description (USD) sur les plateformes Apple, notamment avec USDKit basé sur Swift, la nouvelle API d'aperçu spatial et des fonctionnalités web spatiales améliorées. Découvrez comment les dernières mises à jour de la norme OpenUSD intègrent la prise en charge de l'accessibilité, du Gaussian Splatting et de la géométrie compressée. Nous passons également en revue les outils d'édition et de rendu USD améliorés dans Aperçu sur Mac, et nous vous expliquons comment tirer parti de ces fonctionnalités dans vos propres apps.
Chapitres
- 0:07 - Introduction
- 0:53 - OpenUSD : fondements du secteur et nouvelles normes
- 2:51 - Gaussian Splats et champs de particules
- 3:47 - Présentation d’USDKit
- 4:06 - Édition 3D dans Aperçu et nouveaux moteurs de rendu
- 5:42 - Spatial Preview : Collaboration en temps réel entre Mac et Vision Pro
- 6:25 - USD sur le Web : La balise Model de Safari
- 6:57 - USDKit : Concepts clés et présentation de l’API Swift
- 10:05 - Métadonnées d’accessibilité dans USD
- 11:19 - Compression des ressources : Maillage et textures
- 12:36 - Voies d’intégration : USDKit, SwiftUSD et OpenUSD
- 13:24 - Étapes suivantes
Ressources
Vidéos connexes
WWDC26
-
Rechercher dans cette vidéo…
-
-
8:12 - Opening a USD Stage
import USDKit // Create a new empty in-memory stage let stage = USDStage() // Open a stage from a file on disk let url = URL(fileURLWithPath: "/ALab/entry.usda") let stage = try USDStage.open(url) -
8:44 - Traversing the Stage Hierarchy
// Traverse all prims looking for the oscilloscope for prim in stage.descendants { if prim.name == "scope" { // There it is! 🔬 } } // It wasn't there — define a new Xform prim for it let scope = stage.definePrim(at: "/World/scope", type: “Xform")) // Add a file reference to the prim try scope.references.add(“/ALab/assets/scope.usda”) -
9:36 - Moving a Prim with a Transform Operation
// Creates xformOp:translate and updates xformOpOrder automatically scope.addTransformOperation(type: .translate) scope["xformOp:translate", as: USDValue.Vec3d.self] = [2.5, 0.0, -1.0] -
10:42 - Applying Accessibility Metadata
// Apply the multi-apply AccessibilityAPI schema with instance name "default" try scope.applyAPISchema("AccessibilityAPI", instanceName:"default") // Create the label and description attributes scope.makeAttribute(named: "accessibility:default:label", as: .string) scope.makeAttribute(named: "accessibility:default:description", as: .string) // Set their values scope["accessibility:default:label", as: String.self] = "Oscilloscope" scope["accessibility:default:description", as: String.self] = "Vintage signal analyzer with a 3D wireframe display, topped by a color bar test monitor" -
12:05 - Exporting with Mesh and Texture Compression
let output = URL(fileURLWithPath: "/ALab/alab_compressed.usdz") // Export the stage as a USDZ package try stage.exportPackage( to: output, options: [ .preferSmallTextureFiles(quality: .standard), // compress textures .preferSmallMeshFiles // compress mesh geometry ] )
-