Linear Rendering Support on Android and iOS

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:

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.

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.

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..

It very much depends on where is the performance bottleneck and this depends on GPU architectures too.

However, generally speaking, our performance tests shown basically no performance differences. I think the better case was on iOS Metal shown some slight performance gain in linear thanks to the use of GPU hardware sRGB conversion (basically for free) instead of shader instruction to do sRGB conversions that we do sometimes in gamma mode.