10 常见问题解答

问题1:为何项目打包后会出现Android系统的虚拟按钮?

答: 勾选:项目设置→平台→Android→APKPackaging→Enable FullScreent Immersive on KitKat and above devices:

_images/8.1.png

图10.1 勾选Enable FullScreent Immersive on KitKat and above devices

问题2:如何提高游戏的帧率?

答: 提高游戏帧率可从以下两方面入手:

1 ) 关闭环境光遮蔽。 现阶段VR项目对全局光照的要求不是太高,可关闭环境光遮蔽,做法是打开项目设置,进入引擎/Rendering/Default Setting,取消勾选Ambient Occlusion与Ambient Occlusion Static Fraction:

_images/8.2.png

图10.2 取消使用环境光遮蔽

2 ) 关闭Mobile HDR。 做法是打开项目设置,进入引擎/Rendering/Mobile,取消勾选Mobile HDR:

_images/8.3.png

图10.3 取消勾选Mobile HDR

问题3:如何减小游戏包的大小?

答: 减小游戏包的大小可从3个方面入手:

a ) 在项目设置/项目/打包中勾选Create compressed cooked packages,压缩烘焙过的内容;

b ) 取消勾选未使用的Plugins;

c ) 删除内容浏览器中没有用到的资源。

_images/8.4.png

图10.4 压缩烘焙过的内容

问题4:如何优化显示效果?

答: 打开项目设置,进入引擎/Rendering/Mobile,调整Mobile MSAA,可有效减少锯齿,提升显示效果。倍数越高优化效果越好,但是会增加性能消耗,影响帧率。

_images/8.5.png

图10.5 修改Mobile MSAA

问题5:项目命名或路径中文,为什么使用PicoVRSDK plugin出现打包失败?

答: UE4不支持中文,请不要使用中文和中文目录。

问题6:项目命名为test,为什么使用PicoVRSDK plugin出现打包失败?

答: test在UE中是命令关键字见下图,建议项目命名避开UE命令关键字。

_images/8.7.png

图10.6 UE命令关键字

问题7: 为什么游戏中G2/G2-4K手柄会时而闪烁一下?

答: 因为UE4游戏逻辑与渲染不在同一线程,Epic为平滑运动控制器的移动,默认会在渲染之前再更新一次运动控制器的位置和姿态,但这种做法也产生了模型时而闪烁一下的bug。要想规避这种闪烁,只需选中Motion Controller组件,在其细节面板中勾选Disable Low Latency Update:

_images/8.8.png

图10.7 Disable Low Latency Update

问题8:为什么建一个默认场景的demo帧率不高?

答: 不建议使用UE4提供的默认格子地形,该地形比较复杂,包含噪点、法线等的处理,不适用于VR。

问题9:如何启用SRGB编码?

答: 在Project Settings->Plugins->PicoMobile里勾选启用Use SRGB Encoding。

_images/9.9.1.png

图10.8 Use SRGB Encoding

问题10:如何修改应用刷新率?

答: 可以在Project Settings->Plugins->PicoMobile中,通过Display Refresh Rates枚举属性修改。

_images/9.10.1.png

图10.9 Display Refresh Rates

问题11:不知道MSAA应该设置多少,或者为什么我在引擎中设置MSAA2或者8最后都变成4倍?

答: 若不知道MSAA应该设置多少,可以在Project Settings->Plugins->PicoMobile中启用Use Recommended MSAA Level,启用后将根据设备设置推荐MSAA值。需注意,目前启用推荐MSAA将会屏蔽Project Settings->Engine->Rendering->Mobile中MobileMSAA值。如希望自定义MSAA值,请不要启用该属性,该配置属性默认关闭。

_images/9.11.1.png

图10.10 Use Recommended MSAA Level

问题12: PicoNeo上要达到比较流畅的效果,对帧率及场景有什么要求?

答:

帧率:Pico Neo 3 上 需要保证稳定在72帧。

场景:

同屏模型三角面片控制在100万以内

同屏模型顶点数控制在100万以内

优化方法举例:

在保证显示的情况下减少模型面片顶点数量

尽量共用材质,动画

尽量使用压缩纹理格式

尽可能少的使用灯光特效等

尽量使用静态批处理

脚本优化,减少不必要内存,计算等资源消耗