Įvadas
Aspose.3D FOSS TypeScript kalbai (@aspose/3d) yra atviro kodo, MIT licencijuota 3D failų formato biblioteka Node.js ir šiuolaikinėms naršyklių aplinkoms. Kūrėjai, kuriantys 3D modelių peržiūros programas, formatų konvertavimo įrankius, geometrijos apdorojimo įrankius arba serverio pusės 3D duomenų srautus, gali ją įdiegti vienu npm install @aspose/3d komanda ir iš karto pradėti įkelti, kurti ir eksportuoti 3D turinį.
Biblioteka palaiko pagrindinius mainų formatus — OBJ, glTF 2.0 / GLB, STL, 3MF ir COLLADA tiek importui, tiek eksportui. FBX importavimo/eksportavimo klasės egzistuoja, tačiau dar nėra sujungtos su formato automatinio aptikimo mechanizmu. Scenos grafiko API atspindi modelį, pažįstamą iš 3D kūrimo įrankių: Scene laiko a rootNode, kiekvienas Node gali turėti vaikų mazgus ir objektų (Mesh, Camera, Light), o transformacijų hierarchija yra visiškai prieinama skaitymui ir rašymui.
Pagrindinės savybės
- Daugiaformatis I/O: Importuoti ir eksportuoti OBJ (su
.mtlmedžiagas), glTF 2.0 / GLB, STL (dvejetainius ir ASCII), 3MF ir COLLADA tiek iš failų kelių, tiek iš atmintiesBufferobjektų. FBX palaikymas dar nėra prijungtas prie automatinio aptikimo. - Scenos grafiko API:
Scene,Node,Mesh,Camera,Lighthierarchija su pilna tėvų/vaikų valdymu; rekursyviai naršyti mazgus pernode.childNodes - PBR medžiagų sistema: Lambert, Phong ir PBR (metalinė/žališkumo) medžiagos prieinamos per
node.entity.material - Mesh operacijos: Gauti neapdorotus viršūnių duomenis per
mesh.controlPoints(masyvas išVector4), daugiakampių indeksai permesh.polygonCount, ir viršūnių elementų kanalus permesh.getElement() - Matematikos įrankiai:
Vector2,Vector3,Vector4,Matrix4,Quaternion, ir ribų dėžės tipai erdviniams skaičiavimams - Animacijos sistema: Rėmelio animacija su
AnimationClip,AnimationChannel, ir interpoliacijos kreivės (linijinė, Bezier, TCB spline) - Formato specifinės parinktys: Kiekvienam formatui
LoadOptions/SaveOptionsklasės valdo koordinatės apvertimą, mastelį, medžiagų įkėlimą ir kt
Pradžia
Įdiekite iš npm. Reikalingas Node.js 18 arba vėlesnis; rekomenduojama TypeScript 5.0+.
npm install @aspose/3d
Įkelkite OBJ failą ir peržiūrėkite sceną:
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`);
}
}
Eksportuoti į glTF
Išsaugokite bet kokį įkeltą arba sukurtą sceną į glTF 2.0 binarinį (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');
Biblioteka automatiškai aptinka išvesties formatą pagal failo plėtinį. Perduokite GltfSaveOptions egzempliorių, kad valdytumėte PBR medžiagų įterpimą, tekstūras ir binarinį bei JSON kodavimą.
Scenos kūrimas
Sukurkite sceną programiškai ir eksportuokite ją:
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');