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

keyrequired?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

keyrequired?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

keyrequired?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:

keyrequired?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:

keyrequired?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

keyrequired?description

weight

No

Weight for physical calculations

friction

No

Coefficient of friction

status

No

Default is static; can be static or dynamic

Other

keyrequired?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