여기서 봤는데, 너무 간결한데 쏙쏙 이해가 잘되게 쓰셨다..!! 감동.. 🥺 Creating a device A Metal device (MTLDevice) is the interface to the GPU. It supports methods for creating objects such as function libraries and textures. Creating a library The library (MTLLibrary) is a repository of kernel functions (in our case, compute shaders) that are typically compiled into your application by Xcode. Creating a Command Queue The..
Using Metal to Draw a View’s Contents 정리 메탈로 graphics content를 렌더링 하는 법을 배울 것-!! 1. MTKView 준비 & 세팅 2. MTKViewDelegate 설정 3. MTLCommandQueue 준비 4. Render Pass Descriptor & Render Pass 만들기 5. Drawable을 screen에 present하기 6. Command Buffer를 commit 하기 [1] MTKView 준비 & 세팅 MetalKit 은 메탈 앱을 적은 코드로 더 빠르고 쉽게 만들 수 있게 해주는 프레임 워크이다. 우선 MetalKit을 import 해준다. import MetalKit draw를 위해 MTKView를 준비한다. MTKView는 N..
Basic Tasks and Concepts 중, Performing Calculations on a GPU 정리 1. 메탈 파일 만들고 MSL로 GPU 함수 작성하기 2. MTLDevice 준비하기 3. MTLCommandQueue 준비하기 4. 메탈 함수 불러와서 pipeline으로 컨버팅하기 5. MTLBuffer 만들고 버퍼에 데이터 load해주기 6. MTLCommand Buffer 만들기 7. MTLCommand Encoder 만들기 8. Command Buffer를 commit해서 commands 실행시켜주기 [1] MSL로 GPU 함수 작성하기 두 array의 elements들을 더한 값을 result라는 array에 추가하는 코드를 살펴보자 아래 코드는 CPU에서 연산이 수행..
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,..
- Total
- Today
- Yesterday
- 장고 URL querystring
- cocoapod
- Flutter 로딩
- ipad multitasking
- drf custom error
- Flutter Clipboard
- flutter dynamic link
- Python Type Hint
- Flutter Spacer
- github actions
- PencilKit
- Flutter Text Gradient
- Django Heroku Scheduler
- 플러터 싱글톤
- Flutter getter setter
- flutter deep link
- 장고 Custom Management Command
- ribs
- Sketch 누끼
- Watch App for iOS App vs Watch App
- Dart Factory
- DRF APIException
- SerializerMethodField
- flutter build mode
- 플러터 얼럿
- METAL
- 구글 Geocoding API
- Django Firebase Cloud Messaging
- Django FCM
- 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 |