Udostępnij za pośrednictwem


Rozmiary serwerów

Usługa Azure Remote Rendering jest dostępna w dwóch konfiguracjach serwera: Standard i Premium.

Limity pierwotne

Element pierwotny to pojedynczy trójkąt (w trójkątnych siatkach) lub pojedynczy punkt (w siatkach chmury punktowej). Trójkątne siatki można utworzyć razem z chmurami punktowymi, w tym przypadku suma wszystkich punktów i trójkątów w sesji jest liczona względem limitu.

Rozmiar standardowy

Renderowanie zdalne z serwerem Standard o rozmiarze ma maksymalny rozmiar sceny wynoszący 20 milionów elementów pierwotnych. Gdy program renderujący w rozmiarze serwera w warstwie Standardowa osiągnie to ograniczenie, przełącza renderowanie na tło tablicy kontrolnej:

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

Rozmiar Premium

Renderowanie zdalne z rozmiarem Premium nie wymusza twardej maksymalnej wydajności, ale wydajność może być obniżona, jeśli zawartość przekracza możliwości renderowania usługi. Ponadto w przypadku trójkątnych siatk (i w przeciwieństwie do chmur punktowych) dostępna ilość pamięci graficznej jest twardym limitem. Nie można mapować ilości pamięci graficznej na określoną liczbę trójkątów, ponieważ istnieje wiele czynników, które zależą od siatki źródłowej i ustawień:

W przypadku chmur punktowych nie ma rzeczywistego limitu, ponieważ zasoby chmury punktowej używają podejścia do przesyłania strumieniowego danych. W przypadku przesyłania strumieniowego danych renderator automatycznie zarządza budżetem pamięci na karcie graficznej na podstawie rzeczywistej widocznej geometrii.

Określanie rozmiaru serwera

Żądany typ konfiguracji serwera musi być określony podczas inicjowania sesji renderowania. Nie można jej zmienić w ramach uruchomionej sesji. W poniższych przykładach kodu pokazano miejsce, w którym należy określić rozmiar serwera:

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

W przypadku przykładowych skryptów programu PowerShell żądany rozmiar serwera musi być określony wewnątrz arrconfig.json pliku:

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

Jak moduł renderowania ocenia liczbę elementów pierwotnych

Liczba elementów pierwotnych, które są brane pod uwagę w przypadku testu ograniczenia, to liczba elementów pierwotnych (trójkątów i punktów), które są rzeczywiście przekazywane do modułu renderowania. Ta geometria jest zwykle sumą wszystkich wystąpień siatki, ale istnieją również wyjątki. Nie uwzględniono następującej geometrii:

  • Załadowane wystąpienia modelu, które są w pełni poza widokiem frustum.
  • Modele lub części modelu, które są przełączane na niewidoczne, przy użyciu składnika zastępowania stanu hierarchicznego.

W związku z tym można napisać aplikację, która jest przeznaczona dla rozmiaru standard , który ładuje wiele modeli z liczbą pierwotną zbliżoną do limitu dla każdego pojedynczego modelu. Gdy aplikacja wyświetla tylko jeden model w danym momencie, tablica kontrolna nie jest wyzwalana.

Jak określić liczbę elementów pierwotnych

Istnieją dwa sposoby określania liczby elementów pierwotnych modelu lub sceny, które przyczyniają się do limitu budżetu rozmiaru standard konfiguracji:

  • Po stronie konwersji modelu pobierz plik JSON konwersji i sprawdź numFaces wpis w sekcji inputStatistics. Ta liczba określa liczbę trójkątów w trójkątnych siatkach i odpowiednio liczbę punktów w chmurach punktów.
  • Jeśli aplikacja ma do czynienia z zawartością dynamiczną, liczba renderowanych elementów pierwotnych może być badana dynamicznie w czasie wykonywania. Użyj zapytania oceny wydajności i sprawdź sumę wartości w dwóch elementach członkowskich PolygonsRendered i PointsRendered w PerformanceAssessment strukturę. Pole PolygonsRendered / PointsRendered jest ustawione na bad wartość , gdy program renderowany osiągnie ograniczenie pierwotne. Tło tablicy kontrolnej jest zawsze zanikane z pewnym opóźnieniem, aby upewnić się, że po tym asynchronicznym zapytaniu można wykonać akcję użytkownika. Akcja użytkownika może na przykład ukrywać lub usuwać wystąpienia modelu.

Ceny

Aby uzyskać szczegółowy podział cen dla każdego typu konfiguracji, zapoznaj się ze stroną cennika usługi Remote Rendering.

Następne kroki