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