API Overview — @aspose/3d for TypeScript

Πακέτο: @aspose/3d (v24.12.0) Γλώσσα: TypeScript / Node.js 18+ Άδεια: MIT

@aspose/3d είναι μια βιβλιοθήκη υπό άδεια MIT για ανάγνωση, κατασκευή και εξαγωγή 3D σκηνών στο Node.js. Παρέχει πλήρεις ορισμούς τύπων TypeScript, μια μοναδική εξάρτηση χρόνου εκτέλεσης (xmldom) και υποστηρίζει επτά κύριες μορφές αρχείων 3D. Όλο το I/O είναι συγχρονισμένο. Δεν απαιτούνται εγγενείς πρόσθετα.


Enumerations

npm install @aspose/3d

Enumerations tsconfig.json ρυθμίσεις για σωστή ανάλυση υπο-διαδρομών:

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

Κρατήσεις θέσης κύριας διαφάνειας

Enumerations

Το ριζικό κοντέινερ για μια 3D σκηνή. Όλο το περιεχόμενο· κόμβοι, γεωμετρία, υλικά και κινούμενα σχέδια· αποθηκεύεται σε ένα δέντρο με ρίζα στο scene.rootNode.Χρησιμοποιήστε open() / openFromBuffer() για να φορτώσετε ένα αρχείο και save() / saveToBuffer() για εξαγωγή.

EnumerationsEnumerationsEnumerations
rootNodeNodeΡίζα του γραφήματος σκηνής
assetInfoAssetInfoΜεταδεδομένα αρχείου (δημιουργός, μονάδες, σύστημα συντεταγμένων)
animationClipsAnimationClip[]Όλα τα κλιπ κίνησης στη σκηνή
open(path, opts?)(string, LoadOptions?) → voidΦορτώστε ένα αρχείο από το δίσκο
openFromBuffer(buf, opts?)(Buffer, LoadOptions?) → voidΦόρτωση από buffer μνήμης
save(path, opts?)(string, SaveOptions?) → voidΑποθήκευση στο δίσκο (η μορφή προκύπτει από την επέκταση)
saveToBuffer(ext, opts?)(string, SaveOptions?) → BufferΑποθήκευση σε buffer μνήμης
createAnimationClip(name)(string) → AnimationClipΔημιουργία και καταχώριση νέου αποσπάσματος κίνησης

Enumerations

Ένας ονομασμένος κόμβος δέντρου στο γράφημα σκηνής. Οι κόμβοι μεταφέρουν ένα προαιρετικό Entity (mesh, camera, light) και ένα Transform που τοποθετεί τον κόμβο σε σχέση με τον γονέα του.

EnumerationsEnumerationsEnumerations
namestringΌνομα κόμβου
childNodesNode[]Άμεσοι θυγατρικοί κόμβοι
entity`Entitynull`
transformTransformΤοπική μετάφραση, περιστροφή, κλίμακα
materialsMaterial[]Υλικά που έχουν εκχωρηθεί σε αυτόν τον κόμβο
createChildNode(name)(string) → NodeΠροσθήκη θυγατρικού κόμβου
getChildNode(name)`(string) → Nodenull`

Enumerations

Πολυγωνικό πλέγμα· ο κύριος τύπος γεωμετρίας. Επεκτείνει Geometry.

EnumerationsEnumerationsEnumerations
controlPointsVector4[]Θέσεις κορυφών (w=1 για θέσεις)
polygonCountnumberΑριθμός πολυγώνων
createPolygon(indices)(number[]) → voidΠροσθήκη πολυγώνου (τρίγωνο ή τετράπλευρο)
getElement(type)`(VertexElementType) → VertexElementnull`
createElement(type)(VertexElementType) → VertexElementΔημιουργία στοιχείου κορυφής

Enumerations

Τοπικός μετασχηματισμός που εφαρμόζεται σε έναν κόμβο.

EnumerationsEnumerationsEnumerations
translationVector3Τοπική θέση
eulerAnglesVector3Περιστροφή Euler σε μοίρες (σειρά XYZ)
rotationQuaternionΠεριστροφή ως τετραδικό
scalingVector3Τοπική κλίμακα

Κλάσεις Υλικού

EnumerationsEnumerationsΚύριες Ιδιότητες
LambertMaterialΔιασπορά + περιβάλλον σκίασηdiffuseColor, ambientColor, transparency
PhongMaterialΠροσθέτει specular + emissive στο LambertspecularColor, shininess, emissiveColor
PbrMaterialΦυσικά βασισμένο για glTF 2.0albedo, metallicFactor, roughnessFactor, emissiveColor

Κλάσεις Μαθηματικών

EnumerationsEnumerations
Vector33-component double-precision vector (x, y, z)
Vector44-component vector for homogeneous math (x, y, z, w)
FVector3Παραλλαγή μονής ακρίβειας που χρησιμοποιείται σε δεδομένα κορυφής
Matrix44×4 transformation matrix; multiply, invert, decompose
QuaternionΤεταρτοβάθμιο περιστροφής; fromEulerAngle, toEulerAngles, slerp
BoundingBoxΠλαίσιο περιβάλλοντος ευθυγραμμισμένο με άξονες; minimum, maximum, center, size, merge

Κλάσεις Κίνησης

EnumerationsEnumerations
AnimationClipΟνομασμένο κλιπ; περιέχει AnimationNode λίστα; προσπελασμένη μέσω scene.animationClips
AnimationNodeΣυνδέει ένα κλιπ με έναν ονομασμένο κόμβο σκηνής; περιέχει AnimationChannel λίστα
AnimationChannelΣτοχεύει σε μία μόνο ιδιότητα (π.χ. μετάφραση X); περιέχει ένα KeyframeSequence
KeyframeSequenceΤαξινομημένη λίστα των KeyFrame αντικειμένων με interpolation και extrapolation
KeyFrameΜονό ζεύγος χρόνου/τιμής

Enumerations

EnumerationsEnumerationsEnumerations
VertexElementTypeNORMAL, UV, VERTEX_COLOR, BINORMAL, TANGENTΣημασιολογία στοιχείου κορυφής
MappingModeCONTROL_POINT, POLYGON_VERTEX, POLYGON, ALL_SAMEΠώς τα δεδομένα αντιστοιχούν στη γεωμετρία
ReferenceModeDIRECT, INDEX, INDEX_TO_DIRECTΣτρατηγική ευρετηρίασης για δεδομένα στοιχείου κορυφής
InterpolationCONSTANT, LINEAR, BEZIERΠαρεμβολή Keyframe
ExtrapolationCONSTANT, GRADIENT, CYCLE, CYCLE_RELATIVE, OSCILLATEΣυμπεριφορά εκτός εύρους keyframe

Μονάδες Μορφής

Οι κλάσεις επιλογών ειδικών για κάθε μορφή εξάγονται από υπο-διαδρομές μονάδων. Εισάγετέ τες ξεχωριστά:

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';

Μονάδα OBJ (@aspose/3d/formats/obj)

EnumerationsΕπιλογές κλειδιού
ObjLoadOptionsenableMaterials, flipCoordinateSystem, scale, normalizeNormal

Μονάδα glTF/GLB (@aspose/3d/formats/gltf)

EnumerationsΕπιλογές κλειδιού
GltfSaveOptionsbinaryMode (true → .glb), flipTexCoordV
GltfFormatGltfFormat.getInstance(): παράδειγμα μορφής για scene.save()

STL Μονάδα (@aspose/3d/formats/stl)

EnumerationsΚύριες Επιλογές
StlLoadOptionsN/A
StlSaveOptionsbinaryMode (false → ASCII, true → binary)

FBX Μονάδα (@aspose/3d/formats/fbx)

EnumerationsΚύριες Επιλογές
FbxLoadOptionsN/A
FbxSaveOptionsembedTextures

Υποστηριζόμενες Μορφές

EnumerationsEnumerationsEnumerationsEnumerations
Enumerations.objEnumerationsEnumerations
glTF 2.0.gltfEnumerationsEnumerations
Enumerations.glbEnumerationsEnumerations
STL.stlEnumerationsEnumerations
FBX.fbxΌχι*Όχι*
COLLADA.daeEnumerationsEnumerations
3MF.3mfEnumerationsEnumerations

Παράδειγμα Γρήγορης Αναφοράς

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);

Δείτε επίσης

 Ελληνικά