3D 모델을 TypeScript로 변환하는 방법

3D 모델을 TypeScript로 변환하는 방법

Aspose.3D FOSS for TypeScript는 중립 형식으로 충전하여 3D 형식을 변환합니다. Scene 대표 및 목표 형식으로 저장.이 가이드는 가장 일반적인 변환을 보여줍니다.

단계별 가이드

단계 1 : 설치 @aspose/3d

asposefoss/3d is not yet published — build from source until it ships. See the project README for build instructions.


단계 2 : 원본 파일을 다운로드합니다.

A를 만드는 것 Scene 그리고 전화 scene.open().● 특정 형식의 사용 *LoadOptions 최고의 결과를 위한 수업.

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

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

단계 3: 목표 형식으로 저장하기

전화기 scene.save() 출력 경로와 함께.출력 형식은 파일 확장에서 발견됩니다.

// OBJ → glTF binary (GLB)
scene.save('output.glb');

// OBJ → STL
scene.save('output.stl');

// OBJ → COLLADA
scene.save('output.dae');

참고 : fbx는 지원되지 않음scene.save() 자기소개서 - The .fbx 확장은 어떤 수출자에게도 연결되지 않습니다 - 저축을 위해 .fbx OBJ, glTF, STL, 3MF 또는 COLLADA를 사용하여 신뢰할 수 있는 출력으로 작성합니다.


단계 4 : 일반 변환 예제

OBJ에서 GLTF / GLB까지

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

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
scene.save('model.glb');
console.log('Converted OBJ → GLB');

FBX - 지원되지 않음

FBX 자동 탐지가 전환되지 않습니다. scene.open()..fbx 파일이 전달된 것에 대해서는 scene.open() 어떤 형식 탐지기에 의해 인식되지 않으며 STL 파세르로 통과되며, 이는 실패하거나 쓰레기를 생성합니다. FBX 수입자/수출자 클래스는 도서관에서 존재하지만 높은 수준의 대신 직접 호소가 필요합니다 open()/save() COLLADA, OBJ 또는 glTF를 FBX 대안으로 사용하십시오.

STL에 대한 글꼴

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

const scene = new Scene();
scene.open('model.glb');
scene.save('model.stl');
console.log('Converted GLB → STL');

콜라다 3MF

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

const scene = new Scene();
scene.open('model.dae');
scene.save('model.3mf');
console.log('Converted COLLADA → 3MF');

5단계: 다중 파일을 배치하기

import * as fs from 'fs';
import * as path from 'path';
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const inputDir = './input';
const outputDir = './output';

fs.mkdirSync(outputDir, { recursive: true });

const objFiles = fs.readdirSync(inputDir).filter(f => f.endsWith('.obj'));

for (const file of objFiles) {
    const inputPath = path.join(inputDir, file);
    const outputFile = file.replace('.obj', '.glb');
    const outputPath = path.join(outputDir, outputFile);

    const scene = new Scene();
    scene.open(inputPath, new ObjLoadOptions());
    scene.save(outputPath);

    console.log(`Converted ${file}${outputFile}`);
}

지원된 변환 매트릭스

에서 ~ ~GLT / GLBOBJSTLFBX3MFCOLLADA
OBJ
GLT / GLB
FBX
STL
3MF
COLLADA

FBX 높은 수준을 통해 지원되지 않습니다. open()/save() API - 형식은 자동 탐지에 연결되지 않습니다. 위의 모든 FBX 세포는 입니다.


일반적인 문제와 해결책

재료가 변환 후에 손실됩니다.

물질의 가치(usemtl, .mtl 파일이 충전되면 ObjLoadOptions.enableMaterials = true. glTF에 저장할 때, PBR 재료 속성은 자동으로 맵을 합니다. 복잡한 재물 ( 절차적, 다층)은 낮은 충실성을 가진 변환 할 수 있습니다.

은 잘못 스케일 된 것처럼 보입니다.

다른 형식은 다양한 기본 단위를 사용합니다 (STL의 밀리미터, glTF의 미터). ObjLoadOptions.scale 충전을 하거나 StlSaveOptions.scale 단위를 정상화하는 데 필요한 시간을 절약합니다.

조정 시스템 오류 (모델 또는 회전)

일부 형식은 오른손 Y-up, 다른 하나는 Z-Up을 사용합니다. ObjLoadOptions.flipCoordinateSystem = true 또는 충전 후 뿌리 노드에 회전을 적용합니다.


자주 묻는 질문들

변환은 애니메이션을 보존합니까?

애니메이션 데이터는 그것을 지원하는 형식 (예 : COLLADA → glTF) 사이의 변환에 저장됩니다. STL 및 OBJ는 애ニ메션 데이터를 가지고 있지 않습니다. FBX는 지원되지 않습니다 scene.open()/scene.save(),그래서 FBX 애니메이션 라운드 트립은 고급 API를 통해 사용할 수 없습니다.

문서 데이터가 보존되어 있습니까?

OBJ 재료로 언급되거나 glTF에 삽입된 텍스트는 장면 차트로 이동합니다.binaryMode = true), 바이너리 버퍼는 하나의 파일에 삽입됩니다. OBJ 출력, 구조물은 별도의 파일과 함께 저장된다 .obj.

여러 파일을 동시에 변환할 수 있나요?

scene.open() 그리고 scene.save() 사용자: Node.js를 사용하여 worker_threads 동시 처리에 대 한.


또한 보기

 한국어