Pendahuluan
Aspose.3D FOSS untuk TypeScript (@aspose/3d) adalah perpustakaan format file 3D sumber terbuka, berlisensi MIT untuk Node.js dan lingkungan peramban modern. Pengembang yang membuat penampil model 3D, konverter format, alat pemrosesan geometri, atau pipeline 3D sisi server dapat menginstalnya dengan satu npm install @aspose/3d perintah dan langsung mulai memuat, membangun, serta mengekspor konten 3D.
Perpustakaan ini mendukung format pertukaran utama — glTF 2.0 / GLB, STL, 3MF, dan COLLADA untuk impor dan ekspor, serta OBJ hanya untuk impor. Kelas pengimpor/pengekspor FBX ada tetapi belum terhubung ke deteksi otomatis format. API grafik adegan mencerminkan model yang familiar dari alat authoring 3D: sebuah Scene menyimpan sebuah rootNode, masing-masing Node dapat membawa node anak dan objek entitas (Mesh, Camera, Light), dan hierarki transformasi sepenuhnya dapat diakses untuk membaca dan menulis.
Fitur Utama
- I/O multi-format: Impor OBJ (dengan
.mtlmaterial, hanya impor), glTF 2.0 / GLB, STL (biner dan ASCII), 3MF, dan COLLADA dari jalur file maupun memoriBufferobjek. glTF, STL, 3MF, dan COLLADA juga mendukung ekspor. Dukungan FBX belum terhubung ke deteksi otomatis. - API grafik adegan:
Scene,Node,Mesh,Camera,Lighthierarki dengan manajemen induk/anak lengkap; menelusuri node secara rekursif melaluinode.childNodes - sistem material PBR: material Lambert, Phong, dan PBR (metallic/roughness) dapat diakses melalui
node.entity.material - operasi Mesh: Akses data vertex mentah melalui
mesh.controlPoints(array dariVector4), indeks poligon melaluimesh.polygonCount, dan saluran elemen vertex melaluimesh.getElement() - Utilitas Matematika:
Vector2,Vector3,Vector4,Matrix4,Quaternion, dan tipe kotak pembatas untuk perhitungan spasial - Sistem animasi: Animasi keyframe dengan
AnimationClip,AnimationChannel, dan kurva interpolasi (linier, Bezier, spline TCB) - Opsi khusus format: Per-format
LoadOptions/SaveOptionskelas mengontrol pembalikan koordinat, skala, pemuatan material, dan lainnya
Memulai
Instal dari npm. Node.js 18 atau lebih baru diperlukan; TypeScript 5.0+ disarankan.
npm install @aspose/3d
Muat file 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`);
}
}
Ekspor ke glTF
Simpan setiap adegan yang dimuat atau dibangun ke glTF 2.0 biner (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');
Perpustakaan secara otomatis mendeteksi format output dari ekstensi file. Berikan sebuah GltfSaveOptions instance untuk mengontrol penyematan material PBR, tekstur, serta enkoding biner vs. JSON.
Konstruksi Adegan
Bangun adegan secara programatis dan ekspor itu:
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');