开发者分享优化技巧,将PC VR内容移植到Quest
查看引用和消息源请点击:venturebeat
Quest能够在不妨非有限计算和内存asset的情况下提供引人入胜的VR体验
(映维网 2019年06月20日)对于将PC内容移植到Oculus Quest,Oculus曾表示这更多是格式化美术asset而非优化代码。第三方Quest内容开发商Immerse曾在五周时间内实现了美术asset的再格式化技巧,并将最初为PC开发的企业培训应用程序带到这款VR一体机。现在,他们介绍了关于这一过程的技巧经验。
Immerse产品负责人Justin Parry解释说,他们自2019年年初就一直在捣鼓Quest开发套件,而公司安排他们将为系留VR开发的DHL培训应用带到无线VR头显Quest。Parry说道:“由于客户业务的性质,培训设置在一个巨大光亮的仓库环境中。我们的任务十分简单:令它支持Quest,同时尽可能维持PC版体验的质感。”
尽管Quest的房间规模(和仓库规模)内向外追踪非常适合这种应用程序,但缺乏高端PC的性能是一个问题。你可以通过标准的Unity设置瞬间实现一定asset的再格式化,但需要付出保真度方面的代价。所以,Parry认为重写Unity的设置,并采用其他多项技巧非常有必要。
例如,Unity的标准着色器质量设置默认为“低”,所以他们的法线贴图无法使用。Parry建议应该从“中”或“高”开始,这样你就可以预览所有内容,然后开始优化asset。Immerse同时注意到,简单的纹理格式改动会令清晰的Rift纹理在Quest中显得模糊,但采用GPU原生格式(如RGBA 32位)通常可以解决问题,而针对单个纹理的额外调整则能够提供更多的帮助。
团队不是简单地减少多边形数量以降低Quest asset的复杂性,Parry表示越少的对象对这款头显越好。换句话说,只需将一只箱子、一个桶子、一块地板、以及一张桌子放到一个看起来相同的对象中,同时不需要加载四个对象以获取所有数据,你就可以提高性能。尽管开发者不能只将场景中的每个物品转换为单个对象,因为这会阻止Quest剔除当前未被查看的对象,但创建相关物品的集群可以使情况大为改观。
Immerse同时通过Texture Atlas和UI Sprite Atlas来减少加载时间和绘制调用,他们将Sprite纹理大小设置成512像素或更低,并尽可能重用纹理以节省内存。为了最大化近距离的Sprite视觉质量,Parry建议禁用近距Sprite的Mip映射,但强烈建议为所有其他纹理启用这一点,因为它非常接近于抗锯齿功能。近距离和远距离的纹理可能需要单独优化,但最终视觉效果会更好。
上图:即便为场景预先烘培照明,伪影都会保留在自动更新的纹理中,所以你可以使用Photoshop将其清理。
也许最大的变化在于照明。Immerse指出,除了“绝对必要”的情况之外,丢弃实时照明至关重要。开发者应该转而依靠预烘培照明,而这是Unity可以处理的过程。微调分辨率,填充,照明贴图的大小,以及调整每个对象在照明贴图中的比例,为高度可见物品设置更高优先级,在一般物品设置更低的优先级,这一切将会带来最佳的结果。然后你可以通过Photoshop处理纹理,并使它们到达你的设想效果。
从Immerse的经验中可以看出,Quest能够在不浪费有限计算资源和内存asset的情况下提供引人入胜的VR体验,而且与抛弃大型对象或缩减逼真对象的传统方法而言,对物体,纹理,Sprite和照明进行调整的效果相差不大。