Introducere
Suntem încântați să anunțăm disponibilitatea Aspose.3D FOSS pentru TypeScript ca @aspose/3d pachet npm. Această bibliotecă licențiată sub MIT aduce procesare de scene 3D de calitate de producție în aplicații TypeScript și Node.js fără a necesita binare native, lanțuri de instrumente specifice platformei sau licențe comerciale.
Biblioteca este concepută în jurul unui Scene API: încarcă un fișier 3D cu scene.open(), inspectează sau transformă graful scenei și scrie rezultatul cu scene.save(). Definițiile de tip complet pentru TypeScript sunt incluse; nu este necesar niciun @types/ pachet separat.
Caracteristici cheie
Intrare/Ieșire multi-format. Pachetul citește și scrie șase formate 3D majore într-o singură instalare. OBJ, glTF 2.0, GLB, STL, 3MF și COLLADA suportă atât importul, cât și exportul. Clasele de import/export FBX există, dar detectarea automată a formatului nu este încă implementată, astfel încât fișierele FBX nu pot fi încărcate prin scene.open().
Suport de primă clasă pentru TypeScript. Toate clasele publice, enumerațiile și tipurile de opțiuni sunt complet tipizate. IDE-urile cu suport pentru serviciul de limbaj TypeScript (VS Code, WebStorm etc.) oferă completare automată precisă și documentație în linie pentru fiecare apel API.
Compatibilitate cu Node.js 18–22+. Pachetul este testat pe versiunile LTS ale Node.js 18, 20 și 22. Nu se compilează addon-uri native în timpul instalării, astfel că funcționează pe toate platformele suportate de Node.js.
O singură dependență la runtime. Singura dependență este xmldom, utilizată exclusiv pentru parsarea XML-ului COLLADA. Toți ceilalți parsere de format sunt implementări pure în JavaScript.
Licență MIT. Utilizați @aspose/3d în proiecte comerciale, open-source sau interne fără restricții.
Început rapid
Instalați pachetul:
npm install @aspose/3d
Încărcați un fișier OBJ și convertiți-l într-un GLB binar:
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');
Iterați peste nodurile scenei pentru a inspecta geometria:
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}`);
}
}
Formate suportate
| Format | Extensie | Import | Export | Note |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Da | Da | Citește/ scrie .mtl fișiere de material |
| glTF 2.0 | .gltf | Da | Da | JSON cu extern .bin buffer |
| GLB binar | .glb | Da | Da | Set binaryMode: true în GltfSaveOptions |
| STL | .stl | Da | Da | ASCII și STL binar |
| 3MF | .3mf | Da | Da | arhivă Open Packaging Convention |
| FBX | .fbx | Nu* | Nu* | Importator/exportator există, dar detectarea automată a formatului nu este conectată |
| COLLADA | .dae | Da | Da | Necesită în pachet xmldom dependență |
Avantajele TypeScript
Lucrând cu @aspose/3d în TypeScript detectează erorile de categorie în timpul compilării, mai degrabă decât în timpul execuției. Când apelezi scene.save(), compilatorul verifică că obiectul de opțiuni se potrivește cu așteptatul SaveOptions subtip pentru formatul ales. Opțiunile de încărcare și salvare specifice formatului expun doar proprietățile relevante pentru acel format; nu există un „bag” de opțiuni nedefinite din care să ghicești.
De exemplu, GltfSaveOptions.binaryMode este un tipat boolean, astfel încât compilatorul respinge saveOpts.binaryMode = 'yes' înainte ca orice cod să ruleze. Proprietățile de animație pe AnimationClip, canalele de material pe PbrMaterial, și tipurile de elemente de vârf pe VertexElement sunt toate tipate în mod similar și descoperibile prin IntelliSense fără a consulta documentația externă.
Sursă deschisă
Pachetul este publicat sub licența «<SEG_11»>. Licență MIT. Codul sursă este disponibil pe GitHub. Contribuțiile, rapoartele de erori și cererile de suport pentru formate sunt binevenite prin sistemul de urmărire a problemelor al depozitului.
Biblioteca are o singură dependență la rulare: xmldom versiunea 0.9+, utilizată doar la citirea sau scrierea fișierelor COLLADA. Toate celelalte parsere și scriitori sunt implementări pure-JavaScript autonome, fără componente binare.
Începerea utilizării
- npm:
npm install @aspose/3d - Bază de cunoștințe: Cum să încarci modele 3D în TypeScript
- Bază de cunoștințe: Cum să exporți scene 3D în glTF/GLB în TypeScript
- Referință API: Aspose.3D FOSS pentru TypeScript: Referință completă a claselor
- GitHub: aspose-3d/aspose-3d-node
Concluzie
@aspose/3d versiunea 24.12.0 oferă o bază stabilă, tipizată, cu dependențe reduse pentru procesarea fișierelor 3D în TypeScript și Node.js. Indiferent dacă cazul de utilizare este conversia de format, inspecția scenei, extragerea geometriei sau integrarea în pipeline, biblioteca acoperă cele mai comune formate de interschimb 3D sub o licență open-source permisivă.
Instalați-l astăzi și spuneți-ne ce construiți.