API Overview — @aspose/3d for TypeScript

Πακέτο : Σημειωτέον / 3D (v24.12.0) · Γλώσσα: TypeScript / Node.js 18+ · Άδεια χρήσης: MIT

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

npm install @aspose/3d@24.12.0

tsconfig.json Ορισμοί για τη σωστή ανάλυση υποστρώματος:

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

Κύρια τάξεις

Scene

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

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

Node

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

ΜέλοςΤύποςΠεριγραφή
namestringΟνομασία Νότσε
childNodesNode[]Εξυπηρέτηση παιδικών κόμβων
entity`Entitynull`
transformTransformτοπική μετάφραση, περιστροφή, κλίμακα
materialsMaterial[]Τα υλικά που ανατίθενται σε αυτό το κέλυφος
createChildNode(name)(string) → NodeΠροσθέστε ένα παιδικό ντόπι
getChildNode(name)`(string) → Nodenull`

Mesh

Πολυγώνιος μασχός, ο κύριος τύπος γεωμετρίας. Geometry.

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

Transform

Η τοπική μεταμόρφωση εφαρμόζεται σε ένα κόμβο.

ΜέλοςΤύποςΠεριγραφή
translationVector3Τοπική θέση
eulerAnglesVector3Η περιστροφή του Euler σε βαθμούς (XYZ σειρά)
rotationQuaternionΚαρταρίνη περιστροφής
scalingVector3τοπική κλίμακα

Μαθήματα υλικού

ΚλάσηΠεριγραφήΚλειδιά Ιδιοκτησίας
LambertMaterialΔιαβόησης + Περιβάλλον ΣκιέςdiffuseColor, ambientColor, transparency
PhongMaterialΕνημερωτικό + εκπομπές για το LambertspecularColor, shininess, emissiveColor
PbrMaterialΦυσική-με βάση για το GLTF 2.0albedo, metallicFactor, roughnessFactor, emissiveColor

Μαθηματικές τάξεις

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

Κλάσεις Animation

ΚλάσηΠεριγραφή
AnimationClipΕτικέτες: Κλίπινγκ - Περιέχει AnimationNode Ετικέτες: Διαθέσιμο μέσω scene.animationClips
AnimationNodeΣυνδέει ένα κλικ σε ένα λεγόμενο κόμβο σκηνής. περιέχει AnimationChannel Λίστα
AnimationChannelΣτόχος είναι μια ενιαία ιδιοκτησία (π.χ. μετάφραση X) και έχει ένα KeyframeSequence
KeyframeSequenceΗ παραγγελία της λίστας των KeyFrame αντικείμενα με interpolation και extrapolation
KeyFrameΜοναδικό ζευγάρι χρόνου / αξίας

Απαριθμήσεις

ΕΝΟΜΑξίεςΠεριγραφή
VertexElementTypeNORMAL, UV, VERTEX_COLOR, BINORMAL, TANGENTΤο σημαντικό στοιχείο Vertex
MappingModeCONTROL_POINT, POLYGON_VERTEX, POLYGON, ALL_SAMEΠώς να χαρτογραφήσετε τα δεδομένα στη γεωμετρία
ReferenceModeDIRECT, INDEX, INDEX_TO_DIRECTΗ στρατηγική της δεικτών στοιχείων Vertex
InterpolationCONSTANT, LINEAR, BEZIERΚλειδιά διασποράς
ExtrapolationCONSTANT, GRADIENT, CYCLE, CYCLE_RELATIVE, OSCILLATEΔιάθεση εκτός κλειδιάς

Μοντέλα μορφοποίησης

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

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

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

ΚλάσηΚλειδιά επιλογών
ObjLoadOptionsenableMaterials, flipCoordinateSystem, scale, normalizeNormal

Ηλεκτρονικό δίκτυο (@aspose/3d/formats/gltf)

ΚλάσηΚλειδιά επιλογών
GltfSaveOptionsbinaryMode (δεν είναι αληθινό το .glb), flipTexCoordV
GltfFormatGltfFormat.getInstance():• Η μορφή του παραδείγματος για scene.save()

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

ΚλάσηΚλειδιά επιλογών
StlLoadOptionsN/A
StlSaveOptionsbinaryMode (False → ASCII, true → δυαδικό)

Εισαγωγή στο FbX (@aspose/3d/formats/fbx)

ΚλάσηΚλειδιά επιλογών
FbxLoadOptionsN/A
FbxSaveOptionsembedTextures

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

ΦΟΡΜΑΤΟΣεπέκτασηφορτίοΣΩΣΤΕ
ΟΜΠΡΟΣΦΡΟΝΤΟΣ OBJ.objΝΑΙΝΑΙ
ΓΚΤΠ 2.0.gltfΝΑΙΝΑΙ
Τον Χάρη 0.glbΝΑΙΝΑΙ
STL.stlΝΑΙΝΑΙ
FBX.fbxΟΧΙΟΧΙ
COLLADA.daeΝΑΙΝΑΙ
3MF.3mfΝΑΙΝΑΙ

Εμφάνιση γρήγορης αναφοράς

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

Δείτε επίσης

Σχετικά Πόροι

 Ελληνικά