【问题标题】:Loading Multiple Scenes Additive Makes Compositor kicks in (Steam VR Unity)加载多个场景添加剂使合成器发挥作用(Steam VR Unity)
【发布时间】:2019-01-18 07:03:12
【问题描述】:

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

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

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

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

谢谢...

【问题讨论】:

    标签: c# unity3d htc-vive steamvr


    【解决方案1】:

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

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

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

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

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

    • 单通道立体渲染

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

    【讨论】:

    • 谢谢...我想您了解我的英语并且知道我所说的在合成器和场景视图之间闪烁是什么意思。对象没有问题我想问题在于它们的场景很多而且我正在异步加载它们所以统一没有时间渲染帧其次我有一堆独特的实例对象但我不能全部放置可能是基础场景,因为它会很重并且不会启动
    • 您的电脑似乎无法运行此功能,尤其是在 VR 中。你能分享你的配置文件和/或你的分析器的屏幕吗?您必须在 Profiler 中查找并检查哪个组件是瓶颈,我假设这将是 Camera.render,因为您的场景可能包含太多几何图形,建议在 VR 中您的场景包含最多数百万个顶点,可以在 i7 gtx1050 机器上渲染。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多