Jak konwertować modele 3D w .NET

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.0

Krok 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

SourceTargetCode
OBJ to GLBscene.Open("input.obj"); scene.Save("output.glb");Binarny glTF dla przeglądarek internetowych
FBX to STLscene.Open("input.fbx"); scene.Save("output.stl");Triangulowana siatka do druku 3D
glTF to COLLADAscene.Open("input.gltf"); scene.Save("output.dae");Format wymiany DAE
STL to OBJscene.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.

 Polski