【问题标题】:Rendertexture slows down unity?渲染纹理会减慢统一速度?
【发布时间】:2019-04-04 23:00:38
【问题描述】:

我对这里出了什么问题感到困惑,但我确信问题出在我的渲染纹理/视频播放器上——我可能有 20 个 iPhone 游戏对象,我需要制作的动画 .mov 文件在后面播放屏幕。

为此,我按照教程使用渲染纹理(现在大约有 8 个)连接视频播放器,然后将渲染纹理插入材质中的发射槽​​:

即使使用 2 个渲染纹理立方体,游戏也非常滞后,这里是统计数据

我尝试关闭深度,但不知道这里出了什么问题 - 我的电影文件仅在 KB 范围内。如何播放视频而不卡顿?

【问题讨论】:

  • 打开 Profiler,开始游戏,等待它变得迟钝,然后暂停游戏并向我们展示 cpu 使用时间线中的内容
  • 从我过去对VideoPlayer API 的实验来看,它一次只能处理一个视频。您尝试使用多个VideoPlayer 加载多个视频,您将遇到延迟或内存问题,尤其是在移动设备上。您的选择可能是使用资产商店中的 expinse Video API 或尝试不使用 RenderTexture。尝试使用RawImage 组件来显示视频。
  • @Programmer 有道理,谢谢 - 所以你会推荐 RawImage 组件?还是您有特定的资产?
  • 是的,我推荐 RawImage,这就是我使用的。有关示例,请参阅here。如果需要,您可以随时将 Canvas 设置为 World Space。

标签: c# unity3d video render


【解决方案1】:

基于 CPU 渲染每帧需要 848 毫秒,您显然在 CPU 上遇到了瓶颈。如果您想以每秒 30 帧的速度运行,则需要使 CPU 时间低于每帧 33 毫秒。

由于添加视频播放器后 CPU 时间明显变差,因此视频编解码器似乎对您的 CPU 造成了沉重负担。考虑尽可能降低视频质量,尤其是降低分辨率。

如果这不起作用,您可能需要使用动画精灵表实现基于着色器的解决方案。这对你来说是更多的工作,但它会在引擎中更有效地运行。

【讨论】:

    猜你喜欢
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    相关资源
    最近更新 更多