你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

服务器大小

Azure 远程渲染有两种服务器配置:StandardPremium

基元限制

基元是单个三角形(在三角形网格中)或单个点(在点云网格中)。 三角网格可以与点云一起实例化,在这种情况下,会话中所有点和三角形的总和都计入限制。

标准大小

使用 Standard 大小服务器的远程渲染的最大场景大小为 2 千万个基元。 在“标准”服务器大小上的渲染器达到此限制时,它会将渲染切换为黑白方格图案背景:

Screenshot shows a grid of black and white squares with a Tools menu.

高级版大小

使用 Premium 大小的远程渲染不会强制实施硬性最大值,但如果内容超出该服务的渲染能力,则性能可能会下降。 此外,对于三角网格(与点云不同),可用的图形内存量是硬性限制。 无法将图形内存量映射到特定数量的三角形,因为有许多因素取决于源网格和设置:

对于 点云 ,没有真正的限制,因为点云资产使用 数据流式处理方法。 使用数据流式处理,呈现器根据实际可见几何图形自动管理图形卡上的内存预算。

指定服务器大小

必须在渲染会话初始化时指定所需服务器配置类型。 在正在运行的会话中无法更改该类型。 下面的代码示例显示了必须指定服务器大小的位置:

async void CreateRenderingSession(RemoteRenderingClient client)
{
    RenderingSessionCreationOptions sessionCreationOptions = default;
    sessionCreationOptions.Size = RenderingSessionVmSize.Standard; // or  RenderingSessionVmSize.Premium

    CreateRenderingSessionResult result = await client.CreateNewRenderingSessionAsync(sessionCreationOptions);
    if (result.ErrorCode == Result.Success)
    {
        RenderingSession session = result.Session;
        // do something with the session
    }
}
void CreateRenderingSession(ApiHandle<RemoteRenderingClient> client)
{
    RenderingSessionCreationOptions sessionCreationOptions;
    sessionCreationOptions.Size = RenderingSessionVmSize::Standard; // or  RenderingSessionVmSize::Premium

    client->CreateNewRenderingSessionAsync(sessionCreationOptions, [](Status status, ApiHandle<CreateRenderingSessionResult> result) {
        if (status == Status::OK && result->GetErrorCode() == Result::Success)
        {
            ApiHandle<RenderingSession> session = result->GetSession();
            // do something with the session
        }
    });
}

对于示例 PowerShell 脚本,必须在 arrconfig.json 文件中指定所需服务器大小:

{
  "accountSettings": {
    ...
  },
  "renderingSessionSettings": {
    "vmSize": "<standard or premium>",
    ...
  },

渲染器如何计算基元数量

进行限制测试时考虑的基元的数量是实际传递到渲染器的基元(三角形和点)的数量。 此几何图形通常是所有已实例化的网格的总和,但也有例外。 以下几何图形未包括在内

  • 完全在视锥外的已加载的模型实例。
  • 使用分层状态替代组件切换为不可见的模型或模型部件。

因此,可以针对 standard 大小编写一个应用程序,用于加载基元计数接近每一个模型的限制的多个模型。 在该应用程序一次只显示一个模型时,不会触发黑白方格。

如何确定基元的数量

对于会影响 standard 配置大小的预算限制的模型或场景,若要确定它们的基元数量,可以使用两种方法:

  • 在模型转换端,检索转换输出 json 文件,并检查 inputStatistics 节中的 numFaces 条目。 此数字分别表示三角网格中的三角形计数和点云中的点数。
  • 如果你的应用程序要处理动态内容,则可以在运行时动态查询渲染的基元的数量。 使用性能评估查询并检查 PerformanceAssessment 结构中 PolygonsRenderedPointsRendered 两个成员的值之和。 当呈现器达到基元限制时,该PolygonsRendered / PointsRendered字段设置为。bad 黑白方格图案背景在淡入时始终会带有一些延迟,以确保可以在此异步查询后执行用户操作。 例如,用户操作可能会是隐藏或删除模型实例。

定价

若要详细了解每种配置类型的定价明细,请参考远程渲染定价页。

后续步骤