Search Unity

One of the new features in Unity 5.5 is linear rendering on Android and iOS. With linear rendering, you’re sure that the inputs, the outputs and the computation are in the correct color space. The brightness of the final image will go linearly with the amount of light in the scene. That means more consistent lighting across your scenes and assets.

With the alternative, ‘Gamma’ Color Space, brightness will quickly begin to turn to white as values go up, which is bad for image quality — you can see an example below:

image01

With Unity 5.5, linear rendering is now available on Android and iOS. On Android, linear rendering requires OpenGL ES 3 graphics API which represents 61.1% of the Android devices. On iOS, linear rendering requires Metal graphics API which represents 71.1% of the iOS devices.

Due to the major differences between linear and gamma rendering, there is no fallback to gamma rendering because the assets would need to be reauthored. This means that a game using linear rendering won’t run on Android and iOS devices that only support OpenGL ES 2.0.

We rely on filters on Google Play to ensure that games, that uses linear rendering and couldn’t run properly on OpenGL ES 2.0 only devices, won’t be listed in Google Play. We proceed similarly on iOS relying on iOS Keys to filter linear rendering games on the iOS store.

Additionally, Unity 5.3 introduced support for the OpenGL ES graphics API in the Windows editor and standalone to improve mobile developers iteration time. We worked with a number of GPU vendors to enable linear rendering with OpenGL ES on Windows. This functionality is already available on GeForce 376.09 drivers, thanks to Piers Daniell from NVIDIA for his help.

To have a look at linear rendering, we made a simple test scene for mobile and desktop with correct assets that you can freely download here.

screenshot-2016-12-07-15-22-21

Currently, WebGL 2.0 doesn’t support linear rendering in Unity, but we have been working with the Khronos WebGL group and the Chrome team to provide such feature in a future release.

22 replies on “Linear Rendering Support on Android and iOS”

Hi there,

I tried using the feature but my build keeps crashing as immediately when I click on the build-button.
I build on a pc, player settings for iOS are as followed prepared:

— Color Space: Linear
— Auto Graphics API: unchecked
— Graphics APIs: Metal
— Target minimum iOS Version: 8.0

Any ideas? Can I somehow

So MacOS Metal supports that or not as Metal MacOS is very similar feature wise to Metal IOS?
Also what about new 5.6 beta Vulkan support? supports linear rendering or will need some extension too?
thanks..

Is plan to change the default settings to linear (as default). And deferred! Or add a shortcut button while creating a new Project.

Is there a performance difference between linear and gamma rendering and how big would that be for the provided example scene on various iOS and Android devices?

I assume you did lots of performance tests while implementing linear rendering on those platforms, an overview of those results would be appreciated :)

> With linear rendering, you’re sure that the inputs, the outputs and the computation are in the correct color space.

But if you want the outputs in gamma, you have to use some color correction filter, right? Can it be done with the new PostProcessing stack?

Comments are closed.