Einführung
Aspose.3D FOSS für TypScript (@aspose/3d) ist eine Open-Source, MIT-lizenzierte 3D-Dateiformatbibliothek, die hauptsächlich für Node.js entwickelt wurde. Entwickler können es mit einem einzigen Applikationsschalter installieren, indem sie 3d-Modellviewer, Formatkonverter, Geometriebearbeitungswerkzeuge oder serverseitige 3 D-Pipelines erstellen. npm install @aspose/3d Die Bibliothek verwendet die 3D-Inhalte, um den Inhalt zu erstellen und sofort mit dem Laden, Erstellen sowie Exportieren von 3 D-Inhalten zu beginnen. require('fs') und . Buffer von Node.js; Browser-Nutzung erfordert geeignete Shims für diese APIs und wird nicht offiziell unterstützt.
Die Bibliothek unterstützt die wichtigsten Austauschformate OBJ, glTF 2.0 / GLB, STL, 3MF und COLLADA sowohl für den Import als auch für die Export. FBX Importeur/Exporter-Klassen existieren aber noch nicht in Formats automatische Erkennung verkabelt sind. Das Szenengraph API spiegelt das Modell wieder, das von 3D-Autorenwerkzeugen bekannt ist: a Scene eine rootNode, jeweils Node Kann Kinderknoten und Entitätsobjekte tragen (Mesh, Camera, Light), und die Transform-Hierarchie ist für Lesen und Schreiben vollständig zugänglich.
Hauptmerkmale
- Mehrformatige E/A-Daten: Einfuhr und Ausfuhr OBJ (mit
.mtlMaterial), glTF 2.0 / GLB, STL (binär und ASCII), 3MF und COLLADA sowohl aus Dateiwegen als auch im Speicher.BufferFBX-Unterstützung ist noch nicht in die Autodetection eingebunden. - API für die Schauplatzgrafik:
Scene,Node,Mesh,Camera,LightHierarchie mit voller Eltern-/Kindverwaltung; traverse Knoten rekursiv über dienode.childNodes - PBR-Materialsystem: Lambert, Phong und PBR (metallische/Rohheit) -Materialien, die über eine elektronische Verbindung zugänglich sind.
node.material - Maschenbearbeitung:Zugriff auf Rohdaten über die Vertex-Dateien:
mesh.controlPoints(Array vonVector4), Polygonindizes über diemesh.polygonCount, und Vertex-Elementkanäle übermesh.getElement() - Mathematik-Dienste:
Vector2,Vector3,Vector4,Matrix4,Quaternion, und die Typen von Grenzschachteln für räumliche Berechnungen. - Animationssystem: Keyframe-Animation mit
AnimationClip,AnimationChannel, und Interpolationskurven (linear, Bezier- oder TCB-Spline) - Formatspezifische Optionen: Per-Format
LoadOptions/SaveOptionsKlassen steuern Koordinaten, Umdrehen, Skala, Materialladung und mehr
Wie man anfängt
Installieren von npm. Node.js 18 oder höher ist erforderlich; TypeScript 5.0+ wird empfohlen.
asposefoss/3d is not yet published — build from source until it ships. See the project README for build instructions.Laden Sie eine OBJ-Datei auf und überprüfen Sie den Tatort:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
const options = new ObjLoadOptions();
options.enableMaterials = true;
scene.open('model.obj', options);
for (const node of scene.rootNode.childNodes) {
if (node.entity && 'controlPoints' in node.entity) {
const mesh = node.entity as any;
console.log(`Mesh "${node.name}": ${mesh.controlPoints.length} vertices`);
}
}
Ausfuhr nach glTF
Speichern Sie jede geladene oder konstruierte Szene in glTF 2.0 binär (GLB):
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('input.obj', new ObjLoadOptions());
scene.save('output.glb');
console.log('Exported to output.glb');
Die Bibliothek erkennt das Ausgabeformat automatisch aus der Dateierweiterung. GltfSaveOptions Beispiel für die Kontrolle über PBR-Material Einbettung, Texturen und binäre vs. JSON-Codierung.
Schauplatzbau
Erstellen Sie eine Szene programmatisch und exportieren sie:
import { Scene, Node } from '@aspose/3d';
import { Mesh } from '@aspose/3d/entities';
const scene = new Scene();
const mesh = new Mesh();
// ... populate mesh.controlPoints and polygons ...
const node = new Node('myMesh');
node.entity = mesh;
scene.rootNode.addChildNode(node);
scene.save('programmatic.glb');