איך לטעון מודלים תלת‑ממדיים ב‑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 נפרדים משימות נפרדות היא בטוחה.