ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Hello Metal
    OpenGL/iOS_Metal 2018. 10. 6. 04:41

    안녕하세요 dely입니다:)

    iOS에서 OpenGL 역할을 하는 Metal을 공부하면서 정리해보려고 합니다.

     

    > Metal의 특징

    - Apple framework로 GPU 접근에 빠른 성능을 냅니다.

    - iOS 자체 3D 그래픽 기술입니다.

    - OpenGL보다 단위 시간 당 호출 속도가 10배 빠르다고 합니다. (Apple 칩 성능을 극도로 끌어올리는 기술)

    - shader는 precompile 하기 때문에 빠른 성능을 낼 수 있습니다. (C++ 기반)

     

    > Metal 사용방법

    - Swift 프로젝트에 적용하기 위해 MetalKit을 사용합니다.

    - texture를 화면에 출력하기 위해 UIView를 상속받은 MTKView 클래스를 사용합니다.

    - 이미지 프로세싱 작업을 위해 다음과 같은 몇가지 step을 거치게 됩니다.

     


     

    1. Device 생성 (MTLDevice) : GPU 인터페이스로서의 역할을 위해Command Queue, Rendering State 및 Library와 같은 객체를 만드는 방법을 제공합니다.

    2. Library 생성 (MTLLibrary) : compute shader(kernel function) 의 레파지토리 역할을 한다고 합니다. (아직 잘모르겠음..)

    3. Command Queue 생성 : GPU가실행시킬 Command Buffer의 list를 담아두기 위함입니다. 생성에 큰 비용이 들기 때문에 재사용을 합니다.

    4. Pipeline State 생성 : GPU에서 프로세싱 될 data들을 준비해두는 역할을 담당합니다.

    1) Data preparation for the GPU

    2) Vertex processing

    3) Primitive assambly

    4) Fragment shading

    5) Raster Output

     

    5. Command Buffer 생성 : 한 프레임을 렌더링 하기 위해 필요한 명령들을 저장합니다.

    6. Command Encoder 생성 : 작성한 코드를 바이트 코드로 변환시키기 위함입니다.

    반응형

    'OpenGL > iOS_Metal' 카테고리의 다른 글

    Drawing Primitives  (0) 2019.07.03
    Hello Again, Metal  (0) 2019.07.01
    Add red triangle  (0) 2018.10.13
    Refactoring Fill the Yellow texture  (0) 2018.10.12
    Fill the Yellow texture  (0) 2018.10.07

    댓글

Designed by Tistory.