如何将 3D 模型转换为 .NET
Aspose.3D for .NET 使格式转换为两步操作:加载源文件与 Scene.Open(),然后将其保存到目标格式。 Scene.Save(). 输出格式从文件扩展中得出的。.
步骤指南
步骤1:安装包装
dotnet add package Aspose.3D.FOSS步骤2:进口名称空间
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;步骤3:下载源文件
var scene = new Scene();
scene.Open("input.fbx");步骤4:在目标格式中保存
scene.Save("output.glb");图书馆从扩展中检测到目标格式,支持的出口格别:OBJ、STL、glTF 2.0/GLB、fbx、colada和3mf。.
步骤5:使用格式特定的保存选项
以精细的控制,通过一个 SaveOptions 子班:
// FBX output — always produces binary FBX
// FbxSaveOptions exists but has no format-specific properties in this version
scene.Save("output.fbx");
// OBJ with flipped coordinate system
scene.Save("output.obj", new ObjSaveOptions { FlipCoordinateSystem = true });
// COLLADA with indented XML
scene.Save("output.dae", new ColladaSaveOptions { Indented = true });共用转换食谱
| 源泉 | 目标 | 代码 |
|---|---|---|
| 到 GLB | scene.Open("input.obj"); scene.Save("output.glb"); | 网页观众的二进制 glTF |
| FBX 到 STL | scene.Open("input.fbx"); scene.Save("output.stl"); | 3D打印的三角形面具 |
| 格拉特到COLLADA | scene.Open("input.gltf"); scene.Save("output.dae"); | 交换格式 |
| 到OBJ | scene.Open("input.stl"); scene.Save("output.obj"); | Wavefront 模型工具 |
常见问题和解决方案
输出文件是空的或非常小
确保源文件成功加载。 scene.RootNode.ChildNodes.Count 之后 Open().
转换期间丢失的物质
不是所有格式都具有相同的材料特性. OBJ 材料使用 Lambert/Phong; glTF 使用 PBR. 物质地图是最好的努力在格格形式界限。.
源与产量之间的差异
不同工具使用不同的单位系统。 ObjLoadOptions.Scale 进口或调整 node.Transform.Scale 之前的储蓄。.
常见问题(FAQ)
我可以将PLY转换为另一个格式吗?
PLY 是进口的,仅加载一个 PLy 文件并存储到任何出口格式(OBJ、STL、GLB、FbX、COLLADA)。.
转换能保留动画吗?
动画数据(AnimationClip)保存,当两种格式支持它(例如,FBX到glTF)。STL和OBJ不携带动画数据。.
我可以转换多个文件吗?
创建一个新 Scene 每个文件在一个圆圈。 Scene 它是独立的,可以平行处理。.