المشهد التصدير والتصديد
@aspose/3d هي مكتبة معالجة وتحويل، ولا تقوم بتحرير GPU أو إنتاج ملفات الصورة. “تحميل” في سياق هذه المكتبات يعني: تصدير مشهد إلى تنسيق يمكن أن يستخدمه جهاز عرض الأسفل أو محرك الألعاب أو المشاهد..
وتغطي هذه الصفحة جميع طرق التصدير: توفير الملفات، ونتيجة البوفر في الذاكرة، وخيارات تنسيق محددة، وكيفية إعداد المشاهد لأهداف متزايدة (Three.js، Babylon.js، ومشاهد النموذج، ومتحركات الألعاب).
الصادرات الأساسية
مكالمة scene.save() مع مسار الملفات.يتم إدخال مكتبة تنسيق النتيجة من امتداد المجلد:
import { Scene } from '@aspose/3d';
const scene = new Scene();
scene.open('input.obj'); // use a supported format (OBJ, glTF, GLB, STL, 3MF, COLLADA)
scene.save('output.glb'); // GLB (binary glTF)
scene.save('output.stl'); // STL
scene.save('output.dae'); // COLLADA
scene.save('output.3mf'); // 3MF
تصدير إلى GLB (موصى بها للويب والألعاب)
GLB (GlTF 2.0 الثنائي) هو ملف واحد يحتوي على نفسه الذي يضم جميع بيانات الماس، والمواد، والنسيج.وهذا هو تنسيق الإنتاج الموصى به لمشاهد الويب (Three.js، Babylon.JS، نموذج-مشاهدة) ومحركات الألعاب (غودوت، وحدة عن طريق المستورد):
import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('source.obj');
const opts = new GltfSaveOptions();
opts.binaryMode = true; // produce .glb instead of .gltf + .bin
scene.save('output.glb', opts);
console.log('GLB export complete');مجموعة binaryMode = true لإنتاج ملف GLB ذات الحاوية الذاتية. false,إن الإنتاج هو أ .gltf ملف JSON مع منفصلة .bin بوفير الجانب.
تصدير إلى glTF (JSON Format for Inspection)
وَالْمُتَوَلَّى الْأَرْض (.gltf + .bin) مفيد أثناء التطوير لأن JSON قابل للقراءة للإنسان:
import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('input.dae'); // COLLADA is fully supported; FBX is not wired into scene.open()
const opts = new GltfSaveOptions();
opts.binaryMode = false; // JSON + .bin sidecar
scene.save('output.gltf', opts);تصدير إلى STL (3D الطباعة تدفقات العمل)
STL هو الهندسة الجيومترية فقط (لا مواد، لا الرسوم المتحركة).هذا هو تنسيق التبادل القياسي للطباعة 3D:
import { Scene } from '@aspose/3d';
import { StlSaveOptions } from '@aspose/3d/formats/stl';
const scene = new Scene();
scene.open('model.obj');
const opts = new StlSaveOptions();
opts.binaryMode = true; // binary STL is more compact than ASCII
scene.save('output.stl', opts);مجموعة binaryMode = false لإنتاج ASCII STL ، وهو نص قابل للقراءة ولكن أكبر.
تصدير إلى FBX (دفقات العمل أدوات DCC)
ملاحظة: فصول FBX المستوردين والمتصدرين موجودة في المكتبة ، ولكن لا يتم توصيل التعرف الذاتي على تنسيق FB X إلى
scene.open()أوscene.save().- دعوةscene.save('output.fbx', opts)لن يطلب من المستورد FBX -.fbxلا يتم التعرف على التمديد من قبل المرسل المحفوظ وسوف تسقط المكالمة مرة أخرى إلى إخراج OBJ.FbxExporterفئة مباشرة إذا كنت بحاجة إلى FBX I/O. علامة التبويب دعم النموذج FBx علىNo*لهذا السبب .
إذا كنت بحاجة إلى تصديرها إلى تنسيق مقبول من قبل Blender أو Maya أو Unreal Engine ، استخدم GLB أو COLLADA بدلاً من ذلك - كلاهما متصل بالكامل في scene.save():
import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('input.dae');
// GLB is fully supported and widely accepted by DCC tools
const opts = new GltfSaveOptions();
opts.binaryMode = true;
scene.save('output.glb', opts);في الذاكرة التصدير مع saveToBuffer()
بالنسبة للوظائف الخالية من الخادم، استجابة HTTP، وأنابيب البث، تصدير مباشرة إلى Buffer لا تكتب على القرص:
import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
function convertToGlbBuffer(inputPath: string): Buffer {
const scene = new Scene();
scene.open(inputPath);
const opts = new GltfSaveOptions();
opts.binaryMode = true;
return scene.saveToBuffer('glb', opts);
}
// Express.js / HTTP response example
// const glbBuffer = convertToGlbBuffer('model.obj');
// res.setHeader('Content-Type', 'model/gltf-binary');
// res.send(glbBuffer);
saveToBuffer() يضع صف النموذج كأول حجة (على سبيل المثال،. 'glb', 'stl', 'obj'(و) وتتضمن نفس الخيارات كالمواقع التي save().
مزيج openFromBuffer() و saveToBuffer()
خط أنابيب التحويل بالكامل في الذاكرة مع عدم وجود قرص I/O في أي مرحلة:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';
function objBufferToGlbBuffer(objData: Buffer): Buffer {
const scene = new Scene();
const loadOpts = new ObjLoadOptions();
loadOpts.enableMaterials = true;
scene.openFromBuffer(objData, loadOpts);
const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true;
return scene.saveToBuffer('glb', saveOpts);
}إعداد المشاهد للمتسابقين المحددين
Three.js / Babylon.JS (الإنترنت)
هذه الرافعات المحلية تحميل ملفات GLB. تصدير مع binaryMode = true.إذا كانت النسيج مرجعية من مصدر OBJ، تأكد من أن .mtl وتتراوح مواقع الصور عند تحميلها.
المكونات الويب (Web Component)
قبولات .glb نفس إعدادات التصدير مثل Three.js.
محرك غودو
استيراد GLB عبر مستورد Godot (مشروع → استيفاء). binaryMode = true.Godot يدعم مواد PBR من glTF 2.0 الأصلي.
Blender
من أجل أفضل الاستيراد الولاء باستخدام GST (output.gltf + output.bin(أو من أصلها)output.glb. ) Blender’s glTF 2.0 المستورد يتعامل مع مواد PBR والرسوم المتحركة. ملاحظة: إصدار FBX عبر scene.save() لا يدعم - لا يتم توصيل التعرف الذاتي على تنسيق FBX إلى جهاز إرسال النسخ الاحتياطي.
3D Printing (Slicers: Cura, PrusaSlicer, Bambu Studio)
تصدير إلى STL أو 3MF. استخدم 3mF عندما تحتاج إلى الحفاظ على ألوان أو بيانات المواد المتعددة.
مقارنة نموذج الصادرات
| شكل | التمديد | المواد | الرسوم المتحركة | ملف واحد | أفضل من أجل |
|---|---|---|---|---|---|
| GLTF | .glb / .gltf | PBR (glTF 2.0) | نعم | GLB: نعم؛ glTF: لا | الويب, ألعاب, التسليم العام |
| STL | .stl | لا | لا | نعم | 3D printing, geometry-only |
| FBX | .fbx | فينغ / PBR | لا * | لا * | المستورد/المستورد موجود ولكن لم يتم إدخاله في الكشف الذاتي |
| COLLADA | .dae | نعم | نعم | نعم | تبادل الدوائر العابرة |
| 3MF | .3mf | اللون / المواد | لا | نعم | الطباعة الحديثة 3D |
اختر GLTF (GLB) لتسليم الويب، 3MF لنتطبيق سير العمل المطبوعة التي تتطلب بيانات الألوان، و STL للحصول على أقصى قدر من التوافق الهندسي مع الأدوات القديمة.
مشكلة التصدير المشترك
| الأعراض | سبب | تصحيح |
|---|---|---|
| يفتح الخروج GLB كJSON في المشاهد | binaryMode وَلَمْ يُبْدِئْ كَ false | مجموعة opts.binaryMode = true |
| النسيج المفقود في الإنتاج GLB | binaryMode لا تضع | مجموعة opts.binaryMode = true لـ GLB ذات الحاوية الذاتية |
| ملف STL لا يحتوي على لون في الشريط | تنسيق STL لا يدعم اللون | استخدام 3MF لبيانات الألوان |
saveToBuffer عودة الفراغ المباشر | إعداد حروف الحرف المفقودة أو الخاطئة | إرسال رسالة خاصة إلى الشريط، إلخ. 'glb', 'stl',أو 'obj' |
| FBX يفتح دون تحريك في Blender | ملف المصدر (OBJ / STL) لا يحتوي على الرسوم المتحركة | الرسوم المتحركة لا تنتقل إلا إذا كانت موجودة في المصدر |
| ملف الخروج كبير جدا | المصدر OBJ لديه العديد من الأقواس المزدوجة | GLB الإنتاج الثنائي بالفعل تضاعف؛ التحقق من جودة الأصول المصدر |
انظر أيضا
- نموذج الشحن:تحميل ملفات 3D من القرص والبوفر
- مشاهدة Graph: بناء وتعديل المشهد قبل التصدير
- شكل الدعم:قراءة / كتابة المصفوفة الكاملة
- API نظرة عامة: جميع الفئات والصفات