Sdílet prostřednictvím


Životnost objektů a prostředků

Azure Remote Rendering rozlišuje mezi dvěma typy: objekty a prostředky.

Životnost objektu

Objekty jsou považovány za věci, které může uživatel vytvářet, upravovat a zničit podle vlastního uvážení. Objekty mohou být duplikovány volně a každá instance může v průběhu času ztlumit. Entity a komponenty jsou v důsledku toho objekty.

Životnost objektů je plně pod uživatelským řízením. Nesouvisí ale s životností reprezentace na straně klienta. Třídy jako Entity a Component mají Destroy funkci, která musí být volána k uvolnění objektu na vzdáleném vykreslovacím hostiteli. Kromě toho Entity.Destroy() zničí entitu, její podřízené položky a všechny komponenty v této hierarchii.

Životnost prostředku

Prostředky jsou věci, jejichž životnost je plně spravována vzdáleným hostitelem vykreslování. Prostředky se započítávají interně. Uvolní se, když na ně už nikdo nebude odkazovat.

Většinu prostředků je možné vytvořit pouze nepřímo, obvykle jejich načtením ze souboru. Když se stejný soubor načte vícekrát, Azure Remote Rendering vrátí stejný odkaz a znovu nenačte data.

Mnoho prostředků je neměnných, například mřížky a textury. Některé prostředky jsou ale proměnlivé, například materiály. Vzhledem k tomu, že se prostředky často sdílejí, může úprava prostředku ovlivnit více objektů. Změna barvy materiálu například změní barvu všech objektů, které používají mřížky, které zase odkazují na tento materiál.

Integrované prostředky

Azure Remote Rendering obsahuje některé předdefinované prostředky, které je možné načíst tak, že jejich odpovídající identifikátor builtin:// předvoláte během volání RenderingSession.Connection.LoadXYZAsync(). Dostupné předdefinované prostředky jsou uvedené v dokumentaci pro každou příslušnou funkci. Například kapitola oblohy uvádí předdefinované textury oblohy.

Obecná životnost

Životnost všech objektů a prostředků je svázaná s připojením. Při odpojení se všechno zahodí. Při opětovném připojení ke stejné relaci bude graf scény prázdný a všechny prostředky se vyprázdní.

V praxi je načítání stejného prostředku do relace po odpojení obvykle rychlejší než při prvním odpojení. To je ten případ, protože většina prostředků se musí stáhnout z Azure Storage poprvé, což není nutné podruhé, což šetří značné množství času.

Další kroky