본문으로 건너뛰기

[BO App] Magic

note

내부 자료의 유출 방지를 위해 공개 가능한 범위에서의 자료만 공유합니다.

소개​

3D 표준 파일 변환 작업을 하는 백오피스 앱입니다.

가구 제조사에서 받은 3D 모델은 만든 도구도, 저장한 포맷도 제각각입니다. 그걸 서비스가 쓸 수 있는 형태로 맞춰 주는 자리에 있는 앱입니다.

왜 변환이 필요했을까요?​

3D 모델 파일 포맷은 사진의 JPG 처럼 하나로 수렴하지 않았습니다. 도구마다 자기 포맷이 있고, 플랫폼마다 선호하는 포맷이 다릅니다.

들어오는 쪽과 나가는 쪽을 보면 이렇습니다.

  • 들어오는 쪽: 제조사가 쓰던 도구가 뱉은 그대로. FBX 도 오고 OBJ 도 오고 DAE 도 옵니다.
  • 나가는 쪽: 웹은 GLTF 를 좋아하고, 안드로이드 AR 은 SFB 를 요구하고, 3D 프린팅 쪽은 STL 을 씁니다.

이걸 사람이 도구를 열어서 하나씩 저장하고 있으면 카탈로그가 늘어나는 속도를 따라갈 수 없습니다. 그래서 넣으면 알아서 여러 포맷으로 나오는 변환 서버를 만들었습니다.

지원 포맷​

  • OBJ: Wavefront Technologies 에서 개발한 Advanced Visualizer 애니메이션 형상 정의 파일 형식
  • STL: 3D Systems 에서 개발한 CAD 소프트웨어의 기본 파일 형식. 3D 프린팅에 주로 사용
  • PLY: Standford Univ. 에서 개발한 3D 모델 파일 포맷. ASCII 형태와, Binary 형태가 있음.
  • DAE: Sony 에서 개발하고, Khronos Group에서 관리 중인 XML 기반 3D 모델 파일 포맷. COLLADA가 정식 명칭. Hieararchy 구조로 다중 Mesh 관리가 가능. ISO/PAS 17506:2012
  • FBX: AutoDesk 에서 개발한 독점 3D 모델 파일 포맷. Cinema4D, 3DSMax 자제품에서 사용. 3D 미디어 산업에서 널리 사용됨.
  • GLTF: Khronos Group 에서 개발. JSON 기반 3D 모델 파일 포맷. DAE Serialize 속도 및 전송 속도 이슈를 해결하기 위해 만들어짐. ISO/IEC 12113:2022

포맷을 고를 때 보는 기준​

기준설명
담을 수 있는 정보형상만 담는지(STL), 재질과 계층 구조까지 담는지(DAE, FBX, GLTF)
사람이 읽히는지텍스트 기반(OBJ, DAE, GLTF)은 디버깅이 쉽고, 바이너리는 작고 빠릅니다
여는 속도XML 을 파싱하는 DAE 보다 JSON 기반 GLTF 쪽이 웹에서 유리합니다
개방성FBX 는 독점 포맷이라 도구 지원 여부를 먼저 확인해야 합니다

변환만으로는 끝나지 않습니다​

포맷을 바꿔도 그대로 못 쓰는 경우가 많았습니다. 제조사가 준 모델은 대체로 광고 이미지를 뽑기 위한 모델이라 필요 이상으로 무겁습니다. 의자 하나가 수십만 개의 삼각형으로 되어 있고, 텍스처가 4K 로 여러 장 붙어 있습니다.

이 상태로 모바일에서 방 하나를 채우면 곧바로 메모리가 넘칩니다. 그래서 변환 과정에 최적화를 함께 넣었습니다.

  • 메시 최적화: 눈에 띄지 않는 범위에서 삼각형 수를 줄입니다. 멀리서 보이는 뒷면이나 안 보이는 내부 구조가 주 대상입니다.
  • 텍스처 최적화: 해상도를 용도에 맞게 낮추고, 여러 장으로 나뉜 재질 정보를 한 장에 채널별로 합쳐 불러오는 횟수를 줄입니다.

품질과 용량은 서로 밀어내는 관계라 정답이 없습니다. 결국 "카탈로그 썸네일에서 티가 나는가"를 기준으로 잡고 조정했던 기억이 있습니다.

담당 범위​

  • 3D 파일 표준 포맷 자동 변환 서비스 개발
  • OBJ, DAE, FBX, GLTF, SFB(Android) 변환 로직 적용
  • 3D 모델링 Mesh, Texture 최적화
  • 개발환경: Dedicated Server, Python

개발 기간​

  • First Commit Date: 2019. 02. 13
  • First Release Date: 2019. 02. 22
  • In Operation...

기여도​

  • Main Contributor / Committer
  • 참여율: 약 80%

정리​

3D 서비스에서 눈에 잘 안 띄지만 없으면 굴러가지 않는 자리가 이런 변환 파이프라인인 것 같습니다. 화려한 기능은 아니어도, 여기가 자동화되어 있느냐에 따라 카탈로그를 늘리는 속도가 완전히 달라집니다.