Balík: @aspose/3d (v24.12.0) Jazyk: TypeScript / Node.js 18+ Licencia: MIT
@aspose/3d je knižnica s licenciou MIT na čítanie, konštruovanie a exportovanie 3D scén v Node.js. Dodáva sa s kompletnými definíciami typov TypeScript, jednou runtime závislosťou (xmldom), a podporuje sedem hlavných 3D formátov súborov. Všetky I/O operácie sú synchronné. Nie sú potrebné natívne doplnky.
tsconfig.json nastavenia pre správne riešenie podcesty:
Základné triedy
Koreňový kontajner pre 3D scénu. Všetok obsah; uzly, geometria, materiály a animácie; je uložený v strome s koreňom v scene.rootNode.Použite open() / openFromBuffer() na načítanie súboru a save() / saveToBuffer() na export.
| | |
|---|
rootNode | Node | Koreň grafu scény |
assetInfo | AssetInfo | Metadáta súboru (autor, jednotky, súradnicový systém) |
animationClips | AnimationClip[] | Všetky animačné klipy v scéne |
open(path, opts?) | (string, LoadOptions?) → void | Načítajte súbor z disku |
openFromBuffer(buf, opts?) | (Buffer, LoadOptions?) → void | Načítať z pamäťového bufferu |
save(path, opts?) | (string, SaveOptions?) → void | Uložiť na disk (formát odhadnutý z prípony) |
saveToBuffer(ext, opts?) | (string, SaveOptions?) → Buffer | Uložiť do pamäťového bufferu |
createAnimationClip(name) | (string) → AnimationClip | Vytvoriť a zaregistrovať nový animačný klip |
Pomenovaný uzol stromu v grafu scény. Uzly nesú voliteľný Entity (mesh, kamera, svetlo) a Transform ktorý umiestňuje uzol relatívne k jeho rodičovi.
| | |
|---|
name | string | Názov uzla |
childNodes | Node[] | Priame podriadené uzly |
entity | `Entity | null` |
transform | Transform | Lokálny posun, rotácia, mierka |
materials | Material[] | Materiály priradené tomuto uzlu |
createChildNode(name) | (string) → Node | Pridať podriadený uzol |
getChildNode(name) | `(string) → Node | null` |
Polygónová sieť; primárny typ geometrie. Rozširuje Geometry.
| | |
|---|
controlPoints | Vector4[] | Pozície vrcholov (w=1 pre pozície) |
polygonCount | number | Počet polygónov |
createPolygon(indices) | (number[]) → void | Pridať polygón (trojuholník alebo štvoruholník) |
getElement(type) | `(VertexElementType) → VertexElement | null` |
createElement(type) | (VertexElementType) → VertexElement | Vytvoriť prvok vrcholu |
Lokálna transformácia aplikovaná na uzol.
| | |
|---|
translation | Vector3 | Lokálna pozícia |
eulerAngles | Vector3 | Eulerova rotácia v stupňoch (poradie XYZ) |
rotation | Quaternion | Rotácia ako kvaternion |
scaling | Vector3 | Lokálna mierka |
Triedy materiálov
| | Kľúčové vlastnosti |
|---|
LambertMaterial | Difúzne + ambientné tieňovanie | diffuseColor, ambientColor, transparency |
PhongMaterial | Pridáva specular + emissive do Lambert | specularColor, shininess, emissiveColor |
PbrMaterial | Fyzikálne založené pre glTF 2.0 | albedo, metallicFactor, roughnessFactor, emissiveColor |
Matematické triedy
| |
|---|
Vector3 | 3-component double-precision vector (x, y, z) |
Vector4 | 4-component vector for homogeneous math (x, y, z, w) |
FVector3 | Variant s jednoduchou presnosťou používaný v vertex data |
Matrix4 | 4×4 transformation matrix; multiply, invert, decompose |
Quaternion | Rotácia quaternion; fromEulerAngle, toEulerAngles, slerp |
BoundingBox | Axis-aligned bounding box; minimum, maximum, center, size, merge |
Triedy animácií
| |
|---|
AnimationClip | Pomenovaný klip; obsahuje AnimationNode zoznam; prístupný cez scene.animationClips |
AnimationNode | Viaže klip k pomenovanému uzlu scény; obsahuje AnimationChannel zoznam |
AnimationChannel | Cieli na jedinú vlastnosť (napr. posun X); obsahuje KeyframeSequence |
KeyframeSequence | Usporiadaný zoznam KeyFrame objekty s interpolation a extrapolation |
KeyFrame | Jedna dvojica čas/hodnota |
| | |
|---|
VertexElementType | NORMAL, UV, VERTEX_COLOR, BINORMAL, TANGENT | Semantika vrcholového prvku |
MappingMode | CONTROL_POINT, POLYGON_VERTEX, POLYGON, ALL_SAME | Ako sa dáta mapujú na geometriu |
ReferenceMode | DIRECT, INDEX, INDEX_TO_DIRECT | Stratégia indexovania pre dáta vrcholových elementov |
Interpolation | CONSTANT, LINEAR, BEZIER | Interpolácia kľúčových snímok |
Extrapolation | CONSTANT, GRADIENT, CYCLE, CYCLE_RELATIVE, OSCILLATE | Správanie mimo rozsahu kľúčových snímok |
Formátové moduly
Triedy možností špecifických pre formát sú exportované z podcestových modulov. Importujte ich samostatne:
OBJ modul (@aspose/3d/formats/obj)
| Kľúčové možnosti |
|---|
ObjLoadOptions | enableMaterials, flipCoordinateSystem, scale, normalizeNormal |
glTF/GLB modul (@aspose/3d/formats/gltf)
| Kľúčové možnosti |
|---|
GltfSaveOptions | binaryMode (true → .glb), flipTexCoordV |
GltfFormat | GltfFormat.getInstance(): inštancia formátu pre scene.save() |
STL modul (@aspose/3d/formats/stl)
| Kľúčové možnosti |
|---|
StlLoadOptions | N/A |
StlSaveOptions | binaryMode (false → ASCII, true → binary) |
FBX modul (@aspose/3d/formats/fbx)
| Kľúčové možnosti |
|---|
FbxLoadOptions | N/A |
FbxSaveOptions | embedTextures |
Podporované formáty
| | | |
|---|
| .obj | | |
| glTF 2.0 | .gltf | | |
| .glb | | |
| STL | .stl | | |
| FBX | .fbx | Nie* | Nie* |
| COLLADA | .dae | | |
| 3MF | .3mf | | |
Rýchly referenčný príklad
Pozri tiež