نحوه تبدیل مدلهای سهبعدی در .NET
Aspose.3D برای .NET تبدیل فرمت را به صورت دو مرحلهای انجام میدهد: فایل منبع را با Scene.Open() بارگذاری کنید، سپس با Scene.Save() به فرمت هدف ذخیره کنید. فرمت خروجی از پسوند فایل استخراج میشود.
راهنمای گام به گام
مرحله 1: نصب بسته
dotnet add package Aspose.3D --version 26.1.0مرحله ۲: وارد کردن فضاینامها
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;مرحله ۳: بارگذاری فایل منبع
var scene = new Scene();
scene.Open("input.fbx");مرحله ۴: ذخیره در قالب هدف
scene.Save("output.glb");کتابخانه فرمت هدف را از پسوند تشخیص میدهد. فرمتهای خروجی پشتیبانیشده: OBJ، STL، glTF 2.0 / GLB، FBX، COLLADA و 3MF.
مرحله 5: استفاده از گزینههای ذخیرهسازی مخصوص فرمت
برای کنترل دقیق، یک زیرکلاس SaveOptions را پاس دهید:
// FBX output — always produces binary FBX
// FbxSaveOptions exists but has no format-specific properties in this version
scene.Save("output.fbx");
// OBJ with flipped coordinate system
scene.Save("output.obj", new ObjSaveOptions { FlipCoordinateSystem = true });
// COLLADA with indented XML
scene.Save("output.dae", new ColladaSaveOptions { Indented = true });دستورهای تبدیل عمومی
| Source | Target | Code |
|---|---|---|
| OBJ به GLB | scene.Open("input.obj"); scene.Save("output.glb"); | glTF باینری برای نمایشگرهای وب |
| FBX به STL | scene.Open("input.fbx"); scene.Save("output.stl"); | مش مثلثی برای چاپ سهبعدی |
| glTF به COLLADA | scene.Open("input.gltf"); scene.Save("output.dae"); | فرمت تبادل DAE |
| STL به OBJ | scene.Open("input.stl"); scene.Save("output.obj"); | Wavefront برای ابزارهای مدلسازی |
مشکلات رایج و راهحلها
فایل خروجی خالی است یا بسیار کوچک
اطمینان حاصل کنید که فایل منبع با موفقیت بارگذاری شده است. پس از Open()، scene.RootNode.ChildNodes.Count را بررسی کنید.
مواد از دست رفته در حین تبدیل
همه فرمتها ویژگیهای یکسانی از مواد را حمل نمیکنند. مواد OBJ از لامبرت/فونگ استفاده میکنند؛ glTF از PBR استفاده میکند. نگاشت مواد در مرزهای فرمت بهصورت بهترین تلاش انجام میشود.
تفاوت مقیاس بین منبع و خروجی
ابزارهای مختلف از سیستمهای واحد متفاوتی استفاده میکنند. ObjLoadOptions.Scale را هنگام وارد کردن اعمال کنید یا قبل از ذخیرهسازی node.Transform.Scale را تنظیم کنید.
سوالات متداول (FAQ)
آیا میتوانم PLY را به فرمت دیگری تبدیل کنم؟
PLY فقط برای وارد کردن است. یک فایل PLY را بارگذاری کنید و به هر فرمت خروجی (OBJ، STL، GLB، FBX، COLLADA) ذخیره کنید.
آیا تبدیل انیمیشنها را حفظ میکند؟
دادههای انیمیشن (AnimationClip) زمانی حفظ میشوند که هر دو فرمت از آن پشتیبانی کنند (مثلاً از FBX به glTF). فرمتهای STL و OBJ دادههای انیمیشن را حمل نمیکنند.
آیا میتوانم چندین فایل را بهصورت دستهای تبدیل کنم؟
برای هر فایل در یک حلقه، یک Scene جدید ایجاد کنید. هر Scene مستقل است و میتواند بهصورت موازی پردازش شود.