Easyar unity xr 프레임워크 지원
Easyar는 AR 기능을 제공하기 위해 Unity XR 프레임워크에 의존하지 않지만, Unity에서 Easyar의 AR 기능을 사용할 때 Unity XR 프레임워크가 제공하는 기능을 활용할 수 있도록 Unity XR 프레임워크의 일부 구성 요소 패키지를 지원합니다. 다음 내용은 Easyar의 Unity XR 프레임워크 지원 현황과 AR Foundation을 고려할 수 있는 상황에 대해 설명합니다.
Unity xr 지원
Unity는 플러그인 프레임워크 및 일련의 기능 패키지와 툴킷을 통해 XR 개발을 지원합니다. Easyar도 이러한 Unity XR 구성 요소 패키지를 지원하여 Unity에서 Easyar의 AR 기능을 사용할 때 Unity XR 프레임워크가 제공하는 기능을 활용할 수 있도록 합니다.
Easyar는 다음 Unity XR 구성 요소 패키지를 지원합니다:
| 표시 이름 | 패키지 이름 | 최소 지원 버전 | 필수 여부 | 용도 |
|---|---|---|---|---|
| XR Core Utilities | com.unity.xr.core-utils | 2.0.0 | 아니요 | Unity.XR.CoreUtils.XROrigin 지원 제공 |
| AR Foundation | com.unity.xr.arfoundation | 5.0.0 | 아니요 | AR Foundation 지원 제공 |
| XR Plugin Management | com.unity.xr.management | 3.0.0 | 아니요 | ARCore SDK 관리 호환성 및 런타임 XR 로더 유형 획득 제공 |
| XR Interaction Toolkit | com.unity.xr.interaction.toolkit | 2.0.0 | 아니요 | 직접 사용하지 않음 |
| PolySpatial visionOS | com.unity.polyspatial.visionos | 2.0.41 | 아니요 | 직접 사용하지 않음 |
| Apple visionOS XR Plugin | com.unity.xr.visionos | 2.0.41 | 아니요 | 직접 사용하지 않음 |
| Apple ARKit XR Plugin | com.unity.xr.arkit | 5.0.0 | 아니요 | 직접 사용하지 않음 |
| Google ARCore XR Plugin | com.unity.xr.arcore | 5.0.0 | 아니요 | ARCore SDK 관리 호환성 제공 |
참고
Easyar는 AR 기능을 제공하기 위해 Unity XR 프레임워크에 의존하지 않습니다. 따라서 AR Foundation과 같은 Unity XR 구성 요소를 사용할 필요가 없는 경우, 이러한 패키지를 설치하지 않아도 Easyar는 지원되는 기기에서 정상적으로 작동합니다.
AR foundation 지원
AR Foundation은 Unity가 제공하는 AR 개발 프레임워크로, 그 AR 기능은 하위 시스템 또는 타사 구현을 통해 제공되며 주로 ARCore, ARKit 및 일부 헤드셋을 지원하는 데 사용됩니다.
Easyar와 AR foundation의 관계
block
columns 6
block:groupApp:6
block:groupAppWrapper
space
App1["EasyAR<br>App"]
space
App2["EasyAR + AR Foundation<br>App"]
space
App3["AR Foundation<br>App"]
end
end
block:groupSensePlugin:4
columns 1
SensePlugin["EasyAR Sense Unity Plugin"]
space
end
block:groupARF
columns 1
ARF["AR Foundation"]
space
end
block:groupXRI
columns 1
XRI["XR Interaction Toolkit"]
space
end
block:groupAREngineInterop
columns 1
AREngineInterop["EasyAR<br>AR Engine Interop"]
space
end
block:groupSense:3
columns 1
Sense["EasyAR Sense"]
block:groupSenseWrapper
Image["Image<br>Tracker"]
Object["Sparse<br>SpatialMap"]
MotionTracker["Motion<br>Tracker"]
MARCore["ARCore"]
MARKit["ARKit"]
Others["..."]
end
end
block:groupXRSubsystem:2
columns 1
XRSubsystem["XR Subsystems"]
XRSDK["Unity XR SDK"]
end
block:groupSystem:6
columns 1
System["System Library"]
block:groupSystemWrapper
space
AREngine["AR Engine<br> Library "]
space
ARCore["ARCore<br> Library "]
space
ARKit["ARKit<br> Library "]
space
end
end
SensePlugin --> App1
SensePlugin --> App2
ARF --> App2
ARF --> App3
groupSense --> SensePlugin
groupAREngineInterop --> SensePlugin
AREngine --> groupAREngineInterop
XRSubsystem --> ARF
XRSubsystem --> XRI
ARCore --> MARCore
ARKit --> MARKit
ARCore --> XRSDK
ARKit --> XRSDK
style groupApp fill:none,stroke:none,stroke-width:0px
style groupAppWrapper fill:none,stroke:none,stroke-width:0px
style groupSensePlugin fill:none,stroke:none,stroke-width:0px
style groupARF fill:none,stroke:none,stroke-width:0px
style groupXRI fill:none,stroke:none,stroke-width:0px
style AREngineInterop fill:none,stroke:none,stroke-width:0px,color:#fff
style Sense fill:none,stroke:none,stroke-width:0px,color:#fff
style groupSenseWrapper fill:none,stroke:none,stroke-width:0px
style XRSubsystem fill:none,stroke:none,stroke-width:0px,color:#fff
style System fill:none,stroke:none,stroke-width:0px
style groupSystemWrapper fill:none,stroke:none,stroke-width:0px
classDef EasyAR fill:#6e6ce6,stroke:#333,color:#fff
class groupAREngineInterop EasyAR
class groupSense EasyAR
class SensePlugin EasyAR
classDef Unity fill:#636,stroke:#333,color:#fff
class groupXRSubsystem Unity
class ARF Unity
class XRI Unity
Easyar와 AR Foundation은 독립적인 두 개의 AR 프레임워크이며, Easyar는 AR 기능을 구현하기 위해 AR Foundation에 의존하지 않습니다. Easyar는 또한 시스템의 ARKit, ARCore 등 시스템 라이브러리를 통해 모션 트래킹 기능을 구현할 수 있습니다. 동시에 Easyar는 AR Foundation이 제공하지 않는 두 가지 모션 트래킹 구현을 제공합니다: Easyar 자체의 모션 트래킹 구현과 AR Engine을 통해 제공되는 모션 트래킹 구현으로, 이는 AR Foundation보다 더 광범위한 기기 지원을 제공합니다.
또한 Easyar는 AR Foundation 런타임의 데이터를 가져와서 AR Foundation 런타임 중에 그것이 제공하는 모션 트래킹 기능을 활용하여 다른 AR 기능을 구동함으로써 AR Foundation과의 호환성을 제공합니다. 이러한 기능에는 다음이 포함됩니다:
- Mega
- 희소 공간 맵
- 조밀 공간 맵
- 모션 퓨전을 사용한 이미지 트래킹 및 오브젝트 트래킹
모션 트래킹과 Easyar 기능의 관계에 대한 자세한 내용은 모션 트래킹과 Easyar 기능을 참조하십시오.
AR foundation을 사용해야 하는 경우
대부분의 경우 AR Foundation을 사용하지 않아도 Easyar는 AR Foundation이 지원하는 것보다 더 광범위한 기기에서 정상적으로 작동합니다. 일반적으로 다음 두 가지 상황에서 AR Foundation 사용을 고려할 수 있습니다:
Easyar에서 캡슐화되지 않은 ARKit 및 ARCore 기능을 사용해야 할 경우
Easyar에서 캡슐화되지 않은 ARCore 또는 ARKit의 일부 기능을 사용해야 하는 경우 AR Foundation을 사용할 수 있습니다. 예를 들어 AR Foundation은 ARFaceManager를 통해 ARKit 얼굴 트래킹 지원을 제공하는데, Easyar는 이 기능을 캡슐화하지 않습니다.
시스템 문제가 있는 일부 샤오미(Samsung) 휴대폰에서 Easyar 구현 모션 트래킹 대신 ARCore를 사용해야 할 경우
모든 ARCore 지원 샤오미 및 레드미(Redmi) 휴대폰에서 ARCore를 사용해야 하는 경우 AR Foundation 활성화를 고려할 수 있습니다. 일부 샤오미 및 레드미 휴대폰에는 시스템 문제가 있어 Easyar의 ARCore 캡슐화가 이러한 기기를 지원하지 않습니다. 여기에는 미 9, 미 10, 레드미 K20, 레드미 K30, 레드미 K40 등 시리즈가 포함됩니다(여기에 나열된 내용은 불완전하며 기기 지원은 지속적으로 업데이트됩니다). 이러한 휴대폰에서는 기본 구성으로 ARCore가 사용되지 않으며, Easyar 모션 트래킹을 지원하는 휴대폰에서는 Easyar 모션 트래킹이 사용됩니다.
AR Foundation을 사용할 때 Easyar 기능의 성능이 최적이 아닙니다. 두 가지 경우가 있습니다:
- Easyar가 직접 지원하지 않는 일부 샤오미 및 레드미 휴대폰에서 Easyar에 입력되는 데이터는 컬러 이미지가 아닌 그레이스케일 이미지입니다. 이는 일부 알고리즘의 성능에 영향을 미칩니다. 기기 자체의 문제로 인해 구성으로 해결할 수 없습니다.
- Mega를 사용할 때 AR Foundation의 기본 구성은 최적이 아닙니다.
주의
AR Foundation의 ARCameraManager.currentConfiguration을 수정하여 더 나은 데이터 입력을 얻을 수 있습니다. ARCoreARFoundationFrameSource.OptimizeConfigurationForTracking을 활성화하면 최적의 ARCameraManager.currentConfiguration 선택을 자동으로 수행할 수 있습니다. 그러나 일부 휴대폰(예: 샤오미 10) 자체에 문제가 있어 구성을 변경한 후 이미지를 가져올 수 없게 되면 Easyar를 사용할 수 없게 됩니다(앱에 이미지 배경은 있지만 Easyar 기능이 아무 반응이 없음). 따라서 일반적으로 활성화하지 않는 것이 좋으며, 필요한 경우 Easyar를 사용할 수 없을 때를 대비한 대체 방안을 마련해야 합니다.
헤드셋 지원
Unity XR 프레임워크가 충분한 데이터 인터페이스를 제공하지 않기 때문에 Easyar는 Unity XR 프레임워크를 통해 헤드셋을 지원하지 않습니다.
Unity XR 프레임워크를 지원하는 헤드셋에서 Easyar는 XR Core Utilities를 통해 Unity.XR.CoreUtils.XROrigin 사용을 지원하지만, 헤드셋 지원을 위해 Unity XR 프레임워크를 사용하지는 않습니다. Easyar는 XR Interaction Toolkit의 기능에 영향을 미치지 않으며, 기기가 지원하는 한 정상적으로 사용할 수 있습니다.
일반적으로 헤드셋 제조사는 이러한 데이터를 제공하기 위해 각자 SDK 또는 시스템 인터페이스를 제공하며, Easyar는 시스템 인터페이스와 제조사의 SDK를 통해 헤드셋을 지원합니다. 때로는 이러한 SDK가 완전히 공개되지 않은 경우도 있으며, Easyar는 제조사와 협력하여 완벽한 지원을 제공합니다. Unity의 헤드셋 지원은 Easyar가 지원하는 헤드셋과 그 사용 방법에 대해 설명합니다.
다음 단계
- Easyar 프로젝트에서 AR Foundation 활성화 방법 알아보기
- Easyar 프로젝트의 AR Foundation 장면 구성 및 사용법 알아보기
- 기기 지원 상황에 따라 AR Foundation 자동 전환 방법 알아보기