Table of Contents

Ar driven 3d rendering

AR 애플리케이션 개발은 AR 콘텐츠 렌더링이라는 근본적인 문제를 해결해야 합니다. 본 문서는 평면 이미지 추적을 예로 들어, AR 애플리케이션의 기본 모듈, 프로세스 및 렌더링 구현에 대해 설명합니다.

Typical ar application process

일반적인 AR 애플리케이션은 일반적으로 카메라 이미지에서 특정 이미지, 물체 또는 장면을 인식하고, 위치와 자세를 추적하며, 이 위치와 자세에 따라 가상 콘텐츠(3D 모델)를 렌더링하여 표시하는 과정입니다.

image tracking

예를 들어 위 그림은 평면 그래픽 추적 AR 애플리케이션입니다.

아래는 애플리케이션 프로세스 다이어그램입니다.

flowchart TD
    CameraDevice[Camera Device]
    Tracker[Tracker]
    Renderer[Renderer]

    CameraDevice -->|Image Frame| Tracker
    Tracker -->|Image Frame + Tracked Pose| Renderer

프로세스에는 다음과 같은 모듈이 있습니다.

모듈 역할
물리적 카메라 입력 이미지 프레임 시퀀스를 제공합니다. 이미지 프레임에는 이미지, 이미지 생성 타임스탬프가 포함되며, 때로는 공간에서의 카메라 위치와 자세도 포함될 수 있습니다
추적기 이미지 프레임에서 추적 대상의 위치와 자세를 계산합니다. 추적 대상에 따라 평면 이미지 추적기 및 3D 객체 추적기와 같은 다양한 추적기가 존재합니다
렌더러 카메라 이미지와 추적 대상에 해당하는 3D 모델을 화면에 렌더링하는 데 사용됩니다. 일부 AR 안경에서는 카메라 이미지를 렌더링하지 않고 3D 모델만 렌더링할 수도 있습니다

Mobile device rendering

모바일 기기에서의 렌더링은 카메라 화면 렌더링과 가상 객체 렌더링 두 부분으로 나뉩니다.

Camera image rendering

camera image

카메라 화면 렌더링 시 주의해야 할 매개변수가 있습니다.

  • 확대/축소 모드

    일반적으로 카메라 화면을 전체 화면이나 창에 가득 채워야 합니다. 이때 카메라 화면과 화면/창의 종횡비가 일치하지 않는 문제가 발생합니다.

    카메라 화면 중심이 화면/창 중심과 정렬되고 종횡비가 유지된다고 가정하면, 일반적으로 두 가지 확대/축소 모드가 있습니다: 종횡비 유지 축소, 종횡비 유지 채우기.

    확대/축소 모드 효과
    종횡비 유지 축소 화면에 모든 내용을 표시하지만 좌우 또는 상하에 검은 테두리가 남습니다
    종횡비 유지 채우기 검은 테두리가 없지만 좌우 또는 상하로 일부 화면이 잘릴 수 있습니다
  • 카메라 이미지 회전

    모바일 기기에서 물리적 카메라가 기록한 이미지는 일반적으로 기체에 고정되어 있으며, 화면 표시 방향이 변경되어도 변하지 않습니다. 그러나 기체 방향 변화는 이미지의 상하좌우 방향 정의에 영향을 미칩니다. 렌더링 시 현재 화면 표시 방향도 표시되는 이미지 방향에 영향을 줍니다.

    일반적으로 렌더링 시 카메라 이미지가 화면 표시 방향에 상대적인 회전 각도를 결정해야 합니다.

  • 카메라 이미지 반전

    전면 카메라를 사용하는 경우, 화면이 거울처럼 보이도록 하기 위해 일반적으로 좌우로 화면을 반전시킵니다.

Virtual object rendering

virtual object

모바일 기기에서 가상 객체를 렌더링하려면 가상 객체와 카메라 화면을 정렬해야 합니다. 이를 위해 가상 객체를 렌더링할 카메라와 객체를 모두 실제 공간과 완전히 대응하는 가상 공간에 배치하고 물리적 카메라와 동일한 시야각, 종횡비를 사용하여 렌더링해야 합니다. 카메라 화면과 가상 객체가 거치는 원근 투영 변환은 완전히 동일합니다. 다만 카메라 화면의 원근 투영 변환은 대부분 물리적 카메라에서 발생하고, 가상 객체의 원근 투영 변환은 완전히 계산 과정입니다.

Head-mounted display rendering

헤드셋 렌더링은 모바일과 약간 차이가 있으며, 두 가지 경우로 나뉩니다.

  • VST

    Video See-Through는 헤드셋이 물리적 카메라로 이미지를 캡처한 다음 헤드셋 화면에 카메라 이미지와 가상 콘텐츠를 표시하는 AR 기술로, Vision Pro가 대표적입니다. 일반적으로 카메라 이미지와 가상 콘텐츠의 원근 투영 행렬은 헤드셋 SDK에서 설정하며, 외부에서는 가상 콘텐츠의 위치와 자세만 설정하면 됩니다. 추적에 사용되는 물리적 카메라와 화면에 렌더링되는 카메라 이미지의 카메라 위치가 다를 수 있으며, 렌더링 시 좌표 변환이 수행됩니다.

  • OST

    Optical See-Through는 헤드셋 화면이 투명하여 가상 콘텐츠만 화면에 표시하는 AR 기술로, HoloLens가 대표적입니다. 일반적으로 가상 콘텐츠의 원근 투영 행렬은 헤드셋 SDK에서 설정하며, 외부에서는 가상 콘텐츠의 위치와 자세만 설정하면 됩니다. 추적에 사용되는 물리적 카메라와 화면에 렌더링되는 카메라 이미지의 카메라 위치가 다를 수 있으며, 렌더링 시 좌표 변환이 수행됩니다.

Platform-specific guide

AR 기반 3D 렌더링은 플랫폼과 밀접하게 연관되어 있습니다. 대상 플랫폼에 따라 다음 가이드를 참고하여 개발하세요: