Unity 5.5新功能:Android和iOS平台的线性渲染支持
支持Android和iOS平台的线性渲染是Unity 5.5的一个重要新特性。线性渲染可以确保输入、输出和计算都在正确的颜色空间。最终图像的亮度将随着场景中的光量呈线性变化。通俗点说,也就是场景和资源的照明更加一致。
另外一个选项是使用“Gamma”颜色空间(即伽马渲染),即亮度将随颜色值增大而迅速变为白色,这将有损图像质量 - 示例如下:
Unity 5.5中的线性渲染已支持Android和iOS平台。 在Android上,线性渲染需要OpenGL ES 3图形API,现已覆盖了市场上61.1%的Android设备。 在iOS上,线性渲染需要Metal图形API,而相应iOS设备的占比为71.1%。
由于线性和伽马存在巨大的差异,从线性渲染是不能回退到伽马渲染的,因为资源需要重新制作。这意味着使用线性渲染的游戏,将无法在仅支持OpenGL ES 2.0的Android和iOS设备上运行。
我们借助Google Play上的过滤器,这样因为使用线性渲染而导致不能在OpenGL ES 2.0设备上正常运行的游戏,就不会出现在Google Play列表里面。对于iOS我们也采取了对应的措施,借助iOS Keys来过滤iOS商店中使用线性渲染的游戏。
此外,Unity 5.3在Windows编辑器及PC端中引入了对OpenGL ES图形API的支持,以改善移动开发人员的迭代时间。 我们与多家GPU厂商合作,在Windows上使用OpenGL ES实现线性渲染。 此功能已经在GeForce 376.09驱动程序上可用,感谢NVIDIA的Piers Daniell提供帮助。
为了查看线性渲染的效果,我们使用合适的资源为移动端和PC端做了一个简单的测试场景,可以通过点击[阅读原文]来下载。
目前,WebGL 2.0暂不支持Unity中的线性渲染,但我们正与Khronos WebGL组和Chrome团队共同努力,以便在未来的版本中提供此功能。