Ce référentiel est une collection de projets USD simples. Chaque projet présente une seule fonctionnalité ou un groupe de fonctionnalités USD.
Ce référentiel est divisé en six catégories
Les fonctionnalités mettent en évidence une seule classe ou un ensemble de fonctions pour travailler en USD.
Les concepts reprennent les fonctionnalités expliquées dans Fonctionnalités et les étendent à des exemples concrets.
Les astuces sont des idées simples et isolées utilisant les fonctionnalités USD.
Les plugins montrent comment personnaliser l'USD en fonction de votre pipeline.
Les outils sont des scripts divers conçus pour effectuer une tâche spécifique, avec USD.
Les références sont des pages utiles pour trouver plus d'informations sur l'USD et comment interagir avec lui dans vos projets.
Chaque projet de ce référentiel montrera comment travailler en Python, C++ et USDA dans la mesure du possible.
Si un dossier conceptuel tente de présenter une fonctionnalité USD mais que cela nécessite beaucoup de code, le fichier README.md de niveau supérieur est là pour résumer les éléments importants. Il peut également faire référence à d’autres ressources pour en savoir plus.
Enfin, les fichiers de code source peuvent contenir des explications sur ce qui est affiché. Chacune de ces lignes est marquée de XXX
.
Sauf si un projet C++ comporte des instructions spécifiques, chaque projet se compile et s'exécute à l'aide des commandes suivantes :
cd {some_concept_cpp_folder}/build
USD_INSTALL_ROOT=/wherever/you/installed/USD/to cmake ..
make
./run_it
USD_INSTALL_ROOT
est généralement par défaut /usr/local/USD
sous Linux, mais votre emplacement peut varier. Voir la documentation de construction d'USD pour plus de détails.
Les modules Python peuvent toujours s'exécuter en utilisant python name_of_module.py
Voici les liens d'un ordre de visualisation recommandé pour chaque projet de ce référentiel.
Ajouter des commentaires aux fichiers USD
DéfinirKind sur UsdPrim
arc de composition spécialisé
Utilisation de Prim AssetInfo
Définition de propriétés utilisateur personnalisables
Modifier les cibles
Mise en cache de résolution de valeur
Calcul des cadres de délimitation à l'aide de UsdGeomImageable et UsdGeomBBoxCache
L'exemple spécialisé de Pixar
Utilisation de « fins » sur les objets UsdPrim
UsdResolveInfo - Trouver d'où viennent les opinions
Activez les messages de débogage et écrivez les vôtres
Profilage des étapes USD
Comment utiliser les clips de valeur
Définition d'attributs variables dans le temps avec Sdf
SdfChangeBlock - Création USD efficace
SdfBatchNamespaceEdit et SdfNamespaceEdit - Création USD efficace
UsdStageCache - mise en cache des étapes USD
TfNotice - Exécuter des fonctions lorsqu'une étape change, à l'aide de rappels
TfNotice - Envoyez vos propres rappels personnalisés
Hiérarchies de modèles valides
Comprendre les jeux de variantes
Remplacement des jeux de variantes
Comment unifier un UsdPrim instancié
UsdRelationship Forwarding
Utilisation de VariantSets dans un scénario de production
Un exemple pratique de l'arc de composition « spécialisé »
L’arc de composition « spécialisé » comme mécanisme de repli
Référencer un Prim dans le SdfLayer actuel
Comment trouver des overs "orphelins"
Un maillage avec une matière
Arcs de composition d'actifs : comment les sous-couches, les références et les charges utiles fonctionnent ensemble
Impression et modification de prims à l'aide du STL C++
Traversées personnalisées avec boost
Traversée de prims instanciées
Sélections automatiques de variantes - Utilisation de VariantSets pour modifier d'autres VariantSets
Copier les opinions d'un VariantSet sur un autre Prim
Trouver la source d'un attribut
Rechercher le matériel relié d'un Prim (inclut l'API des collections)
Exportation en 2 passes - Exportez les étapes en USD 100 fois plus rapidement
Aplatir une pile de couches USD
Utiliser des calques plus faibles pour modifier des calques plus forts
Multi-charges utiles – Oui, vous pouvez en avoir plusieurs
Obtenir des Prims via VariantSets
usdview_auto_reloader - Mettre à jour automatiquement les couches dans usdview
usdview_root_loader - Charger/décharger de manière récursive les charges utiles Prim
usdview_Purpose_swap - Basculez entre les objectifs de proxy et de rendu avec un seul bouton
usdview_copy_camera - Crée un prim dans usdview pour représenter la vue actuelle
Sélections de secours VariantSet
Politiques d'exportation de sélection VariantSet
Ajout de métadonnées personnalisées
Schémas USD personnalisés
Un plugin ArResolver personnalisé
usd_searcher - Un outil en ligne de commande pour rechercher des fichiers USD
Exporter UsdSkel à partir de zéro
extendsHint et cadres de délimitation
Lier la documentation Python à la documentation USD
Comprendre usdview
La feuille maîtresse du plugin pris en charge par l'USD
Où trouver plus de ressources
Il existe également un deck Anki pour ce référentiel, que vous pouvez télécharger en cliquant ici
Consultez cette page wiki pour une liste des sujets prévus qui seront ajoutés à l'avenir.
Ce référentiel est un WIP constant. S'il y a quelque chose que vous aimeriez voir écrit, veuillez le suggérer comme problème afin que moi ou d'autres puissions le reprendre et y travailler. De plus, si vous souhaitez contribuer à quelque chose, veuillez créer un PR. Les soumissions sont les bienvenues !
Mais attention : ce référentiel peut ne pas montrer la meilleure façon de faire les choses en USD. C'est juste une collection de (mes) découvertes personnelles. De plus, à mesure que Pixar publie de nouvelles versions USD et des ressources d'apprentissage, ces informations peuvent devenir obsolètes. Préférez toujours les guides et la documentation principaux à tout ce que vous voyez ici.
Testé avec :