Въведение

С удоволствие ще обявим наличието на Aspose.3D FOSS за TypeScript Като на @aspose/3d Тази библиотека, лицензирана от MIT, носи качествено 3D обработване на сцената за приложенията TypeScript и Node.js без да изисква бинарни материали, инструменти или търговски лицензии.

Библиотеката е проектирана около еднократна Scene API: изтегляне на 3D файл с scene.open(), инспектиране или трансформация на графиката на сцената, и да напише резултата с scene.save().Определенията на типа Full TypeScript са обвързани; няма отделни @types/ Пакетът е необходим.

Ключови характеристики

Мултиформат I/O. Пакетът чете и пише шест основни 3D формати в една инсталация. OBJ, glTF 2.0, GLB, STL, 3MF и COLLADA всички поддържат както внос и износ. FBX импортер/експортер клас съществува, но формата авто-откриване все още не е на проводник, така че файловете FBx не могат да бъдат заредени чрез scene.open().

Поддръжка за TypeScript от първи клас. Всички публични класове, списъци и опции са напълно типирани. IDEs с поддръжка на услугите за език TypeScript (VS Code, WebStorm и т.н.) осигуряват точна самозавършване и вградена документация за всеки API повикване.

Node.js 18 – 22+ съвместимост. Пакетът е тестван срещу Node.js 18, 20 и 22 LTS издания. Няма коренни добавки се съставят по време на инсталацията, така че работи върху всички платформи, които поддържат Noda.js.

Една зависимост от време. Единствената зависимост е xmldom, използвани изключително за COLLADA XML парашут. Всички други формати са чисти JavaScript изпълнения.

Мит лиценз. Използване @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}`);
    }
}

Подкрепени формати

ФорматътРазширяванеВносътИзносътбележки
OBJ.objДаДаWavefront OBJ; четене / писане .mtl Материални файлове
ГЛТФ.gltf / .glbДаДаGLTF 2.0 JSON и GLB бинарни
STL.stlДаДаASCII и бинарни STL
3MF.3mfДаДаАрхив на Конвенцията за открито опаковане
FBX.fbxНе *Не *Внос/експортер съществува, но форматът на авто-откриване не е верижен
COLLADA.daeДаДаизисквания за обвързване xmldom зависимост

Предимства на TypeScript

Работи с @aspose/3d в TypeScript се улавя грешките на категория по време на съставяне, а не по времето на работа. scene.save(), копирачът проверява, че опциите обекта съответства на очакваното SaveOptions Подтип за избрания формат. опции за зареждане и съхранение, специфични за формата, разкриват само свойствата, свързани с този формати; няма безтипичен пакет от опциите, които да се изненадват.

Например, за, GltfSaveOptions.binaryMode Това е типично boolean,И така, съставът отхвърля saveOpts.binaryMode = 'yes' преди да се изпълнява кода. анимационни свойства на AnimationClip,Каналите на материалите са PbrMaterial,Въртецът на елементите в VertexElement всички са подобно типирани и открити чрез IntelliSense без консултация с външна документация.

Отворени източници

Пакетът е публикуван под Мит лиценз.Source code е на разположение в GitHub. Contributions, bug reports, and format support requests are welcome through the repository’s issue tracker.

Библиотеката има едно зависимост от работното време: xmldom (^0.6.0Всички други партньори и писатели са самосъдържани чисти JavaScript изпълнения без бинарни компоненти.

Започваме

заключението

@aspose/3d версията 24.12.0 осигурява стабилна, типирана, зависимост-светлина основа за 3D обработка на файлове в TypeScript и Node.js. Независимо дали случаят на използване е формат конверсия, сценична инспекция, геометрични екстракции или тръбопровод интеграция библиотеката обхваща най-често срещаните 3Д формати за размяна под разрешителна лиценз от отворен код.

Инсталирайте го днес и нека знаем какво изграждате.