サーバーのサイズ

Azure Remote Rendering は、StandardPremium の 2 つのサーバー構成で使用できます。

プリミティブの制限

プリミティブは、単一の三角形 (三角形メッシュ) または単一の点 (点群メッシュ) のいずれかです。 三角形メッシュは、点群と一緒にインスタンス化できます。その場合、セッション内のすべての点と三角形の合計が制限に対してカウントされます。

標準サイズ

サーバーのサイズが Standard の Remote Rendering には、最大シーン サイズが 2,000 万プリミティブになります。 'Standard' のサーバー サイズでレンダラーがこの制限に達すると、レンダリングがチェッカーボードの背景に切り替えられます。

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

プレミアム サイズ

サイズが Premium の Remote Rendering に最大のハード制限は適用されませんが、コンテンツがサービスのレンダリング機能を超えた場合はパフォーマンスが低下する可能性があります。 さらに、三角形メッシュの場合 (およびポイント クラウドとは異なり)、使用可能なグラフィックス メモリの量はハード制限です。 ソース メッシュと設定に依存する要因が多数存在するため、グラフィックス メモリの量を特定の数の三角形にマップすることはできません。

ポイント クラウドの場合、ポイント クラウド資産はデータ ストリーミング アプローチを使用するため、実際の制限はありません。 データ ストリーミングでは、レンダラーは、実際に表示されるジオメトリに基づいて、グラフィックス カードのメモリ予算を自動的に管理します。

サーバーのサイズを指定する

レンダリング セッションの初期化時に、望ましいサーバー構成の種類を指定する必要があります。 実行中のセッション内では変更できません。 次のコード例は、サーバーのサイズを指定する必要がある場所を示しています。

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 サイズを対象とするアプリケーションを作成することができます。 アプリケーションで一度に 1 つのモデルのみが表示される場合、チェッカーボードはトリガーされません。

プリミティブの数を確認する方法

standard の構成サイズの予算制限に寄与するモデルまたはシーンのプリミティブの数を確認するには、次の 2 つの方法があります。

  • モデル変換側で、変換出力 json ファイルを取得し、inputStatistics セクションnumFaces エントリを調べます。 この数値は、三角形メッシュの三角形の数と、点群内の点の数をそれぞれ示します。
  • アプリケーションで動的なコンテンツが処理されている場合、レンダリングされるプリミティブの数は実行時に動的に照会できます。 パフォーマンス評価クエリを使用し、PerformanceAssessment 構造体の 2 つのメンバー PolygonsRenderedPointsRendered の値の合計を確認します。 フィールドは PolygonsRendered / PointsRendered 、レンダラーがプリミティブ制限に bad 達したときに設定されます。 この非同期クエリの後でユーザーが操作を実行できるようにするため、チェッカーボードの背景のフェードインでは常に遅延が発生します。 たとえば、ユーザーは、モデルのインスタンスを非表示にしたり削除したりすることができます。

価格

構成の種類ごとの価格の詳細な内訳については、「Remote Rendering の価格」のページを参照してください。

次のステップ