Share via


Servergrootten

Azure Remote Rendering is beschikbaar in twee serverconfiguraties: Standard en Premium.

Primitieve limieten

Een primitieve is ofwel één driehoek (in driehoekige meshes) of één punt (in puntwolk-meshes). Driehoekige meshes kunnen samen met puntwolken worden geïnstantieerd. In dat geval wordt de som van alle punten en driehoeken in de sessie meegeteld tegen de limiet.

Standaardgrootte

Remote Rendering met Standard grootteserver heeft een maximale scènegrootte van 20 miljoen primitieven. Wanneer de renderer op de standaardservergrootte deze beperking bereikt, wordt de weergave overgeschakeld naar een achtergrond van het controlebord:

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

Premium-grootte

Remote Rendering met Premium grootte dwingt geen harde maximum af, maar de prestaties kunnen afnemen als uw inhoud de renderingmogelijkheden van de service overschrijdt. Bovendien is de beschikbare hoeveelheid grafisch geheugen voor driehoekige meshes (en in tegenstelling tot puntwolken) een vaste limiet. Het is niet mogelijk om de hoeveelheid grafische geheugen toe te wijzen aan een specifiek aantal driehoeken, omdat er veel factoren zijn die afhankelijk zijn van de bron-mesh en -instellingen:

Voor puntclouds is er geen echte limiet omdat puntcloudassets gebruikmaken van de benadering voor gegevensstreaming. Met gegevensstreaming beheert de renderer automatisch het geheugenbudget op de grafische kaart, op basis van de werkelijke zichtbare geometrie.

De servergrootte opgeven

Het gewenste type serverconfiguratie moet worden opgegeven tijdens de initialisatietijd van de renderingsessie. Het kan niet worden gewijzigd binnen een actieve sessie. In de volgende codevoorbeelden ziet u de plaats waar de servergrootte moet worden opgegeven:

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

Voor het voorbeeld van PowerShell-scripts moet de gewenste servergrootte worden opgegeven in het arrconfig.json bestand:

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

Hoe de renderer het aantal primitieven evalueert

Het aantal primitieven dat voor de beperkingstest wordt overwogen, is het aantal primitieven (driehoeken en punten) dat daadwerkelijk wordt doorgegeven aan de renderer. Deze geometrie is doorgaans de som van alle geïnstantieerde meshes, maar er zijn ook uitzonderingen. De volgende geometrie is niet inbegrepen:

  • Geladen modelexemplaren die volledig buiten het weergave frustum vallen.
  • Modellen of modelonderdelen die zijn overgeschakeld naar onzichtbare onderdelen, met behulp van het hiërarchische onderdeel overschrijven.

Daarom is het mogelijk om een toepassing te schrijven die is gericht op de standard grootte die meerdere modellen laadt met een primitief aantal dicht bij de limiet voor elk model. Wanneer in de toepassing slechts één model tegelijk wordt weergegeven, wordt het controlebord niet geactiveerd.

Het aantal primitieven bepalen

Er zijn twee manieren om het aantal primitieven van een model of scène te bepalen die bijdragen aan de budgetlimiet van de standard configuratiegrootte:

  • Haal aan de kant van de modelconversie het JSON-bestand voor conversie-uitvoer op en controleer de numFaces vermelding in de sectie inputStatistics. Dit getal geeft het aantal driehoeken aan in driehoekige meshes en het aantal punten in puntwolken.
  • Als uw toepassing te maken heeft met dynamische inhoud, kan het aantal gerenderde primitieven dynamisch worden opgevraagd tijdens runtime. Gebruik een query voor prestatiebeoordeling en controleer op de som van de waarden in de twee leden PolygonsRendered en PointsRendered in de PerformanceAssessment struct. Het PolygonsRendered / PointsRendered veld wordt ingesteld op bad wanneer de renderer de primitieve beperking bereikt. De achtergrond van het controlebord is altijd met enige vertraging vervaagd om ervoor te zorgen dat gebruikersactie kan worden uitgevoerd na deze asynchrone query. Gebruikersactie kan bijvoorbeeld modelexemplaren verbergen of verwijderen.

Prijzen

Raadpleeg de pagina met prijzen voor Remote Rendering voor een gedetailleerde specificatie van de prijzen voor elk type configuratie.

Volgende stappen