mirror of
https://github.com/lighttransport/tinyusdz.git
synced 2026-01-18 01:11:17 +01:00
1.3 KiB
1.3 KiB
Tiny USDZ loader
TinyUSDZ is dependency-free(depends only on C++ STL. Yes, you don't need USD library!) USDZ loader library written in C++11.
Requirements
- C++11
USDZ file format
USDZ is a uncompressed zip file. USDZ contains usdc(binary) and resources(e.g. image file)
Build
Integrate to your app
Simply copy src and include folder to your app, and add *.cc files to your app's build system.
Meson
Meson build is provided for testing compilation.
$ meson builddir
$ cd builddir
$ ninja
Build options
TINYUSDZ_USE_OPENSUBDIV: Use OpenSubviv to tessellate subdivision surface.
TODO
- Android example
- CPU raytracer viewer
- Viewer with Vulkan API.
- Replace OpenSubdiv with our own subdiv library or embree3's one.
- Read USD data with bounded memory size. This feature is especially useful for mobile platform(e.g. in terms of security, memory consumption, etc)
- USDZ saver
- Support Nested USDZ
- UDIM texture support
Fuzzing test
See tests/fuzzer/
License
TinyUSDZ is licensed under MIT license.
Third party licenses
- USD : Apache 2.0 license. https://github.com/PixarAnimationStudios/USD
- lz4 : BSD-2 license. http://www.lz4.org
- cnpy(uncompressed ZIP decode/encode) : MIT license https://github.com/rogersce/cnpy