Light intensities from Unreal to Maya/Arnold (ver. 2)

Equivalent light intensity values between Unreal and Maya/Arnold.

If you’re using Unreal Engine as a previz tool, at some point you need to reproduce the lighting conditions (at some level of accuracy) in Maya/Arnold.
I didn’t want to compare the final renders, but if the previz lighting is usable in Maya/Arnold as a starting point, then that could be a good way to start the actual lighting process in Maya/Arnold.


First I had to choose a method for the testing:

I compared the sRGB results not the linear, high dynamic range EXRs.
My goal was to match the previz visuals not the full rendering process.
Also, I did not try to match the colors, that could be a very difficult task.
My test scenes are in 1:1 scale (real world size). If you have to deviate from it, the results will not match in most cases (there are a few exception, for example with IBL based lighting).

Maya Settings

  • In short: Unreal using “filmic tonemapper” settings by default (ACEScg/sRGB(ACES) like results), so I decided to do this test in ACEScg color space with the sRGB(ACES) view transform in Maya.
  • I used a mid gray sRGB texture as base color with the Utility – sRGB – Texture color space.
  • Other than that I didn’t change anything.

Unreal Settings

  • I used the default settings as it you get from a default Game Project.
  • I had to choose an eye adaptation method:
    For consistency, I chose the Auto Exposure Basic method with Exposure Compensation: 0, Min. and Max. Brightness both 1. Maybe this is not applicable for all Unreal project but for previz it’s a usable one.
  • I used dynamic lights only of course. (There is no point to use Unreal for previz – or at all 🙂 – if you have to wait for the light baking process.)
  • I didn’t used any ray-tracing technique in Unreal.
  • I used a few real-time GI technique to get better result (SSGI and Light Propagation Volume) in Unreal.

There is no any additional corrections on the images.
I used some volumetric effects in both cases.

The final images. Unreal (left) and Maya/Arnold (right).

The Results

Directional Light
Intensity: 1 and Exposure 1 (Maya) = 1 Lux (Unreal)
So you need an extra exposure steps in Maya to match the Unreal visuals.
That is pretty consistent when you increase the light intensities:
For example: 50 and Exp 1 (Maya) = 50 Lux (Unreal)
Usually about 1% perceived brightness difference.


Point Light
Intensity: 1 and Exposure 14 (Maya) = 1 cd (Unreal)
So you need the extra 14 exposure steps in Maya.
Also consistent. For example: 10 and 14 exp (Maya) = 10 cd (Unreal).
Usually about 1% perceived brightness difference.


Spot Light
Intensity: 1 and Exposure 14 (Maya) = 1 cd (Unreal)
So you need the extra 14 exposure steps in Maya.
Also consistent. For example: 20 and 14 exp (Maya) = 20 cd (Unreal).
Usually about 1% perceived brightness difference.


Area Light (Rect Light in Unreal)
Intensity: 1 and Exposure 14 (Maya) = 1 lm (Unreal)
Here you have to use lumens in Unreal to get a better match.
For Area lights it’s a little bit harder to match the two because Unreal calculations are much more simple.
Also, in Unreal Rect Lights without ray-tracing method are hard to use correctly (the Attenuation Radius/shadow calculation problem).
The spread (Arnold) and Barn Door Angle (Unreal) attributes changes the perception hugely.
The falloff of the intensities are not matching well (on a lit surface).
At different intensities:
5 and 14 exp (Maya) = 5 lm (Unreal); About 2% perceived brightness difference.
50 and 14 exp (Maya) = 50 lm (Unreal); About 2% perceived brightness difference.
100 and 14 exp (Maya) = 100 lm (Unreal); About 2% perceived brightness difference.
It’s fairly close.


IBL
Intensity: 1 and Exposure 0.5 (Maya) = 1 (Unreal)
Just a reminder you can’t use .exr, only .hdr format as a light source in Unreal’s SkyLight actor.


Notes:

  • In Maya, I used the Area Light in normalized mode.
  • The total intensity with the 14 exposure value:
    Intensity (total) = Intensity × 2^14
    where of course: 2^14 = 16384
  • By the way if you using ACEScg/sRGB(ACES) method don’t try to use Maya’s color swatch as usual. You have to turn off the color management for the color swatches to claim control over it. 🙂 (I hope they fix it soon.)
  • A few weeks ago I posted the first version, but I made a few mistake. So I had to redo the whole thing (actually in multiple times). This is the result of that process. If you have any suggestion please, don’t hold it back. 🙂
  • I will continuously test this, so there is a chance the method will change in time.

Final words:

There is a real possibility to work this way in production, unfortunately you have to develop a few tools for Unreal to do this. There is no out of the box tools to export and import lights between the two software (at least I couldn’t find any).

Cheers, D

in Unreal
with Maya/Arnold

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.