How to enable OCIO in Unreal's Play in Editor mode?

I followed the instructions in this document. After setting up OCIO for my viewport, it looks like this:

Howerver, in Play in Editor mode, the color looks like this:

It’s totally different! What did I do wrong? Do I need somehow enable OCIO in play mode?

I think you should set input to linear srgb and output to srgb/rec709 output display transform if you want ACES DRT to be correctly applied to editor, unless you use ACEScg textures and lighting everywhere (but I’m still not sure this is the correct setting even for the case with ACEScg textures and lighting).
I’m not at my PC now, so I can’t check the exact names.

Oh, I got you wrong, sorry!
I don’t remember how to apply it to play mode, need to reach my PC first.

Sorry again! I was wrong thinking this is possible! I’ve just applied it to viewport and to Movie Render Queue from Unreal 5. But looks like it’s impossible to apply it in Play mode. I hope it’s just me who can’t do it and this is actually possible.

Sorry again! I was wrong thinking this is possible! I’ve just applied it to viewport and to Movie Render Queue from Unreal 5. But looks like it’s impossible to apply it in Play mode. I hope it’s just me who can’t do it and this is actually possible.

It’s really weird that it can be applied to Viewport, but not Play mode. Like wth are they thinking? Just makes the development environment completely different from the final build…?

I asked on Unreal forum too. I hope there is a solution.

In the display where you have it set to ACEScg this should instead be set to linear sRGB/Rec709. The sky will then not be teal.

Ok, but even if I did that, in the play mode Unreal still uses its default tonemapping right? I’m a bit confused. What’s the point to apply OCIO transform to viewport only, without affecting the actual game?

I don’t believe it was ever meant to be a runtime thing, possibly due to GPU performance since not everything can be baked out to a LUT. It’s still beneficial for the viewport because it allows you to see it active before rendering in the MRQ or setting up nDisplay and Composure.

Oh… so it’s only for film-making, not games.

Just for the completeness, do I need to turn of Unreal’s default tonemapping to use OCIO? Because (correct me if I’m wrong) Utility - Linear - sRGB to Output - sRGB is already works as a tonemapping and I don’t want to tonemap twice?

As far as I know, when you use OCIO, you replace unreal tone-mapping with whatever you’ve set in OCIO.

If it is nDisplay, then it is runtime and game! We use daily with it and it works well. I would need to check for regular game execution, worst case if it is not directly doable, the engine can be patched to do so.

UE4 was never intended to be colour managed, so the current OCIO integration is the bare minimum.

Cheers,

Thomas

2 Likes

I think if Composure can use OCIO, then we can just capture the camera render in a Composure Element, ACEScg → Output sRGB on it, and output it to the Player Viewport? But last time I tried it, I couldn’t even make Composure output looks the same as Editor Viewport (with built-in settings, no OCIO) so I’m afraid to touch Composure again…

I found this. I’m not sure what this option does tho… does it mean Unreal can actually work in a complete ACEScg workflow…?!

@raincolee I found a solution to your issue. This is also to those who may found this thread while Googling :slightly_smiling_face: (thank you for opening this thread)

In the docs link you’ve attached Color Management with OpenColorIO there’s another doc pointing out exactly what you need: Convert Colors in the Viewport and Play in Editor mode.

Basically, all you have to do is to add a Blueprint to enable ACES in PLAY mode. Docs itself doesn’t show how to do it with a default third or first-person attached camera. This is how you can do it with a default third-person template:

Unfortunately, I can’t add multiple images and links because I’m a new user, which is odd.

Documenting/sharing about procedural environment art: Houdini, Substance, Unreal :sparkles: YouTube: @DimitryZub

2 Likes