10 常见问题解答¶
问题1:为何项目打包后会出现Android系统的虚拟按钮?¶
答: 勾选:项目设置→平台→Android→APKPackaging→Enable FullScreent Immersive on KitKat and above devices:
图10.1 勾选Enable FullScreent Immersive on KitKat and above devices
问题2:如何提高游戏的帧率?¶
答: 提高游戏帧率可从以下两方面入手:
1 ) 关闭环境光遮蔽。 现阶段VR项目对全局光照的要求不是太高,可关闭环境光遮蔽,做法是打开项目设置,进入引擎/Rendering/Default Setting,取消勾选Ambient Occlusion与Ambient Occlusion Static Fraction:
图10.2 取消使用环境光遮蔽
2 ) 关闭Mobile HDR。 做法是打开项目设置,进入引擎/Rendering/Mobile,取消勾选Mobile HDR:
图10.3 取消勾选Mobile HDR
问题3:如何减小游戏包的大小?¶
答: 减小游戏包的大小可从3个方面入手:
a ) 在项目设置/项目/打包中勾选Create compressed cooked packages,压缩烘焙过的内容;
b ) 取消勾选未使用的Plugins;
c ) 删除内容浏览器中没有用到的资源。
图10.4 压缩烘焙过的内容
问题4:如何优化显示效果?¶
答: 打开项目设置,进入引擎/Rendering/Mobile,调整Mobile MSAA,可有效减少锯齿,提升显示效果。倍数越高优化效果越好,但是会增加性能消耗,影响帧率。
图10.5 修改Mobile MSAA
问题5:项目命名或路径中文,为什么使用PicoVRSDK plugin出现打包失败?¶
答: UE4不支持中文,请不要使用中文和中文目录。
问题7: 为什么游戏中G2/G2-4K手柄会时而闪烁一下?¶
答: 因为UE4游戏逻辑与渲染不在同一线程,Epic为平滑运动控制器的移动,默认会在渲染之前再更新一次运动控制器的位置和姿态,但这种做法也产生了模型时而闪烁一下的bug。要想规避这种闪烁,只需选中Motion Controller组件,在其细节面板中勾选Disable Low Latency Update:
图10.7 Disable Low Latency Update
问题8:为什么建一个默认场景的demo帧率不高?¶
答: 不建议使用UE4提供的默认格子地形,该地形比较复杂,包含噪点、法线等的处理,不适用于VR。
问题9:如何启用SRGB编码?¶
答: 在Project Settings->Plugins->PicoMobile里勾选启用Use SRGB Encoding。
图10.8 Use SRGB Encoding
问题10:如何修改应用刷新率?¶
答: 可以在Project Settings->Plugins->PicoMobile中,通过Display Refresh Rates枚举属性修改。
图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值,请不要启用该属性,该配置属性默认关闭。
图10.10 Use Recommended MSAA Level
问题12: PicoNeo上要达到比较流畅的效果,对帧率及场景有什么要求?¶
答:
帧率:Pico Neo 3 上 需要保证稳定在72帧。
场景:
同屏模型三角面片控制在100万以内
同屏模型顶点数控制在100万以内
优化方法举例:
在保证显示的情况下减少模型面片顶点数量
尽量共用材质,动画
尽量使用压缩纹理格式
尽可能少的使用灯光特效等
尽量使用静态批处理
脚本优化,减少不必要内存,计算等资源消耗