You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hololens 2中Unity使用WebCamTexture渲染帧率过低问题求助

Hololens 2中WebCamTexture渲染至RawImage帧率骤降的优化思路

在Unity 2020.3.27f1 + MRTK2环境下,将WebCamTexture渲染到RawImage以显示Hololens 2内置摄像头画面时,功能正常但帧率降至15-20fps(场景无其他内容),禁用该纹理后帧率恢复至60fps。使用的代码如下:

using UnityEngine;
using UnityEngine.UI;

public class PlayMovieTextureOnUI : MonoBehaviour
{
    WebCamTexture tex;

    public RawImage rawimage;

    void Awake()
    {
        WebCamDevice device = WebCamTexture.devices[0];
        tex = new WebCamTexture(device.name);
        rawimage.texture = tex;

        tex.Play();
    }
}

已尝试的解决方法:更换Unity版本、修改纹理缩放、调整WebCamTexture的requestedFPS、高度与宽度。

优化思路

  • 避免直接绑定WebCamTexture到RawImage:WebCamTexture的实时帧更新会挤占主线程资源,建议在后台线程将摄像头帧数据拷贝到独立的RenderTexture,再将该RenderTexture绑定到RawImage,减少主线程的纹理处理负担。
  • 改用MRTK的CameraCaptureHelper:MRTK2内置的CameraCaptureHelper针对Hololens硬件做了优化,能更高效地处理摄像头数据,替代原生WebCamTexture可降低硬件资源占用。
  • 简化摄像头特性:禁用摄像头的自动对焦、自动曝光等非必要特性,设置为固定参数,减少硬件计算开销。
  • 优化纹理格式:将WebCamTexture的格式设置为Hololens原生支持的TextureFormat.BGRA32(避免格式转换),或在无需Alpha通道时使用TextureFormat.RGB24,降低纹理处理的性能消耗。
  • 调整UI渲染设置:将RawImage所在Canvas设置为World Space渲染模式,关闭RawImage的Raycast Target(无需交互时),减少UI系统的额外开销。
  • 确认摄像头权限优先级:确保应用在前台运行时获取最高优先级的摄像头访问权限,避免系统因后台限制降低摄像头帧率。

内容的提问来源于stack exchange,提问作者Oliver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 06:35:45