Як конвертувати 3D‑моделі у .NET
Aspose.3D for .NET робить конвертацію формату двокроковою операцією: завантажте вихідний файл за допомогою Scene.Open(), потім збережіть у цільовий формат за допомогою Scene.Save(). Формат вихідного файлу визначається за розширенням файлу.
Покроковий посібник
Крок 1: Встановити пакет
dotnet add package Aspose.3D --version 26.1.0Крок 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, COLLADA та 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 });Загальні рецепти конвертації
| Source | Target | Code |
|---|---|---|
| OBJ до GLB | scene.Open("input.obj"); scene.Save("output.glb"); | Бінарний glTF для веб‑переглядачів |
| FBX до STL | scene.Open("input.fbx"); scene.Save("output.stl"); | Трикутна сітка для 3D‑друку |
| glTF до COLLADA | scene.Open("input.gltf"); scene.Save("output.dae"); | Формат обміну DAE |
| STL до 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 є незалежним і може оброблятися паралельно.