AR 기반 3D rendering
AR 애플리케이션 개발에서는 AR content 의 rendering 이라는 기본 문제를 해결해야 합니다. 이 문서는 planar image tracking 을 예로 들어 AR 애플리케이션의 기본 모듈, workflow, rendering 구현을 설명합니다.
일반적인 AR 애플리케이션 workflow
일반적인 AR 애플리케이션은 보통 camera images 에서 특정 이미지, 오브젝트 또는 scene 을 인식하고, 그 position 과 pose 를 tracking 한 뒤, 이 position 과 pose 에 따라 virtual content(3D models)를 렌더링하는 과정입니다.
![]()
예를 들어 위 그림은 planar image tracking AR 애플리케이션입니다.
애플리케이션 workflow 는 아래와 같습니다.
flowchart TD
CameraDevice[Camera Device]
Tracker[Tracker]
Renderer[Renderer]
CameraDevice -->|Image Frame| Tracker
Tracker -->|Image Frame + Tracked Pose| Renderer
workflow 에는 다음 모듈이 있습니다.
| 모듈 | 역할 |
|---|---|
| Physical camera | 입력 image frames 의 sequence 를 제공합니다. Image frame 은 image, image 가 생성된 timestamp, 때로는 공간 내 camera 의 position 과 pose 를 포함합니다 |
| Tracker | image frames 에서 tracking target 의 position 과 pose 를 계산합니다. tracking target 에 따라 planar image tracker 와 3D object tracker 같은 다양한 trackers 가 있습니다 |
| Renderer | camera image 와 tracked object 에 대응하는 3D model 을 화면에 렌더링합니다. 일부 AR glasses 에서는 camera image 를 렌더링하지 않고 3D model 만 렌더링할 수도 있습니다 |
휴대폰에서의 rendering
휴대폰에서의 rendering 은 camera image rendering 과 virtual objects rendering 두 부분으로 나뉩니다.
Camera image rendering

camera image 를 rendering 할 때 주의해야 할 몇 가지 parameter 가 있습니다.
Scaling mode
일반적으로 camera image 는 전체 화면이나 window 를 채워야 합니다. 이때 camera image 와 screen/window 의 aspect ratio 가 일치하지 않는 문제를 처리해야 합니다.
camera image 의 중심을 screen/window 중심에 맞추고 aspect ratio 를 유지한다고 가정하면, 일반적인 scaling mode 는 fit 과 fill 두 가지입니다.
Scaling mode 효과 Fit 화면에 모든 content 를 표시하지만 좌우 또는 상하에 검은 여백이 남습니다 Fill 검은 여백은 없지만 좌우 또는 상하의 image 일부가 잘립니다 Camera image rotation
휴대폰에서 physical camera 가 기록한 image 는 보통 디바이스 본체에 대해 고정되어 있으며 screen display orientation 이 바뀌어도 함께 바뀌지 않습니다. 하지만 휴대폰 본체 방향의 변화는 image 의 위, 아래, 왼쪽, 오른쪽을 정의하는 방식에 영향을 줍니다. rendering 할 때 현재 screen display orientation 도 표시되는 image 의 방향에 영향을 줍니다.
일반적으로 rendering 할 때 screen display orientation 에 대한 camera image 의 rotation angle 을 결정해야 합니다.
Camera image flipping
어떤 경우에는 전면 camera 를 사용합니다. 이때 화면이 거울처럼 보이도록 image 를 좌우 반전해야 하는 경우가 많습니다.
Virtual objects rendering

휴대폰에서 virtual objects 를 rendering 하려면 virtual objects 와 camera image 를 정렬해야 합니다. 이를 위해 rendering camera 와 objects 를 모두 real space 와 완전히 대응되는 virtual space 에 배치하고, physical camera 와 동일한 field of view 및 aspect ratio 로 rendering 해야 합니다. camera image 와 virtual objects 는 동일한 perspective projection transforms 를 거치지만, camera image 의 perspective projection transform 대부분은 physical camera 내부에서 발생하고, virtual objects 의 perspective projection transform 은 완전히 계산 과정입니다.
Headsets 에서의 rendering
headsets 에서의 rendering 은 휴대폰과 차이가 있으며 두 가지 경우로 나누어야 합니다.
VST
Video See-Through 는 headset 이 physical cameras 를 통해 images 를 캡처한 다음 headset 화면에 camera images 와 virtual content 를 표시하는 AR 기술입니다. 대표적인 예는 Vision Pro 입니다. 일반적으로 camera images 와 virtual content 의 perspective projection matrices 는 headset 이 제공하는 SDK 에서 설정하며, 외부에서는 virtual content 의 position 과 pose 만 설정하면 됩니다. tracking 에 사용되는 physical camera 와 화면에 rendering 되는 camera image 의 camera 는 서로 다른 위치에 있을 수 있으며, rendering 시 coordinate transforms 가 수행됩니다.
OST
Optical See-Through 는 headset 화면이 투명하고 headset 이 화면에 virtual content 만 표시하는 AR 기술입니다. 대표적인 예는 HoloLens 입니다. 일반적으로 virtual content 의 perspective projection matrix 는 headset 이 제공하는 SDK 에서 설정하며, 외부에서는 virtual content 의 position 과 pose 만 설정하면 됩니다. tracking 에 사용되는 physical camera 와 화면에 rendering 되는 camera image 의 camera 는 서로 다른 위치에 있을 수 있으며, rendering 시 coordinate transforms 가 수행됩니다.
플랫폼별 가이드
AR-driven 3D rendering 은 플랫폼과 밀접하게 관련되어 있습니다. 목표 플랫폼에 따라 다음 가이드를 참고하여 개발하십시오.