소개
우리는 제공을 기쁘게 발표합니다 Aspose.3D FOSS for TypeScript 다음과 같이 @aspose/3d npm 패키지. 이 MIT-라이선스 라이브러리는 네이티브 바이너리, 플랫폼별 툴체인, 상업적 라이선스 없이도 TypeScript 및 Node.js 애플리케이션에 프로덕션 품질의 3D 씬 처리를 제공합니다.
이 라이브러리는 간단한 Scene API: 3D 파일을 로드합니다 scene.open(), 씬 그래프를 검사하거나 변환하고, 결과를 … 로 작성합니다 scene.save(). 전체 TypeScript 타입 정의가 번들에 포함됩니다; 별도의 @types/ 패키지가 필요하지 않습니다.
주요 기능
다중 포맷 I/O. 패키지는 단일 설치로 여섯 가지 주요 3D 포맷을 읽고 쓸 수 있습니다. OBJ, glTF 2.0, GLB, STL, 3MF, 그리고 COLLADA는 모두 가져오기와 내보내기를 지원합니다. FBX 가져오기/내보내기 클래스가 존재하지만 포맷 자동 감지는 아직 구현되지 않아 FBX 파일을 via 로 로드할 수 없습니다. scene.open().
일류 TypeScript 지원. 모든 공개 클래스, 열거형, 옵션 타입이 완전하게 타입이 지정되어 있습니다. TypeScript 언어 서비스 지원이 포함된 IDE(VS Code, WebStorm 등)는 모든 API 호출에 대해 정확한 자동 완성 및 인라인 문서를 제공합니다.
Node.js 18–22+ 호환성. 패키지는 Node.js 18, 20, 22 LTS 릴리스를 대상으로 테스트되었습니다. 설치 중에 네이티브 애드온이 컴파일되지 않으므로 Node.js가 지원하는 모든 플랫폼에서 작동합니다.
런타임 의존성이 하나뿐입니다. 유일한 의존성은 xmldom, COLLADA XML 파싱 전용으로 사용됩니다. 다른 모든 포맷 파서는 순수 JavaScript 구현입니다.
MIT 라이선스. 사용 @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 | 아니오* | 아니오* | Importer/exporter는 존재하지만 형식 자동 감지는 연결되어 있지 않습니다. |
| COLLADA | .dae | 예 | 예 | 번들된 것이 필요합니다 xmldom 종속성 |
TypeScript 장점
작업 중 @aspose/3d TypeScript에서는 런타임이 아니라 컴파일 타임에 카테고리 오류를 포착합니다. 호출할 때 scene.save(), 컴파일러는 옵션 객체가 예상되는 것과 일치하는지 확인합니다 SaveOptions 선택된 형식의 하위 유형입니다. 형식별 로드 및 저장 옵션은 해당 형식과 관련된 속성만 노출합니다; 추측할 수 있는 비타입 옵션 가방은 없습니다.
예를 들어, GltfSaveOptions.binaryMode 은(는) 타입이 지정된 boolean, 그래서 컴파일러가 거부합니다 saveOpts.binaryMode = 'yes' 코드가 실행되기 전에. 애니메이션 속성은 AnimationClip, 재질 채널은 PbrMaterial, 그리고 정점 요소 유형은 VertexElement 모두 유사한 타입이며 외부 문서를 참고하지 않고도 IntelliSense를 통해 발견할 수 있습니다.
오픈 소스
이 패키지는 다음 라이선스 하에 게시됩니다 MIT License. 소스 코드는 GitHub에서 확인할 수 있습니다. 기여, 버그 보고 및 포맷 지원 요청은 저장소의 이슈 트래커를 통해 환영합니다.
이 라이브러리는 런타임 의존성이 하나 있습니다: xmldom 버전 0.9+, COLLADA 파일을 읽거나 쓸 때만 사용됩니다. 다른 모든 파서와 라이터는 바이너리 구성 요소가 없는 독립형 순수 JavaScript 구현입니다.
시작하기
- npm:
npm install @aspose/3d - 지식 베이스: TypeScript에서 3D 모델 로드하는 방법
- 지식 베이스: TypeScript에서 3D 씬을 glTF/GLB로 내보내는 방법
- API 레퍼런스: Aspose.3D FOSS for TypeScript: 전체 클래스 레퍼런스
- GitHub: aspose-3d/aspose-3d-node
결론
@aspose/3d 버전 24.12.0은 TypeScript와 Node.js에서 3D 파일 처리를 위한 안정적이고 타입이 지정된, 의존성이 적은 기반을 제공합니다. 사용 사례가 포맷 변환, 씬 검사, 기하학 추출 또는 파이프라인 통합이든, 이 라이브러리는 관용적인 오픈소스 라이선스 하에 가장 일반적인 3D 교환 포맷을 모두 지원합니다.
오늘 바로 설치하고 여러분이 만든 것을 알려주세요.