.NET에서 3D 모델 변환 방법
Aspose.3D for .NET은 형식 변환을 두 단계 작업으로 만듭니다: Scene.Open()으로 소스 파일을 로드한 다음, Scene.Save()으로 대상 형식에 저장합니다. 출력 형식은 파일 확장자에서 추론됩니다.
단계별 가이드
1단계: 패키지 설치
dotnet add package Aspose.3D --version 26.1.02단계: 네임스페이스 가져오기
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;3단계: 원본 파일 로드
var scene = new Scene();
scene.Open("input.fbx");4단계: 대상 형식으로 저장
scene.Save("output.glb");라이브러리는 확장자를 통해 대상 형식을 감지합니다. 지원되는 내보내기 형식: OBJ, STL, glTF 2.0 / GLB, FBX, COLLADA, 및 3MF.
5단계: 형식별 저장 옵션 사용
세밀한 제어를 위해 SaveOptions 서브클래스를 전달하십시오:
// FBX output — always produces binary FBX
// FbxSaveOptions exists but has no format-specific properties in this version
scene.Save("output.fbx");
// OBJ with flipped coordinate system
scene.Save("output.obj", new ObjSaveOptions { FlipCoordinateSystem = true });
// COLLADA with indented XML
scene.Save("output.dae", new ColladaSaveOptions { Indented = true });공통 변환 레시피
| Source | Target | Code |
|---|---|---|
| OBJ에서 GLB로 | scene.Open("input.obj"); scene.Save("output.glb"); | 웹 뷰어용 바이너리 glTF |
| FBX에서 STL로 | scene.Open("input.fbx"); scene.Save("output.stl"); | 3D 프린팅용 삼각형 메쉬 |
| glTF에서 COLLADA로 | scene.Open("input.gltf"); scene.Save("output.dae"); | DAE 교환 형식 |
| STL에서 OBJ로 | scene.Open("input.stl"); scene.Save("output.obj"); | 모델링 도구용 Wavefront |
일반적인 문제 및 해결 방법
출력 파일이 비어 있거나 매우 작습니다
소스 파일이 성공적으로 로드되었는지 확인하십시오. Open() 이후에 scene.RootNode.ChildNodes.Count를 확인하십시오.
변환 중 손실된 자료
모든 형식이 동일한 재질 속성을 가지고 있는 것은 아닙니다. OBJ 재질은 Lambert/Phong을 사용하고; glTF는 PBR을 사용합니다. 재질 매핑은 형식 경계에서 최선의 노력을 기울입니다.
소스와 출력 간의 스케일 차이
다양한 도구는 서로 다른 단위 시스템을 사용합니다. 가져오기 시 ObjLoadOptions.Scale를 적용하거나 저장하기 전에 node.Transform.Scale를 조정하십시오.
자주 묻는 질문 (FAQ)
PLY를 다른 형식으로 변환할 수 있나요?
PLY는 가져오기 전용입니다. PLY 파일을 로드하고 모든 내보내기 형식(OBJ, STL, GLB, FBX, COLLADA)으로 저장합니다.
변환이 애니메이션을 유지합니까?
두 형식이 모두 지원하는 경우(예: FBX에서 glTF로) 애니메이션 데이터(AnimationClip)가 보존됩니다. STL 및 OBJ는 애니메이션 데이터를 포함하지 않습니다.
여러 파일을 일괄 변환할 수 있나요?
루프에서 각 파일마다 새로운 Scene을 생성합니다. 각 Scene은 독립적이며 병렬로 처리할 수 있습니다.