Pacchetto: @aspose/3d (v24.12.0) Linguaggio: TypeScript / Node.js 18+ Licenza: MIT
@aspose/3d è una libreria con licenza MIT per leggere, costruire ed esportare scene 3D in Node.js. Viene fornita con definizioni di tipo TypeScript complete, una singola dipendenza di runtime (xmldom), e supporta sette principali formati di file 3D. Tutto I/O è sincrono. Non sono richiesti addon nativi.
Example
Example tsconfig.json impostazioni per la corretta risoluzione dei sotto‑percorsi:
Riferimento API per il supporto dei segnaposto in Aspose.Slides FOSS per C++. Le forme dei segnaposto definiscono le regioni di contenuto nei layout e nei modelli di diapositiva.
Example
Il contenitore radice per una scena 3D. Tutto il contenuto; nodi, geometria, materiali e animazioni; è memorizzato in un albero radicato in scene.rootNode.Usa open() / openFromBuffer() per caricare un file e save() / saveToBuffer() per esportare.
| Example | Example | Example |
|---|
rootNode | Node | Radice del grafo della scena |
assetInfo | AssetInfo | Metadati del file (creatore, unità, sistema di coordinate) |
animationClips | AnimationClip[] | Tutte le clip di animazione nella scena |
open(path, opts?) | (string, LoadOptions?) → void | Carica un file dal disco |
openFromBuffer(buf, opts?) | (Buffer, LoadOptions?) → void | Carica da buffer in memoria |
save(path, opts?) | (string, SaveOptions?) → void | Salva su disco (formato dedotto dall’estensione) |
saveToBuffer(ext, opts?) | (string, SaveOptions?) → Buffer | Salva su buffer in memoria |
createAnimationClip(name) | (string) → AnimationClip | Crea e registra una nuova clip di animazione |
Example
Un nodo ad albero con nome nel grafo della scena. I nodi contengono un opzionale Entity (mesh, camera, light) e un Transform che posiziona il nodo rispetto al suo genitore.
| Example | Example | Example |
|---|
name | string | Nome del nodo |
childNodes | Node[] | Nodi figli diretti |
entity | `Entity | null` |
transform | Transform | Traslazione, rotazione e scala locali |
materials | Material[] | Materiali assegnati a questo nodo |
createChildNode(name) | (string) → Node | Aggiungi un nodo figlio |
getChildNode(name) | `(string) → Node | null` |
Example
Mesh poligonale; il tipo di geometria principale. Estende Geometry.
| Example | Example | Example |
|---|
controlPoints | Vector4[] | Posizioni dei vertici (w=1 per le posizioni) |
polygonCount | number | Numero di poligoni |
createPolygon(indices) | (number[]) → void | Aggiungi un poligono (triangolo o quad) |
getElement(type) | `(VertexElementType) → VertexElement | null` |
createElement(type) | (VertexElementType) → VertexElement | Crea un elemento del vertice |
Example
Trasformazione locale applicata a un nodo.
| Example | Example | Example |
|---|
translation | Vector3 | Posizione locale |
eulerAngles | Vector3 | Rotazione Euler in gradi (ordine XYZ) |
rotation | Quaternion | Rotazione come quaternione |
scaling | Vector3 | Scala locale |
Classi Materiale
| Example | Example | Proprietà chiave |
|---|
LambertMaterial | Ombreggiatura diffusa + ambientale | diffuseColor, ambientColor, transparency |
PhongMaterial | Aggiunge speculare + emissivo a Lambert | specularColor, shininess, emissiveColor |
PbrMaterial | Basato sulla fisica per glTF 2.0 | albedo, metallicFactor, roughnessFactor, emissiveColor |
Classi Matematiche
| Example | Example |
|---|
Vector3 | 3-component double-precision vector (x, y, z) |
Vector4 | 4-component vector for homogeneous math (x, y, z, w) |
FVector3 | Variante a precisione singola usata nei dati dei vertici |
Matrix4 | 4×4 transformation matrix; multiply, invert, decompose |
Quaternion | Quaternione di rotazione; fromEulerAngle, toEulerAngles, slerp |
BoundingBox | Bounding box allineata agli assi; minimum, maximum, center, size, merge |
Classi di Animazione
| Example | Example |
|---|
AnimationClip | Clip nominata; contiene AnimationNode elenco; accessibile tramite scene.animationClips |
AnimationNode | Associa una clip a un nodo di scena nominato; contiene AnimationChannel elenco |
AnimationChannel | Mira a una singola proprietà (es. traduzione X); contiene un KeyframeSequence |
KeyframeSequence | Elenco ordinato di KeyFrame oggetti con interpolation e extrapolation |
KeyFrame | Coppia singola tempo/valore |
Example
| Example | Example | Example |
|---|
VertexElementType | NORMAL, UV, VERTEX_COLOR, BINORMAL, TANGENT | Semantica dell’elemento vertice |
MappingMode | CONTROL_POINT, POLYGON_VERTEX, POLYGON, ALL_SAME | Come i dati vengono mappati alla geometria |
ReferenceMode | DIRECT, INDEX, INDEX_TO_DIRECT | Strategia di indicizzazione per i dati dell’elemento vertice |
Interpolation | CONSTANT, LINEAR, BEZIER | Interpolazione dei fotogrammi chiave |
Extrapolation | CONSTANT, GRADIENT, CYCLE, CYCLE_RELATIVE, OSCILLATE | Comportamento al di fuori dell’intervallo dei fotogrammi chiave |
Moduli di Formato
Le classi di opzioni specifiche per formato sono esportate dai moduli di sotto‑percorso. Importale separatamente:
Modulo OBJ (@aspose/3d/formats/obj)
| Example | Opzioni chiave |
|---|
ObjLoadOptions | enableMaterials, flipCoordinateSystem, scale, normalizeNormal |
Modulo glTF/GLB (@aspose/3d/formats/gltf)
| Example | Opzioni chiave |
|---|
GltfSaveOptions | binaryMode (true → .glb), flipTexCoordV |
GltfFormat | GltfFormat.getInstance(): istanza di formato per scene.save() |
Modulo STL (@aspose/3d/formats/stl)
| Example | Opzioni chiave |
|---|
StlLoadOptions | N/A |
StlSaveOptions | binaryMode (false → ASCII, true → binario) |
Modulo FBX (@aspose/3d/formats/fbx)
| Example | Opzioni chiave |
|---|
FbxLoadOptions | N/A |
FbxSaveOptions | embedTextures |
Formati supportati
| Example | Example | Example | Example |
|---|
| Example | .obj | Example | Example |
| glTF 2.0 | .gltf | Example | Example |
| Example | .glb | Example | Example |
| STL | .stl | Example | Example |
| FBX | .fbx | No* | No* |
| COLLADA | .dae | Example | Example |
| 3MF | .3mf | Example | Example |
Esempio di riferimento rapido
Vedi anche