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 membangun 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 — OBJ, glTF 2.0 / GLB, STL, 3MF, dan COLLADA untuk impor maupun ekspor. 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 transform dapat diakses sepenuhnya untuk membaca dan menulis.
Fitur Utama
- I/O multi-format: Impor dan ekspor OBJ (dengan
.mtlmaterials), glTF 2.0 / GLB, STL (biner dan ASCII), 3MF, dan COLLADA dari jalur file maupun memoriBufferobjects. Dukungan FBX belum terhubung ke deteksi otomatis. - API grafik adegan:
Scene,Node,Mesh,Camera,Lighthierarki dengan manajemen induk/anak lengkap; telusuri 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 ofVector4), 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 (linear, Bezier, TCB spline) - 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 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:
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');