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 ImageSpriteKitSceneKit。使用其中一个高级框架可以保护您免受GPU编程的细节影响,但编写自定义Metal代码可以使您获得最高级别的性能。

Topics

GPU Devices

在运行时访问GPU设备,这是Metal开发的基础。

获取默认GPU

选择运行Metal代码的系统默认GPU设备。

protocol MTLDevice

用于绘制图形或进行并行计算的GPU的金属接口。

在Mac上选择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 MTLCommandQueueprotocol MTLCommandQueue

组织命令缓冲区以由GPU执行的队列。

protocol MTLCommandBufferprotocol MTLCommandEncoder

存储编码命令以供GPU执行的容器。

protocol MTLCommandEncoderprotocol MTLCommandEncoder

存储编码命令以供GPU执行的容器。

Advanced Command Setup高级命令设置

组织命令以获得最大的并发性和最小的依赖性。

Graphics

通过发出绘制调用来渲染图形,并在绘制到屏幕时选择演示文稿对象。

Hello Triangle你好三角形

演示如何渲染简单的2D三角形。

Basic Buffers基本缓冲区

演示如何使用顶点缓冲区管理数百个顶点。

Basic Texturing基本纹理

演示如何加载图像数据和纹理四边形。

protocol MTLRenderCommandEncoderprotocol MTLRenderCommandEncoder

用于编码渲染过程的命令的对象。

protocol MTLParallelRenderCommandEncoderprotocol 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 MTLComputePipelineDescriptorclass MTLComputePipelineDescriptor

用于自定义编译新计算管道状态对象的方式的对象。

protocol MTLComputePipelineStateprotocol MTLComputePipelineState

包含已编译计算管道的对象。

protocol MTLComputeCommandEncoderprotocol MTLComputeCommandEncoder

用于在计算传递中编码命令的对象。

Shaders

Metal Shading Language.编写GPU代码。

Shader Authoring着色器创作

Metal Shading Language.编写GPU代码。

Libraries图书馆

将着色器组织到库中。

Functions功能

检索有关渲染和计算功能的信息。

Resources

创建对象以保存GPU数据。

设置资源存储模式

设置存储模式,以定义资源的内存位置和访问权限。

protocol MTLResourceprotocol MTLResource

GPU可访问的内存分配。

protocol MTLBlitCommandEncoderprotocol 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 MTLOriginstruct MTLOrigin

图像或纹理中像素相对于左上角的位置,其座标为(0,0)。

struct MTLRegionstruct MTLRegion

图像或纹理中的矩形像素块,由其左上角和大小定义。

struct MTLSizestruct MTLSize

一组声明对象大小的维度,例如图像,纹理,线程组或网格。

func MTLOriginMake(Int, Int, Int) -> MTLOriginfunc MTLOriginMake(Int, Int, Int) -> MTLOrigin

返回图像或纹理中像素的位置。

func MTLRegionMake1D(Int, Int) -> MTLRegionfunc MTLRegionMake1D(Int, Int) -> MTLRegion

返回图像或纹理数据的1D区域。

func MTLRegionMake2D(Int, Int, Int, Int) -> MTLRegionfunc 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) -> MTLSizefunc 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系列的独特特性进行微调的内核优化图形和计算性能。

Metal Programming Guide

Metal Best Practices Guide

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章