CIWarpKernel은 CIKernel 의 서브클래스로 이미지에서 geometry 관련 정보만 프로세싱 할 때 쓰인다고 합니다. Warp라는 단어는 " (원래의 모습을 잃고) 휘게 만들다" 라는 뜻을 가지고 있습니다. [1] input type Core Image Kernel Language에서는 input 파라미터가 필요없는 것같고 Metal Shading Language에서는 input type이 destination인데, destination은 float2를 의미합니다. [2] return type 이미지 좌표의 포지션을 리턴해줍니다. Core Image Kernel Language에서는 리턴타입이 vec2, Metal Shading Language에서는 리턴타입이 float2 입니다. => 아래..
CIBlendKernel는 CIColorKernel의 서브클래스입니다. 두개의 이미지를 blending (혼합) 하는데 사용한다고 합니다. [1] input type 두개의 파라미터를 가집니다. (foreground image와 background image) Core Image Kernel Language 라면 인풋 타입이 __sample Metal Shading Language 라면 인풋 타입이 sample_t 입니다. [2] return type pixel color for the output image를 리턴합니다. Core Image Kernel Language 라면 리턴 타입이 vec4 Metal Shading Language 라면 리턴 타입이 float4 입니다. [3] 예제 Backgrou..
[CoreImage] 기본 필터 & 커스텀 필터 (OpenGL, Metal) 적용하기 이 포스팅에서 커스텀 필터 만들때, CIColorKernel 를 썼는데 더 자세히 알아보려고 합니다..! CIColorKernel은 CIKernel 의 서브클래스로 이미지 프로세싱에서 딱 컬러값만 프로세싱해주고 싶을 때 사용합니다. [1] input type 0개 이상의 input images들을 받을 수 있습니다. 각각의 input image는 특정 타입의 파라미터로 표현됩니다. Core Image Kernel Language (OpenGL Shading Language) 에서는 파라미터 타입이 __sample 이고 Metal Shading Language 에서는 파라미터 타입이 sample_t 입니다. __sampl..
[1] 기본 필터 Core Image 는 이미지 프로세싱을 위한 기술입니다. 내장된(built-in) 이미지 필터를 사용해서 이미지를 프로세싱할 수 있고 여러가지 이미지 필터를 체이닝해서 복잡한 효과를 낼 수 도 있다고 합니다. Core Image Filter Reference 에서 빌트인 이미지 필터들이 어떤 것이 있는 지 볼 수 있습니다. 필터를 적용하기 위해, Core Image에서 이렇게 세개가 핵심 개념입니다 앱에 milk라는 이미지를 넣어줬구요 CISepiaTone이라는 필터를 사용해보겠습니다. 이런 결과가 나오게 됩니다 위의 코드는 총 3단계를 진행했습니다. 1. input으로 들어갈 이미지를 CIImage로 변환하여 준비 2. 쓰고 싶은 빌트인 필터 고르고 아래의 key,value 값 설정..
[기본 개념] 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을 상속하는 여러 친구들..
- Total
- Today
- Yesterday
- ribs
- 플러터 싱글톤
- ipad multitasking
- DRF APIException
- Flutter Text Gradient
- Django Firebase Cloud Messaging
- Sketch 누끼
- flutter build mode
- 플러터 얼럿
- Django FCM
- github actions
- flutter dynamic link
- 구글 Geocoding API
- flutter deep link
- 장고 URL querystring
- Flutter getter setter
- SerializerMethodField
- Watch App for iOS App vs Watch App
- 장고 Custom Management Command
- Flutter Spacer
- METAL
- Django Heroku Scheduler
- Dart Factory
- drf custom error
- PencilKit
- cocoapod
- flutter 앱 출시
- Python Type Hint
- Flutter Clipboard
- Flutter 로딩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |