Wprowadzenie
Z przyjemnością ogłaszamy dostępność Aspose.3D FOSS dla TypeScript jako @aspose/3d pakiet npm. Ta biblioteka na licencji MIT zapewnia przetwarzanie scen 3D o jakości produkcyjnej w aplikacjach TypeScript i Node.js, nie wymagając natywnych binarek, specyficznych dla platformy łańcuchów narzędziowych ani komercyjnych licencji.
Biblioteka została zaprojektowana wokół prostego Scene API: wczytaj plik 3D za pomocą scene.open(), sprawdź lub przekształć graf sceny i zapisz wynik za pomocą scene.save(). Pełne definicje typów TypeScript są dołączone; nie ma osobnego @types/ nie jest wymagany żaden oddzielny pakiet.
Kluczowe funkcje
Wieloformatowe I/O. Pakiet odczytuje i zapisuje sześć głównych formatów 3D w jednej instalacji. OBJ jest obsługiwany przy imporcie; glTF 2.0, GLB, STL, 3MF i COLLADA obsługują zarówno import, jak i eksport. Klasy importera/eksportera FBX istnieją, ale automatyczne wykrywanie formatu nie jest jeszcze podłączone, więc pliki FBX nie mogą być wczytane za pomocą scene.open().
Wsparcie TypeScript na najwyższym poziomie. Wszystkie publiczne klasy, wyliczenia i typy opcji są w pełni typowane. IDE z obsługą usługi językowej TypeScript (VS Code, WebStorm itp.) zapewniają dokładne uzupełnianie kodu i dokumentację inline dla każdego wywołania API.
Kompatybilność z Node.js 18–22+. Pakiet jest testowany pod kątem wersji LTS Node.js 18, 20 i 22. Żadne natywne dodatki nie są kompilowane podczas instalacji, więc działa na wszystkich platformach obsługiwanych przez Node.js.
Jedna zależność w czasie wykonywania. Jedyną zależnością jest xmldom, używana wyłącznie do parsowania XML COLLADA. Wszystkie pozostałe parsery formatów są czystymi implementacjami JavaScript.
Licencja MIT. Użyj @aspose/3d w projektach komercyjnych, open-source lub wewnętrznych bez ograniczeń.
Szybki start
Zainstaluj pakiet:
npm install @aspose/3d
Załaduj plik OBJ i skonwertuj go do binarnego 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');
Iteruj po węzłach sceny, aby przeglądać geometrię:
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}`);
}
}
Obsługiwane formaty
| Format | Rozszerzenie | Import | Eksport | Notatki |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Tak | Nie | Tylko import; odczytuje .mtl pliki materiałów |
| glTF 2.0 | .gltf | Tak | Tak | JSON z zewnętrznym .bin bufor |
| Binarny GLB | .glb | Tak | Tak | Zestaw binaryMode: true w GltfSaveOptions |
| STL | .stl | Tak | Tak | ASCII i binarny STL |
| 3MF | .3mf | Tak | Tak | archiwum Open Packaging Convention |
| FBX | .fbx | Nie* | Nie* | Importer/exporter istnieje, ale automatyczne wykrywanie formatu nie jest podłączone |
| COLLADA | .dae | Tak | Tak | Wymaga w pakiecie xmldom zależność |
Zalety TypeScript
Praca z @aspose/3d w TypeScript wykrywa błędy kategorii w czasie kompilacji, a nie w czasie wykonywania. Gdy wywołujesz scene.save(), kompilator weryfikuje, że obiekt opcji pasuje do oczekiwanego SaveOptions podtypu dla wybranego formatu. Opcje ładowania i zapisywania specyficzne dla formatu udostępniają tylko właściwości istotne dla tego formatu; nie ma niezatypowanego zestawu opcji, w którym trzeba zgadywać.
Na przykład, GltfSaveOptions.binaryMode jest typowany boolean, więc kompilator odrzuca saveOpts.binaryMode = 'yes' zanim jakikolwiek kod zostanie uruchomiony. Właściwości animacji w AnimationClip, kanały materiału w PbrMaterial, oraz typy elementów wierzchołków w VertexElement są wszystkie podobnie typowane i odkrywalne za pomocą IntelliSense bez konieczności konsultowania zewnętrznej dokumentacji.
Open Source i darmowa
Pakiet jest publikowany na warunkach the MIT License. Kod źródłowy jest dostępny na GitHubie. Wkłady, zgłoszenia błędów i prośby o wsparcie formatów są mile widziane poprzez system zgłoszeń repozytorium.
Biblioteka ma jedną zależność w czasie wykonywania: xmldom wersja 0.9+, używana wyłącznie przy odczycie lub zapisie plików COLLADA. Wszystkie pozostałe parsery i zapisywacze są samodzielnymi, czystymi implementacjami JavaScript bez komponentów binarnych.
Rozpoczęcie pracy
- npm:
npm install @aspose/3d - Baza Wiedzy: Jak ładować modele 3D w TypeScript
- Baza Wiedzy: Jak eksportować sceny 3D do glTF/GLB w TypeScript
- Referencja API: Aspose.3D FOSS for TypeScript: Pełna referencja klas
- GitHub: aspose-3d/aspose-3d-node
Podsumowanie
@aspose/3d wersja 24.12.0 zapewnia stabilną, typowaną, dependency-light podstawę do przetwarzania plików 3D w TypeScript i Node.js. Niezależnie od tego, czy przypadkiem użycia jest konwersja formatów, inspekcja sceny, ekstrakcja geometrii czy integracja pipeline, biblioteka obejmuje najpopularniejsze formaty wymiany 3D pod permissive open-source licencją.
Zainstaluj ją już dziś i daj nam znać, co tworzysz.