תכונות ופונקציונליות

תכונות ופונקציונליות

תכונות ופונקציונליות

דף זה מכסה כל תחום תכונה מרכזי של 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");

אפשרויות ספציפיות לפורמט

Pass 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 קבצים נתמכים לייבוא — ASCII FBX גורם לשגיאה 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 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 metallic-roughness).


טיפים ושיטות עבודה מומלצות

  • השתמש Scene.fromFile() לטעינה בשורת קוד אחת כאשר אין צורך באפשרויות מותאמות
  • בנה רשתות תכנותית עם createPolygon() לגיאומטריה מותאמת
  • השתמש .glb הרחבה לפלט בינארי קומפקטי של glTF
  • בדוק node.getEntity() != null לפני המרה
  • ייצוא STL לא triangulate משטחי פוליגון אוטומטית. ייצוא Binary STL כותב רק את שלושת הקודקודים הראשונים של כל משטח פוליגון — משטחים מרובעים או n‑גוניים נחתכים בשקט. ייצוא ASCII STL כותב את כל אינדקסי הקודקודים, מה שמייצר בלוקים פגומים של פסים עבור משטחים שאינם משולשים. תמיד העבר רשתות שכבר תּוּקנו מראש (כל המשטחים משולשים) לייצוא STL כדי למנוע אובדן נתונים או פלט לא תקין.

בעיות נפוצות

בעיהסיבהתיקון
חריגה בטעינהקובץ לא נתמך או פגוםאמת שהקובץ נפתח במציג תלת‑ממדי
חומרים חסרים לאחר טעינת OBJ.mtl הקובץ לא נמצאמקום .mtl לצד .obj; ודא שהחומרים מופעלים
חוסר התאמה בקנה מידה לאחר ייבואמערכות יחידות שונותהחל Transform קנה מידה לאחר הטעינה

FAQ

איך אני מזהה את פורמט הקובץ?

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

האם ניתן לטעון מזרם?

כן. scene.open() מקבל InputStream.

אילו פורמטים תומכים גם בייבוא וגם ביצוא?

OBJ, STL ו‑glTF/GLB תומכים בשני הכיוונים. FBX הוא ייבוא בלבד; ייצוא אינו מיושם בגרסת הקוד הפתוח.


סיכום תיעוד API

מחלקה / שיטהתיאור
Sceneמכולת סצנת 3D ברמה העליונה
scene.open()טען קובץ 3D לפי נתיב או זרם
scene.save()ייצא סצנה לקובץ או לזרם
Scene.fromFile()מפעל סטטי לטעינה והחזרת Scene
Nodeצומת היררכיית סצנה
node.createChildNode()צור והצמד צומת ילד
MeshPolygon mesh עם נקודות בקרה ורשימות פנים
mesh.createPolygon()הגדר polygon face
Mesh.toMesh()המיר או שכפל mesh geometry
Transformתרגום, סיבוב וקנה מידה מקומיים
FileFormatרישום וגלאי לפורמטים
 עברית