[기본 개념] SCNNode 에 SCNGeometry 를 attach하고 SCNGeometry 에 SCNMaterial 를 attach한다. 즉, material -> geometry -> node 이렇게 붙는 것이다. 간단하게 정의를 살펴보자면 - SCNNode: scene graph의 구성요소이다. 3D 공간에서의 postion, transfrom 을 나타낼수 있다. 여기에 geometry, lights, camera 등을 attach 할 수 있다. - SCNGeometry: 3D shape. SCNPlane, SCNBox, SCNSphere, SCNPyramid, SCNCone, SCNText 등이 SCNGeometry의 서브클래스이다. - SCNMaterial : geometry의 surface의..
[1] dae 파일을 준비하기 SCNSceneSource 를 보면 SceneKit이 scene contents로 읽을 수 있는 포맷들이 나와있습니다. abc는 처음보고 dae는 본 적이 있는데, www.turbosquid.com 여기서 보았습니다. 이 사이트는 3D 모델을 판매/구매 할 수 있는 사이트입니다 3D Models for Professionals :: TurboSquid 3D Models for Professionals www.turbosquid.com Free 3D Models 에 들어가주세요 그리고 format으로 dae를 선택해주세요 저는 축구공 파일을 다운받아보겠습니다. [2] convert dae to scn 1) scnassets에서 newfile해서 scn파일을 만듭니다. 아니면 ..
애플 예제에 있는 scn파일들을 가져와서 썼었는데, scn파일 (SceneKit Scene File) 을 직접 만들어보겠습니다. [1] scnassets폴터에서 new File 하기 그러면 이런 파일이 하나 생깁니다. 저는 파일이름을 hello로 바꿔주겠습니다. 현재 Scene graph를 보면 카메라 밖에 없어요 [2] container 노드 만들기 + 버튼을 누르면 이렇게 라이브러리?가 뜹니다. container 역할을 해줄 empty node를 끌어옵니다. scene graph에 untitled이 생겼네요 untitled 이름을 container로 바꿔주세요 그리고 container의 postion을 0, 0, 0으로 해주세요 저는 카메라도 0,0,0 으로 설정해줬어요-! (근데 애플 예제보면 0,..
저번 포스팅에는 face tracking을 해보았는데요, 이어서 eye tracking을 해보겠습니다. 이렇게 제가 눈을 깜박일때마다 로봇박스 눈도 따라오게 해주겠습니다. [1] eyeLeftNode, eyeRightNode를 가져오기 robotHead.scn 파일을 들어가보면 eyeLeft랑 eyeRight 라는 childNode가 있습니다. 이런식으로 가져올 수 있습니다. let resourceName = "robotHead" let contentNode = SCNReferenceNode(named: resourceName) let eyeLeftNode = contentNode.childNode(withName: "eyeLeft", recursively: true) let eyeRightNode = ..
[1] 얼굴의 포지션과 방향을 tracking하기 face tracking이 active되면 ARKit은 자동으로 ARFaceAnchor을 돌아가고 있는 AR session에 add합니다. ARFaceAnchor는 ARAnchor의 서브클래스로, 사용자의 face position and orientation에 관련된 정보를 포함하고 있어요 SceneKit-based AR에서는 3D content를 face anchor에 붙일수있어요 renderer(_:nodeFor:) 또는 renderer(_:didAdd:for:) 라는 delegate method를 통해서요..! (이 두 함수는 ARSCNViewDelegate 에 있습니다) 정확히 말하면 3D Content를 SceneKit node에 붙이고 Scen..
애플의 고퀄리티 예제 앱 Tracking and Visualizing Faces 를 따라해본 기록 ✏️ [1] 프로젝트 생성 Augmented Realtiy App 을 체크 content technology를 SceneKit 으로 설정 자동으로 만들어진 파일과 코드들을 삭제해주기 ViewController도 sceneView만 남기고 일단 다 삭제! (이 상태에서는 session을 설정안해줬기 때문에 돌리면 크래쉬납니다) [2] ARConfiguration 종류 정하기 + isSupported 이용하여 지원하지 않는 기기 안내하기 ARConfiguration은 현재 session에서 ARKit 기능 중 어떤 것을 쓸 건지를 정의해놓은 객체 라고 하는데, ARConfiguration을 상속하는 여러 친구들..
SCNGeometry를 상속받은 친구들 중, SCNText, SCNBox, SCNSphere 를 화면에 띄워보자 : ) 일단 프로젝트를 만들면 scene에 기본으로 넣어져있는 ship.scn을 지우고 scene에 아무 것도 없게 해준다 let scene = SCNScene(named: "art.scnassets/ship.scn")! 즉 이렇게 시작한다 class ViewController: UIViewController, ARSCNViewDelegate { @IBOutlet var sceneView: ARSCNView! override func viewDidLoad() { super.viewDidLoad() // Set the view's delegate sceneView.delegate = self /..
새로운 프로젝트를 선택하고 다음과 같이 선택해주면 -! 이렇게 구성된 샘플 AR프로젝트가 생성된다 이렇게 ViewController 코드가 설정되어있다 import UIKit import SceneKit import ARKit class ViewController: UIViewController, ARSCNViewDelegate { @IBOutlet var sceneView: ARSCNView! override func viewDidLoad() { super.viewDidLoad() // Set the view's delegate sceneView.delegate = self // Show statistics such as fps and timing information sceneView.showsSta..
- Total
- Today
- Yesterday
- drf custom error
- github actions
- Flutter 로딩
- Django Firebase Cloud Messaging
- Django FCM
- flutter 앱 출시
- Sketch 누끼
- METAL
- DRF APIException
- flutter deep link
- Flutter Text Gradient
- 구글 Geocoding API
- Dart Factory
- cocoapod
- Python Type Hint
- SerializerMethodField
- PencilKit
- ipad multitasking
- Flutter Spacer
- flutter dynamic link
- 장고 Custom Management Command
- flutter build mode
- ribs
- Flutter Clipboard
- Watch App for iOS App vs Watch App
- Flutter getter setter
- 플러터 싱글톤
- Django Heroku Scheduler
- 플러터 얼럿
- 장고 URL querystring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |