Aspose.3D FOSS for .NET támogatja a hét 3D fájlformátumot: OBJ, STL, glTF-t, GLB, FBX, Collada,és a következők: 3MF.Ez a bejegyzés egy gyakorlati, formátumonként bemutatott útmutató arról, hogyan lehet feltölteni és menteni mindegyiket, milyen lehetőségek állnak rendelkezésre, valamint hogy miként konvertizálhatóak közöttük.

Minden példa a következőket használja: Aspose.ThreeD névterület:

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

NuGet csomag:

dotnet add package Aspose.3D.FOSS

OBJ (Wavefront)

Az OBJ egy széles körben támogatott szöveges formátum a mesh geometria számára. Aspose.3D FOSS az OB J fájlok és társaik feltöltése mellett. .mtl anyagi akták.

A OBJ betöltése

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

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

A lehetőségekkel való betöltés

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

OBJ-ként mentés

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

scene.Save("output.obj");

OBJ mentési lehetőségekkel

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

STL (sztereolitográfia)

A STL a 3D nyomtatás szabványos formátuma. Nyers triangulált geometria tárolása, anyag és hierarchiák nélkül. Aspose.3D FOSS támogatja mind a bináris, mind az ASCII STl-t.

Töltés STL

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

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

STL-ként való mentés

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

scene.Save("output.stl");

STL mentési lehetőségekkel

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

STL-térre és vissza utazás

// 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 és GLB

A glTF a modern szabvány a webes és valós idejű 3D-re. Támogatja a PBR anyagokat, az teljes jelenet hierarchiákat és a hatékony bináris csomagolást (GLB).

Töltés glTF

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

A lehetőségekkel való betöltés

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

Tárolás glTF-ként

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

scene.Save("output.gltf");

A GLB-ként történő megtakarítás (bináris glTF)

Egy önálló bináris generátor előállítása. .glb A fájl, mentse meg egy .glb A könyvtár a bináris glTF formátumot az extensionből következteti:

scene.Save("output.glb");

FBX (Filmbox)

Az FBX széles körben használják a játékfejlesztésben és a digitális tartalom létrehozásában. Aspose.3D FOSS for .NET támogatja az FBx-t. import és export.Az export bináris FBX-t hoz létre; az ASCII FBx export kód létezik a forrásban, de ebben a változatban nem hívja fel azt az export útvonal. FbxSaveOptions az osztály megadja a beállítások alapértelmezett formáját.

FBX betöltés

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

A lehetőségekkel való betöltés

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

FBX-ként menteni

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

A megtakarítás lehetőségével

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

Töltés 3MF

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

A lehetőségekkel való betöltés

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

3MF-os megtakarítás

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

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

A megtakarítás lehetőségével

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

Áram alapú bemeneti/kibocsátási rendszer

Minden formátum támogatja a streametől történő betöltést és az azt tartalmazó adatokat menteni, ami hasznos a webszolgáltatásokhoz és a felhő feldolgozásához:

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

Formátum felismerése

A könyvtár automatikusan felismerheti a formátumokat az adatszolgáltatásokból vagy a tartalom áramlásától:

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

Sorozatkonverzió

Több fájl átalakításához egy-egy címzettben iteráljon és minden egyes számot konvertálja:

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

Formátum összehasonlítása

A tulajdonságokOBJSTLglTF-tFBX3MF
Az anyagokMTLNem, nem.PBRIgen, igen. - Az is jó.Igen, igen. - Az is jó.
Színje hierarchiájaNem, nem.Nem, nem.Igen, igen. - Az is jó.Igen, igen. - Az is jó.Igen, igen. - Az is jó.
Animációs címezésNem, nem.Nem, nem.Igen, igen. - Az is jó.Igen, igen. - Az is jó.Nem, nem.
Bináris üzemmódNem, nem.Igen, igen. - Az is jó.GLBIgen, igen. - Az is jó.ZIP
3D printing readyKiszámítottIgen, igen. - Az is jó.Nem, nem.Nem, nem.Igen, igen. - Az is jó.
Webes kézbesítésNem, nem.Nem, nem.Igen, igen. - Az is jó.Nem, nem.Nem, nem.

Összefoglaló:

A 3D FOSS for .NET egyetlen, egységes API-t biztosít minden főbb 3d fájlformátummal való együttműködéshez. Scene,Hívj! Open() a formátum-specifikus opciók betöltésére, ha szükséges konfigurálására és hívásra. Save() A formátum felderítése, a áramlással alapuló bemeneti/kifelé irányuló kommunikáció és a tételkonverzió egyszerűvé teszi az integrációt bármely .NET csővezetékbe.

További információ: