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:
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
ochPointsRendered
i structenPerformanceAssessment
. FältetPolygonsRendered
/PointsRendered
anges tillbad
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.