티스토리 뷰
안녕하세요 :) Zedd입니다.
뒷북같지만 ARKit을 한번 써보고싶어져서..XD
일단 1도 모르니까, 완전 쉬운거부터 할거에요.
프로젝트 만들면 바로 보이는
증강현실앱~.~
일단 이걸로 바로 만들면 비행기가 공중에 떠있는 것만 같은 것을 볼 수 있습니다.
짱신기 ....처음에 못찾아서 한참을 헤맸음.. XD
일단, ARKit에 더 알고싶은분들은 여기를 참고하시면 좋을 것 같아요.
ARKit
먼저, AR은 이름에서 볼 수 있듯이, augmented reality. 증강현실이에요.
우리가 아는 VR(가상현실)의 한 분야라고 합니다.
- 가상현실 - 현실에서 존재하지 않는 환경에 대한 정보를 디스플레이 및 렌더링 장비를 통해 사용자로 하여금 볼 수 있게 한다. 그리고 이미 제작된 2차원, 3차원 기반을 사용하므로 사용자가 현실감각을 느낄 수는 있지만 현실과 다른 공간 안에 몰입하게 된다.
- 증강현실 - 가상현실과는 달리 사용자가 현재 보고 있는 환경에 가상 정보를 부가해준다는 형태이다. 즉 가상현실이 현실과 접목되면서 변형된 형태 중 하나이다. 때문에 사용자가 실제 환경을 볼 수 있으므로 가상의 정보 객체(예: 기후정보, 버스노선도, 맛집 길 안내)가 현실에 있는 간판에 표시되기도 한다.
우리가 아는 포켓몬고도 증강현실을 이용한 게임이었죠.
그럼 이제 AR이 뭔지 알았으니..
ARKit이 뭔지도 감이 오시죠?
iOS에서 증강현실을 가능하게 해주는 프레임워크입니다.
카메라를 가지고 많이 하는데요, 여기에 2D나 3D를 추가할 수 있습니다.
2D는 SpriteKit을 이용해 만들 수 있고, 3D는 SceneKit를 이용해야합니다.
그러니, info.plist에서 NSCameraUsageDescription를 추가해줘야한답니다. :)
그리고 당연하게도 iOS11부터 지원합니다.
위에서 만든 AR App을 딱 처음 만들면 viewDidLoad()에 위 코드가 적혀져 있을거에요.
이 프로젝트에서는 3D 오브젝트를 추가하므로, SceneView를 사용한 것을 볼 수 있습니다.
역시나 Delegate도 존재하므로, 채택과 대리자 위임을 해준 것을 볼 수 있습니다.
sceneView.showsStatistics = true
이 부분은 위 스크린샷 밑에 있던
이 부분을 표시해줄거냐 안할거냐 입니다. true니 표시가 된거겠죠?
let scene = SCNScene(named: "art.scnassets/ship.scn")!
이 프로젝트안에는 scn파일이 이미 있기때문에 이렇게 해준 것을 볼 수 있어요.
그리고 이 scene을 우리의 sceneView에 넣어준 것을 볼 수 있죠.
그리고 viewWillAppear()에서
위 코드가 있는 것을 볼 수 있죠.
ARSCNView는 ARSession 객체를 포함한 SceneKit view입니다.
하지만, 이 Session을 실행하려면 session configuration을 제공해야 합니다.
그래서 viewWillAppear()에 있는 코드가 나온것이죠.
ARSCNViewDelegate에는 renderer라는 delegate 메소드들이 있습니다. 이 메소드를 이용해서 커스텀 노드들을 만들 수 있다고해요.
이미 만들어져있는 것도 몇개있는데요,
SCNGeometry를 상속받는 아이들이죠.
SCNPlane
SCNBox
SCNPyramid
SCNSphere
SCNCylinder
SCNCone
SCNTube
SCNCapsule
SCNTorus
SCNFloor
SCNText
SCNShape
가 있습니다!!!!!이름만 보면 어떤게 만들어질지 예상이 가죠?
저는 SCNText를 꼭 써보고 싶어서 ㅎㅎ..
SCNText를 써봤어요!!!
갸앙XD
SCNText를 사용한거는 여기에 올려놨으니 참고하세요 :)
ARKit디게 재밌는거 같아요.
오늘도 도움이 되었길 바랍니다ㅏㅏ
'iOS' 카테고리의 다른 글
iOS ) WKWebView에서 loading indicator처리 (9) | 2017.12.11 |
---|---|
iOS ) UIWebView와 WKWebView의 차이 (7) | 2017.12.09 |
iOS ) UIImagePicker. 선택된 이미지의 url, name 등 알아보기 (6) | 2017.12.04 |
iOS) 왕초보를 위한 3D touch (포스터치) - quick action (1) | 2017.12.01 |
iOS ) imageView의 content mode를 Aspect Fill로 할 시 생기는 issue (0) | 2017.11.28 |
- iOS delegate
- FLUTTER
- Swift
- WidgetKit
- swift tutorial
- 회고
- actor
- Xcode
- 제이슨 파싱
- SwiftUI
- swift 공부
- UIBezierPath
- Combine
- Accessibility
- swift delegate
- 피아노
- WKWebView
- swift array
- np-hard
- 스위프트 문법
- Git
- fastlane
- np-complete
- WWDC
- 스위프트
- swift3
- github
- swift sort
- ios 13
- IOS
- Total
- Today
- Yesterday