티스토리 뷰

iOS

iOS ) ARKit

Zedd0202 2017. 12. 4. 17:37
반응형

안녕하세요 :) Zedd입니다.

뒷북같지만 ARKit을 한번 써보고싶어져서..XD

일단 1도 모르니까, 완전 쉬운거부터 할거에요.



프로젝트 만들면 바로 보이는


증강현실앱~.~

일단 이걸로 바로 만들면 비행기가 공중에 떠있는 것만 같은 것을 볼 수 있습니다.

 

짱신기 ....처음에 못찾아서 한참을 헤맸음.. XD

일단, ARKit에 더 알고싶은분들은 여기를 참고하시면 좋을 것 같아요. 



ARKit



먼저, AR은 이름에서 볼 수 있듯이, augmented reality. 증강현실이에요.

우리가 아는 VR(가상현실)의 한 분야라고 합니다.


  1. 가상현실 - 현실에서 존재하지 않는 환경에 대한 정보를 디스플레이 및 렌더링 장비를 통해 사용자로 하여금 볼 수 있게 한다. 그리고 이미 제작된 2차원, 3차원 기반을 사용하므로 사용자가 현실감각을 느낄 수는 있지만 현실과 다른 공간 안에 몰입하게 된다.
  2. 증강현실 - 가상현실과는 달리 사용자가 현재 보고 있는 환경에 가상 정보를 부가해준다는 형태이다. 즉 가상현실이 현실과 접목되면서 변형된 형태 중 하나이다. 때문에 사용자가 실제 환경을 볼 수 있으므로 가상의 정보 객체(예: 기후정보, 버스노선도, 맛집 길 안내)가 현실에 있는 간판에 표시되기도 한다.
- 출처 : 위키백과 -



우리가 아는 포켓몬고도 증강현실을 이용한 게임이었죠.



그럼 이제 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디게 재밌는거 같아요. 

오늘도 도움이 되었길 바랍니다ㅏㅏ







반응형