Pendahuluan

Kami dengan senang hati mengumumkan ketersediaan Aspose.3D FOSS untuk TypeScript sebagai @aspose/3d paket npm. Perpustakaan berlisensi MIT ini membawa pemrosesan adegan 3D berkualitas produksi ke aplikasi TypeScript dan Node.js tanpa memerlukan binari native, toolchain spesifik platform, atau lisensi komersial.

Perpustakaan ini dirancang di sekitar yang sederhana Scene API: memuat file 3D dengan scene.open(), memeriksa atau mengubah grafik adegan, dan menulis hasilnya dengan scene.save(). Definisi tipe TypeScript lengkap disertakan; tidak ada @types/ paket terpisah yang diperlukan.

Fitur Utama

I/O multi-format. Paket ini membaca dan menulis enam format 3D utama dalam satu instalasi. OBJ, glTF 2.0, GLB, STL, 3MF, dan COLLADA semuanya mendukung impor dan ekspor. Kelas pengimpor/pengekspor FBX ada tetapi deteksi otomatis format belum dihubungkan, sehingga file FBX tidak dapat dimuat melalui scene.open().

Dukungan TypeScript kelas pertama. Semua kelas publik, enumerasi, dan tipe opsi sepenuhnya bertipe. IDE dengan dukungan layanan bahasa TypeScript (VS Code, WebStorm, dll.) menyediakan autocompletion yang akurat dan dokumentasi inline untuk setiap panggilan API.

Kompatibilitas Node.js 18–22+. Paket ini diuji pada rilis LTS Node.js 18, 20, dan 22. Tidak ada addon native yang dikompilasi selama instalasi, sehingga ia bekerja di semua platform yang didukung Node.js.

Satu dependensi runtime. Satu-satunya dependensi adalah xmldom, digunakan secara eksklusif untuk parsing XML COLLADA. Semua parser format lainnya adalah implementasi JavaScript murni.

Lisensi MIT. Gunakan @aspose/3d dalam proyek komersial, sumber terbuka, atau internal tanpa batasan.

Mulai Cepat

Instal paket:

npm install @aspose/3d

Muat file OBJ dan konversi menjadi GLB biner:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());

const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true;   // produce a single .glb file
scene.save('output.glb', GltfFormat.getInstance(), saveOpts);

console.log('Converted to GLB successfully');

Iterasi node adegan untuk memeriksa geometri:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());

for (const node of scene.rootNode.childNodes) {
    console.log(`Node: ${node.name}`);
    if (node.entity) {
        console.log(`  Entity type: ${node.entity.constructor.name}`);
    }
}

Format yang Didukung

FormatEkstensiImporEksporCatatan
Wavefront OBJ.objYaYaMembaca/menulis .mtl file material
glTF 2.0.gltfYaYaJSON dengan eksternal .bin buffer
GLB Biner.glbYaYaSetel binaryMode: true di GltfSaveOptions
STL.stlYaYaASCII dan binary STL
3MF.3mfYaYaarsip Open Packaging Convention
FBX.fbxTidak*Tidak*Pengimpor/pengekspor ada tetapi deteksi otomatis format tidak terhubung
COLLADA.daeYaYaMembutuhkan bundel xmldom dependensi

Keuntungan TypeScript

Bekerja dengan @aspose/3d di TypeScript menangkap kesalahan kategori pada waktu kompilasi bukan pada waktu runtime. Ketika Anda memanggil scene.save(), kompiler memverifikasi bahwa objek opsi cocok dengan yang diharapkan SaveOptions subtipe untuk format yang dipilih. Opsi muat dan simpan yang spesifik format hanya menampilkan properti yang relevan dengan format tersebut; tidak ada kantong opsi yang tidak bertipe untuk ditebak.

Sebagai contoh, GltfSaveOptions.binaryMode adalah tipe boolean, jadi kompiler menolak saveOpts.binaryMode = 'yes' sebelum kode apa pun dijalankan. Properti animasi pada AnimationClip, saluran material pada PbrMaterial, dan tipe elemen vertex pada VertexElement semuanya memiliki tipe serupa dan dapat ditemukan melalui IntelliSense tanpa harus merujuk ke dokumentasi eksternal.

Sumber Terbuka

Paket ini dipublikasikan di bawah MIT License. Kode sumber tersedia di GitHub. Kontribusi, laporan bug, dan permintaan dukungan format dipersilakan melalui pelacak isu repositori.

Pustaka ini memiliki satu dependensi runtime: xmldom versi 0.9+, hanya digunakan saat membaca atau menulis file COLLADA. Semua parser dan penulis lainnya adalah implementasi pure-JavaScript yang berdiri sendiri tanpa komponen biner.

Memulai

Kesimpulan

@aspose/3d versi 24.12.0 menyediakan fondasi yang stabil, bertipe, ringan ketergantungan untuk pemrosesan file 3D dalam TypeScript dan Node.js. Baik kasus penggunaan berupa konversi format, inspeksi adegan, ekstraksi geometri, atau integrasi pipeline, perpustakaan ini mencakup format pertukaran 3D paling umum di bawah lisensi sumber terbuka yang permisif.

Instal sekarang dan beri tahu kami apa yang Anda bangun.