الحزمة: @أسبوس/3د (v24.12.0) · اللغة: TypeScript / Node.js 18+ · ترخيص: MIT
@aspose/3d هي مكتبة ترخيص من MIT لقراءة وبناء وتصدير مشاهد ثلاثية الأبعاد في Node.js. وهي تُقدم مع تعريفات النوع الكاملة TypeScript ، واعتماد واحد للوقت التشغيلي (xmldom), ويدعم سبعة تنسيقات ملف 3D الرئيسية. كل I / O متزامن. لا تحتاج إلى وحدات أصلية.
tsconfig.json إعدادات لتحديد المسار الفرعي الصحيح:
فئات الأساسية
Scene
حاوية الجذر لمشهد ثلاثي الأبعاد. يتم تخزين جميع المحتوى العقد والهندسة والمواد والأعمال المتحركة في شجرة متجذرة على scene.rootNode.استخدمها . open() / openFromBuffer() لتحميل ملف و save() / saveToBuffer() للتصدير.
| Member | النوع | وصف |
|---|
rootNode | Node | جذر الرسم البياني للمشهد |
assetInfo | AssetInfo | البيانات الوصفية للملف (المبدع، الوحدات، نظام الإحداثيات) |
animationClips | AnimationClip[] | جميع مقاطع الرسوم المتحركة في المنظر |
open(path, opts?) | (string, LoadOptions?) → void | تحميل ملف من القرص |
openFromBuffer(buf, opts?) | (Buffer, LoadOptions?) → void | الحمل من عازل الذاكرة |
save(path, opts?) | (string, SaveOptions?) → void | حفظ على القرص (التنسيق المستمد من الإضافة) |
saveToBuffer(ext, opts?) | (string, SaveOptions?) → Buffer | حفظ إلى عازل الذاكرة |
createAnimationClip(name) | (string) → AnimationClip | إنشاء وتسجيل مقطع تحريك جديد |
Node
عقدة شجرة مسمّية في الرسم البياني للمشهد. العقدات تحمل خيارية Entity (ميش، كاميرا، ضوء) و a Transform التي تحدد مكان العقدة بالنسبة لأمها.
| Member | النوع | وصف |
|---|
name | string | اسم العقدة |
childNodes | Node[] | العقد التابعة المباشرة |
entity | `Entity | null` |
transform | Transform | الترجمة المحلية، التناوب، الحجم |
materials | Material[] | المواد المعينة لهذه العقدة |
createChildNode(name) | (string) → Node | إضافة عقدة طفلية |
getChildNode(name) | `(string) → Node | null` |
Mesh
شبكة متعددة الأطراف؛ النوع الهندسي الرئيسي. تمتد Geometry.
| Member | النوع | وصف |
|---|
controlPoints | Vector4[] | مواقع القمة (w=1 للمواقع) |
polygonCount | number | عدد المعادلات |
createPolygon(indices) | (number[]) → void | أضف عدة أجزاء (ثلاثي أو رباعي) |
getElement(type) | `(VertexElementType) → VertexElement | null` |
createElement(type) | (VertexElementType) → VertexElement | إنشاء عنصر قمة |
Transform
التحول المحلي المطبق على عقدة.
| Member | النوع | وصف |
|---|
translation | Vector3 | الموقع المحلي |
eulerAngles | Vector3 | دوران ايولر بالدرجات (ترتيب XYZ) |
rotation | Quaternion | دوران الكواترنيون |
scaling | Vector3 | الحجم المحلي |
فئات المواد
| Class | وصف | خصائص رئيسية |
|---|
LambertMaterial | المنتشر + الظل المحيطي | diffuseColor, ambientColor, transparency |
PhongMaterial | يضيف المرايا + الإشعاعي للامبرت | specularColor, shininess, emissiveColor |
PbrMaterial | فيزياء القائمة على glTF 2.0 | albedo, metallicFactor, roughnessFactor, emissiveColor |
فصول الرياضيات
| Class | وصف |
|---|
Vector3 | 3-component double-precision vector (x, y, z) |
Vector4 | 4-component vector for homogeneous math (x, y, z, w) |
FVector3 | المتغير الدقيق الوحيد المستخدم في بيانات القمة |
Matrix4 | 4×4 transformation matrix; multiply, invert, decompose |
Quaternion | كواتيرنيون دوراني.; fromEulerAngle, toEulerAngles, slerp |
BoundingBox | مربع تحديد متوافق مع المحور؛; minimum, maximum, center, size, merge |
دروس الرسوم المتحركة
| Class | وصف |
|---|
AnimationClip | المقطع المسمى؛ يحتوي على: AnimationNode القائمة، يمكن الوصول إليها عبر: scene.animationClips |
AnimationNode | يربط مقطع إلى عقدة مشهد مسمّية؛ تحتوي على: AnimationChannel قائمة |
AnimationChannel | يستهدف خصائص واحدة (مثل الترجمة X) ؛ يحمل ميزة خاصة. KeyframeSequence |
KeyframeSequence | قائمة مرتبة من: KeyFrame كائنات ذات interpolation و extrapolation |
KeyFrame | الزوج الزمني/القيمة الفردي |
التعدادات
| Enum | Values | وصف |
|---|
VertexElementType | NORMAL, UV, VERTEX_COLOR, BINORMAL, TANGENT | عنصر القمة الجوهرية |
MappingMode | CONTROL_POINT, POLYGON_VERTEX, POLYGON, ALL_SAME | كيف ترسم البيانات إلى الهندسة |
ReferenceMode | DIRECT, INDEX, INDEX_TO_DIRECT | استراتيجية فهرسة بيانات عنصر Vertex |
Interpolation | CONSTANT, LINEAR, BEZIER | إدخال الإطار الرئيسي |
Extrapolation | CONSTANT, GRADIENT, CYCLE, CYCLE_RELATIVE, OSCILLATE | السلوك خارج نطاق الإطار المفتاحي |
وحدات التنسيق
يتم تصدير فئات الخيار الخاصة بالنسخة من وحدات المسار الفرعي. استيرادها بشكل منفصل:
وحدة OBJ (@aspose/3d/formats/obj)
| Class | الخيارات الرئيسية |
|---|
ObjLoadOptions | enableMaterials, flipCoordinateSystem, scale, normalizeNormal |
وحدة glTF/GLB (@aspose/3d/formats/gltf)
| Class | الخيارات الرئيسية |
|---|
GltfSaveOptions | binaryMode (حقيقي → .glb) ،, flipTexCoordV |
GltfFormat | GltfFormat.getInstance(): مثال التنسيق لـ: scene.save() |
وحدة STL (@aspose/3d/formats/stl)
| Class | الخيارات الرئيسية |
|---|
StlLoadOptions | N/A |
StlSaveOptions | binaryMode (false → ASCII، true → ثنائي) |
وحدة FBX (@aspose/3d/formats/fbx)
| Class | الخيارات الرئيسية |
|---|
FbxLoadOptions | N/A |
FbxSaveOptions | embedTextures |
الصيغ المدعومة
| Format | Extension | Load | Save |
|---|
| الموجة الأمامية OBJ | .obj | نعم , أنا كذلك | نعم , أنا كذلك |
| glTF 2.0 | .gltf | نعم , أنا كذلك | نعم , أنا كذلك |
Transform (مُحملة مكان) | .glb | نعم , أنا كذلك | نعم , أنا كذلك |
| STL | .stl | نعم , أنا كذلك | نعم , أنا كذلك |
| FBX | .fbx | لا . | لا . |
| COLLADA | .dae | نعم , أنا كذلك | نعم , أنا كذلك |
| 3MF | .3mf | نعم , أنا كذلك | نعم , أنا كذلك |
مثال مرجع سريع
انظر أيضاً
الموارد ذات الصلة