Įvadas

Džiaugiamės galėdami pranešti apie prieinamumą Aspose.3D FOSS for TypeScript kaip @aspose/3d npm paketas. Š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 atskirų @types/ paketas būtinas.

Pagrindinės savybės

Daugių formatų I/O. Paketas skaito ir rašo šešis pagrindinius 3D formatus vienoje įdiegimo operacijoje. OBJ, 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 per scene.open().

Pirmos klasės TypeScript palaikymas. Visos viešosios klasės, išvardijimai ir parinkčių tipai yra visiškai tipizuoti. IDE, turinčios TypeScript kalbos paslaugų palaikymą (VS Code, WebStorm ir kt.), suteikia tikslią automatinę užbaigimą ir įterptą dokumentaciją kiekvienam API iškvietimui.

Node.js 18–22+ suderinamumas. Paketas testuojamas su Node.js 18, 20 ir 22 LTS versijomis. Įdiegimo metu nenaudojami jokie 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 patikrintumė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

FormatPlėtinysImportuotiEksportuotiPastabos
Wavefront OBJ.objTaipTaipSkaito/rašo .mtl medžiagų failai
glTF 2.0.gltfTaipTaipJSON su išoriniu .bin buferis
Dvejetainis GLB.glbTaipTaipNustatyti binaryMode: true į GltfSaveOptions
STL.stlTaipTaipASCII ir binarinis STL
3MF.3mfTaipTaipOpen Packaging Convention archyvas
FBX.fbxNe*Ne*Importer/exporter egzistuoja, bet formato automatinis aptikimas nesusietas
COLLADA.daeTaipTaipReikalauja paketuoto xmldom priklausomybė

TypeScript privalumai

Dirbama su @aspose/3d TypeScript kalboje gaudo kategorijos klaidas kompiliavimo metu, o ne vykdymo metu. Kai iškvieki 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šorės dokumentacijos konsultavimo.

Atviro kodo

Paketas publikuojamas pagal MIT licenciją. Šaltinis kodas prieinamas GitHub. 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. Visi kiti analizatoriai ir rašytojai 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 inspekcija, geometrijos išgavimas ar duomenų srauto integracija, biblioteka apima dažniausiai pasitaikančius 3D keitimosi formatus pagal liberalų atviro kodo licenciją.

Įdiekite ją šiandien ir praneškite mums, ką kuriate.