Einleitung
Wir freuen uns, die Verfügbarkeit von Aspose.3D FOSS für TypeScript als das @aspose/3d npm-Paket. Diese MIT-lizenzierte Bibliothek bringt 3D‑Szenenverarbeitung in Produktionsqualität zu TypeScript- und Node.js-Anwendungen, ohne native Binärdateien, plattformspezifische Toolchains oder kommerzielle Lizenzen zu benötigen.
Die Bibliothek ist um ein einfaches Scene API: Lade eine 3D-Datei mit scene.open(), inspiziere oder transformiere den Szenengraphen und schreibe 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 wird für den Import unterstützt; glTF 2.0, GLB, STL, 3MF und COLLADA unterstützen sowohl Import als auch Export. FBX-Importer/Exporter-Klassen existieren, aber die automatische Format-Erkennung ist noch nicht implementiert, sodass FBX-Dateien nicht über via 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, die ausschließlich für das Parsen von COLLADA‑XML verwendet wird. Alle anderen Format‑Parser sind reine JavaScript‑Implementierungen.
MIT‑Lizenz. Verwenden @aspose/3d in kommerziellen, Open‑Source‑ oder internen Projekten ohne Einschränkung.
Schnellstart
Installieren Sie das Paket:
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 untersuchen:
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 | Nein | Nur importieren; liest .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 verkabelt |
| 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(), prüft der Compiler, ob das Optionsobjekt dem erwarteten SaveOptions Untertyp für das gewählte Format entspricht. Format‑spezifische Lade‑ und Speicheroptionen stellen nur die für dieses Format relevanten Eigenschaften bereit; es gibt keinen untypisierten Options‑Behälter, über den man raten müsste.
Zum Beispiel, GltfSaveOptions.binaryMode ist ein typisiertes boolean, sodass der Compiler ablehnt saveOpts.binaryMode = 'yes' bevor irgendein Code ausgeführt wird. AnimationClip,Animations‑Eigenschaften auf PbrMaterial, Materialkanäle auf VertexElement , und Vertex‑Element‑Typen auf.
Open Source und kostenlos
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 reine 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, dependency-light Grundlage für die 3D‑Dateiverarbeitung in TypeScript und Node.js. Unabhängig davon, 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 entwickeln.