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 API 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 diperlukan @types/ paket terpisah.
Fitur Utama
I/O multi-format. Paket ini membaca dan menulis enam format 3D utama dalam satu instalasi. OBJ didukung untuk impor; glTF 2.0, GLB, STL, 3MF, dan COLLADA mendukung impor dan ekspor. Kelas impor/ekspor FBX ada tetapi deteksi otomatis format belum dihubungkan, sehingga file FBX tidak dapat dimuat melalui scene.open().
Dukungan TypeScript kelas satu. 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 pemanggilan 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 dapat berjalan 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 scene 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
| Format | Ekstensi | Impor | Ekspor | Catatan |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Ya | Tidak | Hanya impor; membaca .mtl berkas material |
| glTF 2.0 | .gltf | Ya | Ya | JSON dengan eksternal .bin buffer |
| Biner GLB | .glb | Ya | Ya | Setel binaryMode: true di GltfSaveOptions |
| STL | .stl | Ya | Ya | ASCII dan binary STL |
| 3MF | .3mf | Ya | Ya | arsip Open Packaging Convention |
| FBX | .fbx | Tidak* | Tidak* | Pengimpor/pengekspor ada tetapi deteksi otomatis format tidak terhubung |
| COLLADA | .dae | Ya | Ya | Membutuhkan bundled xmldom dependensi |
Keuntungan TypeScript
Bekerja dengan @aspose/3d di TypeScript menangkap kesalahan kategori pada waktu kompilasi daripada 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 tanpa tipe 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 yang serupa dan dapat ditemukan melalui IntelliSense tanpa harus merujuk ke dokumentasi eksternal.
Sumber Terbuka dan Gratis
Paket ini dipublikasikan di bawah MIT License. Kode sumber tersedia di GitHub. Kontribusi, laporan bug, dan permintaan dukungan format dipersilakan melalui pelacak masalah (issue tracker) 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
- npm:
npm install @aspose/3d - Basis Pengetahuan: Cara Memuat Model 3D di TypeScript
- Basis Pengetahuan: Cara Mengekspor Adegan 3D ke glTF/GLB di TypeScript
- Referensi API: Aspose.3D FOSS untuk TypeScript: Referensi Kelas Lengkap
- GitHub: aspose-3d/aspose-3d-node
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 mencakup format pertukaran 3D paling umum di bawah lisensi open-source yang permisif.
Pasang sekarang dan beri tahu kami apa yang Anda bangun.