Este repositorio es una colección de proyectos simples en USD. Cada proyecto muestra una característica única o un grupo de características de USD.
Este repositorio se divide en seis categorías.
Las características destacan una sola clase o conjunto de funciones para trabajar en USD.
Los conceptos toman las características explicadas en Funciones y las extienden a ejemplos del mundo real.
Los trucos son ideas simples y aisladas que utilizan funciones USD.
Los complementos muestran cómo personalizar USD para adaptarlo a su canalización.
Las herramientas son scripts diversos que se crean para realizar una tarea específica, con USD.
Las referencias son páginas útiles para encontrar más información sobre USD y cómo interactuar con él en sus proyectos.
Cada proyecto en este repositorio mostrará cómo trabajar en Python, C++ y USDA siempre que sea posible.
Si una carpeta conceptual intenta mostrar una característica USD pero requiere mucho código, entonces el archivo README.md de nivel superior está ahí para resumir los bits importantes. También puede hacer referencia a otros recursos sobre dónde leer más.
Por último, los archivos de código fuente pueden contener explicaciones de lo que se muestra. Cada una de estas líneas está marcada con XXX
.
A menos que un proyecto C++ tenga instrucciones específicas, cada proyecto se compila y ejecuta utilizando los siguientes comandos:
cd {some_concept_cpp_folder}/build
USD_INSTALL_ROOT=/wherever/you/installed/USD/to cmake ..
make
./run_it
USD_INSTALL_ROOT
normalmente tiene por defecto /usr/local/USD
en Linux, pero su ubicación puede variar. Consulte la documentación de compilación de USD para obtener más detalles.
Los módulos de Python siempre se pueden ejecutar usando python name_of_module.py
Aquí hay enlaces de un orden de visualización recomendado para cada proyecto en este repositorio.
Agregar comentarios a archivos USD
Establecer Kind en UsdPrim
arco de composición especializado
Usando Prim AssetInfo
Definición de propiedades de usuario personalizables
Editar objetivos
Almacenamiento en caché de resolución de valor
Calcular cuadros delimitadores, utilizando UsdGeomImageable y UsdGeomBBoxCache
El ejemplo especializado de Pixar
Usando "propósitos" en objetos UsdPrim
UsdResolveInfo: encontrar de dónde provienen las opiniones
Habilite los mensajes de depuración y escriba los suyos propios
Perfilado de etapas en USD
Cómo utilizar clips de valor
Configuración de atributos variables en el tiempo con Sdf
SdfChangeBlock: creación eficiente de USD
SdfBatchNamespaceEdit y SdfNamespaceEdit: creación eficiente de USD
UsdStageCache: almacenamiento en caché de etapas USD
TfNotice: ejecuta funciones cuando cambia una etapa, usando devoluciones de llamada
TfNotice: envía tus propias devoluciones de llamada personalizadas
Jerarquías de modelos válidas
Comprender los conjuntos de variantes
Anulación de conjuntos de variantes
Cómo unificar un UsdPrim instanciado
UsdReenvío de relaciones
Usando VariantSets en un escenario de producción
Un ejemplo práctico del arco de composición "especializado"
El arco de composición "especializado" como mecanismo de respaldo
Hacer referencia a un Prim en el SdfLayer actual
Cómo encontrar overs "huérfanos"
Una malla con un material.
Arcos de composición de activos: cómo funcionan juntas las subcapas, las referencias y las cargas útiles
Imprimir y modificar prims usando C++ STL
Recorridos personalizados con impulso
Atravesando prims instanciados
Selecciones automáticas de variantes: uso de VariantSets para modificar otros VariantSets
Copiar opiniones de un VariantSet a otro Prim
Encuentre la fuente de un atributo
Encuentre material encuadernado de Prim (incluye API de colecciones)
Exportación en 2 pasos: exporte etapas en USD 100 veces más rápido
Aplanar una pila de capas en USD
Utilice capas más débiles para modificar capas más fuertes
Cargas múltiples: sí, puedes tener más de una
Obtener Prims a través de VariantSets
usdview_auto_reloader - Actualiza capas en usdview automáticamente
usdview_root_loader - Carga/descarga recursivamente cargas útiles de Prim
usdview_Purpose_swap: cambie entre propósitos de proxy y renderizado con un solo botón
usdview_copy_camera: crea un prim en usdview para representar la vista actual
Selecciones alternativas de VariantSet
Políticas de exportación de selección de VariantSet
Agregar metadatos personalizados
Esquemas USD personalizados
Un complemento ArResolver personalizado
usd_searcher: una herramienta de línea de comandos para buscar archivos USD
Exportando UsdSkel desde cero
extensionesSugerencias y cuadros delimitadores
Vincular la documentación de Python a la documentación de USD
Entendiendo usdview
La hoja maestra del complemento compatible con USD
Dónde encontrar más recursos
También hay un mazo de Anki para este repositorio, que puedes descargar haciendo clic aquí.
Consulte esta página wiki para obtener una lista de temas planificados que se agregarán en el futuro.
Este repositorio es un WIP constante. Si hay algo sobre lo que le gustaría que se escriba, sugiéralo como un problema para que yo u otros podamos retomarlo y trabajar en ello. Además, si tiene algo con lo que le gustaría contribuir, haga un PR. ¡Las presentaciones son bienvenidas!
Pero tenga en cuenta: es posible que este repositorio no muestre la mejor manera de hacer las cosas en USD. Es sólo una colección de (mis) hallazgos personales. Además, a medida que Pixar publique nuevos lanzamientos en USD y recursos de aprendizaje, esta información puede quedar desactualizada. Prefiera siempre las guías y documentación primarias a cualquier cosa que vea aquí.
Probado con: