Metal入门001-初识Metal

前言

Metal是苹果在2018年推出用于取代在苹果端的业务的图形编程接口,在2018年之前使用的是基于OpenGL ES封装的GLKit,通过Metal相关API直接操作GPU,能最大限度的利用GPU能力。

Metal特点

  • 低CPU开销
  • 最佳GPU性能,即metal 能在GPU上发挥最大的性能
  • 最大限度提供CPU/GPU的并发性
  • 有效的资源管理
Metal特点

Metal的图形管道(graphics pipelines)

Metal的图形渲染管道和OpenGL ES是一样的

  • 通过CPU将顶点数据传递到顶点着色器
  • 顶点着色器将处理好的顶点进行图元装配
  • 光栅化,得到每个像素点的颜色值
  • 将颜色传入片元片元着色器进行处理
  • 将数据存储到帧缓冲区,并显示到屏幕上
Metal Graphics Pipelines流程

Apple Metal 建议

  • Separate Your Rendering Loop 分开渲染循环
    • 不希望将渲染的处理放到VC中,希望将渲染循环封装在一个单独的类中
  • Respond to View Events 响应视图的事件
    • MTKViewDelegate协议,也需要放在自定义的渲染循环中
  • Metal Command Objects创建命令对象
    • 创建执行命令的GPU、与GPU交互的MTLCommandQueue对象以及MTCommandBuffer渲染缓存区湘

Metal命令对象之间的关系

  1. 命令缓冲区(commandBuffer)是命令队列(commandQueue)创建的
  2. 命令编码器(command encoder)将命令编码到命令缓存区中
  3. 提交命令缓存区并将其发送到GPU
  4. GPU执行命令并将结果呈现为可绘制
Metal命令对象之间的关系

你可能感兴趣的:(Metal入门001-初识Metal)