Introdução
Aspose.3D FOSS for TypeScript (@aspose/3d) é uma biblioteca de formato de arquivo 3D de código aberto, licenciada sob MIT, para Node.js e ambientes modernos de navegadores. Desenvolvedores que criam visualizadores de modelos 3D, conversores de formatos, ferramentas de processamento de geometria ou pipelines 3D no lado do servidor podem instalá‑la com um único npm install @aspose/3d comando e começar imediatamente a carregar, construir e exportar conteúdo 3D.
A biblioteca suporta os principais formatos de intercâmbio — OBJ, glTF 2.0 / GLB, STL, 3MF e COLLADA tanto para importação quanto para exportação. Classes de importação/exportação FBX existem, mas ainda não estão integradas à detecção automática de formatos. A API de grafo de cena reflete o modelo familiar das ferramentas de autoria 3D: um Scene contém um rootNode, cada Node pode conter nós filhos e objetos de entidade (Mesh, Camera, Light), e a hierarquia de transformações é totalmente acessível para leitura e escrita.
Recursos Principais
- E/S multi-formato: Importar e exportar OBJ (com
.mtlmateriais), glTF 2.0 / GLB, STL (binário e ASCII), 3MF e COLLADA tanto de caminhos de arquivo quanto em memóriaBufferobjetos. O suporte a FBX ainda não está integrado à detecção automática. - API de grafo de cena:
Scene,Node,Mesh,Camera,Lighthierarquia com gerenciamento completo de pai/filho; percorra nós recursivamente vianode.childNodes - sistema de material PBR: materiais Lambert, Phong e PBR (metallic/roughness) acessíveis via
node.entity.material - Operações de malha: Acesse dados brutos de vértices via
mesh.controlPoints(array deVector4), índices de polígonos viamesh.polygonCount, e canais de elementos de vértice viamesh.getElement() - Utilitários matemáticos:
Vector2,Vector3,Vector4,Matrix4,Quaternion, e tipos de caixa delimitadora para cálculos espaciais - Sistema de animação: Animação por quadros-chave com
AnimationClip,AnimationChannel, e curvas de interpolação (linear, Bezier, spline TCB) - Opções específicas de formato: Por formato
LoadOptions/SaveOptionsas classes controlam a inversão de coordenadas, escala, carregamento de material e mais
Começando
Instale via npm. Node.js 18 ou superior é obrigatório; TypeScript 5.0+ é recomendado.
npm install @aspose/3d
Carregue um arquivo OBJ e inspecione a cena:
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`);
}
}
Exportar para glTF
Salve qualquer cena carregada ou construída em glTF 2.0 binário (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');
A biblioteca detecta automaticamente o formato de saída a partir da extensão do arquivo. Passe um GltfSaveOptions instância para controlar a incorporação de material PBR, texturas e codificação binária vs. JSON.
Construção de Cena
Construa uma cena programaticamente e exporte-a:
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');