Blender

Overview

Application or Connector?

Blender is an open-source, world-class 3D modeling application. With NVIDIA Omniverse™ Launcher, you can download compatible versions of Blender with Omniverse Connect capabilities included.

Note

NVIDIA’s goal is to eventually move to a proper Blender Connector, but having this Omniverse-compatible Blender install allows users to have solid import/export capabilities with Omniverse, and it is available today.

How do I learn Blender?

For information regarding general Blender usage, please refer to the links below:

Omniverse / Blender Manual

Omniverse’s version of Blender is different from the standard Blender versions. The main benefits of Omniverse’s version are that it includes:

Importing USD Files

To import USD files with Omniverse’s version of Blender, navigate to File > Import > Universal Scene Description:

Numbered instructions for importing USD from file menu

During import, you can configure what to include:

Menu for importing USD files

USD Import

Option

Description

Cameras

Imports camera prims

Curves

Imports curve-based prims

Lights

Imports light prims

Materials

Imports material data

Meshes

Imports mesh data

Blend Shapes

Imports USD blend shapes as shape keys with animation curves.

Limitation: Importing blend shape in-betweens is not currently supported.

Volumes

Imports volume data

Skeletons

Imports USD skeletons as armatures with animation curves and creates armature deformers for meshes bound to skeletons.

Limitation: USD skeletons with bones that have negative scales cannot currently be imported, as the Blender bone representation does not support such scaling.

Path Mask

Imports only the subset of the USD scene rooted at the given primitive

Scale

Scales the imported objects with respect to the world’s origin

Apply Unit Conversion Scale

Scales to convert scene units to Blender units (meters)

UV Coordinates

Reads UV coordinates

Color Attributes

Imports color primvars as color attributes

Subdivision

Creates subdivision surface modifiers based on the USD SubdivisionScheme attribute

Import Instance Proxies

Creates unique Blender objects for USD instances

Visible Primitives Only

Ignores invisible USD primitives (This only applies to prims with a non-animated visibility attribute. Prims with animated visibility are always imported.)

Guide

Includes primitives with purpose guide

Proxy

Includes primitives with purpose proxy

Render

Includes primitives with render

Set Frame Range

Updates the Blender scene’s start and end frames to match the incoming USD’s start and end frames

Relative Path

Uses relative paths from the Blender file to the USD file

Create Collection

Adds all imported objects to a collection

Light Intensity Scale

Multiplies light intensity

Convert Light Units from Nits

Converts light intensity values from nits to Blender Light Units

Scale Light Radius

Applies the scene scale factor, from unit conversion or global scaling, to the radius of spot and local lights

Create Background Shader

Imports USD dome lights to world background shaders

Material Name Collision

Determines the behavior when an imported material’s name conflicts with an existing material’s name:

  • Modify: Creates a unique name for the imported material (Default)

  • Skip: Keeps the existing material and discards the imported material

Import Attributes

Determines the behavior when importing USD attributes as Blender custom properties:

  • None: Do not import attributes (Default)

  • User: Import attributes in the userProperties namespace as Blender custom properties. The namespace will be stripped from the property names.

  • All Custom: Import all USD custom attributes as Blender custom properties. Namespaces will be retained in the property names.

Supported types are int, float, double, and string. USD vectors are converted to Blender arrays of the corresponding size.

Instancing

Imports USD scenegraph instances as Blender collection instances. (Point instances are not yet handled by this option.)

Import Shaders

Specifies the type of USD shader to convert to Blender Principled BSDF shader networks

Set Material Blend

Sets the material blend method based on the USD shader’s opacity and opacityThreshold settings. (This is based on the Import Shaders type selection.)

Actions

Option

Description

Import USD

Imports the USD file with the options selected

Cancel

Closes the import dialog and cancels the operation

Exporting USD Files

To export USD files in Omniverse’s version of Blender, navigate to File > Export > Universal Scene Description:

Numbered instructions for exporting USD from file menu

During export, you can configure what to include:

Numbered menu for exporting USD files

Ref #

Link

1

USD Export

2

Attributes

3

Cycles Settings

4

Mesh Options

5

Primitive Types

6

Stage Options

7

Conversion

8

Textures

9

Experimental

USD Export

Option

Description

Use Settings for

Determines the visibility of objects, modifier settings, and other areas where there are different settings for viewport and rendering

Apply Subdiv

Uses subdivision modifiers for mesh evaluation

Author Blender Name

Authors custom userProperties to allow a round trip

Selection Only

Exports only the selected objects (Unselected parents of selected objects are exported as empty transforms.)

Visible Only

Exports only visible objects are exported (Invisible parents of exported objects are exported as empty transforms.)

Animation

Exports the render frame range (If unchecked, only the current frame is exported.)

Export As Overs

Creates all prims as overrides

Merge Transform and Shape

Merges transforms and shapes into one prim path

Export Identity Transforms

Always authors transform operations, even if the transform is identity/unit/zeroed

Export Child Particles

Exports child particles

Vertex Groups As faceVarying

Exports vertex groups as faceVarying primvars (This uses more disk space and is redundant with Blender’s current authoring tools.)

Attributes

Option

Description

Export Custom Properties

Exports custom properties as USD userProperties:

  • Supported property types are int, float, double, and string

  • Numerical arrays of size two, three, and four are exported as USD vector attributes of the corresponding dimension.)

Add Properties Namespace

Adds exported custom properties to userProperties

Cycles Settings

Option

Description

Override Shutter

Overrides the explicit shutter open and close attributes (When disabled, the shutter is used from Cycles render settings.)

Mesh Options

Option

Description

Vertices

Exports vertex and point data

Vertex Colors

Exports all vertex colors

Vertex Groups

Exports vertex groups

Face Maps

Exports face maps

UV Maps

Exports UV maps of exported meshes

Normals

Includes normals of exported meshes

Primitive Types

Option

Description

Transforms

Exports transform data (If disabled, objects will be saved as prims with the identity transform.)

Meshes

Exports mesh data

Materials

Exports material data

Lights

Exports lights

Curves

Exports curve-based shapes

Hair

Exports hair data

Particles

Exports particle data

Armatures

Exports armature data

Note: USD requires that skeletons and their skinning target meshes be organized in a hierarchy of “Skeleton Root” (SkelRoot) primitives. Specifically, a skeleton and its target must share a common SkelRoot ancestor to ensure correct binding. Since armatures and meshes with armature modifiers are automatically converted to USD SkelRoots, a straightforward way to maintain a correct hierarchy is to ensure that the target mesh is parented to the armature.

Alternatively, there is an experimental “Fix Skel Root” option (in the Experimental section) to automatically find a common Xform ancestor of the skeleton and its target and make that ancestor the SkelRoot. Note that this option could potentially designate the scene root as a SkelRoot, which may be inefficient, especially for large scenes. This can be avoided by grouping the armature and target mesh under an Empty object that isn’t also the scene root.

Limitation: Export of “bendy bones” is not currently supported.

Blend Shapes

Exports shape keys as USD blend shapes.

Limitations: Export of “absolute” shape keys is not currently supported. In addition, when exporting shape keys, the Blender mesh may not have modifiers applied, other than the armature modifier.

Note: USD meshes with blend shape targets are typically bound to skeletons. Thererefore, if exporting armatures is disabled or if the Blender mesh with shape keys doesn’t have an armature deformer, the exported USD mesh will be bound to an automatically created “placeholder” skeleton with a single joint.

Stage Options

Option

Description

Default Prim Path

Specifies the default prim in the USD

Root Prim Path

Adds an Xform prim with the given path as the parent of all prims in the USD scene.

Note: The given root path must not match the name of an existing root-level object in the Blender scene. If such a Blender object exists, a warning will be generated and the root prim will not be added. This is avoid redundant names in the path, such as /root/root/.

Material Prim Path

Specifies where all generated USD materials and shaders are placed in the scene

Note

We highly recommended users insert a root name (e.g., /root) before all prim paths, as in the default option values. This helps with USD compliance and allows assets sent to Omniverse to work correctly when using sent assets in other scenes:

Blender export menu for stage options

Conversion

Option

Description

Convert Orientation

Converts the orientation axes

Convert to Centimeters

Converts the USD units to centimeters and scales the scene to convert from meters

Export Cycles Shaders

Exports Cycles shader nodes to USD

Convert to USD Preview Surface

Generates an approximate USD preview surface shader network (This is experimental and suitable for converting simple material graphs.)

Convert to MDL

Converts Blender materials to MDL materials (This requires the Universal Material Map (UMM) add-on to be installed.)

Light Intensity Scale

Multiplies light intensity

Convert Light Units to Nits

Converts light intensity values from Blender Light Units to nits

Scale Light Radius

Applies the scene scale factor, from unit conversion or manual scaling, to the radius of spot and sphere lights

Convert World Material

Converts the world material to a USD dome light. (This currently works for simple materials, consisting of an environment texture connected to a background shader, with an optional vector multiply of the texture color.)

Convert uv to st

Renames UV maps to the interchangeable USD primvar name st (If a mesh has multiple UV maps, the active UV map is renamed.)

Xform Ops

Specifies how transform information is represented in USD, using one of the following options:

  • Scale, Rotate, Translate (The rotation is given as XYZ Euler angles.)

  • Scale, Orient, Translate (The rotation is given as a quaternion.)

  • Matrix (The transform is saved as a 4x4 matrix.)

Textures

Option

Description

Export Textures

Exports textures referenced by material nodes to a textures directory in the same directory as the USD. (This assumes materials are being exported.)

Overwrite Textures

Allow overwriting existing files when exporting textures

Relative Texture Paths

Saves material texture asset paths as relative paths in the USD

Experimental

Option

Description

Instancing

Exports Blender collection instances as USD scenegraph instances (Particle systems are exported as USD point instances.)

Fix Skel Root

Attempts to automatically correct invalid USD Skeleton Root hierarchies when exporting armatures (Refer to the Armatures option for more information.)

Actions

Option

Description

Export USD

Exports the USD file with the options selected

Cancel

Closes the export dialog and cancels the operation

Omniverse Blender Material Templates

When creating new meshes with the intent of working with Omniverse, we suggest you use the lossless material templates that this version of Blender provides in the Shading panel:

Numbered elements in the Blender Shading panel UI

#

Option

Description

Lossless Node Adjustment

1

Omniverse menu

Contains material graph templates

N/A

2

UV Set

Blender mesh connection

No

3

UV Coordinates

UV controls

Yes

4

Texture Inputs

Texture management

Yes

5

Parameters

Parametric controls

Yes

6

Output

Blender output

No

7

Information

General help

N/A

Access the Omniverse Material

Access the Omniverse menu on the right-hand side of the Shading panel’s toolbar:

An arrow identifying the Blender Shading panel's Omniverse menu

This menu offers two options:

  • Replace with OmniPBR graph template

  • Replace with OmniGlass graph template

Adjust parameters through the Parameters > OmniPBR Compute node:

An arrow identifying the node's options

Provide texture maps in the Texture Inputs nodes:

An arrow identifying the node's options

Converting Your Existing Materials

Upon Exporting to USD, materials are, by default, converted to MDL. Once converted, users can continue to work seamlessly using the converted materials.

For any new materials added to the scene, we suggest using Omniverse Blender Material Templates however, you can work as normal and export again to convert.

Omniverse Panel

For convenience, Omniverse ships Blender with an add-on that makes working with Omniverse more convenient. This add-on, which includes an Omniverse panel, is installed into this version of Blender by default.

The NVIDIA Omniverse Blender panel

Ref #

Link

1

File Handling

2

Omni Particles

3

Material Bake

4

Convert Material

File Handling

This section provides convenient shortcuts to the Import and Export file dialogs.

Omni Particles

In order to comply with Omniverse, particle systems can be converted to individual objects which, in turn, become valid USD prims in Omniverse on export:

Option

Description

Delete PS after converting

Deletes the Blender particle system after converting

Keyframe Animation

Creates keyframes for converted assets based on the host particles

Convert

Begins the conversion on selected assets

Material Bake

Some materials in Blender will be difficult or impossible to convert to Omniverse PBR materials. For these materials, a bake routine is provided:

Option

Description

Bake All Maps Texture Resolution

Bakes all or currently-selected maps, depending on the toggle state Specifies the resolution of the baked texture (Larger texture sizes may take a considerable amount of time and memory to build.)

New UV(s)

Rebuilds UVs during the baking process

Ma

Adjusts the spacing of UVs (“Ma” stands for “margin”.)

Copy objects and apply bakes

Applies bakes to a copy of objects (When unchecked, bakes are applied directly to original objects.)

Hide source objects after bake

Hides the source assets after baking is complete (When unchecked, source assets aren’t hidden after baking is complete.)

Foreground/Background

Determines how textures are baked:

  • Foreground: Uses the current blender instance to bake the textures

  • Background: Uses a saved version of the scene and bakes textures in background allowing continued work in blender

    • Status: Displays the current background tasks’s render status

    • Import Baked Objects: Imports baked objects once completed

    • Delete: Deletes the background bakes¹

¹ If you chose to save bakes or FBX externally, these are safe and not deleted

Bake

Begins the material baking process

Convert Material

Most materials can be converted using direct mapping to OmniPBR or OmniGlass as a base:

Option

Description

OmniPBR

Converts the selected materials to OmniPBR (Use for opaque surfaces.)

OmniGlass

Converts the selected materials to OmniGlass (Use for transparent or translucent surfaces.)

Release Notes

3.4.0-usd.101.0

  • Import USD skeletons (UsdSkel) as Blender armatures with animations. (OM-57781)

  • Import USD blendshapes as Blender shape keys. (OM-56287)

  • Export Blender shape keys as USD blendshapes. (OM-39725)

  • Fixed crash when reading USD Preview Surface UsdUVTexture shaders with invalid file inputs.

  • Merged recent Blender 3.4 master branch changes (up to commit d9c48d94).

  • Now enabling the Fix Skel Root USD export option by default.

3.2.0-usd.100.2.1

  • Fixed light intensity scaling on USD import. (OM-53790)

3.2.0-usd.100.1.14

  • Fixed USD plugin load error when opening saved Blender scenes cotaining USD transform cache constraints or mesh sequence cache modifiers.

  • New Overwrite Textures USD export option to allow overwriting existing files when exporting textures.

  • When the Convert uv to st export option is enabled, the active uv map will be renamed st. This can help address the issue where the wrong uv set is assigned in Create when there are multiple uv sets.

  • Now enabling the Convert uv to st USD export option by default.

  • Read all color attributes on USD import. Previously only the displayColor primvar was imported.

  • Now enabling reading color attributes by default.

  • Falling back on importing USD Preview Surface shaders, if possible, if importing MDL is specified but an MDL couldn’t be imported.

  • Fixed incorrect scene scale on import when the USD contains untyped prims.

  • Fixed incorrect color attribute export to USD.

  • Color and normal inputs of exported USDs are now of type color3f and normal3f, respectively.

  • Handling UsdUVTexture shader texture wrap mode on import and export. This fixes an issue where USD Preview Surface materials with UDIM textures were displaying incorrectly in Create.

  • Handling clearcoat and clearcoatRoughness USD Preview Surface shader inputs on USD export.

  • Now setting the USD Preview Surface emissiveColor input on USD export.

  • Fixed missing file extension for exported packed textures on USD export.

3.1.0-usd.100.1.10

  • Support UDIM textures when importing USD Preview Surface shaders.

  • New “Material Name Collision” USD import option, to allow importing materials with duplicate names.

  • Added default values for the “Default Prim Path”, “Root Prim Path” and “Material Prim Path” export options.

  • If the “Root Prim Path” export option is set, the root path won’t be added if a Blender object matching the root name already exists.

  • Now aborting with an error if the root prim, default prim and material prim path export options are not well formed USD paths, to prevent crashes when defining prims.

  • Improved warning and error messages during UMM material conversion.

  • Support importing USD attributes (string, int, float and vector types) as Blender custom properties.

  • Property export improvements: support exporting vector types; provide options for setting the attribute namespace.

  • Enable operator presets UI for USD import and export.

  • Armature export improvements: fixed bugs causing skeleton bindings to fail; warning if the skinned prim and skeleton are not under a common SkelRoot; new “Fix Skel Root” experimental option to automatically correct invalid SkelRoot hierarchies.

  • Importing existing USD Preview Surface shaders as a fallback if importing MDL is selected as an option but the material has no MDL shaders.

  • Fixed bug preventing packed textures from being exported when exporting USD Preview Surface shaders.

  • Fixed bug preventing USD Preview Surface textures from being imported in some cases.

3.0.0-usd.100.1.3

  • Fix for Omniverse Launcher installer error for Blender. No functional changes to the Blender application or addons in this version.

Initial Release

Omniverse Blender App Released: 8-15-2021

Known Issues

  • No support for MDL export yet