3D scene need Linear but UI need Gamma

update: including UniversalRP (URP) workaround at bottom!

Having this problem?
https://forum.unity.com/threads/gamma-colors-for-ui-and-linear-for-scene.529923/

20190530_problem.jpg

Looking for a way to make only the UI matches to what is designed in Photoshop? Don’t want artists to change any workflow(possible solution for artists please refer to this comment) because you are in the middle of development? Try this.

Workaround Approach:

The approach is to do the gamma <-> linear conversion in an image effect shader. We let the UI contents to blend in Linear, and then convert the result back to Gamma again.

20190530_fix.jpg

To solve it in Builtin Render Pipeline:

Download: https://drive.google.com/open?id=1m-Bi-nbsZWr4oh52Phmz0iTGz0WGH0sK

The project contains the shader and scripts.
Then mind these settings when you apply the tool to your project:

20190530_Linear3DGammaUI.jpg

To solve it in Universal Render Pipeline (7.2.0+), in Unity 2019.3 version:

Download: https://drive.google.com/open?id=1mZXO2rYTCml86miJlhna1cm5QJ1i60ww

The project contain GammaUIFix assets. These are what you need to include into your own project. And then apply following settings in your own project:

LinearGammaURPFix.jpg

Drawback – There is no free lunch:
There might be small performance impact as this is a Graphics blit of full screen image effect.

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 )

Facebook photo

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

Connecting to %s