Introduktion
Vi er glade for at kunne annoncere tilgængeligheden af Aspose.3D FOSS for TypeScript som den @aspose/3d npm-pakke. Dette MIT-licenserede bibliotek bringer produktionskvalitets 3D-scenebehandling til TypeScript- og Node.js-applikationer uden at kræve native binære filer, platformspecifikke værktøjskæder eller kommercielle licenser.
Biblioteket er designet omkring en enkel Scene API: indlæs en 3D-fil med scene.open(), inspicér eller transformer scene‑grafen, og skriv resultatet med scene.save(). Fuldstændige TypeScript-typedefinitioner er medfølgende; ingen separat @types/ pakke er påkrævet.
Nøglefunktioner
Multi-format I/O. Pakken læser og skriver seks store 3D-formater i en enkelt installation. OBJ understøttes til import; glTF 2.0, GLB, STL, 3MF og COLLADA understøtter både import og eksport. FBX‑import‑/export‑klasser findes, men automatisk formatgenkendelse er endnu ikke implementeret, så FBX‑filer kan ikke indlæses via scene.open().
Førsteklasses TypeScript‑understøttelse. Alle offentlige klasser, enumerationer og option‑typer er fuldt typede. IDE’er med TypeScript‑sprogtjeneste (VS Code, WebStorm osv.) giver præcis autoudfyldning og indlejret dokumentation for hvert API‑kald.
Node.js 18–22+ kompatibilitet. Pakken er testet mod Node.js 18, 20 og 22 LTS‑udgivelser. Ingen native add‑ons kompileres under installationen, så den fungerer på alle platforme, som Node.js understøtter.
Én runtime‑afhængighed. Den eneste afhængighed er xmldom, brugt udelukkende til COLLADA XML-parsing. Alle andre formatparsers er rene JavaScript-implementeringer.
MIT-licens. Brug @aspose/3d i kommercielle, open‑source eller interne projekter uden begrænsning.
Hurtig start
Installer pakken:
npm install @aspose/3d
Indlæs en OBJ‑fil og konvertér den til en binær GLB:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true; // produce a single .glb file
scene.save('output.glb', GltfFormat.getInstance(), saveOpts);
console.log('Converted to GLB successfully');
Iterér over scenenoder for at inspicere geometri:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
for (const node of scene.rootNode.childNodes) {
console.log(`Node: ${node.name}`);
if (node.entity) {
console.log(` Entity type: ${node.entity.constructor.name}`);
}
}
Understøttede formater
| Format | Filtype | Import | Export | Noter |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Ja | Nej | Kun import; læser .mtl materialefiler |
| glTF 2.0 | .gltf | Ja | Ja | JSON med ekstern .bin buffer |
| Binær GLB | .glb | Ja | Ja | Sæt binaryMode: true i GltfSaveOptions |
| STL | .stl | Ja | Ja | ASCII og binær STL |
| 3MF | .3mf | Ja | Ja | Open Packaging Convention-arkiv |
| FBX | .fbx | Nej* | Nej* | Importer/exporter findes, men automatisk formatgenkendelse er ikke tilsluttet |
| COLLADA | .dae | Ja | Ja | Kræver bundtet xmldom afhængighed |
TypeScript‑fordele
Arbejder med @aspose/3d i TypeScript fanger kategorifejl på kompileringstidspunktet i stedet for ved kørretid. Når du kalder scene.save(), kompilatoren verificerer, at options object matcher den forventede SaveOptions subtype for det valgte format. Format-specifik load and save options eksponerer kun de egenskaber, der er relevante for det pågældende format; der er ingen untyped options bag at gætte på.
For eksempel, GltfSaveOptions.binaryMode er en typed boolean, så afviser kompilatoren saveOpts.binaryMode = 'yes' før nogen kode kører. Animations‑egenskaber på AnimationClip, materialkanaler på PbrMaterial, og vertex‑elementtyper på VertexElement er alle på samme måde typede og kan findes via IntelliSense uden at konsultere ekstern dokumentation.
Open source og gratis
Pakken er udgivet under MIT-licens. Kildekoden er tilgængelig på GitHub. Bidrag, fejlrapporter og anmodninger om formatunderstøttelse er velkomne via repository’ens issue‑tracker.
Biblioteket har én runtime‑afhængighed: xmldom version 0.9+, kun brugt ved læsning eller skrivning af COLLADA‑filer. Alle andre parser‑ og skriver‑implementeringer er selvstændige pure‑JavaScript‑implementeringer uden binære komponenter.
Kom i gang
- npm:
npm install @aspose/3d - Vidensbase: Sådan indlæses 3D‑modeller i TypeScript
- Vidensbase: Sådan eksporteres 3D‑scener til glTF/GLB i TypeScript
- API‑reference: Aspose.3D FOSS for TypeScript: Fuld klasse‑reference
- GitHub: aspose-3d/aspose-3d-node
Konklusion
@aspose/3d version 24.12.0 leverer et stabilt, typet, afhængighedslet fundament for 3D-filbehandling i TypeScript og Node.js. Uanset om brugsscenariet er formatkonvertering, sceneinspektion, geometriudtræk eller pipeline-integration, dækker biblioteket de mest almindelige 3D-udvekslingsformater under en permissiv open-source-licens.
Installer den i dag, og fortæl os, hvad du bygger.