Aspose.3D FOSS for .NET يدعم سبعة تنسيقات ملف 3D: OBJ, STL, GLTF, GLB, FBX, كولايدا,و ، و 3MF.هذا المنشور هو دليل عملي، تنسيق حسب النموذج يظهر كيفية تحميل وتخزين كل واحد منهم، ما هي الخيارات المتاحة، وكيفية تحويل بينهما.

كل الأمثلة تستخدم Aspose.ThreeD اسم الفضاء :

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

حزمة نوكيا :

dotnet add package Aspose.3D.FOSS

جبهة الموجات (Wavefront)

OBJ هو تنسيق نصي مدعوم على نطاق واسع لجيومتريا الماس. Aspose.3D FOSS يحمل ملفات OBG جنبا إلى جنب مع رفيقها .mtl المواد الملفات .

تحميل OBJ

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

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

تحميل مع الخيارات

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

التخزين كأوبج

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

scene.Save("output.obj");

OBJ مع خيارات حفظ

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

STL (الستريوليثوغرافيا )

STL هو النموذج القياسي للطباعة 3D. فإنه يخزن الهندسة المثلث الخام دون مواد أو الهرم. Aspose.3D FOSS يدعم كل من الثنائية و ASCII STl.

تحميل STL

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

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

الادخار كالقمر

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

scene.Save("output.stl");

STL مع خيارات حفظ

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

جولة سباق

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

glTF هو المعيار الحديث للويب والزمن الحقيقي 3D. فإنه يدعم مواد PBR، سلسلة المسرح الكامل، وفعالة التعبئة الثنائية (GLB).

تحميل GLTF

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

تحميل مع الخيارات

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

توفير مثل glTF

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

scene.Save("output.gltf");

توفير ك GLB (GlTF الثنائي)

إنتاج محفظة ثنائية ذاتية الحجم .glb الملفات، حفظ مع A .glb يُدخل المكتبة تنسيق glTF الثنائي من التمديد:

scene.Save("output.glb");

FBX (صورة الفيلم)

ويستخدم FBX على نطاق واسع في تطوير الألعاب وإنشاء المحتوى الرقمي. Aspose.3D FOSS for .NET يدعم FB X الاستيراد والتصدير.تصدير ينتج FBX الثنائي؛ ASCII FBx رمز التصدير موجود في المصدر ولكن لا يسمى من خلال مسار التصادير في هذا الإصدار. FbxSaveOptions تتوفر فئة إعدادات افتراضية.

تحميل FBX

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

تحميل مع الخيارات

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

التخزين ك 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");

توفير المال مع الخيارات

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

تحميل 3MF

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

تحميل مع الخيارات

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

التخزين 3MF

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

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

توفير المال مع الخيارات

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

القاعدة I/O

جميع تنسيقات الدعم تحميل من وتخزين إلى التدفقات، والتي هي مفيدة لخدمات الويب وعمليات السحابة:

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

تشكيل الكشف

يمكن للمكتبة اكتشاف تنسيقات تلقائيًا من ملحقات الملفات أو محتوى البث:

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

Batch تحويلات

لتحويل ملفات متعددة، إيتير عبر دليل وتحويل كل منها:

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

شكل مقارنة

الميزاتOBJSTLGLTFFBX3MF
الموادMTLلاPBRنعمنعم
مسرحية الهرملالانعمنعمنعم
الرسوم المتحركة stubsلالانعمنعملا
الوضع الثنائيلانعمGLBنعمZIP
3D printing readyمحدودةنعملالانعم
WEB تسليملالانعملالا

ملخص

Aspose.3D FOSS for .NET يعطيك API واحد ومتسق للعمل مع جميع تنسيقات الملفات 3D الرئيسية. Scene,اتصلت Open() تحميل، اختياري إعداد الخيارات المحددة تنسيق، ودعوة Save() اكتشاف النماذج، I/O القائمة على التدفق، وتحويل المجموعة تجعل من السهل دمجها في أي خط أنابيب .NET.

لمزيد من المعلومات: