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 .mtl Material), glTF 2.0 / GLB, STL (binär und ASCII), 3MF und COLLADA sowohl aus Dateiwegen als auch im Speicher. Buffer FBX-Unterstützung ist noch nicht in die Autodetection eingebunden.
  • API für die Schauplatzgrafik: Scene, Node, Mesh, Camera, Light Hierarchie mit voller Eltern-/Kindverwaltung; traverse Knoten rekursiv über die node.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 von Vector4), Polygonindizes über die mesh.polygonCount, und Vertex-Elementkanäle über mesh.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 / SaveOptions Klassen 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');

Siehe auch: