0

我有一个问题,我想在我的场景中加载大量对象的事件,所以当我开始加载这些场景时,我的 Vive/vr 进入合成器屏幕,它在我的主场景和合成器屏幕之间有点闪烁,直到我场景加载完成。

所以我的问题是如何停止这种闪烁,我很乐意调用合成器屏幕,直到我的加载完成然后它切换回我的主场景或类似的东西可以解决这个闪烁问题

我一直在寻找如何自己调用合成器屏幕,或者如何在我的加载过程中但在静脉中停止调用它。

任何帮助将不胜感激,因为我没有想法。

谢谢...

4

2 回答 2

0

默认情况下,每当应用挂起时,SteamVR 都会淡入网格。当然,将帧速率保持在通常会触发此问题的阈值以上当然是理想的,但在许多情况下(例如加载场景),世界上的所有优化都无法阻止 Unity 挂起足够长的时间来触发此问题。

幸运的是,可以完全禁用此行为!SteamVR Settings -> Developer -> Do not fade to grid when app hangs. 也可以在文件中更改此设置,该steamvr.vrsettings文件可以使用vrpathreg.exe. 在那里,设置steamvr.doNotFadeToGrid为true。此文件也由 SteamVR 设置界面修改,但通过文件直接访问它允许您从游戏安装程序中修改目标设备的设置,例如。

不幸的是,目前还没有办法针对每个应用程序进行配置,这意味着用户机器上所有 SteamVR 应用程序的行为都将被关闭。调整此设置需要注意的是,低帧速率会使用户感到恶心,而淡入网格功能可以防止这种情况发生。但是,根据我的经验,只要您遵循性能最佳实践,该功能对沉浸感的影响远远超过帧率的暂时下降,并且如果帧率无论如何都会下降,这种淡入网格功能会导致强烈的闪烁就像低帧率一样不舒服。

于 2019-09-26T08:04:29.453 回答
0

闪烁和显示合成器屏幕通常是由于 Unity 无法渲染帧造成的。我相信您将能够在 Profiler 选项卡中找到导致延迟的对象(如果有的话)。我假设“加载”对象是指实例化它们。如果是这样,这取决于:

a) 如果您实例化多个相同的对象 - 查看GPU 实例化方法

b)如果对象不是唯一的,您可以尝试:

  1. 异步加载场景
  2. 将所有(停用的)对象放在第一个场景上,而不是实例化或加载新场景,只需激活它们。这只会增加初始加载时间。

您可以使用的另一件事是:

  • 单通道立体渲染

  • 仅使用或大部分使用烘焙闪电——这将显着提高性能(这让我可以实时显示具有超过 4000 万个顶点的模型的 VR 场景)

于 2019-01-18T13:01:48.580 回答