티스토리 뷰

🍏/iOS

[CIKernel] CIBlendKernel에 대해 알아보자

사용자 eungding 2020. 6. 12. 14:55
728x90
반응형

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] 예제

 

Background image하나를 넣어줍니다.

 

 

메탈 파일에 averageBlend라는 함수를 추가해줍니다.

두개 input image의 rgba 값의 평균을 리턴해줍니다. 

foreground와 background를 반반씩 블렌딩하려는 것 같아요

 

https://developer.apple.com/documentation/coreimage/ciblendkernel

 

그리고 CIBlendKernel을 만들고 돌려주세요~

(폭풍 강제 언래핑...실제로 이렇게 따라하면 안됩니다..)

 

 

그러면 이렇게 백그라운드 이미지와 블렌딩이 된 결과가 나오네요...! 

 

 

 

[4] Builtin Blend Kernels

 

3번처럼 따로 메탈파일에 blend함수 안만들어줘도 

빌트인 커널들을 사용할 수 있습니다 (꽤 많아요)

 

 

 

 

그 중에서 vividLight라는 것을 써볼게요-! 

 

 

 

 

 

728x90
반응형
댓글
댓글쓰기 폼