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
| Funkcija | OBJ | STL | glTF | FBX | 3MF |
|---|---|---|---|---|---|
| Medžiagos | MTL | Ne | PBR | Taip | Taip |
| Scenos hierarchija | Ne | Ne | Taip | Taip | Taip |
| Animacijos stubai | Ne | Ne | Taip | Taip | Ne |
| Dvejetainis režimas | Ne | Taip | GLB | Taip | ZIP |
| 3D printing ready | Ribotas | Taip | Ne | Ne | Taip |
| Interneto pristatymas | Ne | Ne | Taip | Ne | Ne |
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.