Aspose.3D FOSS per a .NET suposa set formats de fitxers 3D: OBJ, STL, GSTF, GLB, FBX, Col·labora,i 3MF.Aquest post és un guia pràctic, format per format que mostra com carregar i salvar cadascun, quines opcions estan disponibles, i com convertir entre ells.

Tots els exemples utilitzen el Aspose.ThreeD Nom de la ciutat:

using Aspose.ThreeD;
using Aspose.ThreeD.Formats;

El paquet de nuGet:

dotnet add package Aspose.3D --version 26.1.0

El front de la nau (Wavefront)

OBJ és un format basat en text àmpliament recolzat per a la geometria de mesh. Aspose.3D FOSS carrega arxius OBj juntament amb el seu company .mtl Arxius de material.

El càrrec OBJ

var scene = new Scene();
scene.Open("model.obj");

Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);

Carregar amb opcions

var opts = new ObjLoadOptions();
// Configure loading behavior as needed
var scene = new Scene();
scene.Open("model.obj", opts);

El que s’estalvia 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 Save

var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);

STL (Stereolithografia de la Terra)

STL és el format estàndard per a la impressió 3D. Està emmagatzemant geometria triangulada cru sense materials o jerarquia. Aspose.3D FOSS suporta tant binària com ASCII STl.

Lloc STL

var scene = new Scene();
scene.Open("part.stl");

Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);

Estalvi 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 Save

var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);

El Tour de la Ronda

// 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 la norma moderna per a web i 3D en temps real. S’hi dóna suport als materials PBR, les jerarquies de l’escena completa i l’envasament binari eficient (GLB).

Carregador de gltf

var scene = new Scene();
scene.Open("model.gltf");

Carregar amb opcions

var opts = new GltfLoadOptions();
var scene = new Scene();
scene.Open("model.gltf", opts);

Estalvi com a glTF

var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);

scene.Save("output.gltf");

L’estalvi com a GLB (GlTF binari)

Per produir un binari autòcontenut .glb El fitxer, guardat amb un .glb La biblioteca incorpora el format binari glTF de l’extens:

scene.Save("output.glb");

El llibre (Filmbox)

FBX és àmpliament utilitzat en el desenvolupament de jocs i la creació de continguts digitals. Aspose.3D FOSS per .NET suposa FB X Import i Exportació.Exportació produeix FBX binari; el codi d’exportacions de FBC existeix a la font però no es diu pel camí d’export en aquesta versió. FbxSaveOptions La classe proporciona ajustos de default.

Lladida FBX

var scene = new Scene();
scene.Open("model.fbx");

Carregar amb opcions

var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);

Com a FBX

var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);

// FBX export always produces binary FBX output
scene.Save("output.fbx");

Estalvi amb opcions

// Use FbxSaveOptions for format-specific defaults
var opts = new FbxSaveOptions();
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.

càrrega 3MF

var scene = new Scene();
scene.Open("model.3mf");

Carregar amb opcions

var opts = new TmfLoadOptions();
var scene = new Scene();
scene.Open("model.3mf", opts);

Com a 3MF

var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);

scene.Save("output.3mf");

Estalvi amb opcions

var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);

Basada en el corrent I/O

Tots els formats suporten la càrrega i l’estalvi a les fluxos, que és útil per als serveis web i el processament en 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 de les extensions de fitxers o el contingut en 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ó Batx

Per convertir múltiples arxius, iterar sobre un directori i convertir cadascun:

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);
}

Format de comparació

FeinacióOBJSTLGSTFFBX3MF
MaterialsMTLNoPBR
La jerarquia de l’escenariNoNo
Animació SSTUBSNoNoNo
Modi binariNoGLBZIP
3D printing readyLimitatNoNo
Web de lliuramentNoNoNoNo

Resum

Aspose.3D FOSS per a .NET li dóna una única, API consistent per treballar amb tots els formats de fitxers 3D principals. Scene,El truc Open() per carregar, opcionalment configurar les opcions específiques de format i trucar Save() Detecció de formats, I/O basada en el flux i conversió d’un batxel fan que sigui fàcil integrar-se a qualsevol pipeline .NET.

Per a més informació: