Share via


Objekt- und Ressourcenlebensdauer

Azure Remote Rendering unterscheidet zwischen zwei Typen: Objekten und Ressourcen.

Objektlebensdauer

Objekte werden als Dinge betrachtet, die der Benutzer nach eigenem Ermessen erstellen, ändern und zerstören kann. Objekte können frei dupliziert werden, und jede Instanz kann im Laufe der Zeit mutieren. Folglich sind Entitäten und Komponenten Objekte.

Die Lebensdauer von Objekten unterliegt vollständig der Benutzerkontrolle. Sie ist jedoch nicht mit der Lebensdauer der clientseitigen Darstellung verknüpft. Klassen wie Entity und Component haben eine Destroy-Funktion, die aufgerufen werden muss, um die Zuordnung des Objekts auf dem Remoterrenderinghost aufzuheben. Außerdem zerstört Entity.Destroy() die Entität, ihre untergeordneten Elemente und alle Komponenten in dieser Hierarchie.

Ressourcenlebensdauer

Ressourcen sind Dinge, deren Lebensdauer vollständig vom Remoterenderinghost verwaltet wird. Ressourcen werden intern als Verweise gezählt. Ihre Zuordnung wird aufgehoben, wenn nicht mehr auf sie verwiesen wird.

Die meisten Ressourcen können nur indirekt erstellt werden, indem sie in der Regel aus einer Datei geladen werden. Wenn dieselbe Datei mehrmals geladen wird, gibt Azure Remote Rendering denselben Verweis zurück, und die Daten werden nicht erneut geladen.

Viele Ressourcen sind unveränderlich, z. B. Gittermodelle und Texturen. Einige Ressourcen sind jedoch änderbar, z. B. Materialien. Da Ressourcen häufig freigegeben werden, kann sich die Änderung einer Ressource möglicherweise auf mehrere Objekte auswirken. Wenn Sie beispielsweise die Farbe eines Materials ändern, ändert sich die Farbe aller Objekte, die Gittermodelle verwenden, die wiederum auf dieses Material verweisen.

Integrierte Ressourcen

Azure Remote Rendering enthält einige integrierte Ressourcen, die geladen werden können, indem builtin:// dem entsprechenden Bezeichner während des Aufrufs von RenderingSession.Connection.LoadXYZAsync() vorangestellt wird. Die verfügbaren integrierten Ressourcen werden in der Dokumentation zu den jeweiligen Features aufgeführt. Im Kapitel zum Himmel werden z. B. die integrierten Himmelstexturen aufgeführt.

Allgemeine Lebensdauer

Die Lebensdauer aller Objekte und Ressourcen ist an die Verbindung gebunden. Beim Trennen der Verbindung wird alles verworfen. Beim erneuten Herstellen einer Verbindung mit derselben Sitzung ist der Szenengraph leer, und alle Ressourcen sind bereinigt.

In der Praxis ist das Laden derselben Ressource in eine Sitzung nach einer Trennung in der Regel schneller als beim ersten Mal. Dies ist der Fall, weil die meisten Ressourcen beim ersten Mal aus Azure Storage heruntergeladen werden müssen, was beim zweiten Mal nicht mehr erforderlich ist.

Nächste Schritte