Azure 远程渲染的工作原理

已完成

Azure 远程渲染由多个组件组成,这些组件又包含多个进程。 在本单元中,你将了解 Azure 远程渲染中的以下组件以及在每个组件中运行的基础进程。

组件 说明
转换 准备好用于 Azure 远程渲染的 3D 资产。
渲染会话 提供客户端设备与执行远程渲染的服务器之间的连接。
客户端 SDK 在 HoloLens 2 等设备上合并本地和远程全息影像。

转换

转换过程会准备用于 Azure 远程渲染的 3D 资产,该过程是在运行时尽可能高效地进行渲染所必需的。 通过将模型上传到 Azure Blob 存储来开始此过程。

注意

目前,Azure 远程渲染可以转换 Filmbox (FBX) 和图形语言传输格式模型格式。

上传模型后,执行转换过程。 转换完成后,Azure 会将转换后的模型写回 Blob 存储。

提示

未主动渲染的模型在 Blob 存储中保持不变。

渲染会话

转换后,必须在客户端设备和将渲染转换后的 3D 模型的服务器之间建立会话。 此过程包含三个步骤:

  1. 请求会话。
  2. 连接到会话以执行远程渲染。
  3. 结束会话。

什么是会话?

Azure 远程渲染的工作原理是,将复杂的渲染任务卸载到云中。 这些渲染任务必须由特定的云服务器来执行。 这些服务器具有渲染复杂 3D 模型所需的 GPU 类型。 你不能直接使用任意服务器,因此必须保留使用具有所需功能的服务器。 可通过请求会话来实现此目的。

会话包括以下组件:

  • 用于保留服务器供你使用的租用请求。 在租用请求期间,可以选择要在其上运行的服务器大小。 可以选择“标准”或“高级”。 无法在正在运行的会话期间更改此大小。

    重要

    使用标准大小服务器的远程渲染的最大场景大小为 2000 万个多边形。 使用高级大小服务器的远程渲染不会强制执行硬性最大值,但是,如果内容超出该服务的渲染能力,则性能可能会下降。

  • 用于加载和操作模型的所有命令。

  • 渲染完成后释放云服务器的租约结束请求。

会话由三个基本阶段组成,如下表所述:

阶段 说明
会话启动 在此阶段中,Azure 远程渲染将代表你创建一个会话。 你将请求服务器大小并为会话指定 Azure 区域。 然后,该会话将标记为“正在启动”。 找到合适的服务器后,Azure 会将相应大小的 VM 复制到服务器上,以创建 Azure 远程渲染主机。 VM 启动后,会话状态将转换为“就绪”。
会话连接 会话状态为“就绪”后,可以将设备连接到该会话。 连接后,设备将发送命令以加载和修改 3D 模型。
会话结束 不再需要该会话时,应将其停止。 如果不手动停止会话,则其会在租用时间到期时自动关闭。

渲染模式

在渲染时,服务器会将渲染后的帧发送回在设备上本地运行的应用程序。 下表描述了两种渲染模式:

“模式” 说明
TileBasedComposition 在此模式下,每个涉及的 GPU 都将渲染特定图块,以便在屏幕上显示。 在 Azure 将其作为视频帧发送到客户端设备之前,主 GPU 使用这些图块构成最终图像。 此模式的渲染质量略优于 DepthBasedComposition 模式。
DepthBasedComposition 在此模式下,每个涉及的 GPU 都将以全屏分辨率进行渲染,但只渲染一部分网格。 主 GPU 上的最终图像构成有助于确保根据深度信息正确合并各个部分。

注意

连接到会话时指定远程渲染模式。

客户端 SDK

帧到达设备后,它们会与图像中可能包含的任何本地全息影像合并。 这提供了一种真正的混合渲染体验,使你能够混合并匹配远程和本地全息影像。 这意味着你只需渲染具有更多多边形的远程对象。

提示

将菜单和更小的模型等内容保留在本地。