Servergrößen

Azure Remote Rendering ist als zwei Serverkonfigurationen verfügbar: Standard und Premium.

Grenzwerte für Grundtypen

Ein Grundtyp ist entweder ein einzelnes Dreieck (in Dreiecksnetzen) oder ein einzelner Punkt (in Punktwolkennetzen). Dreiecksnetze können zusammen mit Punktwolken instanziiert werden. In diesem Fall werden die Summe aller Punkte und Dreiecke in der Sitzung auf den Grenzwert angerechnet.

Standardgröße

Remote Rendering mit einem Server der Größe Standard hat eine maximale Szenengröße von 20 Millionen Grundtypen. Wenn der Renderer auf einem Server mit der Größe „Standard“ diesen Grenzwert erreicht, schaltet er das Rendering in einen Schachbretthintergrund um:

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

Premium-Größe

Remote Rendering mit der Größe Premium erzwingt kein hartes Maximum, die Leistung kann jedoch beeinträchtigt werden, wenn Ihre Inhalte die Renderingkapazität des Diensts überschreiten. Darüber hinaus ist für dreieckige Gitter (und im Gegensatz zu Punktwolken) die verfügbare Menge an Grafikspeicher ein hartes Limit. Es ist nicht möglich, die Menge des Grafikspeichers einer bestimmten Anzahl von Dreiecken zuzuordnen, da es viele faktoren gibt, die von dem Quellgitter und den Einstellungen abhängen:

Für Punktwolken gibt es keine echte Grenze, da Punktcloudressourcen den Datenstreaming-Ansatz verwenden. Beim Datenstreaming verwaltet der Renderer automatisch das Speicherbudget für die Grafik Karte, basierend auf der tatsächlichen sichtbaren Geometrie.

Angeben der Servergröße

Der gewünschte Serverkonfigurationstyp muss bei der Initialisierung der Renderingsitzung angegeben werden. Er kann nicht während einer laufenden Sitzung geändert werden. Die folgenden Codebeispiele zeigen, wo die Servergröße angegeben werden muss:

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
        }
    });
}

Für die PowerShell-Beispielskripts muss die Servergröße in der Datei arrconfig.json angegeben werden:

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

Auswerten der Anzahl der Grundtypen durch den Renderer

Die Anzahl von Grundtypen, die für den Einschränkungstest berücksichtigt werden, entspricht der Anzahl der Grundtypen (Dreiecke und Punkte), die tatsächlich an den Renderer übermittelt werden. Diese Geometrie ist in der Regel die Summe aller instanziierten Netze, es gibt jedoch auch Ausnahmen. Folgende Geometrie ist nicht eingeschlossen:

Dementsprechend ist es möglich, eine Anwendung zu schreiben, die auf die standard-Größe abzielt und mehrere Modelle mit einer Grundtypanzahl nahe des Grenzwerts für das einzelne Modell lädt. Wenn die Anwendung jeweils nur ein Modell anzeigt, wird das Schachbrett nicht ausgelöst.

Bestimmen der Anzahl der Grundtypen

Es gibt zwei Möglichkeiten, die Anzahl der Grundtypen eines Modells oder einer Szene zu ermitteln, die zum Budgetlimit der standard-Konfigurationsgröße beitragen:

  • Rufen Sie auf der Modellkonvertierungsseite die JSON-Datei der Konvertierungsausgabe ab, und überprüfen Sie den numFaces-Eintrag im Abschnitt inputStatistics (Eingabestatistik). Diese Zahl gibt die Anzahl von Dreiecken in Dreiecksnetzen bzw. die Anzahl der Punkte in Punktwolken an.
  • Wenn die Anwendung dynamische Inhalte verarbeitet, kann die Anzahl gerenderter Grundtypen während der Laufzeit dynamisch abgefragt werden. Verwenden Sie eine Leistungsbewertungsabfrage, und überprüfen Sie die Summe der Werte in den beiden Elementen PolygonsRendered und PointsRendered in der PerformanceAssessment-Struktur. Das PolygonsRendered / PointsRendered Feld wird festgelegt bad , wenn der Renderer auf die Grundtypeinschränkung trifft. Der Schachbretthintergrund wird stets mit einiger Verzögerung ausgeblendet, um sicherzustellen, dass nach dieser asynchronen Abfrage eine Benutzeraktion durchgeführt werden kann. Eine Benutzeraktion kann beispielsweise Modellinstanzen ausblenden oder löschen.

Preise

Eine detaillierte Aufschlüsselung der Preise für die einzelnen Konfigurationstypen finden Sie auf der Seite Remote Rendering – Preise.

Nächste Schritte