2018년 12월 27일 목요일

Java에서 COLLADA2GLTF 명령을 실행하여 gltf 파일로 변환하기

collada(콜라다) 파일을 gltf 파일로 변환하기

구현 방식은 OS에 맞는(윈도우) 변환용 실행 파일(exe)을 내려받고, JAVA를 통해 이 명령을 실행하여 변환하며, 변환 결과에 대한 상태 값을 출력한다.

1. 다운로드 페이지에 접속한다
https://github.com/KhronosGroup/COLLADA2GLTF
2. releases 링크 클릭
3. 파일 다운로드 및 압축해제
COLLADA2GLTF-v2.1.4-windows-Release-x64.zip
4. 다음과 같이 gltf 변환 명령 실행
4.1) 기본 사용 방식 : 텍스처가 gltf 안에 포함됨
COLLADA2GLTF-bin 20181113.dae 20181113.gltf
4.2) 텍스처가 뒤집혀서 모델 색상이 잘 보이지 않을때 시도해봄
COLLADA2GLTF-bin 20181113.dae 20181113.gltf --doubleSided
4.3) glb로 변환하고자 할때 사용
COLLADA2GLTF-bin 20181113.dae 20181113.gltf --binary
4.4) 그 밖에...
- 텍스처를 별도의 파일로 두는 옵션도 있음
- 기존 gltf 파일은 따로 삭제하지 않아도 자동 덮어치기됨

Java에서 COLLADA2GLTF 명령을 실행하여 gltf 파일로 변환하기

//collada --> gltf 변환 시작 ==========
String[] cmds = new String[] {
    "C:\\COLLADA2GLTF-v2.1.4-windows-Release-x64\\COLLADA2GLTF-bin"
    , "C:\\model\\2018.dae"
    , "C:\\model\\2018.gltf"
    , "--doubleSided"
};

//기존 gltf 파일은 따로 삭제하지 않아도 자동 덮어치기됨
//Process process = new ProcessBuilder("cmd", "dir", "/w").start();
Process process = new ProcessBuilder(cmds).start();

BufferedReader stdOut = new BufferedReader(new InputStreamReader(process.getInputStream()));

String str = null;
// 표준출력 상태를 출력
while( (str = stdOut.readLine()) != null ) {
    System.out.println(str);
    LOGGER.debug(">>>Windows cmd 명령줄 출력:"+str);
}
//collada --> gltf 변환 끝 ==========