Uvod

Aspose.3D FOSS za TypeScript (@aspose/3d) je open‑source, MIT‑licencirana biblioteka za 3D formate datoteka za Node.js i moderne pregledače. Programeri koji razvijaju 3D preglednike modela, konvertore formata, alate za obradu geometrije ili server‑side 3D pipeline‑ove mogu je instalirati jednim npm install @aspose/3d komandom i odmah početi da učitavaju, konstrušu i izvezu 3D sadržaj.

Biblioteka podržava glavne formate za razmenu — glTF 2.0 / GLB, STL, 3MF i COLLADA za uvoz i izvoz, i OBJ samo za uvoz. FBX klase za uvoz/izvoz postoje, ali još nisu povezane sa automatskim otkrivanjem formata. API grafika scene odražava model poznat iz 3D alata za autorstvo: a Scene sadrži rootNode, svaki Node može nositi podčvorove i objekte entiteta (Mesh, Camera, Light).

Ključne karakteristike

  • Višestruki format I/O: Uvoz OBJ (sa .mtl materijalima, samo uvoz), glTF 2.0 / GLB, STL (binarni i ASCII), 3MF i COLLADA iz putanja do datoteka i iz memorije Buffer objekata. glTF, STL, 3MF i COLLADA takođe podržavaju izvoz. FBX podrška još nije povezana sa automatskim otkrivanjem.
  • API grafičkog stabla scene: Scene, Node, Mesh, Camera, Light hijerarhija sa potpunim upravljanjem roditelj/deca; rekurzivno prolazite kroz čvorove putem node.childNodes
  • PBR sistem materijala: Lambert, Phong i PBR (metallic/roughness) materijali dostupni putem node.entity.material
  • Operacije mreže: Pristup sirovim podacima o vrhu putem mesh.controlPoints (niz od Vector4), indeksi poligona putem mesh.polygonCount, i kanali elemenata vrha putem mesh.getElement()
  • Matematički alati: Vector2, Vector3, Vector4, Matrix4, Quaternion, i tipovi bounding box-a za prostorne proračune
  • Sistem animacije: Анимација кључних кадрова са AnimationClip, AnimationChannel, и криве интерполације (линеарне, Bezier, TCB spline)
  • Опције специфичне за формат: По формату LoadOptions / SaveOptions класе контролишу обртање координата, скалирање, учитавање материјала и још много тога

Početak

Instalirajte putem npm‑a. Potreban je Node.js 18 ili noviji; preporučuje se TypeScript 5.0+.

npm install @aspose/3d

Učitajte OBJ datoteku i pregledajte scenu:

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`);
    }
}

Izvezi u glTF

Sačuvajte bilo koju učitanu ili konstruisanu scenu u glTF 2.0 binarni (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');

Библиотека аутоматски открива излазни формат из екстензије датотеке. Проследите GltfSaveOptions инстанцу за контролу уметања PBR материјала, текстура и бинарног у односу на JSON кодирање.

Konstrukcija scene

Programski izgradite scenu i izvezite je:

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');

Vidi takođe