Asset

From Resonite Wiki

This article or section is a Stub. You can help the Resonite Wiki by expanding it.


An Asset, is any object within a Resonite Creation that is not stored within the Resonite Data Model.

Examples

Some examples of assets are:

Asset Type Description
Texture/Image Images/textures.
Audio Sound Effects and other sound sources
Font Font files used for rendering text
Mesh Mesh information, the triangles that make up a model etc.

Asset Saving

When assets are saved in an item, world, or avatar, the asset types are identified via URI.

The gathering is as follows:

  • The saving mechanism for the data saver adds every URL from every value field possible to its URLNodes list (uses the Elements.Core.DataTreeValue.IsURL check) this means any Uri field regardless of where it is on an item is counted as the URI being used in an item as an asset, even if its not part of an asset component. (Yes even just a ValueField<Uri> counts)
  • the saver then checks to see for every url in URLNodes starts with resdb, and if it doesn't, computes the "cloud signature" resdb url, which is a sha-256 hash of the asset's data.
  • The data for every URLNodes if it is a "local" scheme is finally uploaded to the cloud, and if a local asset has an identical version on the cloud, it is not reuploaded and instead the cloud version is used.


Non-Assets

It can often be unclear what is an isn't an asset. Some commonly mistaken items are:

  • Materials
    • These are not assets but instead objects within the Resonite Data Model that link directly to Shaders.
  • Slots

Asset Variants

Assets you bring into Resonite will eventually have variants created for them through the asset variant system. Variants, are used to make Resonite content more performant or efficient.

De-duplication

Assets are de-duplicated, an asset saved in your inventory multiple times will only be counted against your storage quota once. De-duplication is based on the Hash of the Asset so any change, however small could result in an additional asset stored which does count against your storage quota.

The space shown in the Inventory tab of the Dash for a Resonite creation shows how much it would take if it (or its parts) were not de-duplicated.

Importing

Users can import assets, either by pasting the asset from their clipboard, using the File Browser, or dragging and dropping them into Resonite itself. As long as the file type is supported, Resonite will process it.

Exporting

Assets and data can be exported from Resonite in many different ways:

Types

Assets are used in IAssetProviders are used to reference an asset like a reference type in components and ProtoFlux.

This is often useful when using complex types.

Metadata

Assets contain metadata and this can be used to access information about the asset. You can use Components to get or set this metadata information.

Assets In Worlds

Assets are usually stored in the Assets Slot in a world, and are regularly garbage collected to optimize a world.