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

FormatEkstensiImporEksporCatatan
Wavefront OBJ.objYaTidakHanya impor; membaca .mtl berkas material
glTF 2.0.gltfYaYaJSON dengan eksternal .bin buffer
Biner GLB.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 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

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.