Partilhar via


Duração dos objetos e recursos

A Renderização Remota do Azure distingue entre dois tipos: objetos e recursos.

Tempo de vida do objeto

Os objetos são considerados coisas que o usuário pode criar, modificar e destruir a seu próprio critério. Os objetos podem ser duplicados livremente e cada instância pode sofrer mutações ao longo do tempo. Consequentemente, entidades e componentes são objetos.

O tempo de vida dos objetos está totalmente sob controle do usuário. No entanto, não está relacionado com o tempo de vida da representação do lado do cliente. As classes gostam Entity e Component têm uma Destroy função que deve ser chamada para desalocar o objeto no host de renderização remota. Além disso, destruirá a entidade, Entity.Destroy() seus filhos e todos os componentes dessa hierarquia.

Tempo de vida do recurso

Recursos são coisas cujo tempo de vida é inteiramente gerenciado pelo host de renderização remota. Os recursos são referência contada internamente. Eles são desalocados quando ninguém mais faz referência a eles.

A maioria dos recursos só pode ser criada indiretamente, normalmente carregando-os de um arquivo. Quando o mesmo arquivo é carregado várias vezes, a Renderização Remota do Azure retornará a mesma referência e não carregará os dados novamente.

Muitos recursos são imutáveis, por exemplo , malhas e texturas. No entanto, alguns recursos são mutáveis, por exemplo , materiais. Como os recursos geralmente são compartilhados, modificar um recurso pode afetar vários objetos. Por exemplo, alterar a cor de um material mudará a cor de todos os objetos que usam malhas, que por sua vez fazem referência a esse material.

Recursos incorporados

A Renderização Remota do Azure contém alguns recursos internos, que podem ser carregados antecipando seus respetivos identificadores durante builtin:// a chamada para RenderingSession.Connection.LoadXYZAsync(). Os recursos internos disponíveis estão listados na documentação para cada recurso respetivo. Por exemplo, o capítulo do céu lista as texturas do céu incorporadas.

Tempo de vida geral

O tempo de vida de todos os objetos e recursos está vinculado à conexão. Ao desconectar tudo é descartado. Ao se reconectar à mesma sessão, o gráfico de cena estará vazio e todos os recursos serão limpos.

Na prática, carregar o mesmo recurso em uma sessão, após uma desconexão, geralmente é mais rápido do que da primeira vez. Esse é o caso porque a maioria dos recursos deve ser baixada do Armazenamento do Azure na primeira vez, o que não é necessário na segunda vez, economizando uma quantidade considerável de tempo.

Próximos passos