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_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 modules can always run using python name_of_module.py
concepts
is 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.guides
contains articles of ideas and references that help a user learn USD.tricks
is 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