iOS 专题IOSiOS 的那些事儿

Metal框架详细解析(一)—— 基本概览

2017-10-05  本文已影响430人  刀客传奇

版本记录

版本号 时间
V1.0 2017.10.05

前言

很多做视频和图像的,相信对这个框架都不是很陌生,它渲染高级3D图形,并使用GPU执行数据并行计算。接下来的几篇我们就详细的解析这个框架。

Metal是什么?

Metal 是一个和 OpenGL ES 类似的面向底层的图形编程接口,通过使用相关的 api 可以直接操作 GPU。

注意:Metal只针对苹果的平台系统使用,不像OpenGL ES 那样可以进行跨平台使用但是它能最大的挖掘苹果移动设备的 GPU 能力,进行复杂的运算,像 Unity 等游戏引擎都通过 Metal 对 3D 能力进行了优化。

下面看一下Metal在苹果软硬件框架里面的架构。

UIKit -> Core Graphics -> Metal/OpenGL ES -> GPU Driver -> GPU

Metal根据不同的 CommandBufferEncoder 可以提供不同的能力,除了优秀的 3D 渲染能力,Metal 还能提供强大的计算能力。

在 WWDC 2015,苹果发布了 Metal Performance Shaders (MPS) 框架,iOS 9 上的一组高性能的图像滤镜,其实就是边写好的 Shaders,提供了优秀的图像处理能力。同时还提供了高性能的矩阵运算的 Shaders ,能用来做机器学习的运算,在 GPU 上运行卷积神经网络。


Metal的特点

下面看一下Metal的特点:

其实这个我们在平时图像和视频渲染的时候,都需要对每一帧像素进行很多的浮点型运算,这个运算其实CPU个GPU都可以做,但是GPU处理起来更有优势,如果给CPU处理会很耗性能。通过有效的利用 GPU,可以成百倍甚至上千倍地提高手机上的图像渲染能力。如果不是基于 GPU 的处理,手机上实时高清视频滤镜是不现实,甚至不可能的。


基本架构

下面看一下该框架的基本信息。

Metal包括Metal frameworkMetalKit frameworkMetal shading languageMetal standard library。 您可以使用Metal来获取对图形处理单元(GPU)的低级和低开销访问,从而最大限度地提高图形和计算应用的潜力。

下面我们就看一下这个框架的基本架构。


框架结构解析

下面我们就详细的看一下这个框架的结构。

1. First Steps

2. Fundamentals

3. Compute

4. Graphics

5. Displays

6. Tools

7. Sample Code

8. Classes

9. Related Documentation

后记

未完,待续~~~

上一篇下一篇

猜你喜欢

热点阅读