Pengenalan
Aspose.3D FOSS untuk TypeScript (@aspose/3d) ialah perpustakaan format fail 3D sumber terbuka, berlesen MIT untuk Node.js dan persekitaran pelayar moden. Pembangun yang membina penonton model 3D, penukar format, alat pemprosesan geometri, atau paip 3D sisi pelayan boleh memasangnya dengan satu npm install @aspose/3d perintah dan serta-merta mula memuatkan, membina, dan mengeksport kandungan 3D.
Perpustakaan ini menyokong format pertukaran utama — glTF 2.0 / GLB, STL, 3MF, dan COLLADA untuk import dan eksport, serta OBJ untuk import sahaja. Kelas import/eksport FBX wujud tetapi belum disambungkan ke pengesanan automatik format. Scene API graf adegan mencerminkan model yang biasa dari alat authoring 3D: satu rootNode,menyimpan satu Node boleh membawa nod anak dan objek entiti (Mesh, Camera, Light), dan hierarki transformasi dapat diakses sepenuhnya untuk bacaan dan penulisan.
Ciri-ciri Utama
- I/O berbilang format: Import OBJ (dengan
.mtlbahan, import sahaja), glTF 2.0 / GLB, STL (binari dan ASCII), 3MF, dan COLLADA daripada kedua-dua laluan fail dan dalam memoriBufferobjek. glTF, STL, 3MF, dan COLLADA juga menyokong eksport. Sokongan FBX belum disambungkan ke pengesanan automatik. - API graf adegan:
Scene,Node,Mesh,Camera,Lighthierarki dengan pengurusan ibu/anak penuh; lalui nod secara rekursif melaluinode.childNodes - sistem bahan PBR: bahan Lambert, Phong, dan PBR (logam/kekasaran) dapat diakses melalui
node.entity.material - Operasi mesh: Akses data vertex mentah melalui
mesh.controlPoints(susunanVector4), indeks poligon melaluimesh.polygonCount, dan saluran elemen vertex melaluimesh.getElement() - Utiliti Matematik:
Vector2,Vector3,Vector4,Matrix4,Quaternion, dan jenis kotak sempadan untuk pengiraan spasial - Sistem animasi: Animasi keyframe dengan
AnimationClip,AnimationChannel, dan lengkung interpolasi (linear, Bezier, TCB spline) - Pilihan khusus format: Per-format
LoadOptions/SaveOptionskelas mengawal pembalikan koordinat, skala, pemuatan bahan, dan banyak lagi
Mula Menggunakan
Pasang melalui npm. Node.js 18 atau lebih baru diperlukan; TypeScript 5.0+ disarankan.
npm install @aspose/3d
Muatkan fail OBJ dan periksa adegan:
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`);
}
}
Eksport ke glTF
Simpan sebarang adegan yang dimuatkan atau dibina ke dalam glTF 2.0 binari (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');
Pustaka secara automatik mengesan format output daripada sambungan fail. Hantar satu GltfSaveOptions instans untuk mengawal penyematan bahan PBR, tekstur, dan pengekodan binari vs. JSON.
Pembinaan Adegan
Bina adegan secara programatik dan eksportkan ia:
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');