There were two reasons the USD Exporter was listed as experimental:
- Originally there was no deduplication of mesh normals & UV coordinates (resolved in rBf5e00f735106b5ec635806a4c795a2bc46ae8369), and
- the way materials were exported was incompatible with instancing with USD 19.07. This seems to be resolved with the current version of USD (19.11).
Blender (more specifically, makesdna) doesn't seem to like empty DNA structs, so I couldn't remove all properties from UserDef_Experimental. This is the error I'd get:
ninja: Entering directory `/home/sybren/workspace/blender-git/build_linux/' [1/678] Generating dna.c, dna_type_offsets.h, dna_verify.c FAILED: source/blender/makesdna/intern/dna.c source/blender/makesdna/intern/dna_type_offsets.h source/blender/makesdna/intern/dna_verify.c cd /home/sybren/workspace/blender-git/build_linux/source/blender/makesdna/intern && /home/sybren/workspace/blender-git/build_linux/bin/makesdna /home/sybren/workspace/blender-git/build_linux/source/blender/makesdna/intern/dna.c /home/sybren/workspace/blender-git/build_linux/source/blender/makesdna/intern/dna_type_offsets.h /home/sybren/workspace/blender-git/build_linux/source/blender/makesdna/intern/dna_verify.c /home/sybren/workspace/blender-git/blender/source/blender/makesdna/ ERROR: still 2 structs unknown *** Unknown structs : UserDef_Experimental UserDef [14/678] Building CXX object source/blender/compositor/CMakeFiles/bf_compositor.dir/nodes/COM_SplitViewerNode.cpp.o ninja: build stopped: subcommand failed.
Instead I have just kept char _pad0. I'm not sure how this was intended to be after the last experimental feature was removed. This is why I'm asking for a review.