iOS camera에 실시간 filter 효과 적용 – CoreImage, Metal 및 MetalKit 공부 1편

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • 광현
      참가자
      • 글작성 : 15
      • 답글작성 : 26

      다른 스터디원과의 팀플젝 주제로 필터 적용, 사진 편집(자르기, 회전) 의 기능을 갖는 사진 앱을 정하면서 실시간으로 필터 적용하는 방법에 대해 공부하게 되었습니다. 원하는 결과는 위 이미지 처럼 실시간으로 필터가 적용되고 system camera UI 가 아니라 custom UI를 적용하는 것입니다.

       

      샘플 코드: AVCamFilter ( Core Image 와 Metal을 사용하여 rose-colored lens 필터가 어떻게 적용되는 지 보여주는 코드)

      주의 사항:  빌드 및 실행은 iOS12 이상에서 실행해야 하며 시뮬레이터에서는 동작하지 않는다고 한다. 따라서 Metal은 시뮬레이터에서 컴파일 될 수 없으므로 빌드하기 전에 빌드 타켓과 스키마를 실제 기기 또는 Generic iOS Device로 설정해야한다. Depth 효과는 Depth 캡쳐를 지원하지 않는 아이폰 6S 나 그 이전 기기에서는 볼 수 없다고 한다.

      Metal Framework

      • Metal Framework 는 향상된 3D graphic 과 GPU를 사용하여 data-parallel computations을 수행하는 Framework 입니다.
      •  게임의 복잡한 3D 환경이나 영상처리 앱(Final Cut Pro) ,  많은 데이터를 다루는 앱들(과학적 조사 목적을 수행하는 앱)에 사용된다고 한다

      Metal Kit

      • Metal Kit은 Metal app을 빠르고 쉽게 적은 양의 코드로 만들게 해주는 Framwork 입니다.

      실시간 필터 처리에 Metal, Metal Kit을 사용하는 이유

      • AVCaptureVideoPreviewLayer에서는 프레임들을 직접 AVCaptureSession에서 직접 받아오기 때문에 만드려고 하는 앱에 효과를 적용할 수 없기 때문이라고 합니다.
      • MTKView를 상속함으로, AVCamFilter는 매 프레임을 렌더링 하기 전에 필터를 적용할 수 있다고 합니다.

      샘플 코드에 포함된 함수나 클래스 하나 하나 다 공부해야 되서 천천히 올리겠습니다. 

      • 이 게시글은 광현에 의해 4 years, 6 months 전에 수정됐습니다.
    • 야곰
      키 마스터
      • 글작성 : 37
      • 답글작성 : 579

      필터에 굳이 MetalKit을 사용하는 이유가 궁금했는데 설명해주셔서 잘 이해했습니다! 고맙습니다 😀

      • 광현
        참가자
        • 글작성 : 15
        • 답글작성 : 26

        샘플 코드 양 자체가 워낙 방대해서 끝까지 끝낼 수 있을 지 모르겠습니다 ㅎㅎ

1 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.

logo landscape small

사업자번호 : 743-81-02195
통신판매업 신고번호 : 제 2022-충북청주-1278 호
고객센터 : 카카오톡채널 @yagom