Въведение
С радост обявяваме наличието на Aspose.3D FOSS за TypeScript като @aspose/3d npm пакет. Тази MIT-licensed библиотека предоставя обработка на 3D сцени с производствено качество за TypeScript и Node.js приложения, без да изисква native бинарни файлове, platform-specific toolchains или commercial licenses.
Библиотеката е проектирана около прост Scene API: заредете 3D файл с scene.open(), инспектирайте или трансформирайте графа на сцената и запишете резултата с scene.save(). Пълните TypeScript типови дефиниции са включени; няма отделни @types/ изисква се пакет.
Ключови характеристики
Мултиформатен I/O. Пакетът чете и записва шест основни 3D формата в една инсталация. OBJ се поддържа за импортиране; glTF 2.0, GLB, STL, 3MF и COLLADA поддържат както импортиране, така и експортиране. Съществуват класове за импортиране/експортиране на FBX, но автоматичното разпознаване на формата все още не е внедрено, така че FBX файловете не могат да се заредят чрез scene.open().
Поддръжка на TypeScript от първокласно ниво. Всички публични класове, изброявания и типове опции са напълно типизирани. IDE‑тата с поддръжка на TypeScript езиковата услуга (VS Code, WebStorm и др.) предоставят точни автодовършвания и вградена документация за всяко API извикване.
Съвместимост с Node.js 18–22+. Пакетът е тестван срещу LTS изданията на Node.js 18, 20 и 22. По време на инсталацията не се компилират нативни добавки, така че работи на всички платформи, поддържани от Node.js.
Една runtime зависимост. Единствената зависимост е xmldom, използвана изключително за парсиране на COLLADA XML. Всички останали парсъри за формати са чисти JavaScript реализации.
MIT license. Използвайте @aspose/3d в комерсиални, с отворен код или вътрешни проекти без ограничения.
Бърз старт
Инсталирайте пакета:
npm install @aspose/3d
Заредете OBJ файл и го конвертирайте в бинарен 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');
Итерарайте върху възлите на сцената, за да прегледате геометрията:
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}`);
}
}
Поддържани формати
| Формат | Разширение | Импорт | Експорт | Бележки |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Да | Не | Само импорт; чете .mtl файлове с материали |
| glTF 2.0 | .gltf | Да | Да | JSON с външен .bin буфер |
| Бинарен GLB | .glb | Да | Да | Задай binaryMode: true в GltfSaveOptions |
| STL | .stl | Да | Да | ASCII и бинарен STL |
| 3MF | .3mf | Да | Да | Open Packaging Convention архив |
| FBX | .fbx | Не* | Не* | Импортер/експортер съществуват, но автоматичното откриване на формата не е включено |
| COLLADA | .dae | Да | Да | Изисква пакетирано xmldom зависимост |
Предимства на TypeScript
Работа с @aspose/3d в TypeScript улавя грешки от категорията по време на компилация, а не по време на изпълнение. Когато извикате scene.save(), компилаторът проверява дали обектът options съответства на очаквания SaveOptions подтип за избрания формат. Формат-специфичните load and save options излагат само свойствата, релевантни за този формат; няма нетипизиран options bag, от който да се гадае.
Например, GltfSaveOptions.binaryMode е типизиран boolean, затова компилаторът отхвърля saveOpts.binaryMode = 'yes' преди да се изпълни какъвто и да е код. Анимационни свойства на AnimationClip, материални канали на PbrMaterial, и типове елементи на върхове на VertexElement са всички еднотипно типизирани и откриваеми чрез IntelliSense без консултиране с външна документация.
Отворен код и безплатен
Пакетът е публикуван под MIT License. Изходният код е достъпен в GitHub. Приносите, докладите за грешки и заявките за поддръжка на формати са добре дошли чрез системата за проследяване на проблеми на хранилището.
Библиотеката има една runtime зависимост: xmldom версия 0.9+, използва се само при четене или записване на COLLADA файлове. Всички останали парсъри и писатели са самостоятелни чисто JavaScript реализации без бинарни компоненти.
Започване
- npm:
npm install @aspose/3d - База от знания: Как да заредим 3D модели в TypeScript
- База от знания: Как да експортирате 3D сцени в glTF/GLB с TypeScript
- API справка: Aspose.3D FOSS за TypeScript: Пълен справочник на класовете
- GitHub: aspose-3d/aspose-3d-node
Заключение
@aspose/3d версия 24.12.0 предоставя стабилна, типизирана, лека по зависимости основа за обработка на 3D файлове в TypeScript и Node.js. Независимо дали случаят на употреба е конвертиране на формати, инспекция на сцени, извличане на геометрия или интеграция в pipeline, библиотеката обхваща най-често срещаните 3D формати за обмен под разрешителен отворен лиценз.
Инсталирайте го днес и ни кажете какво създавате.