版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.11.04 星期日 |
前言
很多做视频和图像的,相信对这个框架都不是很陌生,它渲染高级3D图形,并使用GPU执行数据并行计算。接下来的几篇我们就详细的解析这个框架。感兴趣的看下面几篇文章。
1. Metal框架详细解析(一)—— 基本概览
2. Metal框架详细解析(二) —— 器件和命令(一)
3. Metal框架详细解析(三) —— 渲染简单的2D三角形(一)
4. Metal框架详细解析(四) —— 关于GPU Family 4(一)
5. Metal框架详细解析(五) —— 关于GPU Family 4之关于Imageblocks(二)
6. Metal框架详细解析(六) —— 关于GPU Family 4之关于Tile Shading(三)
7. Metal框架详细解析(七) —— 关于GPU Family 4之关于光栅顺序组(四)
8. Metal框架详细解析(八) —— 关于GPU Family 4之关于增强的MSAA和Imageblock采样覆盖控制(五)
9. Metal框架详细解析(九) —— 关于GPU Family 4之关于线程组共享(六)
10. Metal框架详细解析(十) —— 基本组件(一)
11. Metal框架详细解析(十一) —— 基本组件之器件选择 - 图形渲染的器件选择(二)
12. Metal框架详细解析(十二) —— 基本组件之器件选择 - 计算处理的设备选择(三)
13. Metal框架详细解析(十三) —— 计算处理(一)
14. Metal框架详细解析(十四) —— 计算处理之你好,计算(二)
15. Metal框架详细解析(十五) —— 计算处理之关于线程和线程组(三)
16. Metal框架详细解析(十六) —— 计算处理之计算线程组和网格大小(四)
17. Metal框架详细解析(十七) —— 工具、分析和调试(一)
18. Metal框架详细解析(十八) —— 工具、分析和调试之Metal GPU Capture(二)
19. Metal框架详细解析(十九) —— 工具、分析和调试之GPU活动监视器(三)
20. Metal框架详细解析(二十) —— 工具、分析和调试之关于Metal着色语言文件名扩展名、使用Metal的命令行工具构建库和标记Metal对象和命令(四)
21. Metal框架详细解析(二十一) —— 基本课程之基本缓冲区(一)
22. Metal框架详细解析(二十二) —— 基本课程之基本纹理(二)
23. Metal框架详细解析(二十三) —— 基本课程之CPU和GPU同步(三)
24. Metal框架详细解析(二十四) —— 基本课程之参数缓冲 - 基本参数缓冲(四)
25. Metal框架详细解析(二十五) —— 基本课程之参数缓冲 - 带有数组和资源堆的参数缓冲区(五)
26. Metal框架详细解析(二十六) —— 基本课程之参数缓冲 - 具有GPU编码的参数缓冲区(六)
27. Metal框架详细解析(二十七) —— 高级技术之图层选择的反射(一)
28. Metal框架详细解析(二十八) —— 高级技术之使用专用函数的LOD(一)
29. Metal框架详细解析(二十九) —— 高级技术之具有参数缓冲区的动态地形(一)
30. Metal框架详细解析(三十) —— 延迟照明(一)
31. Metal框架详细解析(三十一) —— 在视图中混合Metal和OpenGL渲染(一)
32. Metal框架详细解析(三十二) —— Metal渲染管道教程(一)
33. Metal框架详细解析(三十三) —— Metal渲染管道教程(二)
34. Metal框架详细解析(三十四) —— Hello Metal! 一个简单的三角形的实现(一)
35. Metal框架详细解析(三十五) —— Hello Metal! 一个简单的三角形的实现(二)
About Metal and This Guide - 关于Metal和这个指南
注意:这个指南相对比较老,但是里面很多东西还是有借鉴意义了,大家感兴趣的可以参考下。
Metal框架支持GPU加速的高级3D图形渲染和数据并行计算工作负载。 Metal提供了一个现代化的简化API,用于组织,处理和提交图形和计算命令的细粒度,低级控制,以及这些命令的相关数据和资源的管理。 Metal的主要目标是最小化执行GPU工作负载所带来的CPU开销。
At a Glance - 概览
本文档描述了Metal的基本概念:命令提交模型,内存管理模型,以及独立编译的代码用于图形着色器和数据并行计算函数的使用。然后,该文档详细说明了如何使用Metal API编写应用程序。
您可以在以下章节中找到更多详细信息:
- Fundamental Metal Concepts简要介绍了Metal的主要特征。
- Command Organization and Execution Model解释了如何创建命令并将其提交给GPU以执行。
- Resource Objects: Buffers and Textures讨论设备内存的管理,包括表示GPU内存分配的缓冲区和纹理对象。
- Functions and Libraries描述了如何在Metal应用程序中表示Metal着色语言代码,以及如何将Metal着色语言代码加载到GPU并执行。
- Graphics Rendering: Render Command Encoder描述了如何渲染3D图形,包括如何跨多个线程分布图形操作。
- Data-Parallel Compute Processing: Compute Command Encoder解释了如何执行数据并行处理。
- Buffer and Texture Operations: Blit Command Encoder描述了如何在纹理和缓冲区之间复制数据。
- Metal Tools列出了可用于帮助您自定义和改进开发工作流程的工具。
- Metal Feature Set Tables列出了每个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中引入的新功能。
- Tessellation描述了用于细分补丁的Metal细分管道,包括使用计算内核,曲面细分和后细分顶点函数。
- Resource Heaps描述了如何从堆中分配资源,在它们之间使用别名,并使用围栅跟踪它们。
Prerequisites - 先决条件
您应该熟悉Objective-C
语言,并且熟悉使用OpenGL
,OpenCL
或类似API进行编程。
See Also - 同可参考
- Metal Framework Reference是一组文档,描述了Metal框架中的接口。
- Metal Shading Language Specification是一个文档,它指定Metal着色语言,用于编写Metal应用程序使用的图形着色器或计算函数。
- 此外,
Apple Developer Library
中提供了几个使用Metal的示例代码项目。
后记
本篇主要讲述了Metal编程指南之概览,感兴趣的给个赞或者关注~~~