소피it블로그

[프레임워크] ARKit / SpriteKit / SceneKit / RealityKit / Metal 문서 개요 정리 본문

개발_iOS/프레임워크, 라이브러리

[프레임워크] ARKit / SpriteKit / SceneKit / RealityKit / Metal 문서 개요 정리

sophie_l 2022. 8. 27. 14:45

https://developer.apple.com/documentation/arkit/

 

Apple Developer Documentation

 

developer.apple.com

1. ARKit

앱이나 게임에 증강 현실 경험을 생성해줄 iOS 디바이스 카메라와 모션의 통합 특징들

 

증강 현실(AR)은 디바이스의 카메라를 통해 2D나 3D 요소가 실제 세상에 존재하는 것처럼 나타나도록 하는 유저 경험을 말한다. ARKit는 디바이스의 모션 트랙킹, 카메라 씬 캡쳐, advanced scene processing, 그리고 display conveniences를 통합함으로써 AR 경험을 만드는 일을 단순화한다. 이 기술들을 가지고 iOS 기기의 전면 혹은 후면 카메라를 통해 다양한 AR 경험을 생성할 수 있다.


https://developer.apple.com/documentation/spritekit/

 

Apple Developer Documentation

 

developer.apple.com

2. SpriteKit

앱에 매끄러운 애니메이션을 갖는 고성능의 2D 컨텐츠를 추가하거나, 좋은 사양의 2D 게임 베이스 도구를 사용하여 게임 만들기

 

스프라이트키트는 도형, 입자, 텍스트, 이미지, 비디오 등을 2차원 상에 그려낼 수 있는 다목적 프레임워크이다. 이는 Metal을 사용하여 고성능의 렌더링을 달성하는 동시에, 게임이나 그래픽이 많이 사용되는 앱들을 쉽게 만들 수 있도록 간단한 프로그래밍 인터페이스를 제공한다. 다양한 애니메이션과 physics behaviors를 사용함으로써 시각 요소들에 활력을 빠르게 더해줄 수 있고, 스크린 간의 전환을 우아하게 만들어줄 수 있다.

스프라이트키트는 iOS, macOS, tvOS, watchOS에서 지원되며, GameplayKit이나 SceneKit 같은 프레임워크와도 잘 통합된다.

 


https://developer.apple.com/documentation/scenekit/

 

Apple Developer Documentation

 

developer.apple.com

3. SceneKit

3D 게임을 만들고 고성능의 씬 description을 통해 3D 컨텐츠를 추가하기. 손쉽게 애니메이션과 physics simulation, particle effect, 현실적인 physically based 렌더링을 추가할 수 있다.

 

씬키트는 고성능의 렌더링 엔진을 descriptive한 API에 추가하여 3D 애셋들을 임포트하고, 조절하고, 렌더링한다. 씬을 보여주는 렌더링 알고리즘을 정확하고 세세하게 구현해야 하는 Metal이나 OpenGL과 같은 더 낮은 레벨의 API들과는 다르게, 씬키트는 씬의 컨텐츠와 액션, 혹은 수행하고 싶은 애니메이션에 대한 묘사만 적으면 된다.

 


https://developer.apple.com/documentation/realitykit/

 

Apple Developer Documentation

 

developer.apple.com

4. RealityKit

증강 현실 앱에서 이용할 수 있도록 3D 컨텐츠를 시뮬레이팅하고 렌더링하기

 

리얼리티키트 프레임워크는 고성능의 3D 시뮬레이션과 렌더링을 구현하는 데 사용한다. 리얼리티키트는 ARKit 프레임워크가 제공하는 정보를 사용하여 가상의 사물들을 현실 세계에 매끄럽게 통합시킨다.

그럴싸한 증강 현실 경험을 만들기 위해 RealityKit의 풍부한 기능을 사용하라.

 

  • Reality Composer 앱으로 만들거나 mesh, material, 텍스쳐로부터 만드는 섬세한 구조 등을 포함한, 완전하게 형성된 애셋들을 임포트하기
  • 오디오 소스를 설정하기
  • 사물을 수동으로 혹은 physics 시뮬레이션으로 애니메이팅하기
  • 유저 인풋과 환경의 변화에 응답하기
  • 그룹 AR 경험을 가능하게 하면서 디바이스 사이를 연결하기

https://developer.apple.com/documentation/metal/

 

Apple Developer Documentation

 

developer.apple.com

5. Metal

그래픽 프로세서를 통해 병렬적으로 advanced 3D 그래픽을 렌더링하고 데이터를 컴퓨팅하기
 

메탈 프레임워크는 앱에게 디바이스의 GPU(graphics processing unit)에 직접 접근할 수 있는 권한을 준다. 메탈을 통해, 앱들은 GPU를 이용하여 병렬적으로 복잡한 씬들을 빠르게 렌더링하고 계산 작업을 할 수 있다. 예를 들어 이하의 카테고리에 있는 앱들은 최상의 성능을 보장하기 위해 Metal을 사용한다.

 

  • 복잡한 3D 환경을 렌더링하는 게임들
  • Final Cut Pro와 같은 비디오 프로세싱 앱들
  • 거대한 데이터셋을 분석하고 처리하는 과학 리서치 앱들

메탈은 기능을 보충해주는 다른 프레임워크와 함께 사용된다. 예를 들어서 MetalFX는 네이티브하게 렌더링하는 것보다 짧은 시간 안에 렌더링할 수 있게 해주고, MetalKit은 스크린 상에 메탈 컨텐츠를 보여주는 작업을 간소화한다. Metal Performance Shaders 프레임워크는 최적화된 계산을 위한 거대한 라이브러리와 렌더링 셰이더를 제공함으로써 GPU의 유니크한 하드웨어를 활용한다.

RealityKit, SceneKit, SpriteKit, Core Images 등, 많은 애플의 고성능 프레임워크들이 Metal의 기능을 사용한다. 이 고성능 프레임워크는 GPU 프로그래밍 세부사항을 구현해준다. 그러나 커스텀 메탈과 셰이더 코드를 직접 작성하면 보통 더 나은 성능을 기대할 수 있다.