Aspose.3D FOSS for Java תומך בחמישה פורמטים של קבצים 3D: OBJ, STL, GLTF, GLB, ו FBX הפוסט הזה הוא מדריך מעשי, פורמט-על-פורמט שמראה כיצד להעלות ולשמור כל אחד מהם, מה האפשרויות זמינות וכיצד להפוך ביניהם.
כל הדוגמאות משתמשות ב com.aspose.threed.* חבילה :
import com.aspose.threed.*;
סכנה של מאן:
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-3d-foss</artifactId>
<version>26.5.0</version>
</dependency>פורמט נוף
לפני הצלילה, הנה סקירה מהירה של ארבעת הפורמטים המומלצים ואת המקרים הנפוצים שלהם.
| פורמט | הרחבה | ייבוא | ייצוא | תמיכה חומרית | תיאוריית המופע |
|---|---|---|---|---|---|
| OBJ | .obj | כן | כן | קבצים בסיסיים (MTL files) | שטוח |
| STL | .stl | כן | כן | אף אחד | שטוח |
| גולף 2.0 | .gltf | כן | כן | PBR | מלאה |
| GLB | .glb | כן | כן | PBR | מלאה |
| FBX | .fbx | כן | לא | עשיר | מלאה |
OBJ, STL, glTF ו- GLB תומכים הן ייבוא והן ייצוא. רק ייבוא.GLB (GlTF בינארי) מיוצר באמצעות GltfSaveOptions עם setContentType(FileContentType.BINARY).
OBJ: אובייקט גלגלים
OBJ הוא אחד פורמטים 3D המומלצים ביותר.זה מאחסן גיאומטריה כמו טקסט שטוח, עם אפשרות אופציונלית .mtl קובץ אישית עבור חומרים.
הורדת קבצים OBJ
הדרך הפשוטה ביותר היא לעבור את מסלול הקובץ ישירות:
Scene scene = Scene.fromFile("model.obj");
למען שליטה רבה יותר, שימוש ObjLoadOptions:
ObjLoadOptions opts = new ObjLoadOptions();
Scene scene = Scene.fromFile("model.obj", opts);
כאשר קובץ OBJ מתייחס לקובצי MTL (באמצעות mtllib תיעוד ה-MTP צריך להיות באותו התיעודה כמו קובץ OBJ או בדרך שנקבעה בדו"ח.
חיסכון כ- OBJ
Scene scene = Scene.fromFile("input.fbx");
scene.save("output.obj");
אובמה משתמשת במקרים
- חילופי נתונים בין כלים 3D שונים.
- ייבוא מודלים מספריית נכסים המפיצים בפורמט OBJ.
- בדיקת גיאומטריה מהירה ללא תיאורגיות סצנה מורכבות.
תגית: Stereolithography
STL הוא פורמט סטנדרטי עבור הדפסה 3D. זה מייצג גיאומטריה משולש ללא חומרים, צבעים או הירוקרגיה של המגרש. קבצי STl מגיעים בשתי אפשרויות: ASCII (אנשי-קריאה) ובינארי (קומפקטי).
הורדת קבצים STL
// Simple load
Scene scene = Scene.fromFile("part.stl");
// With explicit options
StlLoadOptions opts = new StlLoadOptions();
Scene scene = Scene.fromFile("part.stl", opts);
חיסכון כ- STL
Scene scene = Scene.fromFile("model.obj");
scene.save("output.stl");
כדי לשלוט על היצוא, להשתמש StlSaveOptions:
StlSaveOptions opts = new StlSaveOptions();
scene.save("output.stl", opts);
שיקולים STL
- STL מחזיקה רק גיאומטריה משולשת.חומרים, טקסטורים ויראריקה של המגרש אינם נתמכים והם נופלים על ייצוא.
- ה- STL Export הוא לא משולש באופן אוטומטי. STL בינארי כותב רק את 3 העמדות הראשונות של כל פנים פוליגון; ארבע ו n-gon פנים הם צלצול בשקט. ASCII ST L כתיבת כל אינדיקטורים מעולים על פניו, לייצר תוצאה מופרזת עבור לא צד שלישי. תמיד להשתמש במפות מוקדמות (פנים של שלושה) בעת ייצוא ל STl.
- STL בינארי הוא הרבה פחות מאשר ASCII STl עבור מודלים גדולים.
- STL הוא פורמט הבחירה כאשר המטרה היא מדפסת 3D או תוכנה סליקר.
GLTF: פורמט העברת GL
glTF הוא פורמט מודרני שנועד להעברת תוכן 3D יעיל והעלאת, במיוחד באינטרנט וביישומים בזמן אמת.
הורדת קבצים GLTF
Scene scene = Scene.fromFile("scene.gltf");
// With options
GltfLoadOptions opts = new GltfLoadOptions();
Scene scene = Scene.fromFile("scene.gltf", opts);
חיסכון כ-GLTF
ההגדרה הבסיסית משתמשת בהרחבת הקובץ כדי לקבוע את הפורמט:
scene.save("output.gltf");
בקרה מפורטת, שימוש GltfSaveOptions:
GltfSaveOptions opts = new GltfSaveOptions();
opts.setFlipCoordinateSystem(true);
opts.setPrettyPrint(true);
scene.save("output.gltf", opts);
GSTF Options פרטים
| שיטת | מטרה |
|---|---|
setFlipCoordinateSystem(boolean) | זורק את המערכות הקונרדינט במהלך הייצוא. שימושי בעת ההמרה מ- Y-up ל- Z-Up או להיפך. |
setPrettyPrint(boolean) | הצגת JSON עם סימון לקריאה. false גודל קובץ קטן יותר בתהליך הייצור. |
GST משתמשים במקרים
- צופים 3D מבוססים על האינטרנט (three.js, Babylon.JS).
- יישומים בזמן אמת ומנועי משחקים.
- שמירה על הגדרות החומר PBR בין כלים.
FBX: Filmbox (יבוא בלבד)
FBX הוא פורמט בעלות על ידי Autodesk אשר בשימוש נרחב בפיתוח משחקים וליצור תוכן דיגיטלי. Aspose.3D FOSS for Java תומך FBx עבור רק ייבוא - ייצוא ל- FBX אינו זמין.
רק FBX בינארי. היבואן FBX קורא רק קבצי FBx בינאריים.עבור קובץ ASCII FB X זורק
ImportException("ASCII FBX format not yet supported - only binary FBX is supported").היראריקה של העמודים והחומרים המוצעים מ- FBX אינם מאובטחים לחלוטין; סצנות FB X מורכבות לא יכולות להיות מלאות.
הורד קבצים FBX
Scene scene = Scene.fromFile("character.fbx");
// With options
FbxLoadOptions opts = new FbxLoadOptions();
Scene scene = Scene.fromFile("character.fbx", opts);
להמיר FBX לתבניות אחרות
מאז ייצוא FBX אינו נתמך, להפוך את סצינות FB X המובאו ל- glTF, GLB, OBJ או STL:
Scene scene = Scene.fromFile("character.fbx");
// Save as GLB
GltfSaveOptions opts = new GltfSaveOptions();
opts.setContentType(FileContentType.BINARY);
scene.save("character.glb", opts);
FBX מקרים שימוש
- ייבוא נכסים סטטיים של מייס מתוך כלי Autodesk (Maya, 3ds Max) והפוך לתבניות אחרות.
- טעינה בינארית FBX גיאומטריה וייצוא מחדש ל glTF / GLB, OBJ, או STL.
Batch Conversion תצוגה
זרימת עבודה נפוצה היא להמיר תיעוד שלם של קבצים מתוך פורמט אחד לתוך אחר.הנה דפוס עבור הפוך סדרה:
import com.aspose.threed.*;
import java.io.File;
public class BatchConvert {
public static void main(String[] args) throws Exception {
File inputDir = new File("models/obj");
File outputDir = new File("models/gltf");
outputDir.mkdirs();
GltfSaveOptions saveOpts = new GltfSaveOptions();
saveOpts.setPrettyPrint(true);
File[] objFiles = inputDir.listFiles(
(dir, name) -> name.toLowerCase().endsWith(".obj")
);
if (objFiles == null) return;
for (File objFile : objFiles) {
String baseName = objFile.getName()
.replaceFirst("\\.obj$", "");
Scene scene = Scene.fromFile(objFile.getAbsolutePath());
String outPath = new File(outputDir, baseName + ".gltf")
.getAbsolutePath();
scene.save(outPath, saveOpts);
System.out.println("Converted: " + objFile.getName()
+ " -> " + baseName + ".gltf");
}
}
}
זה משלם כל אחד .obj קובץ בקטלוג, להפוך כל אחד ל- glTF עם תוצאה מדפסת היטב, ולשמור את התוצאות.אתה יכול להתאים דפוס זה לכל שילוב של מקור ופורמט יעד.
תגית: Cross-Format Conversion Reference
הטבלה הבאה מראה מה לצפות בעת ההמרה בין פורמט.
| מתוך | ל | גיאומטריה | חומרים | הירוקרטיה | הערות |
|---|---|---|---|---|---|
| OBJ | STL | שמירה על | אבוד | N/A | ל-STL אין תמיכה חומרית |
| OBJ | גלט / GLB | שמירה על | הפוך ל- PBR | שטוח | חומר MTL מפותח בכל מקום אפשרי |
| STL | OBJ | שמירה על | אף אחד | N/A | אין חומרים במקור |
| STL | גלט / GLB | שמירה על | דוגמנית | שטוח | חומרים מוטבעים יישומים |
| GLTF | OBJ | שמירה על | פשוטה | שטוח | PBR למסמכים בסיסיים |
| GLTF | STL | שמירה על | אבוד | שטוח | גיאומטריה בלבד |
| FBX | OBJ | שמירה על | פשוטה | שטוח | הפשטות חומרית |
| FBX | STL | שמירה על | אבוד | שטוח | גיאומטריה בלבד |
| FBX | גלט / GLB | שמירה על | הפוך ל- PBR | שמירה על | נאמנות טובה |
כללי ההמרה
- גיאומטריה הוא נשמר בדרך כלל בין זוגות פורמט, עם יוצא מן הכלל אחד חשוב: בעת ייצוא ל- STL, המשיכות חייבות להתבסס לחלוטין על פרצופים משולש. ST L בינארי בשקט מתנפח את ארבע ו n-gon פרציהם לשלושת העמדות הראשונות שלהם; ASCII STl מייצר תוצאה מוטה עבור פרצים שאינם משליש .
- חומרים לשרוד הכי טוב בין glTF ו FBX-יבוא סצנות הכוללות נתונים חומריים.הפוך ל STL תמיד נופל חומר.המרה ל OBJ פשוטה החומרים למודל MTL בסיסי.
- תיאוריית המופע OBJ ו- STL מייצרים מבנים שטוחים.היראריקה של FBX והחומרים לא מאובטחים לחלוטין בגרסה זו.
להכניס את כולם יחד
הנה דוגמה מקיפה שמטען קובץ OBJ, בודק את הקוטבים שלו ומייצא לשני GLTF ו- GLB:
import com.aspose.threed.*;
public class FormatWorkflow {
public static void main(String[] args) throws Exception {
// Load
Scene scene = Scene.fromFile("input.obj");
// Inspect
System.out.println("Nodes in scene:");
for (Node child : scene.getRootNode().getChildNodes()) {
System.out.println(" " + child.getName());
Transform t = child.getTransform();
System.out.println(" Translation: "
+ t.getTranslation());
}
// Export to glTF with options
GltfSaveOptions gltfOpts = new GltfSaveOptions();
gltfOpts.setPrettyPrint(true);
scene.save("output.gltf", gltfOpts);
// Export to GLB (binary glTF)
GltfSaveOptions glbOpts = new GltfSaveOptions();
glbOpts.setContentType(FileContentType.BINARY);
scene.save("output.glb", glbOpts);
System.out.println("Export complete.");
}
}
סיכום
Aspose.3D FOSS for Java נותן לך API עקבי בין מספר פורמטים.:
- OBJ - חילופי חוטים פשוטים עם חומרים בסיסיים.
- STL - גיאומטריה-פורמט בלבד עבור צינורות הדפסה 3D.
- GLTF / GLB - פורמט PBR-אפשר מודרני לשימוש באינטרנט ובזמן אמת.
GltfSaveOptionsעםsetContentType(FileContentType.BINARY)על מוצרי GLB. - FBX - ייבוא בלבד; פורמט עשיר עבור נכסים משאבים משחקים וכלים DCC.
שימוש בקטגוריות של טופס ספציפי וחיזוק אפשרויות (ObjLoadOptions, StlLoadOptions, StlSaveOptions, GltfLoadOptions, GltfSaveOptions, FbxLoadOptionsכאשר יש צורך בשליטה מעולה על תהליך היבוא או הייצוא.
לקבלת פרטים נוספים, בקר ב תגיות: Aspose.3D Documentation או לחצו על המקור GitHub.