本系列文章是对 metalkit.org 上面MetalKit内容的全面翻译和学习.
当九月份采用A11
的新机型(8,8Plus和X)发布时,一个新的GPU Family 4
网页也发布了,同时还有一系列标签为Fall 2017
的新Metal视频发布出来.新的A11 Bionic处理器,是第一款苹果设计的GPU
并带有三个核心的处理器.在内部测试状态下,比A10
的GPU
快了30%.它还带有一个新的神经引擎
硬件以应对机器学习.
下面是我从Metal Feature Sets文档中整理出来的一张表格.它只包括了A11
上引入的Metal 2
特性.
注意:我只列出了
A11
上出现的新特性,某些特性在macOS
上也可以使用.
让我们简单看下这些特性:
- Imageblocks - 这并不是一个iOS上的新概念,但是,
A11
上的Metal 2
让我们能将imageblocks(它是在tile memory瓦片内存中的结构化图像数据)当做数据结构体来进行完全控制.它们是和片段着色器,计算着色器整合在一起的. - Tile Shading - 它是一种渲染技术,能允许片段着色器和计算着色器访问两个渲染语句之间的持久化的Tile memory瓦片内存.Tile memory是GPU上的芯片内存,通过在本地储存中间结果而不必使用设备内存,来改善性能.一个语句的瓦片内存可以被后面语句访问.
- Raster Order Groups - 提供来自片段着色器的顺序内存访问和便利特性,例如顺序无关的透明度,双层G缓冲器,以及体素化.
- Imageblock Sample Coverage Control - A11上的Metal 2追踪每个像素的惟一采样数,在新几何体被渲染时更新这个信息.这样当被覆盖的采样颜色相同时,一个像素混合迭代会更少,相比A10或更早的GPU.
- Threadgroup Sharing - 允许多个线程组及一个线程组内的各线程使用原子操作或一个内存栅栏来互相通信,而无需多个内存栅栏.
与Metal
发布的同时,Face Tracking with ARKit 视频和Creating Face-Based AR Experiences网页也被发布出来了.Face Tracking
,目前只能在iPhone X
上使用,因为当前只有它拥有TrueDepth
前置摄像头.我们在九月发布会的keynote上看到的最直接运用面部追踪的应用就是Animoji了.全新的Neural Engine神经引擎
硬件负责处理FaceID
和Animoji
,还有其它机器学习任务.
因为我最近购买了iPhone X
,可能接下来会写几篇Using ARKit with Metal
系列文章.
下次见!