Einleitung
Wir freuen uns, die Verfügbarkeit von Aspose.3D FOSS für TypeScript als das @aspose/3d npm-Paket. Diese unter der MIT-Lizenz stehende Bibliothek bringt produktionsreife 3D‑Szenenverarbeitung zu TypeScript- und Node.js-Anwendungen, ohne native Binärdateien, plattformspezifische Toolchains oder kommerzielle Lizenzen zu benötigen.
Die Bibliothek ist um eine unkomplizierte Scene API: Laden Sie eine 3D-Datei mit scene.open(), inspizieren oder transformieren Sie den Szenengraphen und schreiben das Ergebnis mit scene.save(). Vollständige TypeScript-Typdefinitionen sind enthalten; kein separates @types/ Paket ist erforderlich.
Hauptfunktionen
Multi-Format I/O. Das Paket liest und schreibt sechs wichtige 3D-Formate in einer einzigen Installation. OBJ, glTF 2.0, GLB, STL, 3MF und COLLADA unterstützen sowohl Import als auch Export. FBX-Import/Export‑Klassen existieren, aber die automatische Format‑Erkennung ist noch nicht implementiert, sodass FBX-Dateien nicht über scene.open().
Erstklassige TypeScript‑Unterstützung. Alle öffentlichen Klassen, Aufzählungen und Optionstypen sind vollständig typisiert. IDEs mit TypeScript‑Sprachservice‑Unterstützung (VS Code, WebStorm usw.) bieten genaue Autovervollständigung und Inline‑Dokumentation für jeden API‑Aufruf.
Kompatibilität mit Node.js 18–22+. Das Paket wird gegen die LTS‑Versionen von Node.js 18, 20 und 22 getestet. Es werden während der Installation keine nativen Add‑Ons kompiliert, sodass es auf allen von Node.js unterstützten Plattformen funktioniert.
Eine Laufzeitabhängigkeit. Die einzige Abhängigkeit ist xmldom, wird ausschließlich für das Parsen von COLLADA‑XML verwendet. Alle anderen Format‑Parser sind reine JavaScript‑Implementierungen.
MIT‑Lizenz. Verwenden @aspose/3d in kommerziellen, Open‑Source‑ oder internen Projekten ohne Einschränkung.
Schnellstart
Paket installieren:
npm install @aspose/3d
Laden Sie eine OBJ‑Datei und konvertieren Sie sie in ein binäres 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');
Iterieren Sie über Szenenknoten, um die Geometrie zu inspizieren:
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}`);
}
}
Unterstützte Formate
| Format | Erweiterung | Import | Export | Notizen |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Ja | Ja | Liest/Schreibt .mtl Materialdateien |
| glTF 2.0 | .gltf | Ja | Ja | JSON mit externem .bin Puffer |
| Binäres GLB | .glb | Ja | Ja | Menge binaryMode: true in GltfSaveOptions |
| STL | .stl | Ja | Ja | ASCII- und Binär-STL |
| 3MF | .3mf | Ja | Ja | Open Packaging Convention-Archiv |
| FBX | .fbx | Nein* | Nein* | Importer/Exporter existieren, aber die automatische Format-Erkennung ist nicht implementiert |
| COLLADA | .dae | Ja | Ja | Erfordert gebündelt xmldom Abhängigkeit |
Vorteile von TypeScript
Arbeiten mit @aspose/3d in TypeScript fängt Kategoriefehler zur Compile‑Zeit statt zur Laufzeit ab. Wenn Sie aufrufen scene.save(),verifiziert der Compiler, dass das Options‑Objekt dem erwarteten SaveOptions Untertyp für das gewählte Format entspricht. Format‑spezifische Lade‑ und Speicheroptionen geben nur die für dieses Format relevanten Eigenschaften frei; es gibt keinen untypisierten Options‑Behälter, den man erraten müsste.
Zum Beispiel, GltfSaveOptions.binaryMode ist ein typisiertes boolean,so lehnt der Compiler ab saveOpts.binaryMode = 'yes' bevor irgendein Code ausgeführt wird. Animations‑Eigenschaften auf AnimationClip,Material‑Kanälen auf PbrMaterial,und Vertex‑Element‑Typen auf VertexElement sind alle ähnlich typisiert und über IntelliSense auffindbar, ohne externe Dokumentation zu konsultieren.
Open Source
Das Paket wird veröffentlicht unter der MIT-Lizenz. Der Quellcode ist auf GitHub verfügbar. Beiträge, Fehlermeldungen und Anfragen für Formatunterstützung sind über den Issue-Tracker des Repositorys willkommen.
Die Bibliothek hat eine Laufzeitabhängigkeit: xmldom Version 0.9+, wird nur beim Lesen oder Schreiben von COLLADA-Dateien verwendet. Alle anderen Parser und Writer sind eigenständige pure-JavaScript-Implementierungen ohne binäre Komponenten.
Erste Schritte
- npm:
npm install @aspose/3d - Wissensdatenbank: Wie man 3D-Modelle in TypeScript lädt
- Wissensdatenbank: Wie man 3D-Szenen nach glTF/GLB in TypeScript exportiert
- API-Referenz: Aspose.3D FOSS für TypeScript: Vollständige Klassenreferenz
- GitHub: aspose-3d/aspose-3d-node
Fazit
@aspose/3d version 24.12.0 bietet eine stabile, typisierte, abhaengigkeits‑leichte Grundlage für die 3D‑Dateiverarbeitung in TypeScript und Node.js. Egal, ob der Anwendungsfall Formatkonvertierung, Szeneninspektion, Geometrieextraktion oder Pipeline‑Integration ist, deckt die Bibliothek die gängigsten 3D‑Austauschformate unter einer permissiven open-source Lizenz ab.
Installieren Sie es noch heute und lassen Sie uns wissen, was Sie bauen.