Table of Contents

3D 모델 준비 및 최적화

이 문서는 EasyAR 요구사항에 부합하는 3D 모델을 준비하는 방법을 상세히 설명합니다. 형식 규격, 도구 추천 및 일반적인 문제 해결을 다루어 개발자가 추적 성공률을 근본적으로 향상시킬 수 있도록 돕습니다.

모델 형식 및 규격

EasyAR 3D 객체 추적은 Wavefront OBJ 형식만 지원합니다. 사용 시 다음 요구사항과 규격을 준수해야 합니다.

모델 파일 구조

완성된 3D 모델은 반드시 다음 파일을 포함해야 합니다:

  • .obj 파일: 기하학적 모델 데이터 (정점, 면, UV 좌표 등 포함).
  • .mtl 파일: 재질 정의 (색상, 텍스처 맵 경로).
  • 텍스처 맵: JPEG 또는 PNG 형식의 이미지 최소 1장 (권장 해상도 512×512~2048×2048).

파일 요구사항

  • 모든 파일은 동일한 폴더 내에 위치해야 하며, 상대 경로로 참조되어야 합니다 (예: texture.jpg). 절대 경로 (예: C:\Models\texture.jpg)는 금지됩니다.
  • 파일명 및 파일 내부 경로는 공백을 포함하지 않아야 하며, 영문 또는 숫자를 사용하는 것이 좋습니다.
  • 파일 인코딩 형식은 반드시 UTF-8이어야 합니다 (잘못된 문자로 인한 로드 실패 방지).

OBJ (.obj) 파일 최소 요구사항

  • 반드시 vertex 포함
    기하학적 정점. \((x, y, z [, w])\) 좌표로 표현됩니다. $w$는 선택 사항이며 기본값은 1.0입니다. 정점 색상 파라미터는 필수가 아니며, 제공되더라도 시스템에서 로드하지 않습니다.
  • 반드시 texture coordinates 포함
    텍스처 좌표. \((u, v [,w])\) 좌표로 표현되며, $w$는 선택 사항이고 기본값은 0입니다. 일반적으로 $u$와 \(v\) 값은 0에서 1 사이여야 합니다. 0보다 작거나 1보다 큰 경우 시스템은 기본적으로 REPEAT 모드로 처리합니다 (좌표의 정수 부분이 무시되고 무한 복제 패턴 생성. OpenGLGL_REPEAT 처리 방식과 동일).
  • 반드시 face 포함
    면 요소. 최소한 정점 인덱스와 정점 텍스처 좌표 인덱스를 포함해야 합니다. 3개 이상의 정점을 가진 다각형 (예: 사각형)도 지원됩니다.
  • 반드시 mtllib 포함
    재질 파일 참조. 최소 하나의 외부 MTL 재질 파일을 지정해야 하며, 파일 경로는 반드시 상대 경로여야 합니다 (절대 경로 금지).
  • 반드시 usemtl 포함
    모델 요소가 참조하는 재질의 이름을 지정해야 합니다. 이 재질 이름은 외부 MTL 재질 파일에 정의된 재질 이름과 일치해야 합니다.

MTL (.mtl) 파일 최소 요구사항

  • 하나의 MTL 파일에는 최소 하나 이상의 재질이 정의되어야 합니다.
  • 텍스처 맵은 필수입니다.
    일반적으로 주변광 또는 확산광 텍스처 맵 (map_Ka, map_Kd)만 지정하면 됩니다.
    텍스처 맵 경로는 반드시 상대 경로여야 합니다 (절대 경로 금지).
  • 텍스처 맵의 기타 선택적 파라미터는 필수가 아니며, 제공되더라도 시스템에서 채택하지 않습니다.

모델 준비

규격에 부합하는 OBJ 형식 모델 파일을 준비하는 방법은 다양합니다.

  1. 기존 모델에서 내보내기
    Autodesk Maya / 3ds Max 등의 전문 도구를 사용하여 기존 FBX 또는 기타 형식의 모델을 가져옵니다. 내보내기 시 "OBJ Export"를 선택하고 "Materials" 및 "UVs" 옵션이 활성화되었는지 확인합니다.

  2. 새로운 모델 제작
    Autodesk Maya / 3ds Max 등의 모델링 도구를 사용하여 3D 모델을 생성/작성하고 OBJ 형식으로 출력합니다.

  3. 실제 물체 스캔 및 3D 재구성
    Autodesk ReCap, Bentley ContextCapture 등의 3D 스캔 모델링 소프트웨어 또는 레이저 스캐너를 사용하여 실제 물체를 3D 재구성하고, 결과를 OBJ 형식으로 내보냅니다.

중요

모델 텍스처는 실제 물체의 시각적 특징을 정확히 재현해야 합니다. 그렇지 않으면 인식 및 추적 기능이 정상적으로 작동하지 않습니다.

모델 최적 사례

모델 준비 시 자주 발생하는 문제와 예시를 아래에 나열합니다. 검토 시 빠르게 참조할 수 있습니다.

  1. 풍부한 텍스처 디테일 보장
    모델의 텍스처는 풍부한 디테일을 가져야 합니다.

    좌측 참조 이미지: EasyAR로 감지 및 추적 가능. 우측 참조 이미지: 텍스처가 부족하여 감지 및 추적 불가.

  2. 모델의 형태
    모델은 다양한 형태를 지원하지만, 주요 구조는 볼록(convex)해야 합니다.

    두 물체 모두 EasyAR로 감지 및 추적 가능합니다.

  3. 파일 내 참조 경로 확인
    모델 파일 내 참조 경로는 상대 경로여야 하며, 절대 경로는 사용할 수 없습니다.

    우측 모델은 절대 경로를 사용하여 파일을 찾을 수 없어 로드할 수 없습니다.

    모델 파일 내 참조 경로에는 공백이나 특수 문자가 없어야 합니다.

    우측 모델은 참조 경로에 공백이 포함되어 있어 로드할 수 없습니다.

  1. 파일 인코딩 형식 확인
    모델 파일은 UTF-8 인코딩 형식을 사용해야 합니다.

    오른쪽 모델은 파일 인코딩 문제로 인해 읽을 때 디코딩 오류가 발생해 로드할 수 없습니다.

  2. 모델 법선 확인
    모델 면의 법선 벡터 방향은 오른손 법칙을 따라야 합니다.

    두 번째 큐브에서 음영 처리된 면의 법선 벡터는 음의 방향을 가집니다. 이러한 면은 EasyAR에서 보이지 않는 면으로 처리됩니다. 모델 내부에서 바라보면 세 번째 큐브처럼 표시됩니다.
    모델은 음의 법선 벡터 방향을 가진 모든 면을 피해야 합니다.

  3. 모델 면 수
    모델의 면 수는 물체의 기하학적 형태를 보장하는 선에서 가능한 한 적어야 하며, 일반적으로 100,000개 이상의 삼각형 면을 넘지 않아야 합니다. 과도한 면 수는 다음과 같은 문제를 일으킵니다:

    • 모델 로딩 시간이 길어져 앱 시작 시 사용자 경험에 영향을 줍니다
    • 면 텍스처 프로젝션 계산량이 증가하여 추적 시 앱의 프레임률에 영향을 줍니다

3D 모델 품질은 추적 성공률을 직접적으로 결정합니다. 개발자는 형식 규격을 엄격히 준수하고 텍스처 디테일 최적화에 주력하며 파일 형식이 정확한지 반드시 확인해야 합니다.