Unity 2017.2新功能尝鲜:支持线性渲染的WebGL 2.0
Unity 2017.2将包含一项重要的新功能——支持线性渲染的WebGL 2.0。线性渲染能够确保输入、输出以及计算都处于正确的颜色空间。在这种渲染模式下,最终图像的亮度会依据场景中的光照数量呈线性变化,这使得场景和资源的光照效果更加自然。
上图展示了线性渐变(左)与眼睛所观察到的渐变(右),需要注意中间灰色部分与渐变边缘的融合情况。
此前,我们在Unity 5.5中为Android平台的OpenGL ES 3.0以及iOS平台的Metal添加了对线性渲染的支持。而在即将发布的Unity 2017.2中,线性渲染将支持以下平台:
- PC端:Windows、Mac OS X与Linux
- 游戏主机:Xbox One、PlayStation 4
- 移动端:Android平台的OpenGL ES 3.0及Vulkan图形API、iOS平台的Metal图形API
- 网页端:WebGL 2.0
线性渲染功能不仅强大,而且十分有趣。借助该功能,开发者可以使用Unity后处理特效资源包,其中包含抗锯齿(Temporal AA)、景深、颜色分级等特效,能够在WebGL平台实现令人惊艳的视觉效果。
然而,使用线性渲染也需要注意一些性能问题。我们与Khronos WebGL团队合作对WebGL 2.0进行了扩展,添加了对sRGB DXT纹理压缩格式的支持。如果所使用的网页浏览器不支持该项功能,Unity将对sRGB DXT格式的纹理进行解压缩,这会带来显著的带宽消耗。
目前,支持WebGL 2.0线性渲染的浏览器包括Google Chrome和Firefox。
在最新的Unity 2017.2 Beta版中已经包含了WebGL 2.0。开发者可以下载WebGL线性渲染示例工程,或者直接下载构建的WebGL版本,从而查看WebGL 2.0中的线性渲染在网页浏览器中的实际效果。