繁体   English   中英

无缝异步场景和纹理加载 - Unity&GearVR

[英]Seamless async scene and textures loading - 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倍。 他们也使用更少的内存。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM