Jak konwertować modele 3D w .NET
Aspose.3D for .NET umożliwia konwersję formatu w dwóch krokach: wczytaj plik źródłowy przy użyciu Scene.Open(), a następnie zapisz do formatu docelowego przy użyciu Scene.Save(). Format wyjściowy jest określany na podstawie rozszerzenia pliku.
Przewodnik krok po kroku
Krok 1: Zainstaluj pakiet
dotnet add package Aspose.3D --version 26.1.0Krok 2: Importowanie przestrzeni nazw
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;Krok 3: Załaduj plik źródłowy
var scene = new Scene();
scene.Open("input.fbx");Krok 4: Zapisz w formacie docelowym
scene.Save("output.glb");Biblioteka wykrywa format docelowy na podstawie rozszerzenia. Obsługiwane formaty eksportu: OBJ, STL, glTF 2.0 / GLB, FBX, COLLADA i 3MF.
Krok 5: Użyj opcji zapisu specyficznych dla formatu
Aby uzyskać precyzyjną kontrolę, przekaż podklasę 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 });Typowe przepisy konwersji
| Source | Target | Code |
|---|---|---|
| OBJ to GLB | scene.Open("input.obj"); scene.Save("output.glb"); | Binarny glTF dla przeglądarek internetowych |
| FBX to STL | scene.Open("input.fbx"); scene.Save("output.stl"); | Triangulowana siatka do druku 3D |
| glTF to COLLADA | scene.Open("input.gltf"); scene.Save("output.dae"); | Format wymiany DAE |
| STL to OBJ | scene.Open("input.stl"); scene.Save("output.obj"); | Wavefront dla narzędzi modelujących |
Typowe problemy i rozwiązania
Plik wyjściowy jest pusty lub bardzo mały
Upewnij się, że plik źródłowy został załadowany pomyślnie. Sprawdź scene.RootNode.ChildNodes.Count po Open().
Materiały utracone podczas konwersji
Nie wszystkie formaty zawierają te same właściwości materiałów. Materiały OBJ używają Lambert/Phong; glTF używa PBR. Mapowanie materiałów jest best‑effort na granicach formatów.
Różnica skali między źródłem a wynikiem
Różne narzędzia używają różnych systemów jednostek. Zastosuj ObjLoadOptions.Scale przy imporcie lub dostosuj node.Transform.Scale przed zapisem.
Najczęściej zadawane pytania (FAQ)
Czy mogę konwertować PLY na inny format?
PLY jest tylko do importu. Załaduj plik PLY i zapisz w dowolnym formacie eksportu (OBJ, STL, GLB, FBX, COLLADA).
Czy konwersja zachowuje animacje?
Dane animacji (AnimationClip) są zachowywane, gdy oba formaty je obsługują (np. FBX do glTF). STL i OBJ nie zawierają danych animacji.
Czy mogę wsadowo konwertować wiele plików?
Utwórz nowy Scene dla każdego pliku w pętli. Każdy Scene jest niezależny i może być przetwarzany równolegle.