Udostępnij za pośrednictwem


Azure Remote Rendering — informacje

Uwaga

Należy pamiętać, że usługa Azure Remote Rendering (ARR) zostanie wycofana 30 września 2025 r. Więcej szczegółów można znaleźć tutaj.

Azure Remote Rendering (ARR) to usługa, która umożliwia renderowanie wysokiej jakości, interaktywnej zawartości 3D w chmurze i przesyłanie strumieniowe jej w czasie rzeczywistym do urządzeń, takich jak HoloLens 2.

Diagram przedstawiający przykład renderowanego, interaktywnego silnika samochodowego 3D o wysokiej jakości.

Urządzenia niezatężone mają ograniczoną moc obliczeniową do renderowania złożonych modeli. W przypadku wielu aplikacji byłoby to jednak niedopuszczalne, aby zmniejszyć w jakikolwiek sposób wierność wizualizacji. Poniższy zrzut ekranu porównuje model pod pełnymi szczegółami z modelem, który został zdziesiątkowany przy użyciu wspólnego narzędzia do tworzenia zawartości:

Przykładowy model

Model zredukowany składa się z około 200 000 trójkątów (w tym szczegółowych części wewnętrznych) w porównaniu z ponad 18 milionami trójkątów w oryginalnym modelu.

Usługa Remote Rendering rozwiązuje ten problem, przenosząc obciążenie renderowania do wysokiej klasy procesorów GPU w chmurze. Aparat graficzny hostowany w chmurze renderuje obraz, koduje go jako strumień wideo i przesyła strumieniowo do urządzenia docelowego.

Renderowanie hybrydowe

W większości aplikacji nie wystarczy tylko renderować złożony model. Potrzebujesz również niestandardowego interfejsu użytkownika, aby zapewnić użytkownikowi funkcjonalność. Usługa Azure Remote Rendering nie wymusza używania dedykowanej platformy interfejsu użytkownika, a nie obsługuje renderowania hybrydowego. Oznacza to, że można renderować elementy na urządzeniu przy użyciu preferowanej metody, takiej jak MRTK.

Na końcu ramki usługa Azure Remote Rendering automatycznie łączy lokalnie renderowaną zawartość z obrazem zdalnym. Jest nawet w stanie to zrobić z poprawnym okluzji.

Renderowanie wielu procesorów GPU

Niektóre modele są zbyt złożone, aby renderować w interakcyjnych szybkościach klatek, nawet w przypadku wysokiej klasy procesora GPU. Szczególnie w wizualizacji przemysłowej jest to typowy problem. Aby dalej wypchnąć limity, usługa Azure Remote Rendering może dystrybuować obciążenie do wielu procesorów GPU. Wyniki są scalane w jeden obraz, dzięki czemu proces jest całkowicie niewidoczny dla użytkownika.

Architektura wysokiego poziomu

Na tym diagramie przedstawiono architekturę renderowania zdalnego:

Architektura

Pełny cykl generowania obrazu obejmuje następujące kroki:

  1. Po stronie klienta: konfiguracja ramki
    1. Twój kod: dane wejściowe użytkownika są przetwarzane, wykres sceny jest aktualizowany
    2. Kod ARR: aktualizacje grafu sceny i przewidywane pozy głowy są wysyłane do serwera
  2. Po stronie serwera: zdalne renderowanie
    1. Aparat renderowania dystrybuuje renderowanie między dostępnymi procesorami GPU
    2. Dane wyjściowe z wielu procesorów GPU są komponowane w jeden obraz
    3. Obraz jest zakodowany jako strumień wideo, wysyłany z powrotem do klienta
  3. Po stronie klienta: finalizacja
    1. Kod: Opcjonalna zawartość lokalna (interfejs użytkownika, znaczniki, ...) jest renderowana
    2. Kod ARR: w przypadku elementu "present" lokalnie renderowana zawartość jest automatycznie scalona ze strumieniem wideo

Opóźnienie sieci jest głównym problemem. Czas między wysłaniem żądania i odebraniem wyniku jest zazwyczaj zbyt długi w przypadku interakcyjnych szybkości klatek. W związku z tym więcej niż jedna ramka może być w locie w dowolnym momencie.

Następne kroki