Metal-翻译笔记
Framework
Metal
使用图形处理器渲染高级3D图形并执行数据并行计算。
SDKs
-
iOS 8.0+
-
macOS 10.11+
-
tvOS 9.0+
On This PageOverviewTopicsSee Also
Overview
图形处理器(GPU)旨在快速渲染图形并执行数据并行计算。需要直接与设备上可用的GPU通信时,请使用Metal框架。渲染复杂场景或执行高级科学计算的应用程序可以使用此功能来实现最佳性能。此类应用包括:
-
渲染复杂3D环境的游戏
-
视频处理应用,如Final Cut Pro
-
数据处理应用程序,例如用于执行科学研究的应用程序
Metal与其他框架密切配合,以补充其功能。使用MetalKit简化在屏幕上获取Metal内容的任务。使用“ 金属性能着色器”实现自定义渲染功能或利用大型现有功能库。
许多高级Apple框架都是基于Metal构建的,以利用其性能,包括Core Image,SpriteKit和SceneKit。使用其中一个高级框架可以保护您免受GPU编程的细节影响,但编写自定义Metal代码可以使您获得最高级别的性能。
Topics
GPU Devices
在运行时访问GPU设备,这是Metal开发的基础。
选择运行Metal代码的系统默认GPU设备。
protocol MTLDevice
用于绘制图形或进行并行计算的GPU的金属接口。
通过考虑GPU功能,电源或性能特征,选择一个或多个运行Metal代码的GPU。
Command Setup
设置基础架构以在GPU上执行自定义代码。
Setting Up a Command Structure
设置命令结构
了解Metal如何在GPU上执行命令。
Devices and Commands
设备和命令
演示如何访问GPU并与之交互。
Labeling Metal Objects and Commands
标记金属对象和命令
为Metal对象和命令分配有意义的标签,以便您可以在捕获的帧的调用列表中轻松识别它们。
protocol MTLCommandQueue
protocol MTLCommandQueue
组织命令缓冲区以由GPU执行的队列。
protocol MTLCommandBuffer
protocol MTLCommandEncoder
存储编码命令以供GPU执行的容器。
protocol MTLCommandEncoder
protocol MTLCommandEncoder
存储编码命令以供GPU执行的容器。
Advanced Command Setup
高级命令设置
组织命令以获得最大的并发性和最小的依赖性。
Graphics
通过发出绘制调用来渲染图形,并在绘制到屏幕时选择演示文稿对象。
Hello Triangle
你好三角形
演示如何渲染简单的2D三角形。
Basic Buffers
基本缓冲区
演示如何使用顶点缓冲区管理数百个顶点。
Basic Texturing
基本纹理
演示如何加载图像数据和纹理四边形。
protocol MTLRenderCommandEncoder
protocol MTLRenderCommandEncoder
用于编码渲染过程的命令的对象。
protocol MTLParallelRenderCommandEncoder
protocol MTLParallelRenderCommandEncoder
分割单个渲染过程的对象,以便可以从多个线程同时进行编码。
Render Pass
渲染通行证
用于更新一组渲染目标的命令集合。
Render Pipeline
渲染管道
应该如何呈现图形基元的规范。
Vertex Data
顶点数据
指定与图形处理相关联的纹理内的精确位置的点。
Presentation Objects
演示对象
用于在屏幕上显示金属内容的各种用户界面元素。
Parallel Computation
在GPU上并行处理任意计算。
Hello Compute
你好计算
演示如何使用GPU执行数据并行计算。
About Threads and Threadgroups
关于线程和线程组
了解Metal如何组织计算处理工作负载。
Calculating Threadgroup and Grid Sizes
计算线程组和网格大小
在分派计算处理工作负载时,计算线程组和网格的最佳大小。
class MTLComputePipelineDescriptor
class MTLComputePipelineDescriptor
用于自定义编译新计算管道状态对象的方式的对象。
protocol MTLComputePipelineState
protocol MTLComputePipelineState
包含已编译计算管道的对象。
protocol MTLComputeCommandEncoder
protocol MTLComputeCommandEncoder
用于在计算传递中编码命令的对象。
Shaders
用 Metal Shading Language.编写GPU代码。
Shader Authoring着色器创作
用 Metal Shading Language.编写GPU代码。
Libraries图书馆
将着色器组织到库中。
Functions功能
检索有关渲染和计算功能的信息。
Resources
创建对象以保存GPU数据。
设置存储模式,以定义资源的内存位置和访问权限。
protocol MTLResource
protocol MTLResource
GPU可访问的内存分配。
protocol MTLBlitCommandEncoder
protocol MTLBlitCommandEncoder
编码器,用于编码内存复制,过滤和填充命令。
Buffers
缓冲区
创建和操作非结构化GPU资源。
Textures
纹理
创建和操作结构化GPU资源。
Heaps
堆
创建单个内存分配,您可以从中分配资源。.
Synchronization
同步
管理对应用中资源的访问,以避免数据危害。
Tools
Tools, Profiling, and Debugging工具,分析和调试
在命令行构建Metal函数库,或使用Xcode调试问题,并提高性能。
Reducing the Memory Footprint of Metal Apps减少金属应用的内存占用量
了解在iOS和tvOS中有效使用内存的最佳实践。
Cookbook
查看图形技术的集合并试验其伴随示例代码。
Deferred Lighting
延期照明
演示如何实现利用独特Metal功能的延迟照明渲染器。
Reflections with Layer Selection
层选择的反射
演示如何使用图层选择来减少反射对象所需的渲染过程的数量。
LOD with Function Specialization
具有功能专业化的LOD
演示如何使用专用函数根据动态条件选择细节级别。
Dynamic Terrain with Argument Buffers
具有参数缓冲区的动态地形
演示如何使用参数缓冲区通过GPU驱动的管道实时渲染动态地形。
Interoperability
Mixing Metal and OpenGL Rendering in a View
在视图中混合金属和Open GL渲染
使用可互操作的纹理在同一视图中使用Metal和OpenGL绘制。
Basic Geometric Types
用于定义大小,位置和区域的结构。
struct MTLOrigin
struct MTLOrigin
图像或纹理中像素相对于左上角的位置,其坐标为(0,0)。
struct MTLRegion
struct MTLRegion
图像或纹理中的矩形像素块,由其左上角和大小定义。
struct MTLSize
struct MTLSize
一组声明对象大小的维度,例如图像,纹理,线程组或网格。
func MTLOriginMake(Int, Int, Int) -> MTLOrigin
func MTLOriginMake(Int, Int, Int) -> MTLOrigin
返回图像或纹理中像素的位置。
func MTLRegionMake1D(Int, Int) -> MTLRegion
func MTLRegionMake1D(Int, Int) -> MTLRegion
返回图像或纹理数据的1D区域。
func MTLRegionMake2D(Int, Int, Int, Int) -> MTLRegion
func MTLRegionMake2D(Int, Int, Int, Int) -> MTLRegion
返回图像或纹理数据的2D矩形区域。
func MTLRegionMake3D(Int, Int, Int, Int, Int, Int) -> MTLRegion
func MTLRegionMake3D(Int, Int, Int, Int, Int, Int) -> MTLRegion
返回图像或纹理数据的3D立方体区域。
func MTLSizeMake(Int, Int, Int) -> MTLSize
func MTLSizeMake(Int, Int, Int) -> MTLSize
返回对象的指定大小,例如纹理或线程组。
See Also
Related Documentation
Metal Shading Language Guide金属着色语言指南
Metal Feature Sets 金属特征集
MetalKit
金属套件
使用更少的代码,可以更快,更轻松地构建Metal应用程序。在标准金属视图中渲染图形,从许多来源加载纹理,并使用模型I / O提供的模型高效工作。
Metal Performance Shaders
金属性能着色器
利用针对每个Metal GPU系列的独特特性进行微调的内核优化图形和计算性能。