Dela via


Serverstorlekar

Azure Remote Rendering är tillgängligt i två serverkonfigurationer: Standard och Premium.

Primitiva gränser

En primitiv är antingen en enda triangel (i triangulära nät) eller en enda punkt (i punktmolnnät). Triangulära nät kan instansieras tillsammans med punktmoln, i vilket fall summan av alla punkter och trianglar i sessionen räknas mot gränsen.

Standardstorlek

Fjärrrendering med Standard storleksserver har en maximal scenstorlek på 20 miljoner primitiver. När återgivningen på en standardserverstorlek når den här begränsningen växlar den återgivningen till en brädbakgrund:

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

Premiumstorlek

Fjärrrendering med Premium storlek framtvingar inte ett hårt maxvärde, men prestanda kan försämras om innehållet överskrider renderingsfunktionerna i tjänsten. För triangulära nät (och till skillnad från punktmoln) är dessutom den tillgängliga mängden grafikminne en hård gräns. Det går inte att mappa mängden grafikminne till ett visst antal trianglar, eftersom det finns många bidragande faktorer som är beroende av källnätet och inställningarna:

  • antal och upplösning av texturer,
  • mängden unik geometri jämfört med instansiering av nätundernät inuti nätet (se även instancing-objekt),
  • hörnströmmar som används,
  • återgivningskompositionsläget som används med Premium storleken.

För punktmoln finns det ingen verklig gräns eftersom punktmolnstillgångar använder dataströmningsmetoden. Med dataströmning hanterar renderaren automatiskt minnesbudgeten på grafikkortet, baserat på den faktiska synliga geometrin.

Ange serverstorleken

Önskad typ av serverkonfiguration måste anges vid återgivningssessionens initieringstid. Det går inte att ändra den i en session som körs. Följande kodexempel visar den plats där serverstorleken måste anges:

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 powershell-exempelskript måste önskad serverstorlek anges i arrconfig.json filen:

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

Hur renderaren utvärderar antalet primitiver

Antalet primitiver som beaktas för begränsningstestet är antalet primitiver (trianglar och punkter) som faktiskt skickas till renderaren. Den här geometrin är vanligtvis summan av alla instansierade nät, men det finns också undantag. Följande geometri ingår inte:

  • Inlästa modellinstanser som ligger helt utanför vyn frustum.
  • Modeller eller modelldelar som växlas till osynliga med hjälp av komponenten för åsidosättning av hierarkiskt tillstånd.

Därför är det möjligt att skriva ett program som riktar sig mot storleken standard som läser in flera modeller med ett primitivt antal nära gränsen för varje enskild modell. När programmet bara visar en enskild modell i taget utlöses inte checkerboarden.

Så här bestämmer du antalet primitiver

Det finns två sätt att fastställa antalet primitiver för en modell eller scen som bidrar till budgetgränsen för konfigurationsstorleken standard :

  • På modellkonverteringssidan hämtar du json-filen för konverteringsutdata och kontrollerar numFaces posten i avsnittet inputStatistics. Det här talet anger triangelantalet i triangulära nät respektive antalet punkter i punktmoln.
  • Om ditt program hanterar dynamiskt innehåll kan antalet renderade primitiver efterfrågas dynamiskt under körningen. Använd en prestandautvärderingsfråga och sök efter summan av värdena i de två medlemmarna PolygonsRendered och PointsRendered i structen PerformanceAssessment . Fältet PolygonsRendered / PointsRendered anges till bad när återgivningen når den primitiva begränsningen. Checkerboard-bakgrunden är alltid intonad med viss fördröjning för att säkerställa att användaråtgärder kan vidtas efter den här asynkrona frågan. Användaråtgärder kan till exempel dölja eller ta bort modellinstanser.

Prissättning

En detaljerad uppdelning av prissättningen för varje typ av konfiguration finns på sidan Priser för fjärrrendering.

Nästa steg