MetalKit: Apple의 그래픽 프레임워크 시작하기
홈페이지홈페이지 > 소식 > MetalKit: Apple의 그래픽 프레임워크 시작하기

MetalKit: Apple의 그래픽 프레임워크 시작하기

Aug 20, 2023

MetalKit은 Metal을 더 쉽게 이해할 수 있게 해주는 고급 프레임워크입니다. Apple의 3D 프레임워크를 사용하여 시작하는 방법은 다음과 같습니다.

Metal은 Apple 장치에서 3D 객체를 렌더링하기 위한 Apple의 3D 그래픽 및 게임 파이프라인입니다. OpenGL 및 기타 3D 프레임워크를 대체하도록 설계된 Metal은 Apple 하드웨어에 최적화되어 최대 성능을 달성할 수 있다는 장점이 있습니다.

Apple은 다른 3D 프레임워크에서는 불가능한 성능 수준으로 Apple 장치에 매우 부드러운 3D 렌더링을 제공합니다.

Apple의 아케이드 게임 앱을 구독하고 실행한 적이 있다면 iOS 또는 macOS 장치에서 Metal 렌더링의 예를 본 적이 있을 것입니다. 아케이드의 간략한 소개 애니메이션은 Metal을 사용하여 렌더링됩니다.

2015년 WWDC에서 Apple은 MetalKit이라는 또 다른 상위 수준의 Metal용 프레임워크를 선보였습니다. 이 프레임워크를 사용하면 3D 앱 개발을 더 간단하게 만드는 몇 가지 상위 수준 기능을 제공하여 Metal을 더 쉽게 사용할 수 있습니다.

특히 MetalKit은 다음 영역에서 추가 Metal API를 제공합니다.

MetalKit을 사용하면 MTKTextureLoader 클래스를 사용하여 자산 및 텍스처 로딩이 더 쉬워집니다. 이 클래스는 자산과 텍스처를 로드하고 텍스처 옵션을 설정하는 쉬운 방법을 제공합니다.

이러한 옵션에는 밉맵 사용 및 로딩, 캐시 및 저장 모드, 텍스처 좌표 변환, 큐브 텍스처 사용 및 RGB 색상 옵션이 포함됩니다.

밉맵(또는 MIP 맵)은 각 레이어가 이전 레이어보다 해상도가 점차 낮아지는 다중 레이어 이미지입니다. 밉맵은 이미지 렌더링 속도를 높이고 모아레 패턴과 같은 앨리어싱 아티팩트를 제거하는 데 사용됩니다.

모아레 패턴은 교차 픽셀 격자와 같은 선이나 일반 픽셀 패턴으로 구성된 컴퓨터 그래픽에 때때로 나타나는 산만한 줄무늬 또는 색상 아티팩트 패턴입니다.

MTKTextureLoader에 대한 전체 문서는 Apple 개발자 웹사이트의 Documentation/MetalKit/MTKTextureLoader에 있는 Metal 프레임워크 문서에서 확인할 수 있습니다.

Model I/O는 3D 및 2D 자산 관리를 위한 Apple의 개발자 프레임워크입니다. MetalKit의 Model I/O 통합에는 텍스처를 Metal 버퍼에 빠르게 로드하고 컨테이너를 사용하여 메시 데이터를 사용하기 위한 API가 포함되어 있습니다.

현재 MetalKit에는 약 6개의 모델 I/O 관련 클래스가 있으며 대부분 메시를 다루고 있습니다. (잠시 후에 수업과 객체 지향 프로그래밍에 대해 살펴보겠습니다.)

대부분의 iOS 및 macOS 앱은 뷰(시각적 정보와 UI 요소를 화면에 표시하는 표준 클래스)를 사용합니다. 다양한 뷰 하위 클래스는 다양한 유형의 뷰를 제공합니다.

예를 들어 iOS에서 UIView는 뷰 기본 클래스이지만 UIButton은 UIView에서 파생된 버튼 뷰 클래스입니다. iOS 또는 macOS에서 객체 지향 뷰 클래스를 사용하면 Apple 클래스에서 이미 정의한 표준 기능에 의존하는 추가 기능을 구축할 수 있습니다.

이를 객체 상속이라고 합니다. 앱의 개체를 코드와 코드가 작동하는 데이터를 모두 캡슐화하는 코드 묶음으로 생각하세요. 두 가지를 모두 객체로 묶음으로써 추가 객체에 의해 코드를 쉽게 재사용하고 용도 변경할 수 있습니다.

특히 MetalKit에서는 개발자가 앱에서 완전한 기능을 갖춘 Metal 뷰를 생성할 수 있는 새로운 클래스인 MTKView가 제공됩니다. 전용 Metal 뷰 클래스를 보유함으로써 별도의 추가 코드 없이 Metal에서 최적으로 뷰를 그리고 관리할 수 있습니다.

MTKView에 대한 Apple 문서는 개발자 웹사이트 Documentation/MetalKit/MTKView에 있습니다. 또한 MTKView에서는 먼저 해당 속성 중 하나에 MTLDevice를 설정하여 Metal 객체를 렌더링할 장치와 화면을 알려주어야 합니다.

MTKView는 텍스처를 렌더링할 수 있는 대상에 대한 질문이 있을 때 MTLRenderPassDescriptor도 제공합니다. Apple 개발자 사이트의 문서/금속/렌더링 패스 섹션을 확인하세요.

객체 지향 프로그래밍(OOP)에서 객체는 클래스로 정의됩니다. 클래스는 객체에 포함된 내용을 정의하는 소스 코드 파일의 정의이며, Swift에서는 객체의 실제 구현입니다.

클래스는 일부 기능을 수행하기 위해 다른 객체가 보낸 메시지를 수신할 수 있는 메서드(함수)를 정의합니다. 각 메서드에는 일부 작업을 수행하는 코드가 포함되어 있습니다.

New Project/strong from the File menu. From the project template chooser, choose strongiOS/strong or strongmacOS/strong at the top, then choose strongGame/strong from the icons below and click strongNext/strong:/p> construct. For example:/p> MTLVertexDescriptor defines a method (function) named buildMetalVertexDescriptor which returns a MTLVertexDescriptor on successful completion. This is called the return value or return type./p>New Project/strong>