I will be kicking myself once I hear of the answer to my naive questions so please bear with me. I sort of sense the answer before asking these questions. However, the answer is not entirely obvious to me after reading tons and tons of docs, example source, kit-examples, etc.
I am fairly new to Omniverse development and hence I’m a bit green under the gills to discern the proper approach to this quest.
My basic question: what is the correct approach to writing custom 3D import/export converters for ‘Omniverse Create’ along the lines of the Assimp/FBX/glTF/CAD converters which are hooked in directly to Kit as DLL modules with a Python integration interface?
-
“An Overview of Universal Scene Description (USD) for Building Virtual Worlds [S52054]” alludes to custom OBJ/etc import/export converter modules for the ILM USD SDK but I’m 100% sure that they have nothing to do with Omniverse and what I’m talking about in this message.
-
There doesn’t appear to be any example implementations of these kit-API-based converters so they may be proprietary to NVIDIA?
-
I’m jumping ahead of myself but I’m guessing that the data is streamed directly to/from the core scene graph via the Omniverse API and not any back-end USD files? Is this method fast enough (C++ based??) to handle very large files?
-
Given that Omniverse has very strong USD support, could one of these custom plug-ins be developed (for integration into the Menus like 3MF or the import/export dialog box) but use a USD file as a back-end means to interface to Omniverse rather than a hard coded API connection? In other words, the converter would convert its native format to/from USD and then call a Kit-based API to load/save the file to the Omniverse Create USD-based scene graph.
-
I don’t want to develop a connection to an external app but rather to code up an integrated converter, either via the help of an intermediate USD file or a direct connection via a scene-graph-level API.