Skip to main content

Blender HDRI Setup and USD Export

Tested with Blender 5.0.1.

Download the example scene

Download the example Blender scene.

Overview

The example .blend file includes a pre-configured HDRI lighting setup designed to export correctly through the Miris pipeline. There are two values you need to set — your desired lighting level for the Blender viewport, and a corresponding export value that ensures the lighting is correctly encoded in the USD file.

This guide walks you through setting those values, previewing the result, and exporting.


Before You Start

If you need to rotate the HDRI environment map, do it before setting any lighting values. Changing the rotation after calibration affects how light falls on the scene and will require you to redo the lighting setup.

To rotate the HDRI, adjust the Rotation values in the Mapping node in the World shader (Shading workspace → World context).


Step 1: Open the File and Import Your Asset

  1. Open the example .blend file in Blender 5.0.1 or later.
  2. Import your asset via File → Import and select the appropriate format.

Step 2: Set the Lighting Intensity

The example file's World shader has two lighting nodes you'll need to set:

  • Blender Light Intensity — controls how the scene looks in Blender's viewport and Cycles renders
  • Export Light Intensity — encodes the correct brightness into the exported USD file

World shader node graph

Set the Blender Light Intensity

note

The Strength field on the Background node has no effect on the USD export — brightness is controlled entirely through the Multiply nodes.

  1. Open the Shading workspace and switch to the World context.
  2. Find the Blender Light Intensity Multiply node.
  3. Set the second input vector to your desired level — for example, (1, 1, 1) for standard intensity.
tip

All three values should always be the same number. The Multiply node works in 3D color space, so you're setting red, green, and blue equally.

Calculate and Set the Export Light Intensity

The export value accounts for the difference between Blender's internal light units and what the Miris pipeline expects. Multiply your Blender intensity by 1562 to get it:

Export Light Intensity = Blender Light Intensity × 1562
Blender Light IntensityExport Light Intensity
0.5781
11562
23124
  1. Find the Export Light Intensity Multiply node.
  2. Set its second input vector to your calculated value — for example, (1562, 1562, 1562) for a Blender intensity of 1.

Step 3: Preview the Result

Blender's viewport shows the scene at the Blender light intensity level by default, which will look much brighter than what Miris will render. To preview the final output:

  1. Open Render Properties (camera icon in the Properties panel).
  2. Navigate to Color Management.
  3. Set the following:
    • Display: sRGB
    • View: ACES 2.0
    • Exposure: -10.61
warning

Reset Exposure to 0.0 when you're done previewing — leaving it at -10.61 will make the scene appear incorrectly dark for all other work in Blender.

Next, set the white balance:

  1. Enable White Balance.
  2. Click White Balance Presets.
  3. Select Illuminant D65 — this sets Temperature to 6502K and Tint to 9.8.

Color Management and White Balance preview settings


Step 4: Export and Upload

  1. Go to File → Export → Universal Scene Description (.usd*).
  2. Confirm the following settings are enabled:
    • Convert World Material — must be on; this converts the World shader to a DomeLight in the USD file
    • Export Textures — copies the HDRI into a textures/ folder alongside the USD
  3. Export the file.
  4. Upload the complete exported folder to Miris, including the textures/ subfolder with the HDRI file.

Exported USD DomeLight Structure

The exported USDA will contain a DomeLight prim with the following structure:

def DomeLight "env_light"
{
color3f inputs:color = (1562, 1562, 1562)
asset inputs:texture:file = @./textures/your_hdri.exr@
float3 xformOp:rotateXYZ = (90, 0, -90)
uniform token[] xformOpOrder = ["xformOp:rotateXYZ"]
}
USD AttributeSourceDescription
inputs:colorExport Multiply nodeThe calibrated export intensity, encoded as an RGB color multiplier
inputs:texture:fileEnvironment Texture nodePath to the HDRI file
xformOp:rotateXYZMapping node + coordinate conversionOrientation of the environment map
inputs:intensityNot written (defaults to 1.0)Blender's USD exporter does not export this attribute for image-based dome lights

Troubleshooting

Output looks too dark

Multiply your Blender Light Intensity value by 2, then recalculate and update the Export Light Intensity.

Output looks too bright

Divide your Blender Light Intensity value by 2, then recalculate and update the Export Light Intensity.

Red color shift on surfaces

Disable MaterialX Network in the USD export dialog and re-export. This can occur when MaterialX is enabled and falls back to UsdPreviewSurface, which handles surface materials correctly.