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.