asset3d.read
R2026bDescription
Add-On Required: This feature requires the 3D Asset Processing Library for MATLAB add-on.
specifies one or more options using name-value arguments. For example,
result = asset3d.read(filename,Name=Value)ReadAs="mesh" forces the function to return a Mesh object
regardless of the file contents.
Examples
Create a simple pyramid mesh, write it to an FBX file, and read it back using the asset3d.read function. Then, inspect the geometric properties of the imported mesh and display it in a figure.
Create a temporary folder for your asset files.
tmpDir = fullfile(tempdir,"asset3dReadExamples"); if ~isfolder(tmpDir) mkdir(tmpDir) end
Define a simple pyramid mesh.
vertices = [0 0 0; 1 0 0; 1 1 0; 0 1 0; 0.5 0.5 1]; faces = [1 2 5; 2 3 5; 3 4 5; 4 1 5; 1 3 4; 1 2 3]; srcMesh = asset3d.Mesh(vertices,faces);
Write the mesh to an FBX file.
fbxFile = fullfile(tmpDir,"pyramid.fbx"); asset3d.write(srcMesh,fbxFile,UpAxis="Z")
Read the FBX file. Because the file contains one mesh, asset3d.read returns a Mesh object.
mesh = asset3d.read(fbxFile)
mesh =
Mesh with properties:
Vertices: [5×3 double]
Faces: [6×3 double]
FaceNormals: [6×3 double]
VertexNormals: [5×3 double]
UpAxis: "Z"
Bounds: [2×3 double]
Centroid: [0.5000 0.5000 0.2303]
Extents: [1 1 1]
Area: 3.2361
Volume: 0.3333
IsWatertight: 1
FaceColors: []
VertexColors: []
UV: [0×2 double]
Material: [1×1 asset3d.Material]
Inspect the axis-aligned bounding box limits of the imported mesh.
mesh.Bounds
ans = 2×3
0 0 0
1 1 1
Display the original mesh and the imported mesh side by side.
figure subplot(1,2,1) patch(srcMesh,FaceColor=[0.2 0.55 0.85],EdgeColor="k") axis equal view(3) grid on title("Original Mesh") subplot(1,2,2) patch(mesh,FaceColor=[0.2 0.55 0.85],EdgeColor="k") axis equal view(3) grid on title("Imported Mesh")

Build a two-part scene from simple box meshes, write it to a GLB file, and read it back as a single flattened mesh using name-value arguments. Then, inspect the properties of the imported mesh and display it in a figure.
Create a temporary folder for your asset files.
tmpDir = fullfile(tempdir,"asset3dReadExamples"); if ~isfolder(tmpDir) mkdir(tmpDir) end
Define the vertices and faces for a box.
boxVertices = [-0.5 -0.5 -0.5; 0.5 -0.5 -0.5; 0.5 0.5 -0.5; -0.5 0.5 -0.5; -0.5 -0.5 0.5; 0.5 -0.5 0.5; 0.5 0.5 0.5; -0.5 0.5 0.5]; boxFaces = [1 2 3; 1 3 4; 5 8 7; 5 7 6; 1 5 6; 1 6 2; 2 6 7; 2 7 3; 3 7 8; 3 8 4; 4 8 5; 4 5 1];
Create a body mesh and a sensor mesh, with distinct face colors.
blueFaces = repmat(uint8([70 140 230]),size(boxFaces,1),1); orangeFaces = repmat(uint8([230 150 60]),size(boxFaces,1),1); bodyMesh = asset3d.Mesh(boxVertices,boxFaces,FaceColors=blueFaces); sensorMesh = asset3d.Mesh(boxVertices,boxFaces,FaceColors=orangeFaces);
Scale each mesh to the desired dimensions.
scale(bodyMesh,[3 1.5 1]) scale(sensorMesh,[0.6 0.6 0.6])
Create a scene, and add the body mesh.
sceneOut = asset3d.Scene; addMesh(sceneOut,bodyMesh,Name="Body",NodeName="body")
Place the sensor mesh on top of the body mesh using a transform.
T = eye(4); T(1:3,4) = [0; 0; 0.8]; addMesh(sceneOut,sensorMesh,Name="Sensor",NodeName="sensor",ParentNodeName="body",Transform=T)
Write the scene to a GLB file.
sceneFile = fullfile(tmpDir,"twoPartScene.glb"); asset3d.write(sceneOut,sceneFile,FileType="glb")
Read the file into the workspace as a single mesh. Specifying the ReadAs argument as "mesh" flattens the scene graph into one Mesh object, while specifying UpAxis as "auto" preserves the native axis orientation of the file.
importedMesh = asset3d.read(sceneFile,FileType="glb",ReadAs="mesh",UpAxis="auto")
importedMesh =
Mesh with properties:
Vertices: [72×3 double]
Faces: [24×3 double]
FaceNormals: [24×3 double]
VertexNormals: [72×3 double]
UpAxis: "Y"
Bounds: [2×3 double]
Centroid: [0 0 0.0857]
Extents: [3 1 1.8500]
Area: 20.1600
Volume: 4.7160
IsWatertight: 0
FaceColors: []
VertexColors: [72×4 uint8]
UV: [0×2 double]
Material: []
Display the original scene and the imported mesh side by side.
figure subplot(1,2,1) patch(sceneOut,EdgeColor="k") axis equal view(3) grid on title("Original Scene") subplot(1,2,2) patch(importedMesh,EdgeColor="k") axis equal view(3) grid on title("Scene Imported as Mesh")

Input Arguments
Path to the 3D asset file, specified as a string scalar. The function supports these
file formats: GLB, GLTF, OBJ, STL, PLY, OFF, DAE, 3MF, FBX, USD, USDA, USDC, and USDZ.
The function automatically detects the file format from the file extension. To override
the detected format, specify the FileType name-value argument.
Name-Value Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN, where Name is
the argument name and Value is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Example: asset3d.read(filename,ReadAs="mesh",UpAxis="auto") reads an
asset file, returns its geometries as a single mesh, and preserves the up-axis convention of
the file.
File format override, specified as one of these options: "stl",
"obj", "ply", "off",
"glb", "gltf", "dae",
"3mf", "fbx", "usd",
"usda", "usdc", or "usdz".
The function uses this value instead of the file extension when it detects the input
format.
Returned object type, specified as "auto",
"mesh", or "scene". By default, the function uses:
"auto"— The function returns aMeshobject if the file contains a single geometry, or aSceneobject if it contains multiple geometries or a scene graph."mesh"— The function returns all geometries in the file flattened to a singleMeshobject."scene"— The object returns aSceneobject regardless of the number of geometries present in the file.
Up-axis convention for the loaded asset, specified as "auto",
"X", "Y", or "Z". If this
value is "auto", the native up-axis convention of the input format or defined in the
file metadata.
STL files — The function uses Z-up.
GLB, GLTF, DAE, OBJ, PLY, OFF, and 3MF files — The function uses Y-up.
FBX, USD, USDA, USDC, and USDZ — The function uses the metadata value. If the metadata is empty, it uses Y-up.
Specify "X", "Y", or
"Z" to convert the loaded asset to the selected convention by
transforming the vertices.
Output Arguments
Version History
Introduced in R2026b
See Also
asset3d.write | asset3d.segmentMeshSDF | asset3d.showSegments | Mesh | Scene | trellis
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)