Pachet: @aspose/3d (v24.12.0) Limbaj: TypeScript / Node.js 18+ Licență: MIT
@aspose/3d este o bibliotecă MIT-licensed pentru citirea, construirea și exportarea scenelor 3D în Node.js. Vine cu definiții complete de tipuri TypeScript, o singură dependență la runtime.xmldom), și acceptă șapte formate majore de fișiere 3D. Toate operațiile I/O sunt sincronizate. Nu sunt necesare addon-uri native.
tsconfig.json setări pentru rezoluția corectă a sub-căii:
Clase de bază
Containerul rădăcină pentru o scenă 3D. Tot conținutul; noduri, geometrie, materiale și animații; este stocat într-un arbore cu rădăcina la scene.rootNode. Folosește open() / openFromBuffer() pentru a încărca un fișier și save() / saveToBuffer() pentru export.
| | |
|---|
rootNode | Node | Rădăcina graficului scenei |
assetInfo | AssetInfo | Metadatele fișierului (creator, unități, sistem de coordonate) |
animationClips | AnimationClip[] | Toate clipurile de animație din scenă |
open(path, opts?) | (string, LoadOptions?) → void | Încarcă un fișier de pe disc |
openFromBuffer(buf, opts?) | (Buffer, LoadOptions?) → void | Încarcă dintr-un buffer în memorie |
save(path, opts?) | (string, SaveOptions?) → void | Salvează pe disc (format dedus din extensie) |
saveToBuffer(ext, opts?) | (string, SaveOptions?) → Buffer | Salvează în buffer în memorie |
createAnimationClip(name) | (string) → AnimationClip | Creează și înregistrează un nou clip de animație |
Un nod de arbore denumit în graficul scenei. Nodurile poartă un opțional Entity (mesh, cameră, lumină) și un Transform care poziționează nodul relativ la părintele său.
| | |
|---|
name | string | Nume nod |
childNodes | Node[] | Noduri copil directe |
entity | `Entity | null` |
transform | Transform | Translație, rotație și scară locale |
materials | Material[] | Materiale atribuite acestui nod |
createChildNode(name) | (string) → Node | Adaugă un nod copil |
getChildNode(name) | `(string) → Node | null` |
Plasă poligonală; tipul principal de geometrie. Extinde Geometry.
| | |
|---|
controlPoints | Vector4[] | Poziții ale vârfurilor (w=1 pentru poziții) |
polygonCount | number | Număr de poligoane |
createPolygon(indices) | (number[]) → void | Adaugă un poligon (triunghi sau cvadrilater) |
getElement(type) | `(VertexElementType) → VertexElement | null` |
createElement(type) | (VertexElementType) → VertexElement | Creează un element de vârf |
Transformare locală aplicată unui nod.
| | |
|---|
translation | Vector3 | Poziție locală |
eulerAngles | Vector3 | Rotire Euler în grade (ordine XYZ) |
rotation | Quaternion | Rotire ca quaternion |
scaling | Vector3 | Scară locală |
Clase de material
| | Proprietăți cheie |
|---|
LambertMaterial | Umbrare difuză + ambientală | diffuseColor, ambientColor, transparency |
PhongMaterial | Adaugă specular + emisiv la Lambert | specularColor, shininess, emissiveColor |
PbrMaterial | Bazat pe fizică pentru glTF 2.0 | albedo, metallicFactor, roughnessFactor, emissiveColor |
Clase matematice
| |
|---|
Vector3 | 3-component double-precision vector (x, y, z) |
Vector4 | 4-component vector for homogeneous math (x, y, z, w) |
FVector3 | Variantă cu precizie simplă utilizată în datele de vârf |
Matrix4 | 4×4 transformation matrix; multiply, invert, decompose |
Quaternion | Cuaternion de rotație; fromEulerAngle, toEulerAngles, slerp |
BoundingBox | Cutie de delimitare aliniată pe axe; minimum, maximum, center, size, merge |
Clase de animație
| |
|---|
AnimationClip | Clip numit; conține AnimationNode listă; accesată prin scene.animationClips |
AnimationNode | Leagă un clip de un nod de scenă numit; conține AnimationChannel listă |
AnimationChannel | Vizează o singură proprietate (de ex. translație X); deține un KeyframeSequence |
KeyframeSequence | Listă ordonată de KeyFrame obiecte cu interpolation și extrapolation |
KeyFrame | Pereche unică timp/valoare |
| | |
|---|
VertexElementType | NORMAL, UV, VERTEX_COLOR, BINORMAL, TANGENT | Semantică element vertex |
MappingMode | CONTROL_POINT, POLYGON_VERTEX, POLYGON, ALL_SAME | Cum se mapază datele la geometrie |
ReferenceMode | DIRECT, INDEX, INDEX_TO_DIRECT | Strategie de indexare pentru datele elementului vertex |
Interpolation | CONSTANT, LINEAR, BEZIER | Interpolare cadru cheie |
Extrapolation | CONSTANT, GRADIENT, CYCLE, CYCLE_RELATIVE, OSCILLATE | Comportament în afara intervalului cadrelor cheie |
Module de format
Clasele de opțiuni specifice formatului sunt exportate din modulele sub-căilor. Importați-le separat:
Modul OBJ (@aspose/3d/formats/obj)
| Opțiuni cheie |
|---|
ObjLoadOptions | enableMaterials, flipCoordinateSystem, scale, normalizeNormal |
Modul glTF/GLB (@aspose/3d/formats/gltf)
| Opțiuni cheie |
|---|
GltfSaveOptions | binaryMode (true → .glb), flipTexCoordV |
GltfFormat | GltfFormat.getInstance():instanță de format pentru scene.save() |
Modul STL (@aspose/3d/formats/stl)
| Opțiuni cheie |
|---|
StlLoadOptions | N/A |
StlSaveOptions | binaryMode (false → ASCII, true → binar) |
Modul FBX (@aspose/3d/formats/fbx)
| Opțiuni cheie |
|---|
FbxLoadOptions | N/A |
FbxSaveOptions | embedTextures |
Formate suportate
| | | |
|---|
| .obj | | |
| glTF 2.0 | .gltf | | |
| .glb | | |
| STL | .stl | | |
| FBX | .fbx | Nu* | Nu* |
| COLLADA | .dae | | |
| 3MF | .3mf | | |
Exemplu de referință rapidă
Vezi și