TinyUSDZ does not support Hydra interface in pxrUSD at the moment. We think Hydra(multi-purpose sceneDelegate/renderDelegate interface) is too much for TinyUSDZ usecases(AR, lightweight 3D viewer/runtime, DCC exchange, etc).
Instead, we'd like to propose Tydra(Tiny Hydra), something like a three-headed monster(Please imagine Gidorah: https://en.wikipedia.org/wiki/King_Ghidorah), which directly converts(publishes
) USD scene graph(Stage. Prim hierarchy) to a renderer-friendly data structure or published
data format(imagine glTF). API design of Tydra is completely different from Hydra.
Currently Tydra is considering following three usecases in mind:
- Runtime publishment(e.g. to glTF), DCC conversion and exchange for realtime graphics(AR, VR, MR, games, etc).
- Scene conversion to GL/Vulkan renderer(e.g. WebGL rendering)
See
../../examples/tydra_to_renderscene
- Scene conversion to Ray tracing renderer(e.g. Vulkan/OptiX ray tracing)
See
../../examples/sdlviewer/
for SW raytracing example.
Work in progres. API and feature is subject to change.
Scene graph representation suited for OpenGL/Vulkan renderer.
- Node xform
- Triangulate mesh
- Subdivision surface support(subdivide mesh using OpenSubdiv)
- Resolve Material binding
- GeomSubset material binding
- Collection material binding
- Load and setup Texture
- Colorspace conversion
- sRGB <-> Linear
- rec709 <-> Linear
- displayP3 Linear <-> sRGB Linear
- ACEScg(AP1, Linear) <-> sRGB Linear
- Colorspace conversion
- Skinning
- BlendShape
- Animation(SkelAnimation)
- Xform animation(timesamples XformOps)
- Lights
- Data structure suited for realtime DCC.
- Data structure suited for Ray tracing
EoL.