Pengenalan
Kami gembira mengumumkan ketersediaan Aspose.3D FOSS untuk TypeScript sebagai @aspose/3d pakej npm. Perpustakaan berlesen MIT ini membawa pemprosesan adegan 3D berkualiti produksi ke aplikasi TypeScript dan Node.js tanpa memerlukan binari asli, rantaian alat khusus platform, atau lesen komersial.
Perpustakaan ini direka di sekitar sesuatu yang mudah Scene API: memuatkan fail 3D dengan scene.open(), periksa atau ubah suai graf adegan, dan tulis hasilnya dengan scene.save(). Definisi jenis TypeScript penuh disertakan; tiada @types/ pakej diperlukan.
Ciri-ciri Utama
I/O berbilang format. Pakej ini membaca dan menulis enam format 3D utama dalam satu pemasangan. OBJ disokong untuk import; glTF 2.0, GLB, STL, 3MF, dan COLLADA menyokong import dan eksport. Kelas import/eksport FBX wujud tetapi pengesanan automatik format belum disambungkan, jadi fail FBX tidak dapat dimuatkan melalui scene.open().
Sokongan TypeScript kelas pertama. Semua kelas awam, enumerasi, dan jenis pilihan didefinisikan sepenuhnya. IDE dengan sokongan perkhidmatan bahasa TypeScript (VS Code, WebStorm, dll.) menyediakan autolengkap yang tepat dan dokumentasi dalam baris untuk setiap panggilan API.
Keserasian Node.js 18–22+. Pakej ini diuji terhadap pelepasan LTS Node.js 18, 20, dan 22. Tiada add-on asli yang dikompilasi semasa pemasangan, jadi ia berfungsi pada semua platform yang disokong oleh Node.js.
Satu kebergantungan masa jalan. Satu-satunya kebergantungan ialah xmldom, digunakan secara eksklusif untuk penguraian XML COLLADA. Semua pengurai format lain adalah pelaksanaan JavaScript tulen.
Lesen MIT. Gunakan @aspose/3d dalam projek komersial, sumber terbuka, atau dalaman tanpa sekatan.
Mula Cepat
Pasang pakej:
npm install @aspose/3d
Muat fail OBJ dan tukar kepada GLB binari:
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 nod 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 Disokong
| Format | Sambungan | Import | Eksport | Nota |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Ya | Tidak | Import sahaja; membaca .mtl fail bahan |
| glTF 2.0 | .gltf | Ya | Ya | JSON dengan luaran .bin penimbal |
| GLB Biner | .glb | Ya | Ya | Tetapkan binaryMode: true dalam GltfSaveOptions |
| STL | .stl | Ya | Ya | ASCII dan STL binari |
| 3MF | .3mf | Ya | Ya | Arkib Open Packaging Convention |
| FBX | .fbx | Tidak* | Tidak* | Importer/exporter wujud tetapi pengesanan automatik format tidak disambungkan |
| COLLADA | .dae | Ya | Ya | Memerlukan dibundel xmldom kebergantungan |
Kelebihan TypeScript
Bekerja dengan @aspose/3d dalam TypeScript mengesan ralat kategori pada masa kompilasi dan bukannya semasa runtime. Apabila anda memanggil scene.save(), penyusun mengesahkan bahawa objek pilihan sepadan dengan yang dijangka SaveOptions subtipe untuk format yang dipilih. Pilihan muat naik dan simpan khusus format hanya memaparkan sifat-sifat yang relevan dengan format tersebut; tiada beg pilihan tanpa jenis untuk diteka.
Sebagai contoh, GltfSaveOptions.binaryMode adalah berjenis boolean, jadi penyusun menolak saveOpts.binaryMode = 'yes' sebelum sebarang kod dijalankan. Sifat animasi pada AnimationClip, saluran bahan pada PbrMaterial, dan jenis elemen verteks pada VertexElement semua berjenis serupa dan boleh ditemui melalui IntelliSense tanpa merujuk kepada dokumentasi luaran.
Sumber Terbuka dan Percuma
Pakej ini diterbitkan di bawah MIT License. Kod sumber tersedia di GitHub. Sumbangan, laporan pepijat, dan permintaan sokongan format dialu-alukan melalui penjejak isu repositori.
Pustaka ini mempunyai satu kebergantungan masa jalan: xmldom versi 0.9+, hanya digunakan semasa membaca atau menulis fail COLLADA. Semua pengurai dan penulis lain adalah pelaksanaan JavaScript tulen yang berdiri sendiri tanpa komponen binari.
Mula Menggunakan
- npm:
npm install @aspose/3d - Pangkalan Pengetahuan: Cara Memuatkan Model 3D dalam TypeScript
- Pangkalan Pengetahuan: Cara Mengeksport Adegan 3D ke glTF/GLB dalam TypeScript
- Rujukan API: Aspose.3D FOSS untuk TypeScript: Rujukan Kelas Penuh
- GitHub: aspose-3d/aspose-3d-node
Kesimpulan
@aspose/3d versi 24.12.0 menyediakan asas yang stabil, berjenis, dan ringan kebergantungan untuk pemprosesan fail 3D dalam TypeScript dan Node.js. Sama ada kes penggunaan ialah penukaran format, pemeriksaan adegan, pengekstrakan geometri, atau integrasi saluran, perpustakaan ini merangkumi format pertukaran 3D yang paling umum di bawah lesen sumber terbuka yang permisif.
Pasang ia hari ini dan beritahu kami apa yang anda bina.