For the complete documentation index, see llms.txt. This page is also available as Markdown.

Configuring Export

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:

{
  "Export": {
    "ExportBinaryFbx": true,
    "ExportFbxVersion": "FBX201400",
    "ExportStrokeMetadata": true,
    "KeepStrokes": true,
    "KeepGroups": false,
    "Formats": {
      "fbx": true,
      "glb": true,
      "newglb": true,
      "json": true,
      "latk": true,
      "obj": true,
      "stl": false,
      "usd": true,
      "wrl": false
    }
  }
}
  • ExportBinaryFbx: Controls whether exported FBX files use binary or ASCII encoding. true selects binary FBX; false selects ASCII FBX.

  • ExportFbxVersion: Selects the FBX format version. Supported values are FBX201600, FBX201400, FBX201300, FBX2012 and FBX201100. The default is FBX201400; try an older version when importing into older software.

  • ExportStrokeTimestamp: (true | false) This will put timing information into texcoord2 for all GLB exports. Timestamps are a vec3: x,y = the earliest/latest timestamp in the stroke which contains that vertex. z = the timestamp for that vertex. This setting defaults to true but can be disabled to reduce file size.

  • ExportStrokeMetadata: includes extra information with each stroke that might be useful to developers writing their own importers

JSON exports include sketch metadata

Enabling the json format writes two files:

  1. <sketch-name>.json contains the raw exported brush-stroke data.

  2. <sketch-name>.metadata.json contains the scene metadata normally stored inside the .tilt file.

The metadata can include the author, environment and custom lighting, imported models and media, guides, colour palette, scene transform, camera paths, layers, application version and other scene features. It complements the raw stroke JSON rather than duplicating it.

  • KeepStrokes: Each stroke will be exported as a separate mesh rather than grouped by brush type (export will take longer and may fail on complex scenes)

  • KeepGroups: Maintains groups on export (export will take longer and may fail on complex scenes)

  • Formats: Each key enables or disables that export format. glb uses the legacy Open Brush exporter; newglb uses the newer UnityGLTF scene-hierarchy exporter.

Note that formats not supported on your platform will be ignored. See below for platform support.

Supported GLTF Extensions with New GLB exports

Extensions supported

  • 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

  • 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.

Choosing between the new and old GLTF formats

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.

  • If you're using the existing Open Brush Unity Toolkit/SDK then use the older GLB format

  • If you're manually uploading to Icosa Gallery then use the older GLB format

  • If you're use the Icosa three.js loader this also works best with the older exporter.

  • The new GLB export format 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.

Platform Support

Format
Android/iOS (Standalone VR)
PC (Tethered VR)

FBX

✘

✔

GLB

✔

✔

NEWGLB

✔

✔

JSON

✔

✔

LATK

✔

✔

OBJ

✘

✔

STL

✔

✔

USD

✘

✔

WRL

✔

✔

Breaking Apart Imported Models

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.

Importing Lights

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.

These additional lights will only affect imported 3d models - they will not affect brush strokes which ignore lights other than the ones configured in your environment settings

Last updated