티스토리 뷰

반응형


안녕하세요. Base Of Coding입니다.


저는 현재, Vuforia AR System을 사용중이지만, 이번에 Wikitude로 프로젝트를 교체해야 되는 것이 발생해서


아직 시간이 많이 남아 천천히 하나하나 알아가는 내용들을 알아가면서 공유하기 위해서 위키튜드에 대한 글을 적어보려 합니다.


이제 거의 위키튜드에 관련된 글들만 작성할 것 같네요.


한글로 된 위키튜드에 대한 내용들이 많이 없어서, 제가 최초?!까진 아니겠지만 많은 정보들을 공유해보려고 적어봅니다.


자 그럼 시작하도록 하겠습니다.


다운로드나 Wikitude 회원가입 하는 부분, Unity에 추가하는 부분은 건너뛰거나 시간이 되면 하나하나 천천히 글을 적어보도록 하겠습니다.


처음부터 Wikitude로 넘어오시는 분보단 뷰포리아를 사용하고 위키튜드로 넘어오시는 분들이 많을거라 예상해서, 그런 부분은 생략하도록 하겠습니다.




1. 카메라 포커스

- 열거자로 표현된 방식으로써, 0~2번으로 되어 있다.

첫 번째는 Lock 방식이다

- 렌즈의 현재 위치에서 초점을 고정하는 방식.

두 번째는 AutoFocus 방식이다.

- 기기가 한 번 자동 초점을 수행한 다음에 초점을 고정하는 방식으로 변경한다.

세 번째는 ContinuousAutoFocus 방식이다.

- 기기가 포커스가 필요할 때마다 자동으로 초점을 맞춰서 고정하는 방식이다.


사용 방법은 다음과 같다.


1
2
3
4
5
6
7
8
9
public class CtrlClass : SampleController
{
    public WikitudeCamera Camera;
 
    public void Start()
    {
        Camera.FocusMode = (CaptureFocusMode)0~2 // 0 : Lock , 1 : AutoFocus , 2 : ContinuousAutoFocus
    }
}



2. 카메라 프레임

- 카메라에 대해 원하는 프레임 속도를 나타내는 열거형이다. 기기의 카메라가 선택한 프레임 속도를 지원하지 않는다면, 지원되는 가장 가까운
프레임의 속도로 사용이 된다.

총 3가지의 값이 있다. Auto, Framerate_30, Framerate_60 이렇게 있다.

Auto는, SDK가 기기에서 가장 적합한 프레임 속도를 선택하여 사용한다.
Framerate_30은, 초당 30 프레임의 속도를 선택하여 사용한다.
Framerate_60은, 초당 60 프레임의 속도를 선택하여 사용한다.

이 기능의 사용방법은, SDK를 다운받아서, 패키지 파일을 풀면 Prefabs 폴더에 WikitudeCamera 프리팹이 있다. 해당 프리팹을 클릭하여
Inspector창에 보면, Camera Framerate가 있다. 거기서 설정을 해주면 된다. 기본으로는 Auto로 설정이 되어 있다.

3. 카메라 전환

- 나는 개인적으로 이 것이 맘에 들었다. 처음에 Wikitude로 사용을 해 본다는 말에, 그럼 카메라 전환은 어떻게 하지?라고 생각해서
위키튜드 API 문서 및 포럼에서 질문을 다 검색해봤지만, 찾기가 쉽지 않았었는데 샘플을 보니 별 거 없었다.
Vuforia 같은 경우는 전 / 후면 카메라를 전환하기 위해서는 복잡하게 카메라를 정지 시키고, 초기화를 해제시키고 다시 초기화시키는 방식을 사용해서
전환하는 방법이였는데. 위키튜드는, 그냥 Enum값만 바꿔주면 되는 것 같았다.

이 것 또한 Enum값으로 열거자로 표현이 되는데, Back과 Front 이렇게 2가지, 0~1번이다.

이걸 사용하는 방법은 아래와 같다. 


1
2
3
4
5
6
7
8
9
public class CtrlClass : SampleController
{
    public WikitudeCamera Camera;
 
    public void Start()
    {
        Camera.DevicePosition = (CaptureDevicePosition)0~1// 0 : Back , 1 : Front
    }
}


4. 카메라 해상도

- 카메라의 해상도 또한 열거자로 표현이 된다.

총 4가지로써, Auto,SD,HD,FullHD 이렇게 4가지가 있고 이 것 또한, 프레임과 마찬가지로 해당 기기가 해상도를 지원하지 않을 경우가 있을 수 있다.

그렇다면 기기가 지원하는 최대 해상도에 가까운 해상도를 사용하게 된다.

Auto는 기기가 가장 적합한 해상도를 나타낸다.
SD는 640 * 480의 해상도, HD는 1280 * 720, FullHD는 1920 * 1080의 해상도를 나타낸다.


사용방법은 프레임과 마찬가지로, WikitudeCamera 프리팹을 클릭한 후 Inspector창에서 Camera Resolution에서 선택을 하면 된다.


5. 카메라 플래쉬

- 기기에서의 플래쉬를 On / Off 하는 방식이다. 이것 또한 열거자로 되어 있고, 2가지의 종류가 있다.


Off / ON 이다. 처음으로 고정적으로 Off가 되어 있다. 플래쉬를 켜야만 하는 경우라면 밑에와 같은 코드로 사용하면 될 것이다.


1
2
3
4
5
6
7
8
9
public class CtrlClass : SampleController
{
    public WikitudeCamera Camera;
 
    public void Start()
    {
        Camera.FlashMode = (CaptureFlashMode)newFlashMode; // 0 : No , 1 : Yes
    }
}


6. 타겟에 관련 된 설정 정하기

- 이것은, 총 2가지로 나뉘어 있는데, 클라우드를 사용하지 않는 이미지 타겟에 관련 된 정보를 앱에 추가하는 이미지 타겟 방식
나머지 하나는, 클라우드 방식을 사용하는 이미지 타겟 방식이다.

이건 개발자가 어떻게 만들 것이냐에 따라 초기에 설정을 해줘야만 한다.

이건 ImageTracker라는 프리팹에서 설정이 가능하며, Inspector창에, Target Source라는 열거자 형태가 있을 것이다.

그 중에서, TargetCollectionResource, CloudRecognitionService 둘 중 하나를 선택하면 된다.

7. 추적 상태의 효율성 정의

- 이건, CPU를 많이 사용하면서 배터리를 빨리 닳게하지만, 추적할 떄의 정확도를 높일 것인지 아니면 배터리의 효율을 높이는 대신에 정확도를 조금 낮출 것인지

의 차이인듯 하다. 이 것 또한 개발사마다 추구하는 방식이 다를 듯하다. 누군가는 인식이 잘 되는데 여기서 더 정확도를 높일 필요가 없다라고 생각하면 배터리 효율을

높이는 방식을 채택하면 될 것이다.


이 것 또한 열거자 형태로 되어 있으며, HighAccuracy와 EnergyEfficiency로 나뉘어져 있다.


HighAccuracy가 CPU를 더 사용하지만, 정확도를 높이는 방식이고, EnergyEfficiency가 배터리 효율을 높이는 대신에 정확도를 낮추는 방법이다.


개발자의 선택에 따라 달라진다.


사용방법은, ImageTracker를 클릭한 후 Inspector창에서, Tracker Efficiency Mode를 찾아서 열거자 형태에서 선택하면 된다.


8. 카메라 확대 / 축소

- 기기의 카메라를 확대 / 축소할 수 있는 방법이다.


이건, Slider UI를 사용하길 바란다.


사용방법은 아래와 같다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class CtrlClass : SampleController
{
    public WikitudeCamera Camera;
    public Slider slider;
 
    public void Start()
    {
        slider.onValueChanged.AddListener(OnZoomLevelChanged);
    }
 
    private void OnZoomLevelChanged(float newZoomLevel)
    {
        Camera.ZoomLevel = newZoomLevel * (Camera.MaxZoomLevel - 1.0f) + 1.0f;    
    }
}



지금까지 카메라 셋팅에 관련 된 내용을 알아봤습니다. namespace를 추가해야 되는 사실도 잊지 말아주세요.


using Wikitude; 를 꼭 추가해주시길 바랍니다.


지금까지 BaseOfCoding이였습니다. 감사합니다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함