Introduksjon
Vi er glade for å kunngjøre tilgjengeligheten av Aspose.3D FOSS for TypeScript som @aspose/3d npm-pakken. Dette MIT-lisensierte biblioteket bringer 3D-scenebehandling av produksjonskvalitet til TypeScript- og Node.js-applikasjoner uten å kreve native binærfiler, plattformspesifikke verktøykjeder eller kommersielle lisenser.
Biblioteket er designet rundt en enkel Scene API: last inn en 3D-fil med scene.open(), inspiser eller transformer scene‑grafen, og skriv resultatet med scene.save(). Fullstendige TypeScript-typedefinisjoner er inkludert; ingen separat @types/ pakke er nødvendig.
Nøkkelfunksjoner
Multi‑format I/O. Pakken leser og skriver seks store 3D-formater i en enkelt installasjon. OBJ, glTF 2.0, GLB, STL, 3MF og COLLADA støtter både import og eksport. FBX‑import‑/eksport‑klasser finnes, men automatisk formatgjenkjenning er ennå ikke implementert, så FBX‑filer kan ikke lastes inn via scene.open().
Førsteklasses TypeScript‑støtte. Alle offentlige klasser, enum‑typer og alternativ‑typer er fullt typet. IDE‑er med TypeScript‑språktjeneste (VS Code, WebStorm osv.) gir nøyaktig autoutfylling og innebygd dokumentasjon for hvert API‑kall.
Node.js 18–22+ kompatibilitet. Pakken er testet mot Node.js 18, 20 og 22 LTS‑utgivelser. Ingen native‑tillegg kompileres under installasjon, så den fungerer på alle plattformer som Node.js støtter.
Én kjøretidsavhengighet. Den eneste avhengigheten er xmldom, brukt utelukkende for COLLADA XML-parsing. Alle andre formatparsers er rene JavaScript-implementasjoner.
MIT-lisens. Bruk @aspose/3d i kommersielle, åpen kildekode- eller interne prosjekter uten restriksjon.
Rask start
Installer pakken:
npm install @aspose/3d
Last inn en OBJ‑fil og konverter 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');
Iterer over scenenoder for å inspisere 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}`);
}
}
Støttede formater
| Format | Filendelse | Import | Eksport | Merknader |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Ja | Ja | Leser/skriver .mtl materialfiler |
| glTF 2.0 | .gltf | Ja | Ja | JSON med ekstern .bin buffer |
| Binær GLB | .glb | Ja | Ja | Sett binaryMode: true i GltfSaveOptions |
| STL | .stl | Ja | Ja | ASCII og binær STL |
| 3MF | .3mf | Ja | Ja | Open Packaging Convention-arkiv |
| FBX | .fbx | Nei* | Nei* | Importør/eksportør finnes, men automatisk formatgjenkjenning er ikke koblet |
| COLLADA | .dae | Ja | Ja | Krever bundlet xmldom avhengighet |
TypeScript‑fordeler
Arbeider med @aspose/3d i TypeScript fanger kategorifeil på kompileringstidspunktet i stedet for ved kjøring. Når du kaller scene.save(), kompilatoren verifiserer at options‑objektet samsvarer med den forventede SaveOptions subtype for det valgte formatet. Formatspesifikke load and save options eksponerer kun egenskapene som er relevante for det formatet; det finnes ingen untyped options bag å gjette på.
For eksempel, GltfSaveOptions.binaryMode er en typet boolean, så avviser kompilatoren saveOpts.binaryMode = 'yes' før noen kode kjøres. Animasjonsegenskaper på AnimationClip, materialkanaler på PbrMaterial, og vertex-elementtyper på VertexElement er alle likt typet og kan oppdages via IntelliSense uten å konsultere ekstern dokumentasjon.
Åpen kilde
Pakken er publisert under MIT License. Kildekoden er tilgjengelig på GitHub. Bidrag, feilrapporter og forespørsler om formatstøtte er velkomne via repositoryets issue‑tracker.
Biblioteket har én kjøretidsavhengighet: xmldom versjon 0.9+, brukes kun ved lesing eller skriving av COLLADA‑filer. Alle andre parser‑ og skriver‑implementasjoner er selvstendige pure‑JavaScript‑implementasjoner uten binære komponenter.
Kom i gang
- npm:
npm install @aspose/3d - Kunnskapsbase: Hvordan laste 3D-modeller i TypeScript
- Kunnskapsbase: Hvordan eksportere 3D‑scener til glTF/GLB i TypeScript
- API‑referanse: Aspose.3D FOSS for TypeScript: Full klasse‑referanse
- GitHub: aspose-3d/aspose-3d-node
Konklusjon
@aspose/3d versjon 24.12.0 gir et stabilt, typet, avhengighetslett grunnlag for 3D-filbehandling i TypeScript og Node.js. Enten brukstilfellet er formatkonvertering, scenegjennomgang, geometriuttrekking eller pipeline-integrasjon, dekker biblioteket de mest vanlige 3D-utvekslingsformatene under en permissiv åpen kildekodelisens.
Installer den i dag og gi oss beskjed om hva du bygger.