1.2 3D Inscription (Experimental Stage)
This is an explanation of the attribute settings for 3D resources in Metaverse Resources. These attributes are still under experimental development, and any reference and usage at this stage are for testing purposes only and do not represent the final resource specification. Developers should assess the related issues at their own discretion.
Idea
3D resources are much more complex than 2D resources, and their file sizes are relatively larger as well. They also occupy more space on the blockchain and their configurations are also more complex.
This experimental protocol divides 3D models into:
ModelData (Model Data): The basic data of the model, generally in universal model file formats like OBJ, FBX, GLB, etc., or specific engine package resources such as UnityAsset, UEAsset, etc. This includes all vertices, normals, tangents, and other relevant data of the model.
MaterialData (Material Data): Base : If there is a complete material data format, it can be directly referenced.
Textures : The texture resources referenced by the material.
Shader : The shader resources on which the material depends.
Animation : The animation data of the model, which records the keyframe information for one or more animations. This is usually highly dependent on the engine but can also use universal data formats. Physical : The physical properties of the model, used for physics calculations.
Other : Other data of the model.
Some 3D resource data formats can not only store the basic data of the model but also materials, shaders, and even animations, such as GLB, UnityAsset, UEAsset, etc.
ModelData
key | required? | description |
---|---|---|
modelsrc | Yes | On-chain address of the model's source files |
modeltype | Yes | Type of 3D model file; can be OBJ, FBX, GLB, UnityAsset, UEAsset, etc. |
MaterialData
Material settings can either directly reference a material resource format or be assembled through Texture and Shader references. Grouped under <meterialdata>.
Base
key | required? | description |
---|---|---|
src | No | If present, the data source address for the material. Ready to use. |
type | No | Linked to data source; can be UnityAsset, UEAsset, Mat, etc. |
basemat | No | Default texture, e.g., leather, metal, marble, etc. |
basecolor | No | Default color |
Texture
key | required? | description |
---|---|---|
src | Yes | Data source address for the related texture image. |
type | No | Image format, e.g., PNG, JPG, TGA, etc. |
propname | No | Property keyword when referenced by shader, e.g., main, normal, specular, etc. |
Shader
Shader is a critical dependency in material resources and determines the rendering. Developers can upload their custom shader code.
Due to differences in compilation and parsing methods across engines and platforms, the 'type' attribute is crucial.
About <shader> key:
key | required? | description |
---|---|---|
src | Yes | Data source address for the shader source code or a parseable file. |
type | No | Shader file parsing format; can be GLSL, HLSL, UnityAsset, UEAsset, etc. |
propname1 | No | Default attribute settings in shader. E.g., propname1="1.8" Animation. |
... | ... | |
propnameN | ... |
Similar to 2D settings and <animation> keys:
key | required? | description |
---|---|---|
src | Yes | On-chain address of the animation data resource |
type | Yes | Parsing format for animation files; can be anime, ani, UnityAsset, UEAsset, etc. |
name | Yes | Animation name |
duration | Yes | Playback speed |
loop | No | Whether it loops or not |
Physical
key | required? | description |
---|---|---|
weight | No | Weight for physical calculations |
friction | No | Coefficient of friction |
status | No | Default is static; can be static or dynamic |
Other
key | required? | description |
---|---|---|
type | No | Type of model, e.g., avatar, building, transportation, plant, etc. |
speed | No | Initial speed if it's a dynamic 3D object. |
others | ... |
Last updated