001-Metal介绍
2018-10-09 本文已影响30人
Yasic
关于 Metal 及指南
Metal Framework 支持利用 GPU 加速的高级 3D 图形渲染和数据并行计算工作。Metal 提供了一个现代化、流水线型 API,底层架构控制、处理和提交图形和计算命令以及与命令相关的数据及资源管理。Metal 的主要目标即最小化 GPU 工作过程中的 CPU 开销。
预览
这份文档描述了 Metal 中的一些基础概念:命令提交模型、内存管理模型、独立编译的图形着色器代码的使用以及并行数据计算函数。文档同时还描述了如何使用 Metal API 来开发一个 app。
你可以在下面的章节中找到更多详细内容:
- Metal 基础概念 概括描述了 Metal 的主要特性
- 命令结构和执行模型 解释了如何创建和提交命令到 GPU 去执行
- 资源对象:缓冲和纹理 讨论了对设备内存的管理,包括用来表示 GPU 内存空间的缓冲和纹理对象
- 函数和库 描述了 Metal 中如何表示 Metal 着色器语言代码,以及 Metal 着色器语言代码如何被加载到 GPU 并执行。
- 图形渲染:渲染命令编码器 描述了如何渲染一个 3D 图形,包括如何在多线程上分发图形操作
- 数据并行计算处理:计算命令编码器 解释了如何执行数据并行处理
- 缓冲和纹理操作 描述了如何在纹理和缓冲之间拷贝数据
- Metal 工具 列举了可以帮助你优化和提升开发流程的工具
- Metal 特性集合列表 列举了每个 Metal 特性集合的功能可用性,实现限制和像素格式兼容性
- What's New in iOS 9 and OS X 10.11 总结了 iOS 9 和 OS X 10.11 中引入的新特性
- What’s New in iOS 10, tvOS 10, and OS X 10.12 总结了在 iOS 10、tvOS 10 和 OS X 10.12 引入的新特性
- 细分曲面 描述了 Metal 的细分曲面流水线,它被用来细分一个 patch,包括一个计算内核的使用、细分曲面器和细分曲面后的顶点函数
- 资源堆 描述了在堆中分配资源、使用别名以及使用 fence 追踪资源
先决条件
你应当熟悉 Objectivec 语言,有 OpenGL、OpenCL 或类似 API 的编程经验。
相关
Metal Framework Reference 是一个描述 Metal 接口的文档合集。
Metal Shading Language Specification 是一个介绍 Metal 着色器语言的文档,Metal 着色器语言用于编写图形着色器或者计算方法,从而在 Metal app 中使用。
此外,在 Apple Developer Library 中有大量示例代码项目。