Kiszolgálóméretek
Az Azure Remote Rendering két kiszolgálókonfigurációban érhető el: Standard
és Premium
.
Primitív korlátok
A primitív egy háromszög (háromszög alakú hálókban) vagy egy pont (pontfelhő-hálókban). A háromszög alakú hálók pontfelhőkkel együtt hozhatók létre, ebben az esetben a munkamenet összes pontjának és háromszögének összegét a korláthoz kell számítani.
Standard méret
A távoli renderelés méretkiszolgálóval Standard
legfeljebb 20 millió primitív jelenettel rendelkezik. Ha a "Standard" kiszolgálóméretű renderelő eléri ezt a korlátozást, a renderelést egy ellenőrzőtábla-háttérre váltja:
Prémium méret
A mérettel rendelkező Premium
távoli renderelés nem kényszeríti ki a maximális korlátot, de a teljesítmény csökkenhet, ha a tartalom meghaladja a szolgáltatás renderelési képességeit. Továbbá a háromszög alakú hálók esetében (és a pontfelhőktől eltérően) a rendelkezésre álló grafikus memória mennyisége kemény korlát. A grafikus memória mennyiségét nem lehet adott számú háromszögre leképezni, mert számos tényező függ a forráshálótól és a beállításoktól:
- a textúrák száma és felbontása,
- az egyedi geometria mennyisége és a hálón belüli részhálós példányosítás (lásd még az instancing objektumokat),
- használandó csúcsfolyamok ,
- a mérethez
Premium
használt renderelési kompozíciós mód.
Pontfelhők esetében nincs valós korlát, mivel a pontfelhő-objektumok az adatstreamelési megközelítést használják. Az adatstreamelés során a renderelő automatikusan kezeli a grafikus kártyán lévő memóriakeretet a tényleges látható geometria alapján.
A kiszolgáló méretének megadása
A kiszolgálókonfiguráció kívánt típusát a renderelési munkamenet inicializálási idején kell megadni. Futó munkameneten belül nem módosítható. Az alábbi példakódok azt a helyet mutatják be, ahol a kiszolgálóméretet meg kell adni:
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
}
});
}
A PowerShell-példaszkriptekhez meg kell adni a kívánt kiszolgálóméretet a arrconfig.json
fájlban:
{
"accountSettings": {
...
},
"renderingSessionSettings": {
"vmSize": "<standard or premium>",
...
},
Hogyan értékeli ki a renderelő a primitívek számát?
A korlátozási teszthez figyelembe vett primitívek száma a renderelőnek ténylegesen átadott primitívek (háromszögek és pontok) száma. Ez a geometria általában az összes példányosított háló összege, de vannak kivételek is. A következő geometria nem szerepel a szövegben:
- Olyan betöltött modellpéldányok, amelyek teljesen kívül vannak a nézet frustum nézetén.
- A hierarchikus állapot felülbírálási összetevővel láthatatlanná vált modellek vagy modellrészek.
Ennek megfelelően meg lehet írni egy olyan alkalmazást, amely több modellt tölt be úgy, hogy standard
a primitív darabszám megközelíti az egyes modellek korlátját. Ha az alkalmazás egyszerre csak egyetlen modellt jelenít meg, a ellenőrzőtábla nem aktiválódik.
A primitívek számának meghatározása
Egy modell vagy jelenet primitívjeinek számát kétféleképpen határozhatja meg, amelyek hozzájárulnak a standard
konfiguráció méretének költségvetési korlátjába:
- A modellkonvertálási oldalon kérje le a konvertálási kimeneti json-fájlt, és ellenőrizze a bejegyzést az
numFaces
inputStatistics szakaszban. Ez a szám háromszög alakú hálókban lévő háromszögek számát, illetve pontfelhőkben lévő pontok számát jelöli. - Ha az alkalmazás dinamikus tartalommal foglalkozik, a renderelt primitívek száma futásidőben dinamikusan lekérdezhető. Használjon teljesítményértékelési lekérdezést, és ellenőrizze a két tag
PolygonsRendered
ésPointsRendered
PerformanceAssessment
a szerkezet értékeinek összegét. APolygonsRendered
/PointsRendered
mező akkor van beállítva,bad
amikor a renderelő eléri a primitív korlátozást. A checkerboard háttér mindig elhalványul némi késéssel, hogy a felhasználói művelet végrehajtható legyen az aszinkron lekérdezés után. A felhasználói művelet például elrejtheti vagy törölheti a modellpéldányokat.
Árképzés
Az egyes konfigurációtípusok díjszabásának részletes lebontásához tekintse meg a Távoli renderelés díjszabási oldalát.