Въведение

3D FOSS за TypeScript (@aspose/3d) е свободен код, лицензирана от MIT 3D файлов формат библиотека основно предназначена за Node.js. Разработчиците изграждат 3Д модел зрители, формати конвертори, геометрични инструменти или сървър-страна 3d тръби могат да го инсталирате с един npm install @aspose/3d Започнете да зареждате, изграждайте и експортирате 3D съдържание. require('fs') и Buffer от Node.js; използването на браузъра изисква подходящи шимс за тези АПИ и не е официално подкрепена.

Библиотеката поддържа основните формати за обмен - OBJ, glTF 2.0 / GLB, STL, 3MF и COLLADA както за внос и износ. FBX класове импортер/експортер съществуват, но все още не са свързани към формата на авто-откриване. Сцена график API огледа модел познат от 3D инструменти за авторство: Scene Дръжте A rootNode,Всеки от тях Node - да се използват и други предмети (Mesh, Camera, LightИерархията на трансформацията е напълно достъпна за четене и писане.

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

  • Мултиформат I/O:Внос и износ на ОБД (с .mtl материали), GLTF 2.0 / GLB, STL (бинарни и ASCII), 3MF и COLLADA от двете файлови пътища и в паметта Buffer Поддръжката на FBX все още не е свързана към автоматично откриване.
  • Сцена график API: Scene, Node, Mesh, Camera, Light йерархия с пълно управление на родителите/материите; преминаване през възли чрез node.childNodes
  • ПБР система за материали: Lambert, Phong и PBR (метал/твърдост) материали достъпни чрез node.material
  • Меш операции:Достъп до сурови вертекс данни чрез mesh.controlPoints (Средно време на Vector4Полегионен индекс чрез mesh.polygonCount,Връзката на вертексните канали mesh.getElement()
  • Математически услуги: Vector2, Vector3, Vector4, Matrix4, Quaternion, и гранични типове кутии за пространствени изчисления
  • Анимационна система:• Анимация с ключови AnimationClip, AnimationChannel, и интерполационни криви (линейна, Bezier, TCB сплин)
  • Формат-специфични опции:• Перформат LoadOptions / SaveOptions контрола на класове координати за флипиране, скалиране на материалите и др.

Започваме

Node.js 18 или по-късно е необходимо; TypeScript 5.0+ се препоръчва.

npm install @aspose/3d

Изтеглете файл OBJ и проверявайте сцената:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
const options = new ObjLoadOptions();
options.enableMaterials = true;
scene.open('model.obj', options);

for (const node of scene.rootNode.childNodes) {
    if (node.entity && 'controlPoints' in node.entity) {
        const mesh = node.entity as any;
        console.log(`Mesh "${node.name}": ${mesh.controlPoints.length} vertices`);
    }
}

Износ на ГЛТФ

Съхранявайте всяка заредена или изградена сцена за GLTF 2.0 (GLB):

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
scene.open('input.obj', new ObjLoadOptions());
scene.save('output.glb');
console.log('Exported to output.glb');

Библиотеката автоматично открива формата на изхода от разширението. GltfSaveOptions Например за контрол върху PBR материал вграждане, текстури и бинарни vs. JSON кодиране.

Сцена строителство

Създайте сцена по програмиране и я експортирате:

import { Scene, Node } from '@aspose/3d';
import { Mesh } from '@aspose/3d/entities';

const scene = new Scene();
const mesh = new Mesh();
// ... populate mesh.controlPoints and polygons ...
const node = new Node('myMesh');
node.entity = mesh;
scene.rootNode.addChildNode(node);
scene.save('programmatic.glb');

Виж също