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 withresdb
, 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
- These are part of the Resonite Data Model itself.
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.
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:
- The File Browser
- Exporting from the Context Menu
- Copy Image from the Context Menu
- Save as screenshot in the Context Menu
- Using the Write Text To File node to create/write to a file on the user's device (only in unsafe worlds).
- Using the POST_String node to send out data to an address.
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.