Aspose.3D FOSS for .NET palaiko septynis 3D failų formatus: OBJ, STL, glTF, GLB, FBX, Collada, ir 3MF. Šiame įraše pateikiama praktinė, formatas po formato, vadovas, rodantis, kaip įkelti ir išsaugoti kiekvieną, kokios parinktys prieinamos ir kaip konvertuoti tarp jų.

Visi pavyzdžiai naudoja Aspose.ThreeD vardų erdvę:

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

NuGet paketas:

dotnet add package Aspose.3D --version 26.1.0

OBJ (Wavefront)

OBJ yra plačiai palaikomas tekstinis formatas tinklo geometrijai. Aspose.3D FOSS įkelia OBJ failus kartu su jų .mtl medžiagų failais.

OBJ įkėlimas

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

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

Įkelti su parinktimis

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

Išsaugojimas kaip OBJ

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

scene.Save("output.obj");

OBJ su išsaugojimo parinktimis

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

STL (Stereolithography)

STL yra standartinis formatas 3D spausdinimui. Jis saugo neapdorotą trianguliuotą geometriją be medžiagų ar hierarchijos. Aspose.3D FOSS palaiko tiek binarinį, tiek ASCII STL.

STL įkėlimas

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

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

Išsaugojimas kaip STL

var scene = new Scene();
var sphere = new Entities.Sphere(1);
scene.RootNode.CreateChildNode("SphereNode", sphere);

scene.Save("output.stl");

STL su išsaugojimo parinktimis

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

STL grįžtamasis kelias

// 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 ir GLB

glTF yra modernus standartas žiniatinkliui ir realaus laiko 3D. Jis palaiko PBR medžiagas, pilnas scenų hierarchijas ir efektyvų binarinį pakavimą (GLB).

Įkelti glTF

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

Įkelti su parinktimis

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

Išsaugoti kaip glTF

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

scene.Save("output.gltf");

Išsaugoti kaip GLB (binari glTF)

Norint sukurti savarankišką binarinį .glb failą, išsaugokite su .glb plėtiniu. Biblioteka išplėtinio nustato binarinį glTF formatą:

scene.Save("output.glb");

FBX (Filmbox)

FBX yra plačiai naudojamas žaidimų kūrime ir skaitmeninio turinio kūrime. Aspose.3D FOSS for .NET palaiko FBX importą ir eksportą abiemose – ASCII ir binarinėse – režimuose.

Įkelti FBX

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

Įkelti su parinktimis

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

Išsaugoti kaip 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);

Išsaugoti kaip FBX Binary

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.

Įkelti 3MF

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

Įkelti su parinktimis

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

Išsaugoma kaip 3MF

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

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

Išsaugoma su parinktimis

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

Srauto pagrindu I/O

Visi formatai palaiko įkėlimą iš srautų ir išsaugojimą į srautus, kas yra naudinga interneto paslaugoms ir debesų apdorojimui:

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

Formato aptikimas

Biblioteka gali automatiškai aptikti formatus iš failų plėtinių arba srauto turinio:

// 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

Masinė konversija

Norint konvertuoti kelis failus, pereikite per katalogą ir konvertuokite kiekvieną:

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

Formato palyginimas

FunkcijaOBJSTLglTFFBX3MF
MedžiagosMTLNePBRTaipTaip
Scenos hierarchijaNeNeTaipTaipTaip
Animacijos stubaiNeNeTaipTaipNe
Dvejetainis režimasNeTaipGLBTaipZIP
3D printing readyRibotasTaipNeNeTaip
Interneto pristatymasNeNeTaipNeNe

Santrauka

Aspose.3D FOSS for .NET suteikia vieną, nuoseklią API darbui su visais pagrindiniais 3D failų formatais. Šablonas visada tas pats: sukurti a Scene, iškviesti Open() įkelti, pasirinktinai konfigūruoti formatui būdingus parametrus ir iškviesti Save() eksportuoti. Formato aptikimas, srauto pagrindu veikiantis I/O ir paketinis konvertavimas leidžia lengvai integruoti į bet kurią .NET konvejerį.

Daugiau informacijos:

  • API nuoroda – išsamus klasių ir metodų dokumentavimas.
  • Žinių bazė – praktiniai kaip‑tai atlikti straipsniai.
  • GitHub – šaltinio kodas ir problemų seklys.