如何在 Java 中转换 3D 模型
使用 aspose-3d-foss 进行格式转换是一个两步操作:使用 scene.open() 加载源文件,然后使用 scene.save() 保存到目标。
分步指南
步骤 1:安装软件包
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-3d-foss</artifactId>
<version>26.1.0</version>
</dependency>步骤 2:加载并转换
import com.aspose.threed.Scene;
Scene scene = new Scene();
scene.open("input.fbx");
scene.save("output.glb");输出格式是根据文件扩展名推断的。
第3步:使用保存选项
import com.aspose.threed.GltfSaveOptions;
import com.aspose.threed.FileContentType;
GltfSaveOptions opts = new GltfSaveOptions();
opts.setContentType(FileContentType.BINARY);
scene.save("output.glb", opts);注意: FBX 导出在 aspose-3d-foss 中不可用。保存到
.fbx会无条件抛出ExportException。使用 OBJ、STL 或 glTF/GLB 作为输出格式。
常用转换配方
| 源 | 目标 | 备注 |
|---|---|---|
| OBJ to GLB | 用于 Web 的二进制 glTF | scene.open("in.obj"); scene.save("out.glb"); |
| FBX to STL | 用于 3D 打印的三角化 | scene.open("in.fbx"); scene.save("out.stl"); |
| STL to OBJ | 用于建模的 Wavefront | scene.open("in.stl"); scene.save("out.obj"); |
常见问题 (FAQ)
转换会保留材料吗?
材质映射是尽力而为的。并非所有格式都具备相同的材质属性。
我可以批量转换文件吗?
为每个文件创建一个新的 Scene。每个实例都是独立的。