Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] USDZ and USD loader using TinyUSDZ #29169

Open
syoyo opened this issue Aug 18, 2024 · 0 comments
Open

[Feature] USDZ and USD loader using TinyUSDZ #29169

syoyo opened this issue Aug 18, 2024 · 0 comments
Labels

Comments

@syoyo
Copy link

syoyo commented Aug 18, 2024

Description

I'd like to share the status of TinyUSDZLoader for three.js, Its a USD loader module in wasm.

image

https://x.com/syoyo/status/1825270359211548719

https://github.com/lighttransport/tinyusdz/tree/dev/sandbox/threejs

Current status

A mesh with a texture possible.

Advantage

  • (Mostly) Full-featured USDZ support(both supports USDA Ascii and USDC binary) possible. On the contrary, current USDZLoader.js in three.js https://github.com/mrdoob/three.js/blob/dev/examples/jsm/loaders/USDZLoader.js is limited to USDA only.
  • Better material/texture support(e.g. loading broader EXR image format possible thanks to TinyEXR(embedded in TinyUSDZ module)
  • Portable. No need of SharedArrayBuffers and Atomics(whose are requirement of wasm build of OpenUSD)

Disadvantage

  • Larger WASM size. Roughly 2MB uncompressed, 600kb when compressed.

We still need to implement more stuffs(scene graphs, better reconstruction of material/texture suited for three.js), skinning/animations, etc. But I hope USDZLoader based on TinyUSDZ is the promising way to load USD/USDZ in three.js.

Solution

N/A

Alternatives

N/A

Additional context

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants