微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 无缝异步场景和纹理加载 – Unity和GearVR

我在使用三星S6的GearVR上的Unity(5.3.4p1)遇到两个主要问题:

1)异步场景加载.是否有任何变化我可以在背景中加载新场景而不会看到小的冻结?场景有~60k三角形,使用了几个4k纹理和~10个其他2k纹理.
当这个场景加载时,有多个短暂的冻结.我知道我可以通过淡出黑色然后开始加载级别来避免这种情况.但是需要大约10秒钟,用户可能会因为看到黑色屏幕而长时间使用VR耳机而感到困惑.

2)使用WWW类下载的图像创建纹理.我在另一个场景中使用360 4k图像显示在圆顶上.当我尝试在运行时下载纹理(4k,PNG或JPG)时,它是异步完成的.但是当我使用时,Unity会冻结2-3秒:

Texture2D myTexture = www.texture;

除了使用下载的字节并在背景上使用非Unity算法解压缩JPG或PNG然后将创建的rgb值加载到新纹理之外,有没有其他选项可以避免这种情况吗?
在Flickr VR应用程序中可以看到平滑纹理加载的好例子,但我怀疑他们使用Unity来创建这个应用程序.

这两个问题也出现在Oculus Rift上,但由于PC性能要好得多,因此不太明显.

通常,我希望使用Unity在Gear VR中实现平滑的加载体验.这有点可能吗?

最佳答案
这个问题本应作为两个单独的问题发布,但仍然是:

AD 1:添加一个小的预加载器场景,将其呈现给用户并加载主场景.时间扭曲应该仍然有效,因此可以看到头部方向的变化.

AD 2:Android设备无法呈现jpeg或png.他们必须将它们解压缩到非常大的未压缩纹理,再次加载到内存然后才渲染.这需要大量的ram和时间.

你可以做的是拥有原生DXT或ETC格式的纹理,并自己将它们加载为纹理.我有同样的问题,这加快了我的纹理加载几乎10倍.他们也使用更少的内存.

请注意,下载大小会更大,并且根据纹理格式,您可能必须为不同平台提供不同的文件.

原文地址:https://www.jb51.cc/android/429972.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐