مقدمة

Aspose3D FOSS لـ TypeScript (@aspose/3d) هو مفتوح المصدر، ومكتبة تصنيف الملفات 3D مرخصة من قبل MIT مصممة أساسا لـ Node.js. يمكن للمطورين بناء المشاهد النموذج 3d، وتحويلات الشكل، وأدوات معالجة الهندسة الجيومترية، أو أنابيب 3د على جانب الخادم تثبيتها مع واحد npm install @aspose/3d أولاً: إرسال رسالة خاصة إلى المكتبة، والبدء في تحميل وتصنيع وتصدير المحتوى 3D. require('fs') و Buffer من Node.js؛ استخدام المتصفح يتطلب الخصومات المناسبة لهذه APIs ولا يدعم رسميا.

يدعم المكتبة تنسيقات التبادل الرئيسية - OBJ، glTF 2.0 / GLB، STL، 3MF، و COLLADA لكل من الواردات والتصدير. FBX المستوردين / المصدرين الفصول موجودة ولكنها لا تزال غير مدمجة في شكل الكشف الذاتي. Scene يحتفظ بـ rootNode,كل واحد منهم Node يمكن أن يحمل أوعية الأطفال والأشياء (Mesh, Camera, Light) ، والهيارق التحويلية متاحة تماما للقراءة والكتابة.

الميزات الرئيسية

  • تنسيق متعدد I/O: استيراد وتصدير OBJ (مع .mtl المواد) ، glTF 2.0 / GLB ، STL (البنائية و ASCII) 3MF ، و COLLADA من كل من مسارات الملفات وفي الذاكرة Buffer لا يوجد دعم FBX حتى الآن في اتصال بالكشف الذاتي.
  • المشهد الرسمي API: Scene, Node, Mesh, Camera, Light الهرمية مع إدارة كاملة للآباء والأمهات/الطفل؛ عبر العقدة مرارا وتكرارا من خلال node.childNodes
  • نظام المواد PBR: لامبرت، فونغ، و PBR (المعدنية/الصخور) المواد متاحة من خلال node.material
  • عمليات Mesh: الوصول إلى بيانات Vertex الخام من خلال mesh.controlPoints (أرى أن Vector4( ) ، مؤشرات البولين عبر mesh.polygonCount,قناة العنصر الورقي عبر mesh.getElement()
  • المواد المفيدة: Vector2, Vector3, Vector4, Matrix4, Quaternion,، وأيضًا أنواع الصندوق الحدودي لحسابات الفضاء
  • نظام الرسوم المتحركة: Keyframe الرسوم المتحركة مع AnimationClip, AnimationChannel, و انقطاع المنحنيات (الخطية ، Bezier ، TCB spline)
  • خيارات محددة للفرم: في شكل LoadOptions / SaveOptions فصول التحكم في تنسيق التزلج، مقياس، تحميل المواد، وأكثر من ذلك.

بدءاً من

تثبيت من npm. Node.js 18 أو أحدث مطلوب؛ يوصى بـ TypeScript 5.0+ .

asposefoss/3d is not yet published — build from source until it ships. See the project README for build instructions.

تحميل ملف OBJ ومراجعة المشهد:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
const options = new ObjLoadOptions();
options.enableMaterials = true;
scene.open('model.obj', options);

for (const node of scene.rootNode.childNodes) {
    if (node.entity && 'controlPoints' in node.entity) {
        const mesh = node.entity as any;
        console.log(`Mesh "${node.name}": ${mesh.controlPoints.length} vertices`);
    }
}

تصدير إلى GLTF

حفظ أي مشاهدة مدمجة أو مبنية إلى glTF 2.0 الثنائي (GLB):

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
scene.open('input.obj', new ObjLoadOptions());
scene.save('output.glb');
console.log('Exported to output.glb');

يكتشف المكتبة تلقائيًا تنسيق النتيجة من ملحق الملف. GltfSaveOptions على سبيل المثال للسيطرة على PBR المواد التخزين، والنسيج، والبيانية مقابل JSON الترميز.

المشهد البناء

قم بإنشاء مشهد برمجيًا وتصديره:

import { Scene, Node } from '@aspose/3d';
import { Mesh } from '@aspose/3d/entities';

const scene = new Scene();
const mesh = new Mesh();
// ... populate mesh.controlPoints and polygons ...
const node = new Node('myMesh');
node.entity = mesh;
scene.rootNode.addChildNode(node);
scene.save('programmatic.glb');

انظر أيضا