API Overview — @aspose/3d for TypeScript

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

npm install @aspose/3d

Example tsconfig.json impostazioni per la corretta risoluzione dei sotto‑percorsi:

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "commonjs",
    "moduleResolution": "node",
    "esModuleInterop": true,
    "strict": true
  }
}

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.

ExampleExampleExample
rootNodeNodeRadice del grafo della scena
assetInfoAssetInfoMetadati del file (creatore, unità, sistema di coordinate)
animationClipsAnimationClip[]Tutte le clip di animazione nella scena
open(path, opts?)(string, LoadOptions?) → voidCarica un file dal disco
openFromBuffer(buf, opts?)(Buffer, LoadOptions?) → voidCarica da buffer in memoria
save(path, opts?)(string, SaveOptions?) → voidSalva su disco (formato dedotto dall’estensione)
saveToBuffer(ext, opts?)(string, SaveOptions?) → BufferSalva su buffer in memoria
createAnimationClip(name)(string) → AnimationClipCrea 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.

ExampleExampleExample
namestringNome del nodo
childNodesNode[]Nodi figli diretti
entity`Entitynull`
transformTransformTraslazione, rotazione e scala locali
materialsMaterial[]Materiali assegnati a questo nodo
createChildNode(name)(string) → NodeAggiungi un nodo figlio
getChildNode(name)`(string) → Nodenull`

Example

Mesh poligonale; il tipo di geometria principale. Estende Geometry.

ExampleExampleExample
controlPointsVector4[]Posizioni dei vertici (w=1 per le posizioni)
polygonCountnumberNumero di poligoni
createPolygon(indices)(number[]) → voidAggiungi un poligono (triangolo o quad)
getElement(type)`(VertexElementType) → VertexElementnull`
createElement(type)(VertexElementType) → VertexElementCrea un elemento del vertice

Example

Trasformazione locale applicata a un nodo.

ExampleExampleExample
translationVector3Posizione locale
eulerAnglesVector3Rotazione Euler in gradi (ordine XYZ)
rotationQuaternionRotazione come quaternione
scalingVector3Scala locale

Classi Materiale

ExampleExampleProprietà chiave
LambertMaterialOmbreggiatura diffusa + ambientalediffuseColor, ambientColor, transparency
PhongMaterialAggiunge speculare + emissivo a LambertspecularColor, shininess, emissiveColor
PbrMaterialBasato sulla fisica per glTF 2.0albedo, metallicFactor, roughnessFactor, emissiveColor

Classi Matematiche

ExampleExample
Vector33-component double-precision vector (x, y, z)
Vector44-component vector for homogeneous math (x, y, z, w)
FVector3Variante a precisione singola usata nei dati dei vertici
Matrix44×4 transformation matrix; multiply, invert, decompose
QuaternionQuaternione di rotazione; fromEulerAngle, toEulerAngles, slerp
BoundingBoxBounding box allineata agli assi; minimum, maximum, center, size, merge

Classi di Animazione

ExampleExample
AnimationClipClip nominata; contiene AnimationNode elenco; accessibile tramite scene.animationClips
AnimationNodeAssocia una clip a un nodo di scena nominato; contiene AnimationChannel elenco
AnimationChannelMira a una singola proprietà (es. traduzione X); contiene un KeyframeSequence
KeyframeSequenceElenco ordinato di KeyFrame oggetti con interpolation e extrapolation
KeyFrameCoppia singola tempo/valore

Example

ExampleExampleExample
VertexElementTypeNORMAL, UV, VERTEX_COLOR, BINORMAL, TANGENTSemantica dell’elemento vertice
MappingModeCONTROL_POINT, POLYGON_VERTEX, POLYGON, ALL_SAMECome i dati vengono mappati alla geometria
ReferenceModeDIRECT, INDEX, INDEX_TO_DIRECTStrategia di indicizzazione per i dati dell’elemento vertice
InterpolationCONSTANT, LINEAR, BEZIERInterpolazione dei fotogrammi chiave
ExtrapolationCONSTANT, GRADIENT, CYCLE, CYCLE_RELATIVE, OSCILLATEComportamento 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:

import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';
import { StlLoadOptions, StlSaveOptions } from '@aspose/3d/formats/stl';
import { FbxLoadOptions, FbxSaveOptions } from '@aspose/3d/formats/fbx';
import { ColladaLoadOptions } from '@aspose/3d/formats/collada';
import { ThreeMfSaveOptions } from '@aspose/3d/formats/3mf';

Modulo OBJ (@aspose/3d/formats/obj)

ExampleOpzioni chiave
ObjLoadOptionsenableMaterials, flipCoordinateSystem, scale, normalizeNormal

Modulo glTF/GLB (@aspose/3d/formats/gltf)

ExampleOpzioni chiave
GltfSaveOptionsbinaryMode (true → .glb), flipTexCoordV
GltfFormatGltfFormat.getInstance(): istanza di formato per scene.save()

Modulo STL (@aspose/3d/formats/stl)

ExampleOpzioni chiave
StlLoadOptionsN/A
StlSaveOptionsbinaryMode (false → ASCII, true → binario)

Modulo FBX (@aspose/3d/formats/fbx)

ExampleOpzioni chiave
FbxLoadOptionsN/A
FbxSaveOptionsembedTextures

Formati supportati

ExampleExampleExampleExample
Example.objExampleExample
glTF 2.0.gltfExampleExample
Example.glbExampleExample
STL.stlExampleExample
FBX.fbxNo*No*
COLLADA.daeExampleExample
3MF.3mfExampleExample

Esempio di riferimento rapido

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

// Load OBJ with materials
const scene = new Scene();
const loadOpts = new ObjLoadOptions();
loadOpts.enableMaterials = true;
scene.open('input.obj', loadOpts);

// Inspect root nodes
for (const node of scene.rootNode.childNodes) {
    console.log(`Node: ${node.name}, entity: ${node.entity?.constructor.name}`);
}

// Export as GLB (binary glTF)
const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true;
scene.save('output.glb', saveOpts);

Vedi anche

 Italiano