Okres istnienia obiektu i zasobu
Usługa Azure Remote Rendering rozróżnia dwa typy: obiekty i zasoby.
Okres istnienia obiektu
Obiekty są uważane za rzeczy, które użytkownik może tworzyć, modyfikować i niszczyć według własnego uznania. Obiekty mogą być zduplikowane swobodnie, a każde wystąpienie może z czasem mutować. W związku z tym jednostki i składniki są obiektami.
Okres istnienia obiektów jest w pełni pod kontrolą użytkownika. Nie jest to jednak związane z okresem istnienia reprezentacji po stronie klienta. Klasy takie jak Entity
i Component
mają Destroy
funkcję, która musi być wywoływana w celu cofnięcia przydziału obiektu na hoście renderowania zdalnego. Entity.Destroy()
Ponadto spowoduje zniszczenie jednostki, jej elementów podrzędnych i wszystkich składników w tej hierarchii.
Okres istnienia zasobu
Zasoby to rzeczy, których okres istnienia jest całkowicie zarządzany przez hosta renderowania zdalnego. Zasoby są liczone wewnętrznie. Zostaną cofnięci, gdy nikt nie odwołuje się do nich już.
Większość zasobów można utworzyć tylko pośrednio, zazwyczaj przez załadowanie ich z pliku. Gdy ten sam plik zostanie załadowany wiele razy, usługa Azure Remote Rendering zwróci to samo odwołanie i nie załaduje ponownie danych.
Wiele zasobów jest niezmiennych, na przykład siatki i tekstury. Niektóre zasoby są jednak modyfikowalne, na przykład materiały. Ponieważ zasoby są często współużytkowane, modyfikowanie zasobu może mieć wpływ na wiele obiektów. Na przykład zmiana koloru materiału spowoduje zmianę koloru wszystkich obiektów korzystających z siatk, które z kolei odwołują się do tego materiału.
Zasoby wbudowane
Usługa Azure Remote Rendering zawiera pewne wbudowane zasoby, które mogą być ładowane przez wstępne dołączanie ich odpowiedniego identyfikatora builtin://
do wywołania metody RenderingSession.Connection.LoadXYZAsync()
. Dostępne wbudowane zasoby są wymienione w dokumentacji dla każdej odpowiedniej funkcji. Na przykład rozdział niebo zawiera wbudowane tekstury nieba.
Ogólny okres istnienia
Okres istnienia wszystkich obiektów i zasobów jest powiązany z połączeniem. Po odłączeniu wszystkiego jest odrzucane. Podczas ponownego nawiązywania połączenia z tą samą sesją wykres sceny będzie pusty i wszystkie zasoby zostaną przeczyszczone.
W praktyce ładowanie tego samego zasobu do sesji po rozłączeniu jest zwykle szybsze niż po raz pierwszy. Dzieje się tak, ponieważ większość zasobów musi zostać pobrana z usługi Azure Storage po raz pierwszy, co nie jest konieczne po raz drugi, co pozwala zaoszczędzić znaczną ilość czasu.