Feature: Improved Import/Export
Last updated
Last updated
Status: Released in v2.8
Adds new optional GLTF import and export workflows. Allow import of lights, breaking apart of imported models and other new features that the updated libraries enable.
Download a build for your headset from the link above and unzip it. You can run the Windows exe directly. To install the Quest apk use SideQuest: https://uploadvr.com/sideloading-quest-how-to/
To switch to the new importer (which replaces GLTFast that we added in v2.4 with UnityGLTF you need to edit your Open Brush config file and add this entry after "Flags":
We've changed how export in general is configured. Previously all supported formats were exported whether you needed them or not. Some were pretty slow for large scenes (STL - looking at you) and you probably only needed a couple of them. Now you can choose which are available using the config file:
ExportBinaryFbx and ExportFbxVersion are existing options - but the rest of the entries here are new.
ExportStrokeMetadata: todo
KeepStrokes: todo
KeepGroups: todo
Formats: Each item in here corresponds to an existing export format except for "newglb" which is a glb file but we use the new export code to generate it. Note that formats not supported on your platform will be ignored. See below for platform support.
Extensions supported by GLTFast but not UnityGLTF:
EXT_mesh_gpu_instancing
KHR_materials_pbrSpecularGlossiness (legacy extension - superseded by KHR_materials_specular which is only supported by UnityGLTF)
Extensions supported by UnityGLTF but not GLTFast:
KHR_materials_clearcoat
KHR_materials_emissive_strength
KHR_materials_ior
KHR_materials_iridescence
KHR_materials_specular
KHR_materials_transmission (soon)
KHR_materials_volume (soon)
MSFT_lod
Extensions supported by both:
KHR_draco_mesh_compression
KHR_lights_punctual
KHR_materials_unlit
KHR_mesh_quantization
KHR_texture_basisu
KHR_texture_transform
(The above list may change as we implement missing features in UnityGLTF. GLTFast also has announced plans to support KHR_materials_variants, EXT_lights_image_based and KHR_materials_transmission)
UnityGLTF has some other differences:
Model hierarchy should be faithfully preserved. GLTFast on the other hand doesn't support sub-meshes so any mesh that contains multiple materials will be split into separate objects. (this might be desirable in some cases)
In general 3d models should be more robustly handled if you round-trip between Open Brush and other 3D apps
Please report any other differences you find. The reason we are keeping both importers around is to gather feedback on their strengths and weaknesses.
The use of the new exporter is currently optional and we will continue to support the old exporter until the new one is a full replacement.
Currently - if you use the Open Brush Toolkit Unity SDK then use the existing exported GLB file
Use the existing exporter for uploads to Icosa.
Similarly - if you use the Icosa three.js loader this works best with the existing exporter
The new GLB export should work better in Blender and other 3D animation apps although we still have work to do to fix support for particle brushes, transparent brushes and other features.
Imported 3D models will export much better with the new GLB exporter
In general new features in the beta or from other experimental branches will work better using the new exporter.
Format | Android/iOS (Standalone VR) | PC (Tethered VR) |
---|---|---|
FBX | ✘ | ✔ |
GLB | ✔ | ✔ |
NEWGLB | ✔ | ✔ |
JSON | ✔ | ✔ |
LATK | ✔ | ✔ |
OBJ | ✘ | ✔ |
STL | ✔ | ✔ |
USD | ✘ | ✔ |
WRL | ✔ | ✔ |
This build supports a new feature - The existing "group/ungroup" button on the pop-out tray that appears when you activate the Selection Tool now works on imported models - if they consist of multiple parts. Just select a single imported model and if it does have sub-parts the button will show "ungroup" as an option - the same as if you select a normal grouped set of objects.
If your imported model contains lights then these will appear in the scene and will act upon other objects the same as the Environment Lights. Furthermore imported lights support point lights and spot lights - whereas the existing environment lights only support directional lights.
If you break apart a model containing lights, the lights themselves can't be selected or moved.
Come over to the Open Brush Discord: https://discord.com/invite/fS69VdFXpk and chat to me @andybak).
I'm on UK time but I check in fairly regularly.