This repository is a collection of simple USD projects. Each project shows off a single feature or group of USD features.
Folders
- concepts/
- {CONCEPT_NAME}
- README.md
- cpp/
- python/
- usda/
- guides/
- tricks/
Each USD feature is in the "concepts" folder. Most features have a C++, python, and USDA project folder where you can see how to author that feature in each representation and how it actually looks when it gets written in USD.
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.
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_itUSD_INSTALL_ROOT typically defaults to /usr/local/USD
on Linux but your location may vary.
See USD's build documentation for details.
Python modules can always run using python name_of_module.py
conceptsis where you'll find simple, single features shown by-example. It will have C++, Python, and USDA example projects (whenever possible). If you're the type that makes flashcards, you'll get the most mileage here.guidescontains articles of ideas and references that help a user learn USD.tricksis a mixed bag of situations that come up in production and general proof-of-concepts on how to do certain operations in USD. This folder has projects that are too complex or niche to fit inconcepts. There's no defined structure for this folder.
This repository exists mainly as a reference for USD source-code. That said, if you want to treat as if this is a library of tutorials, here's a recommended viewing order:
specializes_a_practical_example
specializes_as_a_fallback_mechanism
registered_variant_selection_export_polices
There's also Anki deck for this repository, which you can download by clicking here
See This wiki page for a list of planned topics that will be added in the future.
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!
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.
Tested with:
- CentOS 7.6
- USD 19.07
- cmake version 3.13.4
- make 3.82
- g++ 8.3.0