איך לטעון מודלים תלת‑ממדיים ב‑Java

איך לטעון מודלים תלת‑ממדיים ב‑Java

aspose-3d-foss עבור Java מספק API פשוט לפתיחת קבצי 3D. לאחר טעינת קובץ לתוך a Scene אובייקט, אתה יכול לעבור על היררכיית הצמתים ולקרוא נתוני גאומטריה.

מדריך שלב אחר שלב

שלב 1: התקנת החבילה

הוסף את תלות Maven:

<dependency>
  <groupId>com.aspose</groupId>
  <artifactId>aspose-3d-foss</artifactId>
  <version>26.1.0</version>
</dependency>

שלב 2: ייבוא מחלקת Scene

import com.aspose.threed.Scene;
import com.aspose.threed.Node;
import com.aspose.threed.Mesh;

שלב 3: טעינת קובץ

Scene scene = new Scene();
scene.open("model.obj");

או השתמש במפעל הסטטי:

Scene scene = Scene.fromFile("model.obj");

פורמטים נתמכים: OBJ, STL, glTF 2.0 / GLB, FBX (בינארי בלבד — ASCII FBX אינו נתמך וגורם ל‑ ImportException).


שלב 4: מעבר על צמתי Scene

void walk(Node node, int depth) {
    String indent = " ".repeat(depth * 2);
    System.out.println(indent + "Node: " + node.getName());
    for (Node child : node.getChildNodes()) {
        walk(child, depth + 1);
    }
}

walk(scene.getRootNode(), 0);

שלב 5: גישה לנתוני Mesh

for (Node node : scene.getRootNode().getChildNodes()) {
    if (node.getEntity() instanceof Mesh) {
        Mesh mesh = (Mesh) node.getEntity();
        System.out.println("Mesh '" + node.getName() + "': " +
            mesh.getControlPoints().size() + " vertices, " +
            mesh.getPolygonCount() + " polygons");
    }
}

בעיות נפוצות ותיקונים

שגיאה בטעינה

ודא שהקובץ אינו פגום והפורמט נתמך (OBJ, STL, glTF, FBX).

NullPointerException בגישה ל‑entity

לא כל צומת נושא גאומטריה. תמיד יש לבדוק node.getEntity() instanceof Mesh לפני המרה.

אי התאמה של מערכת הקואורדינטות

השתמש ObjLoadOptions.setFlipCoordinateSystem(true) או להחיל סיבוב לאחר הטעינה.


שאלות נפוצות (FAQ)

אילו פורמטים אני יכול לטעון?

OBJ, STL (בינארי ו‑ASCII), glTF 2.0 / GLB, ו‑FBX. עבור FBX, רק FBX בינארי נתמך. קבצי ASCII FBX יזרקו ImportException("ASCII FBX format not yet supported - only binary FBX is supported").

האם אני יכול לטעון מ‑InputStream?

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

האם הספרייה בטוחה לשימוש מרובה‑תהליכים?

כל Scene instance הוא עצמאי. טעינת קבצים נפרדים לתוך instances נפרדים משימות נפרדות היא בטוחה.

 עברית