Open mvaligursky opened 1 year ago
Schemas that ARKit supports on Apple in QuickLook: https://developer.apple.com/documentation/arkit/usdz_schemas_for_ar
Google's glTF->USDZ c++ converter. Interesting list of what is not / cannot be support here: https://github.com/google/usd_from_gltf/tree/master#compatibility
We could also consider using a wasm build of https://github.com/lighttransport/tinyusdz to handle USD (binary) import / export.
PR https://github.com/playcanvas/engine/pull/4638 implemented initial functionality of USDZ export, and these are additional bits that would improve it's quality:
scene hierarchy. At the moment, mesh instances are exported without a hierarchy, each directly with a world matrix. A hierarchy would be useful when animations are exported.
animation support
skinning / morphing support
precision - all mesh attributes (positions, uvs ..) are exported at full precision, and could be stored with lower precision to limit the size. Example:
additional vertex attributes (for example vertex colors)
additional texture formats. All textures are presently stored in .png format. We could add jpg format if alpha channel is not required.
texture transform There is partial support implemented, but does not work in many cases:
https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_texture_transform/README.md https://graphics.pixar.com/usd/release/spec_usdpreviewsurface.html#transform2d
roughness / glossiness at the moment, the texture is assumed to be a roughness (to match gltf specification). In case PlayCanvas material is used in the scene, this most likely is a glossiness, and we could perhaps handle it this way: https://graphics.pixar.com/usd/release/spec_usdpreviewsurface.html#roughness-vs-glossiness
support additional material settings (clearcoat, ior, sheen) - see more here https://graphics.pixar.com/usd/release/spec_usdpreviewsurface.html#preview-surface
texture repeat / clamp - at the moment, wrap is hardcoded
alpha testing - the code is there, see
opacityThreshold
, but using it seems to fail to load in the built in MacOS viewer. Needs further investigation.