Open3D icon indicating copy to clipboard operation
Open3D copied to clipboard

Complete support for scene graph and add USD I/O

Open ssheorey opened this issue 1 year ago • 2 comments

ssheorey avatar Apr 29 '24 02:04 ssheorey

Hello, Love the project and am really enjoying using it! I was wondering about support for USD format when I saw this issue and wanted to ask if your format support is manually added and if so have you considered a library such as assimp https://github.com/assimp/assimp which offers a wide level of 3D model support and is using tinyusdz to get USD support. This could enable significant file format support.

I am happy to help out if needed for this as well!

Christian-Prather avatar Jul 12 '24 20:07 Christian-Prather

Hi @Christian-Prather thanks for pointing out assimp. We already use it for reading and writing many 3D formats, so it makes sense to also use it for USD. The USD support in assimp looks very recent, read only, and disabled by default. Also, this would likely be slow, since it will be 3 steps: load in tinyusdz, copy to assimp format and then copy to Open3D format. Ideally, we would like to directly use tinyusdz for better speed and write support. Here's what I would propose:

  • Look at what's supported by tinyusdz and how to best map it to Open3D. USD is a rather complex file format, and Open3D only directly supports some of those things. We should be able to read and write:
    • All meshes, with conversion of non-triangle meshes (e.g. quad mesh).
    • mesh attributes: UV coordinates, colors, normals, PBR material properties.
    • textures Not supported in Open3D: animations, blending, rigging. XForms are not supported as part of meshes - the meshes must be transformed on reading.
  • Are any updates required to Open3D data structures to support USD? (e.g. how will a scene graph be represented?). I can help with this part.
  • Check out Assimp's USD support and features and we can compare the two approaches.
  • Estimate the effort (say in days) to implement I/O with either of the two options and we can decide which is a better option.
  • Implement and get your PR merged! Open3D will have USD support! 🎉

ssheorey avatar Jul 13 '24 02:07 ssheorey