Johdanto
Meillä on ilo ilmoittaa saatavuudesta Aspose.3D FOSS for TypeScript nimeltä @aspose/3d npm‑paketti. Tämä MIT‑lisensioitu kirjasto tuo tuotantotason 3D‑kohtauskäsittelyn TypeScript‑ ja Node.js‑sovelluksiin ilman, että vaaditaan natiiveja binaareja, alusta‑kohtaisia työkaluja tai kaupallisia lisenssejä.
Kirjasto on suunniteltu yksinkertaisen Scene API:n: lataa 3D‑tiedosto käyttäen scene.open(), tarkastele tai muunna kohtausgrafiikkaa, ja kirjoita tulos käyttäen scene.save(). Täydet TypeScript‑tyyppimäärittelyt sisältyvät; erillistä @types/ pakettia ei tarvita.
Keskeiset ominaisuudet
Moniformaatti I/O. Paketti lukee ja kirjoittaa kuusi suurta 3D‑formaattia yhdellä asennuksella. OBJ on tuettu tuontiin; glTF 2.0, GLB, STL, 3MF ja COLLADA tukevat sekä tuontia että vientiä. FBX‑tuonti‑/vienti‑luokkia on olemassa, mutta formaatin automaattitunnistusta ei ole vielä kytketty, joten FBX‑tiedostoja ei voida ladata käyttäen scene.open().
Ensiluokkaista TypeScript‑tukea. Kaikki julkiset luokat, luettelotyypit ja asetustyypit on täysin tyypitetty. IDE:t, joissa on TypeScript‑kielipalvelutuki (VS Code, WebStorm ym.), tarjoavat tarkan automaattisen täydennyksen ja sisäisen dokumentaation jokaiselle API‑kutsulle.
Node.js 18–22+ yhteensopivuus. Pakettia on testattu Node.js 18, 20 ja 22 LTS -julkaisuissa. Asennuksen aikana ei käännetä natiiveja lisäosia, joten se toimii kaikilla Node.js:n tukemilla alustoilla.
Yksi ajonaikainen riippuvuus. Ainoa riippuvuus on xmldom, käytetään yksinomaan COLLADA XML -jäsennykseen. Kaikki muut formaattiparsijat ovat puhtaita JavaScript‑toteutuksia.
MIT-lisenssi. Käytä @aspose/3d kaupallisissa, avoimen lähdekoodin tai sisäisissä projekteissa ilman rajoituksia.
Pika-aloitus
Asenna paketti:
npm install @aspose/3d
Lataa OBJ‑tiedosto ja muunna se binaariksi GLB‑tiedostoksi:
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');
Käy läpi kohtaussolmut tarkastellaksesi geometriaa:
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}`);
}
}
Tuetut formaatit
| Muoto | Tiedostopääte | Tuonti | Vienti | Huomautukset |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Kyllä | Ei | Vain tuonti; lukee .mtl materiaalitiedostot |
| glTF 2.0 | .gltf | Kyllä | Kyllä | JSON ulkoisella .bin puskuri |
| Binäärinen GLB | .glb | Kyllä | Kyllä | Aseta binaryMode: true sisään GltfSaveOptions |
| STL | .stl | Kyllä | Kyllä | ASCII- ja binäärinen STL |
| 3MF | .3mf | Kyllä | Kyllä | Open Packaging Convention -arkisto |
| FBX | .fbx | Ei* | Ei* | Tuonti-/vienti on olemassa, mutta formaatin automaattinen tunnistus ei ole kytketty |
| COLLADA | .dae | Kyllä | Kyllä | Vaatii paketoidun xmldom riippuvuus |
TypeScript‑edut
Työskenteleminen @aspose/3d TypeScriptissä havaitsee luokkarajat virheet käännösaikana sen sijaan, että ne ilmenisivät suoritusaikana. Kun kutsut scene.save(), kääntäjä tarkistaa, että options object vastaa odotettua SaveOptions subtype valitulle formaatille. load and save options paljastavat vain kyseiseen formaattiin liittyvät ominaisuudet; ei ole untyped options bag, johon arvata.
Esimerkiksi, GltfSaveOptions.binaryMode on typed boolean, joten kääntäjä hylkää saveOpts.binaryMode = 'yes' ennen kuin mikään koodi suoritetaan. Animaatio-ominaisuudet kohteessa AnimationClip, materiaalikanavat kohteessa PbrMaterial, ja vertex-elementtityypit kohteessa VertexElement ovat kaikki samankaltaisesti tyypitettyjä ja löydettävissä IntelliSensen kautta ilman ulkoisen dokumentaation konsultointia.
Avoin lähdekoodi ja ilmainen
Paketti on julkaistu MIT-lisenssi. Lähdekoodi on saatavilla GitHubissa. Avustukset, virheraportit ja formaattituen pyynnöt ovat tervetulleita versionhallinnan issue-trackerin kautta.
Kirjastolla on yksi ajonaikainen riippuvuus: xmldom versio 0.9+, jota käytetään vain COLLADA-tiedostojen lukemiseen tai kirjoittamiseen. Kaikki muut jäsentimet ja kirjoittajat ovat itsenäisiä puhdas-JavaScript -toteutuksia ilman binääri-komponentteja.
Aloittaminen
- npm:
npm install @aspose/3d - Tietopankki: Kuinka ladata 3D-malleja TypeScriptissä
- Tietopankki: Kuinka viedä 3D‑kohtauksia glTF/GLB-muotoon TypeScriptissä
- API‑viite: Aspose.3D FOSS TypeScriptille: Täydellinen luokkaviite
- GitHub: aspose-3d/aspose-3d-node
Päätelmä
@aspose/3d versio 24.12.0 tarjoaa vakaan, tyypitetyn, riippuvuuskevyt perustan 3D-tiedostojen käsittelyyn TypeScriptissä ja Node.js:ssä. Olipa käyttötapaus formaattimuunnos, kohtauksen tarkastelu, geometrian poiminta tai putkistointegraatio, kirjasto kattaa yleisimmät 3D-vaihtoformaatit sallivan avoimen lähdekoodin lisenssin alaisena.
Asenna se tänään ja kerro meille, mitä rakennat.