All Projects β†’ ColinKennedy β†’ Usd Cookbook

ColinKennedy / Usd Cookbook

Licence: mit
USD Example Projects

Programming Languages

python
139335 projects - #7 most used programming language
cpp
1120 projects

Projects that are alternatives of or similar to Usd Cookbook

Usd Build Club
This project includes recipes to build Pixar's Universal Scene Description, its Python bindings, and all necessary prerequisites on Mac and Windows
Stars: ✭ 206 (-7.62%)
Mutual labels:  vfx, recipes
Cookbook
🍲 A library for all your recipes
Stars: ✭ 195 (-12.56%)
Mutual labels:  recipes
Vfx Datasets
Stars: ✭ 134 (-39.91%)
Mutual labels:  vfx
Fileseq
A Python library for parsing frame ranges.
Stars: ✭ 164 (-26.46%)
Mutual labels:  vfx
Meanrecipe
Get a consensus recipe for your next meal. πŸͺ 🍰
Stars: ✭ 140 (-37.22%)
Mutual labels:  recipes
Plex
Open Source Pipeline for Maya, Houdini, 3ds Max and Nuke .
Stars: ✭ 170 (-23.77%)
Mutual labels:  vfx
Vfxminisexamples
Unity examples showing how to control VFX graphs with MIDI devices
Stars: ✭ 122 (-45.29%)
Mutual labels:  vfx
Vfxgraphtestbed
My testbed for Unity VFX Graph
Stars: ✭ 209 (-6.28%)
Mutual labels:  vfx
Vfxpyro
Fireworks particle effect with Unity VFX Graph
Stars: ✭ 181 (-18.83%)
Mutual labels:  vfx
Dkvfx
An example that shows how to use recorded Depthkit footage with Unity VFX Graph
Stars: ✭ 162 (-27.35%)
Mutual labels:  vfx
Cypress Example Recipes
Various recipes for testing common scenarios with Cypress
Stars: ✭ 2,485 (+1014.35%)
Mutual labels:  recipes
Delir
Web Technology driven VFX Application
Stars: ✭ 142 (-36.32%)
Mutual labels:  vfx
Geovfx
Examples of geographical data visualization with Unity VFX Graph
Stars: ✭ 179 (-19.73%)
Mutual labels:  vfx
Pencilsketcheffect
Real Time Hatching In Unity
Stars: ✭ 134 (-39.91%)
Mutual labels:  vfx
Cgru
CGRU - AFANASY
Stars: ✭ 197 (-11.66%)
Mutual labels:  vfx
Rcam
Real time volumetric video capture for live visuals
Stars: ✭ 128 (-42.6%)
Mutual labels:  vfx
Bcd
Bayesian Collaborative Denoiser for Monte Carlo Rendering
Stars: ✭ 167 (-25.11%)
Mutual labels:  vfx
Opendrinks
🍸 Open Source Drinks! Add your own recipe in a pull request! Inspired by πŸŽƒHacktoberfest!
Stars: ✭ 218 (-2.24%)
Mutual labels:  recipes
Appleseed
A modern open source rendering engine for animation and visual effects
Stars: ✭ 1,824 (+717.94%)
Mutual labels:  vfx
Ae Element
🎨 use bodymovin to render some interesting After Effects vector element
Stars: ✭ 180 (-19.28%)
Mutual labels:  vfx

This repository is a collection of simple USD projects. Each project shows off a single feature or group of USD features.

Structure summary

This repository is split into six categories

  • Features
  • Concepts
  • Tricks
  • Plugins
  • Tools
  • References

Features highlight a single class or set of functions for working in USD.

Concepts take features explained in Features and extends them to real-world examples.

Tricks are simple, isolated ideas using USD Features.

Plugins show how to customize USD to suit your pipeline.

Tools are miscellaneous scripts that are built to do a specific task, with USD.

References are useful pages for finding more information about USD and how to interact with it in your projects.

Every project in this repository will show how to work in Python, C++, and USDA wherever possible.

How to view

If a concept folder is trying to show off a USD feature but it takes a lot of code then the top-level README.md file is there to summarize the important bits. It may also refer to other resources for where to read more.

Lastly, source-code files may contain explanations for what is shown. Each of these lines is marked with XXX.

How to build

C++

Unless a C++ project has specific instructions, every project compiles and executes using the following commands:

cd {some_concept_cpp_folder}/build
USD_INSTALL_ROOT=/wherever/you/installed/USD/to cmake ..
make
./run_it

USD_INSTALL_ROOT typically defaults to /usr/local/USD on Linux but your location may vary. See USD's build documentation for details.

Python

Python modules can always run using python name_of_module.py

Sections

Here are links of a recommended viewing order for every project in this repository.

Features

Adding comments to USD files

SetKind onto UsdPrim

specializes composition arc

Using Prim AssetInfo

Defining customizable userProperties

Edit Targets

Value resolution caching

Computing bounding boxes, using UsdGeomImageable and UsdGeomBBoxCache

Pixar's specializes example

Using "purposes" on UsdPrim objects

UsdResolveInfo - Finding where opinions come from

Enable debugging messages and write your own

Profiling USD stages

How to use Value Clips

Setting Time Varying Attributes With Sdf

SdfChangeBlock - Efficient USD authoring

SdfBatchNamespaceEdit and SdfNamespaceEdit - Efficient USD authoring

UsdStageCache - caching USD stages

TfNotice - Run functions when a stage changes, using callbacks

TfNotice - Send your own custom callbacks

Concepts

Valid Model Hierarchies

Understanding VariantSets

Overriding VariantSets

Use weaker layers to modify stronger layers

How to uniquify an instanced UsdPrim

UsdRelationship Forwarding

Using VariantSets in a production scenario

A practical example of the "specializes" composition arc

The "specializes" composition arc as a fallback mechanism

Reference a Prim in the current SdfLayer

How to find "Orphaned" overs

A mesh with a material

Asset composition arcs - how subLayers, references, and payloads work together

Tricks

Printing and modifiying prims using the C++ STL

Custom traversals with boost

Variant auto-selections - Using VariantSets to modify other VariantSets

Copy opinions from a VariantSet onto another Prim

Find An Attribute's Source

Find a Prim's bound material (includes collections API)

2-pass exporting - Export USD stages 100x faster

Flatten a USD layer stack

Multi-payloads - Yes, you can have more than one

Getting Prims through VariantSets

Plugins

usdview_auto_reloader - Update layers in usdview automatically

usdview_root_loader - Recursively load / unload Prim payloads

usdview_purpose_swap - Change between proxy and render purposes with a single button

usdview_copy_camera - Make a prim in usdview to represent the current view

VariantSet fallback selections

VariantSet selection export polices

Adding custom metadata

Custom USD schemas

A custom ArResolver plugin

Tools

usd_searcher - A command-line tool for searching USD files

Exporting UsdSkel from scratch

References

extentsHint and bounding boxes

Link Python Documentation To USD's Documentation

Understanding usdview

The USD supported plugin mastersheet

Where to find more resources

Studying

There's also Anki deck for this repository, which you can download by clicking here

Roadmap

See This wiki page for a list of planned topics that will be added in the future.

Contributing

This repository is a constant WIP. If there's something that you'd like to see written about, please suggest it as an issue so that I / others can pick it up and work on it. Also, if you have something that you'd like to contribute, please make a PR. Submissions are welcome!

Disclaimer

But note: This repository may not actually show the best way to do things in USD. It's just a collection of (my) personal findings. Also, as Pixar comes out with new USD releases and learning resources, this information may become out-of-date. Always prefer primary guides and documentation over anything that you see here.

Final Note

Tested with:

  • CentOS 7.6
  • USD 19.07
  • cmake version 3.13.4
  • make 3.82
  • g++ 8.3.0
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].