Įvadas
Mums malonu pranešti apie prieinamumą Aspose.3D FOSS for TypeScript kaip @aspose/3d npm paketą. Ši MIT licencijuota biblioteka suteikia gamybos kokybės 3D scenų apdorojimą TypeScript ir Node.js programoms, nereikalaujant natūralių binarinių failų, platformai specifinių įrankių grandinių ar komercinių licencijų.
Biblioteka sukurta aplink paprastą Scene API: įkelti 3D failą su scene.open(), peržiūrėti arba transformuoti scenos grafiką ir įrašyti rezultatą su scene.save(). Pilni TypeScript tipų apibrėžimai yra supakuoti; nėra atskiro @types/ paketas būtinas.
Pagrindinės funkcijos
Daugių formatų I/O. Paketas skaito ir rašo šešis pagrindinius 3D formatus vienoje įdiegimo operacijoje. OBJ palaikomas importui; glTF 2.0, GLB, STL, 3MF ir COLLADA palaiko tiek importą, tiek eksportą. FBX importavimo/eksportavimo klasės egzistuoja, tačiau formato automatinis aptikimas dar neįgyvendintas, todėl FBX failų negalima įkelti via scene.open().
Pirmos klasės TypeScript palaikymas. Visos viešosios klasės, išvardijimai ir parinkčių tipai yra visiškai tipizuoti. IDE su TypeScript kalbos paslaugų palaikymu (VS Code, WebStorm ir kt.) suteikia tikslią automatinę užbaigimą ir įterptą dokumentaciją kiekvienam API iškvietimui.
Node.js 18–22+ suderinamumas. Paketas testuotas su Node.js 18, 20 ir 22 LTS versijomis. Įdiegimo metu nenaudojami natūralūs papildiniai, todėl jis veikia visose Node.js palaikomose platformose.
Viena vykdymo laiko priklausomybė. Vienintelė priklausomybė yra xmldom, naudojama išskirtinai COLLADA XML analizavimui. Visi kiti formatų analizatoriai yra grynai JavaScript įgyvendinimai.
MIT licencija. Naudoti @aspose/3d komerciniuose, atviro kodo arba vidiniuose projektuose be apribojimų.
Greitas pradžia
Įdiekite paketą:
npm install @aspose/3d
Įkelkite OBJ failą ir konvertuokite jį į binarinį GLB:
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');
Iteruokite per scenos mazgus, kad peržiūrėtumėte geometriją:
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}`);
}
}
Palaikomi formatai
| Formatas | Plėtinys | Importuoti | Eksportuoti | Pastabos |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Taip | Ne | Tik importavimas; skaito .mtl medžiagų failai |
| glTF 2.0 | .gltf | Taip | Taip | JSON su išoriniu .bin buferis |
| Dvejetainis GLB | .glb | Taip | Taip | Rinkinys binaryMode: true į GltfSaveOptions |
| STL | .stl | Taip | Taip | ASCII ir binary STL |
| 3MF | .3mf | Taip | Taip | Open Packaging Convention archyvas |
| FBX | .fbx | Ne* | Ne* | Importuotojas/eksportuotojas egzistuoja, bet formato automatinis aptikimas nėra sujungtas |
| COLLADA | .dae | Taip | Taip | Reikalauja supakuoto xmldom priklausomybė |
TypeScript privalumai
Dirbant su @aspose/3d TypeScript kalboje sugavimas kategorijos klaidų kompiliavimo metu, o ne vykdymo metu. Kai iškviečiate scene.save(), kompiliatorius patikrina, ar parametrų objektas atitinka laukiamą SaveOptions potipį pasirinktam formatui. Formato specifinės įkėlimo ir išsaugojimo parinktys atskleidžia tik tas savybes, kurios yra svarbios tam formatui; nėra neapibrėžtų parametrų maišo, kurį reikėtų spėlioti.
Pavyzdžiui, GltfSaveOptions.binaryMode yra tipizuotas boolean, todėl kompiliatorius atmeta saveOpts.binaryMode = 'yes' prieš vykdant bet kokį kodą. Animacijos savybės ant AnimationClip, medžiagos kanalai ant PbrMaterial, ir viršūnių elementų tipai ant VertexElement visi yra panašiai tipizuoti ir atrandami per IntelliSense be išorinės dokumentacijos konsultavimo.
Atviro kodo ir nemokama
Paketas publikuojamas pagal MIT License. Šaltinis kodas prieinamas GitHub platformoje. Indėliai, klaidų pranešimai ir formatų palaikymo prašymai yra laukiami per saugyklos problemų sekiklį.
Biblioteka turi vieną vykdymo laiką priklausomybę: xmldom versija 0.9+, naudojama tik skaitant arba rašant COLLADA failus. Visos kitos analizės ir rašymo priemonės yra savarankiškos grynojo JavaScript įgyvendinimai be jokių binarinių komponentų.
Pradžia
- npm:
npm install @aspose/3d - Žinių bazė: Kaip įkelti 3D modelius TypeScript kalboje
- Žinių bazė: Kaip eksportuoti 3D scenas į glTF/GLB TypeScript kalboje
- API nuoroda: Aspose.3D FOSS TypeScript kalbai: Pilna klasės nuoroda
- GitHub: aspose-3d/aspose-3d-node
Išvada
@aspose/3d versija 24.12.0 suteikia stabilų, tipizuotą, priklausomybių lengvą pagrindą 3D failų apdorojimui TypeScript ir Node.js aplinkoje. Nesvarbu, ar naudojimo atvejis yra formato konvertavimas, scenos patikrinimas, geometrijos išgavimas ar duomenų srauto integracija, biblioteka apima dažniausiai pasitaikančius 3D keitimosi formatus pagal liberalią atviro kodo licenciją.
Įdiekite ją šiandien ir praneškite mums, ką kuriate.