Sdílet prostřednictvím


Velikosti serverů

Azure Remote Rendering je k dispozici ve dvou konfiguracích serveru: Standard a Premium.

Primitivní limity

Primitivní je buď jeden trojúhelník (v trojúhelníkových sítích), nebo jeden bod (v bodových cloudových sítích). Triangular meshes can be instantiated with point clouds, in which case the sum of all points and triangles in the session are counted to limit.

Standardní velikost

Vzdálené vykreslování se serverem Standard velikosti má maximální velikost scény 20 milionů primitiv. Když vykreslování na standardním serveru dosáhne tohoto omezení, přepne vykreslování na pozadí kontrolního panelu:

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

Velikost Premium

Vzdálené vykreslování s Premium velikostí nevynucuje pevné maximum, ale výkon může být snížený, pokud váš obsah překročí možnosti vykreslování služby. Kromě toho pro trojúhelníkové sítě (a na rozdíl od mračna bodů) je dostupné množství grafické paměti pevný limit. Není možné mapovat množství grafické paměti na určitý počet trojúhelníků, protože existuje mnoho přispívajících faktorů, které závisí na zdrojové síti a nastavení:

Pro bodové cloudy neexistuje žádný skutečný limit, protože prostředky cloudových bodů používají přístup ke streamování dat. Při streamování dat renderer automaticky spravuje rozpočet paměti na grafické kartě na základě skutečné viditelné geometrie.

Zadejte velikost serveru.

Požadovaný typ konfigurace serveru se musí zadat při inicializaci relace vykreslování. Nejde ho změnit v rámci spuštěné relace. Následující příklady kódu ukazují místo, kde musí být zadána velikost serveru:

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

V příkladu skriptů PowerShellu musí být v souboru zadána arrconfig.json požadovaná velikost serveru:

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

Jak renderer vyhodnotí počet primitiv

Počet primitiv, které jsou považovány za test omezení, jsou počet primitiv (trojúhelníky a body), které jsou skutečně předány rendereru. Tato geometrie je obvykle součtem všech instancí součinů, ale existují i výjimky. Následující geometrie není zahrnuta:

  • Načtené instance modelu, které jsou plně mimo zobrazení frustum.
  • Modely nebo části modelu, které jsou přepnuty na neviditelné, pomocí komponenty přepsání hierarchického stavu

Proto je možné napsat aplikaci, která cílí na standard velikost, která načítá více modelů s primitivním počtem blízko limitu pro každý model. Pokud aplikace zobrazuje jenom jeden model najednou, checkerboard se neaktivuje.

Určení počtu primitiv

Existují dva způsoby, jak určit počet primitiv modelu nebo scény, které přispívají k limitu standard rozpočtu velikosti konfigurace:

  • Na straně převodu modelu načtěte výstupní soubor JSON převodu a zkontrolujte numFaces položku v části inputStatistics. Toto číslo označuje počet trojúhelníků v trojúhelníkových sítích a počtu bodů v bodových cloudech.
  • Pokud vaše aplikace pracuje s dynamickým obsahem, může se počet vykreslovaných primitiv dynamicky dotazovat během běhu. Použijte dotaz posouzení výkonu a zkontrolujte součet hodnot ve dvou členech PolygonsRendered a PointsRendered ve struktuřePerformanceAssessment. Pole PolygonsRendered / PointsRendered je nastaveno, když bad renderer dosáhne primitivního omezení. Pozadí kontrolního panelu se vždy ztratí s určitým zpožděním, aby se zajistilo, že po tomto asynchronním dotazu může být provedena akce uživatele. Akce uživatele může například skrýt nebo odstranit instance modelu.

Ocenění

Podrobný rozpis cen jednotlivých typů konfigurace najdete na stránce s cenami vzdáleného vykreslování.

Další kroky