在全息 Space 中使用 XAML

Using XAML in Holographic Space

我目前正在尝试将一些用户界面添加到我的全息应用程序中。 我整个应用都是用DirectX写的,不会用Unity

应用程序的主要功能是在全息中显示 3D 体积 space 并与旋转和平移等手势进行交互。

改进交互的一个想法是创建一些浮动 windows,以添加高级操作和功能。

在一个完美的世界中,我想在我的浮动 windows(这将是浮动平面,或广告牌)中绘制一个用 XAML 编写的界面或由一些 [=29= 直接渲染器].

所以基本上我想将 XAML 元素渲染到 Texture2D 中,我尝试执行以下操作:

await CoreApplication.MainView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () =>
{
      RenderTargetBitmap renderBitmap = new RenderTargetBitmap();
      await renderBitmap.RenderAsync(PanoramicImage);
      XamlPixel = await renderBitmap.GetPixelsAsync();
});

问题是,RenderTargetBitmap.RenderAsync 正在无限期阻塞,我无法访问 GetPixelsAsync 函数。

你们有什么想法吗?

提前致谢。

我在 quite 工作了一段时间,在 directx 中我自己的 uwp hololens 应用程序。 我们用 direct2d 解决了 "UI-Problem"...您可以将自制纹理渲染到渲染目标,然后将其用作 ui 元素的 shaderressourceview。我认为即使使用调度程序,"now" 也无法在全息 space 中呈现 xaml 控件。所以我认为您需要编写自己的 ui 元素。

Microsoft 描述的方式,使用 xaml 控件的唯一方法是在全息 space 和普通模式之间切换:

Microsoft Viewmodel