Поделиться через


Время существования объекта и ресурса

Удаленная отрисовка Azure различает два типа: объекты и ресурсы.

Время существования объекта

Объекты — это то, что пользователь может создавать, изменять и уничтожать по собственному усмотрению. Объекты могут свободно дублироваться, и каждый экземпляр может меняться с течением времени. Следовательно, сущности и компоненты являются объектами.

Время существования объектов полностью контролируется пользователем. Однако оно не связано с временем существования представления на стороне клиента. Такие классы, как Entity и Component, имеют функцию Destroy, которая должна вызываться для освобождения объекта на узле удаленной отрисовки. Кроме того, Entity.Destroy() уничтожает сущность, ее дочерние элементы и все компоненты в этой иерархии.

Время существования ресурса

Ресурсы — это элементы, время существования которых полностью управляется узлом удаленной отрисовки. Ресурсы — это ссылки, используемые внутри системы. Они освобождаются, когда ни один элемент больше не ссылается на них.

Большинство ресурсов можно создавать только косвенно, обычно путем их загрузки из файла. Если один и тот же файл загружается несколько раз, Удаленная отрисовка Azure возвратит ту же ссылку и не загрузит данные еще раз.

Многие ресурсы являются неизменяемыми, например сетки и текстуры. Однако некоторые ресурсы можно изменять, например материалы. Так как ресурсы часто используются совместно, их изменение может повлиять на несколько объектов. Например, при изменении цвета материала изменится цвет всех объектов, использующих сетки, которые, в свою очередь, ссылаются на этот материал.

Встроенные ресурсы

Удаленная отрисовка Azure содержит встроенные ресурсы, которые можно загрузить, указав перед их идентификатором builtin:// при вызове RenderingSession.Connection.LoadXYZAsync(). Доступные встроенные ресурсы перечислены в документации по каждой соответствующей функции. Например, в разделе о небе перечисляются встроенные текстуры неба.

Общее время существования

Время существования всех объектов и ресурсов привязывается к подключению. При отключении все сбрасывается. При повторном подключении к тому же сеансу граф сцены будет пустым, а все ресурсы будут очищены.

На практике загрузка одного и того же ресурса в сеанс после отключения обычно выполняется быстрее, чем при первом запуске. Это связано с тем, что в первый раз большинство ресурсов необходимо скачать из службы хранилища Azure, а во второй раз в этом нет необходимости, поэтому процесс выполняется гораздо быстрее.

Следующие шаги