Danny의 iOS 컨닝페이퍼
article thumbnail
Published 2023. 1. 7. 18:10
[iOS/Swift] ARKit의 종류 Xcode/Framework

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 )
  • 하드웨어를 한계까지 끌어올려 게임이나 그래픽 작동을 완벽하게 제어할 수 있습니다.
  • 대규모 데이터 세트를 분석하고 처리하는 과학 연구 앱등에서 사용됩니다.

 

 

Metal 개요 - Apple Developer

Metal에서는 Apple 플랫폼에서 오버헤드가 낮은 API, 풍부한 셰이딩 언어, 그래픽과 컴퓨팅 간의 긴밀한 통합 및 탁월한 GPU 프로파일링 및 디버깅 도구를 제공하여 하드웨어 가속 그래픽을 지원합니

developer.apple.com

 

Apple Developer Documentation

 

developer.apple.com

 

SpriteKit

[SpriteKit 공식문서]

SpriteKit 프레임워크를 사용하면 고성능의 배터리 효율적인 2D 게임을 쉽게 만들 수 있습니다. 맞춤형 OpenGL ES 셰이더 및 조명 지원, SceneKit과의 통합, 고급 새로운 물리 효과 및 애니메이션을 통해 역장을 추가하고 충돌을 감지하고 새로운 조명 효과를 생성할 수 있습니다.

 

부드러운 애니메이션과 함께 고성능 2D 콘텐츠를 앱에 추가하거나 높은 수준의 2D 게임 기반 도구 세트로 게임을 만들 수 있습니다.

 

SpriteKit은 모양, 입자, 텍스트, 이미지 및 비디오를 2차원으로 그리기 위한 범용 프레임워크입니다. Metal을 활용하여 고성능 렌더링을 사용하는 동시에 간단한 프로그래밍 인터페이스를 제공하여 게임 및 기타 그래픽 집약적인 앱을 쉽게 만들 수 있습니다. 풍부한 애니메이션 및 물리 동작을 사용하여 시각적 요소에 생명을 빠르게 추가하고 화면 간에 우아하게 전환할 수 있습니다.

 

SpriteKit은 iOS, macOS, tvOS 및 watchOS에서 지원되며 GameplayKitSceneKit과 같은 프레임워크와 잘 통합됩니다.

 

 

SpriteKit - Apple Developer

SpriteKit makes it easy to create high-performance, power-efficient 2D games on Apple platforms.

developer.apple.com

 

Apple Developer Documentation

 

developer.apple.com

 

SceneKit

[SceneKit 공식문서]

SceneKit은 앱에서 3D 애니메이션 장면 및 효과를 만드는 데 도움이 되는 고급 3D 그래픽 프레임워크입니다. 물리 엔진, 입자 생성기 및 3D 개체의 동작을 스크립팅하는 쉬운 방법을 통합하여 형상, 재료, 조명 및 카메라와 같은 콘텐츠 측면에서 장면을 설명하고 해당 개체에 대한 변경 사항을 설명하여 애니메이션을 적용할 수 있습니다. 

 

높은 수준의 장면 설명을 사용하여 3D 게임을 만들고 앱에 3D 콘텐츠를 추가합니다. 애니메이션, 물리 시뮬레이션, 입자 효과 및 사실적인 물리적 기반 렌더링을 쉽게 추가할 수 있습니다.

 

SceneKit은 3D assets의 가져오기, 조작 및 렌더링을 위한 설명 API와 고성능 렌더링 엔진을 결합합니다. 장면을 표시하는 렌더링 알고리즘을 정확하게 구현해야 하는 Metal 및 OpenGL과 같은 하위 수준 API와 달리 SceneKit은 장면의 내용과 수행하려는 작업 또는 애니메이션에 대한 설명만 필요합니다.

 

 

SceneKit - Apple Developer

SceneKit is a high-level 3D graphics framework that helps you create 3D animated scenes and effects in your apps.

developer.apple.com

 

Apple Developer Documentation

 

developer.apple.com

 

RealityKit

[RealityKit 공식문서]

RealityKit 프레임워크는 사진처럼 생생한 렌더링과 카메라 효과, 애니메이션, 물리적인 요소 등을 갖추고 특별히 증강 현실을 위해 완전히 새롭게 빌드되었습니다. RealityKit은 기본 Swift API, ARKit 통합, 놀랍도록 사실적인 물리적 요소 기반의 렌더링, 변형 및 스켈레톤 애니메이션, 공간 오디오 및 강체 물리 요소를 통해 AR 개발을 그 어느 때보다 빠르고 쉽게 수행할 수 있게 해 줍니다.

 

RealityKit은 2019년에 출시된 고급 프레임워크입니다. 다중 스레드 렌더링을 수행합니다.

 

 

RealityKit 개요 - 증강 현실 - Apple Developer

Reality Composer 앱과 RealityKit을 사용하여 iOS 및 macOS에서 애니메이션과 상호 작용을 빌드하고 3D 콘텐츠를 풍부하게 만들어 보십시오.

developer.apple.com

 

Apple Developer Documentation

 

developer.apple.com

 

Xcode에서 ARKit 만드는 방법

iOS -> Augmented Reality App

Augmented Reality App 클릭

 

Content Technology : 사용할 프레임워크 설정

각각 쉽게 진행할 수 있도록 약간의 코드들이 미리 들어가 있다.

 

 

ScnenKit의 기본 사용법 및 정육면체와 달만들기 예제를 보고 싶다면 아래 링크를 참조하세요

 

[iOS/Swift] SceneKit의 사용법 (1) - 정육면체와 달을 만들어 보자

시작 AR 주사위 던지는 앱을 만들기 앞서 이해를 돕기 위해 들어가기 앞서 간단한 Cube(정육면체)와 Shpere(구)를 만들어 봅시다. 사용법 iOS -> Augmented Reality App 선택 Content Technology : SceneKit을 선택해

ios-daniel-yang.tistory.com

ScnenKit의 다른 예제들

 

[iOS/Swift] SceneKit의 사용법 (2) - 주사위 만들기

시작 오늘은 SceneKit으로 주사위 생성 및 굴리기를 해봅시다. 순서는 이전에 만든 Cube와 달 만들기와 거의 동일하니 못 보셨다면 여기를 참고하세요. 바로 시작하겠습니다. 주사위로 사용할 모델

ios-daniel-yang.tistory.com

 

[iOS/Swift] SceneKit의 사용법 (3) - 카메라 줄자, 거리 측정하기

시작 오늘은 SceneKit으로 카메라를 통한 줄자를 만들어 보겠습니다. 간단히 설명할 예정이라 자세한 내용은 이전 글을 참고하시길 바랍니다. SceneKit의 사용법 (1) - 정육면체와 달을 만들어 보자 Sc

ios-daniel-yang.tistory.com

 

[iOS/Swift] SceneKit의 사용법 (4) - 이미지를 인식하여 3D형상 만들기

시작 오늘은 SceneKit으로 이미지를 인식하여 그 위에 캐릭터를 올려볼 예정입니다. 간단히 설명할 예정이라 자세한 내용은 이전 글을 참고하시길 바랍니다. SceneKit의 사용법 (1) - 정육면체와 달을

ios-daniel-yang.tistory.com

 

참고

 

RealityKit vs SceneKit vs Metal – High-Quality Rendering

I'm creating an iOS app that I intend to display realistic/high-quality renders within AR. Whilst experimenting with these 3 options, I'm still unsure which of them I should go forward with develop...

stackoverflow.com

 

반응형
profile

Danny의 iOS 컨닝페이퍼

@Danny's iOS

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!