ویژگی‌ها و عملکردها

ویژگی‌ها و عملکردها

این صفحه تمام حوزه‌های ویژگی اصلی را در بر می‌گیرد aspose-3d-foss 26.1.0 با مثال‌های Java کارآمد.


بارگذاری و ذخیره‌سازی صحنه‌ها

scene.open() فایلی را بارگذاری می‌کند؛; scene.save() آن را صادر می‌کند:

import com.aspose.threed.Scene;

Scene scene = new Scene();
scene.open("input.obj");
scene.save("output.glb");

جایگزین کارخانه ایستا:

Scene scene = Scene.fromFile("input.fbx");
scene.save("output.stl");

گزینه‌های مخصوص فرمت

ارسال LoadOptions یا SaveOptions زیرکلاس‌ها برای کنترل دقیق:

import com.aspose.threed.*;

Scene scene = new Scene();
ObjLoadOptions opts = new ObjLoadOptions();
opts.setFlipCoordinateSystem(true);
scene.open("model.obj", opts);

GltfSaveOptions saveOpts = new GltfSaveOptions();
saveOpts.setFlipCoordinateSystem(true);
scene.save("model.glb", saveOpts);

توجه: FBX فقط برای وارد کردن پشتیبانی می‌شود؛ خروجی FBX در نسخه FOSS پیاده‌سازی نشده است. فقط FBX باینری فایل‌ها برای وارد کردن پشتیبانی می‌شوند — FBX ASCII خطا می‌دهد ImportException.


ساخت گراف صحنه

گره‌ها را ایجاد کنید و موجودیت‌ها را پیوست کنید:

Scene scene = new Scene();
Node root = scene.getRootNode();

Mesh mesh = new Mesh("myMesh");
mesh.getControlPoints().add(new Vector4(0, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 10, 0));
mesh.createPolygon(0, 1, 2);

Node meshNode = root.createChildNode("triangle", mesh);

عملیات مش

یک را ایجاد کنید Mesh به‌صورت برنامه‌نویسی با نقاط کنترل و چندضلعی‌ها:

Mesh mesh = new Mesh("custom");
mesh.getControlPoints().add(new Vector4(0, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 10, 0));
mesh.getControlPoints().add(new Vector4(0, 10, 0));
mesh.createPolygon(0, 1, 2, 3);

تبدیلات

هر Node دارای یک Transform:

Node node = scene.getRootNode().createChildNode("moved", new Mesh());
node.getTransform().setTranslation(10, 0, 5);
node.getTransform().setScale(2, 2, 2);

فضای جهانی را از طریق بخوانید node.getGlobalTransform().getMatrix().


مواد

مواد را به گره‌ها اختصاص دهید:

PbrMaterial mat = new PbrMaterial("shiny");
mat.setAlbedo(new Vector4(0.8, 0.2, 0.2, 1.0));
mat.setMetallicFactor(0.5);
mat.setRoughnessFactor(0.3);

scene.getRootNode().createChildNode("red_mesh", mesh, mat);

انواع متریال: Material (پایه)،, PbrMaterial (PBR متالیک-راست‌نمایی).


نکات و بهترین شیوه‌ها

  • استفاده کنید Scene.fromFile() برای بارگذاری‌های تک‌خطی وقتی گزینه‌های سفارشی لازم نیست
  • مش‌ها را به‌صورت برنامه‌نویسی با createPolygon() برای هندسه سفارشی
  • استفاده کنید .glb پسوند برای خروجی باینری فشرده glTF
  • بررسی کنید node.getEntity() != null قبل از تبدیل
  • صدور STL انجام می‌دهد نیست چهره‌های چندضلعی را به‌صورت خودکار مثلث‌بندی کنید. خروجی باینری STL فقط سه راس اول هر چهره چندضلعی را می‌نویسد — چهره‌های چهارضلعی یا n‑گون به‌صورت ساکتانه کوتاه می‌شوند. خروجی ASCII STL تمام ایندکس‌های راس‌ها را می‌نویسد که منجر به بلوک‌های فاسد فاست برای چهره‌های غیر‑مثلث می‌شود. همیشه مش‌های پیش‌مثلث‌بندی‌شده (همهٔ چهره‌ها مثلثی) را به خروجی STL بدهید تا از از دست رفتن داده یا خروجی نامعتبر جلوگیری شود.

مشکلات رایج

مسئلهدلیلراه‌حل
استثنا هنگام بارگذاریفایل پشتیبانی‌نشده یا خرابتأیید کنید که فایل در یک نمایشگر 3D باز می‌شود
ماتریال‌های گمشده پس از بارگذاری OBJ.mtl فایل یافت نشدمحل .mtl در کنار .obj; اطمینان حاصل کنید که مواد فعال هستند
عدم تطابق مقیاس پس از وارد کردنسیستم‌های واحد مختلفاعمال یک Transform مقیاس پس از بارگذاری

FAQ

چگونه می‌توانم فرمت یک فایل را تشخیص دهم؟?

FileFormat format = FileFormat.detect("unknown.bin");
System.out.println(format.getExtension());

آیا می‌توانم از یک جریان (stream) بارگذاری کنم؟?

بله. scene.open() یک … را می‌پذیرد InputStream.

کدام فرمت‌ها هم واردات و هم صادرات را پشتیبانی می‌کنند؟?

OBJ, STL و glTF/GLB هر دو جهت را پشتیبانی می‌کنند. FBX فقط برای وارد کردن است؛ خروجی در نسخهٔ متن باز پیاده‌سازی نشده است.


خلاصه مرجع API

کلاس / متدتوضیح
Sceneمحفظه صحنه سه‌بعدی سطح بالا
scene.open()فایل سه‌بعدی را از طریق مسیر یا جریان بارگذاری کنید
scene.save()صحنه را به فایل یا جریان صادر کنید
Scene.fromFile()کارخانهٔ ایستا برای بارگذاری و بازگرداندن یک Scene
Nodeگرهٔ سلسله‌مراتبی صحنه
node.createChildNode()یک گرهٔ فرزند ایجاد کنید و پیوست کنید
Meshمش چندضلعی با نقاط کنترل و فهرست‌های سطح
mesh.createPolygon()یک سطح چندضلعی را تعریف کنید
Mesh.toMesh()تبدیل یا کلون‌کردن هندسه مش
Transformجابه‌جایی، چرخش و مقیاس محلی
FileFormatثبت‌نام و شناسایی فرمت‌ها
 فارسی