Į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

FormatasPlėtinysImportuotiEksportuotiPastabos
Wavefront OBJ.objTaipNeTik importavimas; skaito .mtl medžiagų failai
glTF 2.0.gltfTaipTaipJSON su išoriniu .bin buferis
Dvejetainis GLB.glbTaipTaipRinkinys binaryMode: true į GltfSaveOptions
STL.stlTaipTaipASCII ir binary STL
3MF.3mfTaipTaipOpen Packaging Convention archyvas
FBX.fbxNe*Ne*Importuotojas/eksportuotojas egzistuoja, bet formato automatinis aptikimas nėra sujungtas
COLLADA.daeTaipTaipReikalauja 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

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.