티스토리 뷰

공부

Metal이 뭔지 궁금해서 쓰는 글

Zedd0202 2020. 1. 5. 15:21
반응형

 

안녕하세요 :) Zedd입니다.

 

Apple : 릠들 OpenGL deprecate시킬거ㅇㅇ 대신 Metal 쓰삼ㅋㅋ 울 Metal이 이것도 좋고 저것도 좋고....얘로 이것도 할 수 있고...봐바 개쩔지

 

제가 아는건 여기 까지에요..

애플이 OpenGL을 deprecate시켰는데 대신 Metal을 쓰면 된다더라~

Metal로 뭐 쉐이더나 뭐 이미지 필터를 만들 수 있다더라~~~~

 

글 읽어주셔서 감사합니다.

~ 끝 ~

 

 

 

 

 

Metal


 

아니

흠 그래서 이 Metal에 대해 좀 알고싶어져서 글을 쓰게 되었어요 :D

그러니까 오늘 알고싶은건!!! 이 Metal로 뭘 할 수 있냐!!!!!!!!!!!!!! 입니다.

 

그럼 공부해봅시다 ~.~

 

그럼 먼저!! OpenGL을 보도록 할게요.

OpenGL은 Open Graphics Library의 약자입니다. 

실리콘 그래픽스사에서 만든 2차원 및 3차원 그래픽스 표준 API 규격으로,

프로그래밍 언어 간 플랫폼 간의 교차 응용 프로그래밍을 지원한다고 해요.

 

어쩌구 저쩌구

제가 알고싶은건..그래서 OpenGL로 뭐할 수 있는데?

뭐 지금 말할거 말고 OpenGL이 다양한 걸 할 수 있겠지만..제가 제일 아~ 했던걸 적어보자면,

 

그러니까 3D 게임을 한다고 생각해볼게요.

3D니까 아무래도 입체감이 있잖아요?

이 입체감을 살리려고 뭐 물이면 물 텍스쳐를 살린다던가, 빛을 준다던가, 그림자의 변화를 준다던가..

소소한 작업같지만 굉장히 복잡하고 많은 연산이 필요하다고 합니다.

 

변환, 채색, 조명, 텍스처, 그림자 등 변화를 주는 단계가 많고 수학적인 계산도 요구되어,

소프트웨어만으로는 한계가 있으며 하드웨어 가속 기능이 필수적이라고 해요. 

이런 복잡한 연산과 하드웨어 제어를 대신해 주는 것이 바로 3D 그래픽 라이브러리이며

그 중 하나가 ~ OpenGL ~ 이라고 합니다. 

 

저는 이걸 읽고 ㅇ ㅏ~ 했는데 읽고 계신분들도 어느정도 감을 잡으셨으면 좋겠네요..

뭐 제가 정말 자세히는 안찾아봐서..위에 언급한것들 말고도 다양한 것들을 할 수 있겠죠!?

 

아무튼 이 OpenGL이 있고..

OpenGL ES라는게 또 있습니다. 

 

OpenGL ES (임베디드 시스템을 위한 OpenGL)는 크로노스 그룹이 정의한 3차원 컴퓨터 그래픽스 API인 OpenGL의 서브셋으로, 휴대전화, PDA 등과 같은 임베디드 시스템을 위한 API이다.

출처 : https://ko.wikipedia.org/wiki/OpenGL_ES

 

그냥 폰에서 쓸라고 만든거고 OpenGL인데 OpenGL의 Subset인거에요.

그 OpenGL ES가

 

애플 프레임워크에 있습니다. 

잘 사용하고 있엇지만, WWDC 2018에서 OpenGL ES, OpenCL을 deprecate하겠다고 선언(?)합니다!

그리고 대신 Metal을 쓰라고 제안합니다.

 

요 키노트는 WWDC2019년도꺼 

 

도큐먼트에 가면 이런...

 

2018년에 우리 OpenGL deprecate할거임;;

했다고 해서 Metal이 2018년에 나온건 아니고..

 

WWDC2014에서 발표된 프레임워크에요. 꽤 오래됐죠?

 

메탈의 원래 로고였다고..

그럼 Metal을 공부해봅시다.

Metal은 위에서 말했다 시피 

WWDC2014에서 처음 발표된 프레임워크이며 "애플"이 개발한 프레임워크입니다. 

 

그리고 WWDC2017에서 Metal 2를 발표합니다!

 

그러면서 로고도 깔쌈하게 바뀜

 

2014년 Metal이 처음소개되고 지금까지, Apple의 핵심 프레임워크는 Metal을 채택했다고 해요. 

그리고 큰 성과를 거두고 있다고 합니다.

 

응 나는 Metal사용안해~

 

앱이 SpriteKit, SceneKit, RealityKit, Core Image, Core Animation과 같은 레이어 위에 구축 된 경우 

이미 Metal을 사용하고있는 것입니다.

 

그리고...애초에..

UIKit이 얘네 위에 있기 때문에....걍 우리는 Metal쓰고 있는거임

 

암튼 Metal은 모가좋냐?

 

  • OpenGL의 그래픽과 OpenCL의 계산을 통합 API로 결합함.

  • 앱에서 멀티스레드 렌더링 사용가능

  • 낮은 오버헤드

  • 고효율/고성능 GPU 프로그래밍 API

  • Metal의 shading language는 C++기반이며, 앱에서 사용된 모든 shaders를 precompile할 수 있으므로, 다양한 재질의(material) shaders를 쉽게 만들 수 있음.

 

그리고 OpenGL과 비교하여 성능도 아주 뛰어나다고 해요 :D

http://donghyun53.net/metal-api가-opengl보다-효율적인-이유/

 

Metal API가 OpenGL보다 효율적인 이유 - 골수공돌이의 탐구실

Metal API(이하 Metal)는 OpenGL과 OpenCL을 대체하기 위해 애플에서 발표한 API인데 2014년 iOS에 대한 지원을 시작으로 2015년과 2016년에는 각각 macOS와 tvOS에 대한 지원도 추가 되었습니다. 처음 Metal이 발표된 시점이 거의 3년 전이라 조금 지난 이야기이긴...

donghyun53.net

위 블로그가 설명을 잘 해놓은 것 같아 첨부합니다.

 

자..저는 Core Image가  Metal 위에 있는지 모르고

Core Image로는 이미지 필터를 먹일 수 있는걸로 아는데..Metal로 먹이는건 뭐가 다른걸까ㅇㅁㅇ...했는데 

그냥 Core Image쓰면 Metal 사용해서 이미지 필터링 한거다~~ 라고 볼 수 있는거네요..!!

 

뭐 Metal을 아주 살짝 본거긴 한데..

혹시 틀린 내용을 발견하셨다면 댓글 꼭 부탁드려요 :D

 

 

 

 

참고 : 

https://lueseypid.tistory.com/34

https://developer.apple.com/videos/play/wwdc2019/611/?time=180

 

반응형

'공부' 카테고리의 다른 글

RIBs 시작하기 - Root 설정  (2) 2020.01.14
RIBs란?  (6) 2020.01.10
Xcode ) Custom File Template만들어보기  (1) 2020.01.04
Mac에서 Go 시작하기 - 설치와 설정  (0) 2020.01.03
Behind the Scenes of the Xcode Build Process (1)  (1) 2019.12.14