ARKit (증강 현실)
증강현실(Augmented Reality)
카메라를 통하여 라이브뷰에 2D 또는 3D 요소를 추가하여 실제 세계에 있는 것처럼 보이게 하는 사용자 경험 말합니다.
즉. 현실 세계에서 가상의 물체를 집어넣어 마치 현실과 가상현실이 병합되게 만드는 것이죠.
(ex. 인스타 3D 스티커, 포켓몬 고, 모션 캡처 등)
ARKit을 사용하기 앞서 요구사항이 존재합니다.
특정 하드웨어가 필요하며, 더 구체적으로 해당 하드웨어는 A9 칩 이상 필요하다. (A9 또는 A10 칩 …)
따라서 장치로 보면 기본적으로 iPhone 6 이후에 출시된 모든 것을 의미합니다. (iPhone SE, 6s, 6s Plus 등)
ARKit의 종류
- RealityKit (3D 기반)
- SceneKit (3D 기반)
- SpriteKit (2D 기반)
- Metal
Metal
[Metal 공식문서]
그래픽 가속화 및 더 많은 기능.
Metal에서는 Apple 플랫폼에서 오버헤드가 낮은 API, 풍부한 셰이딩 언어, 그래픽과 컴퓨팅 간의 긴밀한 통합 및 탁월한 GPU 프로파일링 및 디버깅 도구를 제공하여 하드웨어 가속 그래픽을 지원합니다. Metal 3에는 게임 및 전문가 앱에서 Apple Silicon의 잠재력을 완벽하게 활용할 수 있는 강력한 기능이 도입되었습니다. 고해상도 그래픽을 더 짧은 시간 안에 렌더링하고, 리소스를 더 신속하게 로딩하며, GPU로 머신 러닝 네트워크를 학습시킬 수 있습니다.
ARKit
의 모든 프레임워크인 SpriteKit
, SceneKit
, RealityKit
는 Metal
을 base로 하여 만들어져 있습니다.
또한 CoreML
, Vision
, AVFoundation
등에서도 사용됩니다.
Metal
은 단 하나의 API로 OpenGL 및 OpenCL과 유사한 기능을 합니다. (GPU 가속 그래픽 API )- 하드웨어를 한계까지 끌어올려 게임이나 그래픽 작동을 완벽하게 제어할 수 있습니다.
- 대규모 데이터 세트를 분석하고 처리하는 과학 연구 앱등에서 사용됩니다.
SpriteKit
[SpriteKit 공식문서]
SpriteKit 프레임워크를 사용하면 고성능의 배터리 효율적인 2D 게임을 쉽게 만들 수 있습니다. 맞춤형 OpenGL ES 셰이더 및 조명 지원, SceneKit과의 통합, 고급 새로운 물리 효과 및 애니메이션을 통해 역장을 추가하고 충돌을 감지하고 새로운 조명 효과를 생성할 수 있습니다.
부드러운 애니메이션과 함께 고성능 2D 콘텐츠를 앱에 추가하거나 높은 수준의 2D 게임 기반 도구 세트로 게임을 만들 수 있습니다.
SpriteKit
은 모양, 입자, 텍스트, 이미지 및 비디오를 2차원으로 그리기 위한 범용 프레임워크입니다. Metal
을 활용하여 고성능 렌더링을 사용하는 동시에 간단한 프로그래밍 인터페이스를 제공하여 게임 및 기타 그래픽 집약적인 앱을 쉽게 만들 수 있습니다. 풍부한 애니메이션 및 물리 동작을 사용하여 시각적 요소에 생명을 빠르게 추가하고 화면 간에 우아하게 전환할 수 있습니다.
SpriteKit
은 iOS, macOS, tvOS 및 watchOS에서 지원되며 GameplayKit
및 SceneKit
과 같은 프레임워크와 잘 통합됩니다.
SceneKit
[SceneKit 공식문서]
SceneKit은 앱에서 3D 애니메이션 장면 및 효과를 만드는 데 도움이 되는 고급 3D 그래픽 프레임워크입니다. 물리 엔진, 입자 생성기 및 3D 개체의 동작을 스크립팅하는 쉬운 방법을 통합하여 형상, 재료, 조명 및 카메라와 같은 콘텐츠 측면에서 장면을 설명하고 해당 개체에 대한 변경 사항을 설명하여 애니메이션을 적용할 수 있습니다.
높은 수준의 장면 설명을 사용하여 3D 게임을 만들고 앱에 3D 콘텐츠를 추가합니다. 애니메이션, 물리 시뮬레이션, 입자 효과 및 사실적인 물리적 기반 렌더링을 쉽게 추가할 수 있습니다.
SceneKit
은 3D assets의 가져오기, 조작 및 렌더링을 위한 설명 API와 고성능 렌더링 엔진을 결합합니다. 장면을 표시하는 렌더링 알고리즘을 정확하게 구현해야 하는 Metal
및 OpenGL과 같은 하위 수준 API와 달리 SceneKit
은 장면의 내용과 수행하려는 작업 또는 애니메이션에 대한 설명만 필요합니다.
RealityKit
[RealityKit 공식문서]
RealityKit 프레임워크는 사진처럼 생생한 렌더링과 카메라 효과, 애니메이션, 물리적인 요소 등을 갖추고 특별히 증강 현실을 위해 완전히 새롭게 빌드되었습니다. RealityKit은 기본 Swift API, ARKit 통합, 놀랍도록 사실적인 물리적 요소 기반의 렌더링, 변형 및 스켈레톤 애니메이션, 공간 오디오 및 강체 물리 요소를 통해 AR 개발을 그 어느 때보다 빠르고 쉽게 수행할 수 있게 해 줍니다.
RealityKit
은 2019년에 출시된 고급 프레임워크입니다. 다중 스레드 렌더링을 수행합니다.
Xcode에서 ARKit 만드는 방법
iOS -> Augmented Reality App
Content Technology : 사용할 프레임워크 설정
ScnenKit
의 기본 사용법 및 정육면체와 달만들기 예제를 보고 싶다면 아래 링크를 참조하세요
ScnenKit
의 다른 예제들
참고
'Xcode > Framework' 카테고리의 다른 글
[iOS/Swift] SceneKit의 사용법 (2) - 주사위 만들기 (0) | 2023.01.08 |
---|---|
[iOS/Swift] SceneKit의 사용법 (1) - 정육면체와 달을 만들어 보자 (0) | 2023.01.07 |
[iOS/Swift] CoreML (2) - 훈련 된 Model 사용하기 (3) | 2023.01.04 |
[iOS/Swift] CoreML (1) - Create ML으로 Model 만들기 (0) | 2023.01.03 |
[iOS/Swift] WeatherKit 사용법 (0) | 2022.12.24 |