It looks like every output mesh is created as a unique mesh even if they are instances in Revit. As an example, export the Revit sample model RAC_basic_project as FBX and then as USD via Omniverse.
For the FBX export I see 275 unique meshes but 502 total meshes including instanced meshes.
For the USD export I see 679 meshes and none are instanced.
I think this makes exports quite slow for highly instanced scenes - one of our large models took over 12 hours to export via Omniverse but much less with other exporters. Also, as expected, the file size was many times larger, in our case over 5GB which is around 10x larger than exporters that preserve instancing.
There are other diffs too, some of which may not be a problem but I am curious about:
- Normals are not exported
- There are more meshes created by Omniverse than FBX even when taking instancing into account, although the total face count is the same. Maybe just a different algorithm for breaking up disjoint objects into meshes?
- Vertex count is higher in Omniverse than FBX. Maybe due to the way USD represents data since I see there is one UV per vertex in USD but not in FBX?
Summary of stats on RAC_basic_project exported models:
Exporter FBX Omniverse Total meshes 502 679 Unique meshes 275 679 Total faces 410056 410056 Unique faces 272112 410056 Total vertices 245265 351971 Unique vertices 171414 351971 Normals 68927 0 UVs 305023 351971