Как конвертировать 3D модели в Java
Преобразование формата с 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 в GLB | Бинарный glTF для веба | scene.open("in.obj"); scene.save("out.glb"); |
| FBX в STL | Триангулированный для 3D‑печати | scene.open("in.fbx"); scene.save("out.stl"); |
| STL в OBJ | Wavefront для моделирования | scene.open("in.stl"); scene.save("out.obj"); |
Часто задаваемые вопросы (FAQ)
Сохраняет ли конверсия материалы?
Сопоставление материалов осуществляется по принципу best‑effort. Не все форматы передают одинаковые свойства материалов.
Могу ли я пакетно конвертировать файлы?
Создайте новый Scene для каждого файла. Каждый экземпляр независим.