The JSON file “diyabc.com.dsf” describes a complex structure for a 3D model, likely used in a 3D modeling or rendering software. Here is a breakdown of its structure:
Top-Level Structure
asset_info: Contains metadata about the asset.
geometry_library: Defines the geometry of the 3D model.
Detailed Structure
- asset_info
Metadata about the 3D asset including id, type, contributor, revision, and modified date.
json
复制代码
{
“asset_info”: {
“id”: “/data/diy%203D/Genesis%208/Female/diyabc.com.dsf”,
“type”: “geometry”,
“contributor”: {
“author”: “diyabc 3D”,
“email”: “”,
“website”: “http://www.diyabc.com”
},
“revision”: “1.0”,
“modified”: “2017-06-06T00:00:00Z”
}
} - geometry_library
Contains details about the 3D model’s geometry including vertices, polygons, UV sets, materials, and more.
json
复制代码
{
“geometry_library”: [
{
“id”: “geometry”,
“type”: “mesh”,
“vertices”: […], // Array of vertex coordinates
“polygon_groups”: […], // Grouping of polygons
“polygons”: […], // Array of polygons
“uv_set_library”: […], // UV sets for texture mapping
“materials”: […], // Materials assigned to polygons
“material_groups”: […], // Grouping of materials
“presentation”: {…}, // Presentation details
“channels”: […], // Channel definitions for morphs and other attributes
“bones”: […], // Skeletal bones for rigging
“skin_weights”: {…} // Weights for skinning
}
]
}
Example Content
Vertices
Defines the 3D coordinates of the model’s vertices.
json
复制代码
“vertices”: [
[x1, y1, z1],
[x2, y2, z2],
…
]
Polygon Groups
Defines groups of polygons, which can be used for organizing parts of the mesh.
json
复制代码
“polygon_groups”: [
{“id”: “group1”, “polygons”: […]},
{“id”: “group2”, “polygons”: […]},
…
]
UV Set Library
Contains UV sets for texture mapping, defining how 2D textures are wrapped onto the 3D model.
json
复制代码
“uv_set_library”: [
{“id”: “uv_set1”, “uvs”: […]},
{“id”: “uv_set2”, “uvs”: […]},
…
]
Materials
Lists the materials applied to the model.
json
复制代码
“materials”: [
{“id”: “material1”, “name”: “Skin”},
{“id”: “material2”, “name”: “Eyes”},
…
]
Material Groups
Groups materials into logical sets.
json
复制代码
“material_groups”: [
{“name”: “Group1”, “materials”: [“material1”, “material2”]},
{“name”: “Group2”, “materials”: [“material3”, “material4”]},
…
]
Presentation
Describes how the model is presented in the software, including icons and labels.
json
复制代码
“presentation”: {
“type”: “Mesh”,
“label”: “Genesis 8 Female”,
“icon_large”: “/path/to/icon.png”
}
Channels
Defines channels for morphs and other attributes.
json
复制代码
“channels”: [
{“id”: “Morph1”, “type”: “float”, “value”: 0.5, “min”: 0, “max”: 1},
{“id”: “Morph2”, “type”: “float”, “value”: 0.3, “min”: 0, “max”: 1},
…
]
Bones
Lists the bones used for rigging the model.
json
复制代码
“bones”: [
{“id”: “Bone1”, “name”: “Spine”},
{“id”: “Bone2”, “name”: “LeftArm”},
…
]
Skin Weights
Contains the weights for skinning, determining how the mesh deforms with bone movements.
json
复制代码
“skin_weights”: {
“Bone1”: […],
“Bone2”: […],
…
}
This JSON structure comprehensively defines a 3D model, including its geometry, materials, morphs, rigging, and presentation details, making it suitable for use in 3D modeling and animation software.