Objekt- och resurslivslängd
Azure Remote Rendering skiljer mellan två typer: objekt och resurser.
Objektets livslängd
Objekt anses vara saker som användaren kan skapa, ändra och förstöra efter eget gottfinnande. Objekt kan dupliceras fritt och varje instans kan mutera över tid. Därför är entiteter och komponenter objekt.
Livslängden för objekt är helt under användarkontroll. Det är dock inte relaterat till livslängden för representationen på klientsidan. Klasser som Entity
och Component
har en Destroy
funktion som måste anropas för att frigöra objektet på fjärrrenderingsvärden. Dessutom förstörs entiteten Entity.Destroy()
, dess underordnade objekt och alla komponenter i hierarkin.
Resurslivslängd
Resurser är saker vars livslängd hanteras helt av fjärrrenderingsvärden. Resurser refereras till internt. De frigörs när ingen refererar till dem längre.
De flesta resurser kan bara skapas indirekt, vanligtvis genom att läsa in dem från en fil. När samma fil läses in flera gånger returnerar Azure Remote Rendering samma referens och läser inte in data igen.
Många resurser är oföränderliga, till exempel nät och texturer. Vissa resurser är dock föränderliga, till exempel material. Eftersom resurser ofta delas kan det påverka flera objekt att ändra en resurs. Om du till exempel ändrar färgen på ett material ändras färgen på alla objekt som använder nät, vilket i sin tur refererar till materialet.
Inbyggda resurser
Azure Remote Rendering innehåller vissa inbyggda resurser som kan läsas in genom att deras respektive identifierare väntar med builtin://
under anropet till RenderingSession.Connection.LoadXYZAsync()
. De tillgängliga inbyggda resurserna visas i dokumentationen för varje funktion. Till exempel visar skykapitlet de inbyggda skystrukturerna.
Allmän livslängd
Livslängden för alla objekt och resurser är bunden till anslutningen. Vid frånkoppling tas allt bort. När du återansluter till samma session blir scendiagrammet tomt och alla resurser rensas.
I praktiken går det vanligtvis snabbare att läsa in samma resurs i en session efter en frånkoppling än första gången. Så är fallet eftersom de flesta resurser måste laddas ned från Azure Storage första gången, vilket inte är nödvändigt den andra gången, vilket sparar mycket tid.