C# 使用全息透镜2在平面上绘制
我想在HoloLens2应用程序上实现一个功能,允许用户在用户触摸的每个部分的特定表面上绘制/绘制 所以我们有一个平面,当我在平面上移动我的手时,我手下面的斑点应该是彩色的。 记住HoloLens的处理能力有限,调用C# 使用全息透镜2在平面上绘制,c#,unity3d,hololens,mrtk,windows-mixed-reality,C#,Unity3d,Hololens,Mrtk,Windows Mixed Reality,我想在HoloLens2应用程序上实现一个功能,允许用户在用户触摸的每个部分的特定表面上绘制/绘制 所以我们有一个平面,当我在平面上移动我的手时,我手下面的斑点应该是彩色的。 记住HoloLens的处理能力有限,调用Texture.Apply()每一帧都是不可接受的,我如何实现这样的功能 我试着用手触摸来代替,但没有成功 我变了 private void Start() { if (EyeTarget != null)
Texture.Apply()
每一帧都是不可接受的,我如何实现这样的功能
我试着用手触摸来代替,但没有成功
我变了
private void Start()
{
if (EyeTarget != null)
{
EyeTarget.WhileLookingAtTarget.AddListener(OnLookAt);
}
}
public void OnLookAt()
{
if (UseLiveInputStream && (EyeTarget != null) && (EyeTarget.IsLookedAt))
{
DrawAtThisHitPos(EyeTrackingTarget.LookedAtPoint);
}
}
到
并使用IMixedRealityTouchHandler
。但是全息透镜是极度滞后和崩溃的
如何解决这个问题有什么建议吗
HoloLens的处理能力有限,调用纹理。Apply()每帧都是不可接受的
正如Unity文档中所说,Apply
是一个潜在的昂贵操作,因此您需要在Apply
调用之间更改尽可能多的像素。在DemoVisualizer中,它使用的解决方案是组件提供的DeliveTimeInSec
属性,该属性定义了用户需要持续查看目标以通过驻留激活进行选择的持续时间(以秒为单位),持续时间值默认为0.8s。它避免了Apply方法的过度使用
因此,您可以参考EyeTrackingTarget的这种做法,以改善混合现实应用程序性能不佳的帧速率。这非常明智。谢谢你的建议,我一定会用的!
public void OnTouchUpdated(HandTrackingInputEventData eventData)
{
DrawAtThisHitPos(eventData.InputData);
}