Aspose.3D FOSS per a .NET admet set formats de fitxer 3D: OBJ, STL, glTF, GLB, FBX, Collada, i 3MF. Aquesta publicació és una guia pràctica, format per format, que mostra com carregar i desar cadascun, quines opcions estan disponibles i com convertir entre ells.
Tots els exemples utilitzen el Aspose.ThreeD espai de noms:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
Paquet NuGet:
dotnet add package Aspose.3D.Converter --version 1.0.0
OBJ (Wavefront)
OBJ és un format basat en text àmpliament compatible per a la geometria de malles. Aspose.3D FOSS carrega fitxers OBJ juntament amb el seu fitxer complementari .mtl fitxers de material.
Carregant OBJ
var scene = new Scene();
scene.Open("model.obj");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Carregant amb opcions
var opts = new ObjLoadOptions();
// Configure loading behavior as needed
var scene = new Scene();
scene.Open("model.obj", opts);
Desant com a OBJ
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.obj");
OBJ amb opcions de desament
var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);
STL (Estereolitografia)
STL és el format estàndard per a la impressió 3D. Emmagatzema geometria triangulada en brut sense materials ni jerarquia. Aspose.3D FOSS admet tant STL binari com ASCII.
Carregant STL
var scene = new Scene();
scene.Open("part.stl");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Desant com a STL
var scene = new Scene();
var sphere = new Entities.Sphere(1);
scene.RootNode.CreateChildNode("SphereNode", sphere);
scene.Save("output.stl");
STL amb opcions de desament
var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);
Cicle complet STL
// Load an STL file and re-save it -- geometry is preserved
var scene = new Scene();
scene.Open("original.stl");
scene.Save("copy.stl");
glTF 2.0 i GLB
glTF és l’estàndard modern per al web i el 3D en temps real. Admet materials PBR, jerarquies completes d’escena i empaquetat binari eficient (GLB).
Carregant glTF
var scene = new Scene();
scene.Open("model.gltf");
Carregant amb opcions
var opts = new GltfLoadOptions();
var scene = new Scene();
scene.Open("model.gltf", opts);
Desant com a glTF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.gltf");
Desant com a GLB (glTF binari)
Per produir un binari autònom .glb fitxer, deseu amb un .glb extensió. La biblioteca infereix el format binari glTF a partir de l’extensió:
scene.Save("output.glb");
FBX (Filmbox)
FBX s’utilitza àmpliament en el desenvolupament de jocs i la creació de contingut digital. Aspose.3D FOSS per a .NET admet FBX importació i exportació en ambdós modes ASCII i binari.
Carregant FBX
var scene = new Scene();
scene.Open("model.fbx");
Carregant amb opcions
var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);
Desant com a FBX ASCII
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
var opts = new FbxSaveOptions() { IsAscii = true };
scene.Save("output.fbx", opts);
Desant com a FBX binari
var opts = new FbxSaveOptions() { IsAscii = false };
scene.Save("output.fbx", opts);
3MF (3D Manufacturing Format)
3MF is a modern 3D printing format developed by the 3MF Consortium. It supports rich metadata, materials, and multi-object scenes in a single ZIP-based package.
Carregant 3MF
var scene = new Scene();
scene.Open("model.3mf");
Carregant amb opcions
var opts = new TmfLoadOptions();
var scene = new Scene();
scene.Open("model.3mf", opts);
Desant com a 3MF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.3mf");
Desant amb opcions
var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);
E/S basada en flux
Tots els formats admeten la càrrega des de fluxos i el desament a fluxos, cosa que és útil per a serveis web i processament al núvol:
using var stream = File.OpenRead("model.obj");
var scene = new Scene();
var opts = new ObjLoadOptions();
scene.Open(stream, opts);
// Save to a memory stream
using var output = new MemoryStream();
var saveOpts = new GltfSaveOptions();
scene.Save(output, saveOpts);
Detecció de format
La biblioteca pot detectar automàticament formats a partir de les extensions de fitxer o del contingut del flux:
// Auto-detect from extension
var scene = new Scene();
scene.Open("model.obj"); // Detects OBJ from .obj extension
// Auto-detect from stream content
using var stream = File.OpenRead("model.obj");
scene.Open(stream); // Inspects stream content to determine format
Conversió per lots
Per convertir diversos fitxers, itera sobre un directori i converteix cada un:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
var inputDir = "assets/";
var outputDir = "converted/";
foreach (var file in Directory.GetFiles(inputDir, "*.fbx"))
{
var scene = new Scene();
scene.Open(file);
var outputPath = Path.Combine(outputDir,
Path.GetFileNameWithoutExtension(file) + ".glb");
scene.Save(outputPath);
Console.WriteLine("Converted: " + file);
}
Comparació de formats
| Funcionalitat | OBJ | STL | glTF | FBX | 3MF |
|---|---|---|---|---|---|
| Materials | MTL | No | PBR | Sí | Sí |
| Jerarquia d’escena | No | No | Sí | Sí | Sí |
| Esquelets d’animació | No | No | Sí | Sí | No |
| Mode binari | No | Sí | GLB | Sí | ZIP |
| 3D printing ready | Limitat | Sí | No | No | Sí |
| Entrega web | No | No | Sí | No | No |
Resum
Aspose.3D FOSS per a .NET us ofereix una API única i coherent per treballar amb tots els principals formats de fitxers 3D. El patró és sempre el mateix: crea una Scene, crida Open() per carregar, opcionalment configurar opcions específiques del format i cridar Save() per exportar. La detecció de formats, l’E/S basada en flux i la conversió per lots fan que sigui senzill integrar-ho en qualsevol pipeline de .NET.
Per a més informació:
- Referència de l’API – documentació detallada de classes i mètodes.
- Base de coneixement – articles pràctics de com fer-ho.
- GitHub – codi font i gestor d’incidències.