Unity Hololens 2 优化处理方案 整理

首先

1.Edit > Project Settings > Quality   级别选最低 Very Low  (根据情况选择)

2.Window > Rendering > Lighting Settings > Realtime Global Illumination . Baked Global Illumination  关闭全局实时光和烘培光

3.(16可能会导致的问题:Mask失效,模型透明看不见,shader未知BUG)在此面板的深度格式设置下选择16 位深度,尤其是 HoloLens 开发。与 24 位相比,选择 16 位将显著降低带宽要求,因为需要移动/处理的数据更少

4.避免 GetComponent(string)
使用 GetComponent() 时,会产生少量不同的重载。 必须始终使用基于类型的实现,切勿使用基于字符串的搜索重载。 在场景中按字符串进行搜索,比按类型进行搜索的开销要高得多。
(正确)Component GetComponent(Type type)
(正确)T GetComponent<T>()
(错误)Component GetComponent(string)>

5.建议在初始化时 缓存 对所有相关组件和 GameObject 的引用,因为重复函数调用(如 GetComponent() 和 Camera.main)相对于存储指针的内存成本更昂贵。 . Camera.main 仅在后台使用 FindGameObjectsWithTag() ,但而它会以很高的开销在场景图中搜索具有“MainCamera”标记的 camera 对象

6.某些 Unity API 虽然很有用,但其执行开销可能很高。 其中的大部分 API 都涉及到在整个场景图中搜索 GameObject 的匹配列表。 一般情况下,若要避免这些操作,可以缓存引用,或者实现 GameObject 的管理器组件,以在运行时跟踪引用。应该消除 SendMessage() 和 BroadcastMessage() 的所有开销。

尽量少使用的API: GameObject.SendMessage()

                         GameObject.BroadcastMessage()

                         Object.Find()

                         Object.FindWithTag()

                         Object.FindObjectOfType()

                         Object.FindObjectsOfType()

                         Object.FindGameObjectsWithTag()

                         Object.FindGameObjectsWithTag()

7.要避免装箱操作  

列如错误做法:bool myVar = true; object boxedMyVar = myVar;

请确保使用强类型列表(例如 List<int>),而不是 List<object> 或 ArrayList

8.删除空Update

在应用程序中保留以下代码看似没有妨碍,尤其是因为每个 Unity 脚本都要通过此 Update 方法自动初始化,但这些空回调的开销可能非常高。 Unity 在 UnityEngine 代码与应用程序代码之间的非托管和托管代码边界之间来回操作。 通过此桥梁进行上下文切换会产生相当高的开销,即使没有要执行的操作。 如果应用具有数百个 GameObject 以及包含空重复性 Unity 回调的组件,则此操作特别容易造成问题。

9.避免使用网格碰撞体,其开销要比基元碰撞体高出太多。

最终测试完成删除所有删除不再需要的 Debug.Log() 调用,因为它们仍会在应用的所有生成版本中执行

10.使用对象池

11.如果全息应用通常需要大量的内存,请考虑在加载阶段(例如,在演示加载或过渡屏幕时)调用 System.GC.Collect()

 详情请查看官方地址:针对 Unity 的性能建议 - Mixed Reality | Microsoft Docs

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: UnityHololens2是两个不同的技术,但可以结合使用。Unity是一个跨平台的游戏引擎和开发工具,可以用来创建虚拟现实(VR)和增强现实(AR)应用程序。而Hololens2是微软推出的一款AR智能眼镜设备,能够将虚拟内容与现实世界进行融合显示。 而"深度相机"是Hololens2上的一个重要部件,用于感知和捕捉周围环境的深度信息。它通过红外光源和红外相机的组合,实现对场景中物体的深度感知和距离测量。这些深度信息可以用来进行空间定位、虚拟物体与真实物体的交互、手势识别等功能。 Unity提供了与Hololens2深度相机集成的功能和工具,开发者可以利用Unity的编程接口和资源来访问和处理Hololens2深度相机的数据。比如,可以使用Unity的ARFoundation插件,来访问Hololens2深度相机的深度图像,并将其与真实世界的图像进行融合,从而实现更加逼真的AR体验。 通过UnityHololens2深度相机的结合,开发者可以创造出更加交互性和真实感的AR应用。例如,在游戏中可以实现更好的物体检测和碰撞效果,或者在实时AR演示中可以精确地与场景中的物体进行互动。这种结合还有利于开发者完成虚拟物体在现实世界中的精准定位和跟踪,为用户提供更加沉浸式的增强现实体验。 总之,UnityHololens2深度相机是两个相互协作的技术,可以一起使用来实现更加出色和逼真的增强现实应用。这种结合为开发者提供了更多创造和创新的空间,让用户可以享受到更加令人印象深刻的AR体验。 ### 回答2: Unity Hololens 2是一种增强现实(AR)头戴式设备,具有内置的深度相机。深度相机是使用红外(IR)光的传感器,它可以感知和测量物体之间的距离,并生成真实场景的三维模型。 利用Hololens 2的深度相机,开发者可以创建逼真的增强现实应用程序。深度相机可以提供更准确的环境感知,通过生成点云数据和深度图像,捕捉周围环境的准确形状和位置。这使得在AR场景中添加虚拟物体更加准确且逼真。 深度相机还可以用于实现手势和交互控制。通过识别用户的手部和手指在三维空间中的位置和动作,Hololens 2可以允许用户通过手势操作虚拟对象或与应用程序进行交互。这种无需物理控制器的交互方式可以增加用户的沉浸感和自由度。 除了增强现实应用程序,Hololens 2的深度相机还可以用于计算机视觉和场景理解等领域。通过与Unity引擎结合,开发者可以使用深度相机的数据进行虚拟现实、人机交互、感知建模和智能辅助等应用的开发。 总体而言,Hololens 2的深度相机是一项强大的技术,它为开发者提供了更高级别的环境感知和交互控制功能,使得AR应用程序在可视化、交互和体验上更具真实感和创新性。 ### 回答3: Unity Hololens 2 是一种增强现实(AR)头戴式设备,它配备了一台深度相机。深度相机利用时间飞行(Time-of-Flight)技术,通过发送和接收红外光信号,并精确测量其返回时间来实现深度感知。 与普通相机不同的是,深度相机可以捕捉到场景中物体的距离信息,而不仅仅是颜色和纹理。这意味着Unity Hololens 2可以更精确地将虚拟物体与真实世界的物体进行交互,从而实现更逼真的增强现实体验。 深度相机可以帮助Unity Hololens 2实现空间映射和环境感知。它可以创建一个三维点云地图,将真实世界中的物体转换为虚拟环境中的可识别对象。通过实时捕捉深度数据,Hololens 2可以实现更准确的空间理解,从而为用户提供更好的AR体验。 除了用于空间映射和环境感知,深度相机还可以用于手势识别、空中操作等交互方式。通过实时的深度信息,Hololens 2可以识别用户的手势,并根据手势进行相应的操作。这一功能可以极大地提高用户与AR内容的互动性和自由度。 总之,Unity Hololens 2配备的深度相机是一项强大的技术,它使得AR体验更加真实、交互更加自然。通过空间映射、环境感知和手势识别等功能,深度相机为Hololens 2提供了更多的应用场景和可能性,使用户能够以前所未有的方式与虚拟世界进行互动。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野区捕龙为宠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值