在全息 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 和普通模式之间切换:
我目前正在尝试将一些用户界面添加到我的全息应用程序中。 我整个应用都是用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 和普通模式之间切换: