logo资料库

Metal编程指南和参考(中文).pdf

第1页 / 共136页
第2页 / 共136页
第3页 / 共136页
第4页 / 共136页
第5页 / 共136页
第6页 / 共136页
第7页 / 共136页
第8页 / 共136页
资料共136页,剩余部分请下载后查看
Metal®
Programming Guide
Tutorial and Reference via Swift
这本书是如何组织的
第一部分:Metal Basics
第1章“什么是金属?”
图形API的历史
Metal: 在Apple平台上进行图形处理的新方法
平衡CPU和GPU之间的工作
复制内存
直接控制命令缓冲区
预编译着色器
预验证状态
上下文中的金属:金属如何补充和支持其他平台框架
摘要
渲染和栅格图形概述
代表GPU
渲染状态配置
为GPU准备数据
顶点着色
剪裁
原始集会
光栅化
片段着色
光栅输出
摘要
Your First Metal Application (Hello, Triangle!)
在Xcode中创建金属应用程序(不使用模板)
在Xcode中创建项目
创建MTL设备
创建CAMetalLayer
创建顶点缓冲区
对着色器的初步了解
创建顶点着色器
创建片段着色器
库,函数和管道状态
介绍渲染通行证
命令队列和命令编码器
Issuing Draw Calls
向屏幕呈现金属内容
介绍MetalKit功能和MTKView
摘要
第二部分:渲染和图形
图形基础数学
数学语言
协调空间并在它们之间移动
点,矢量和矢量运算
归一化和单位向量
勾股定理
正弦,余弦和正切
矩阵和矩阵运算
身份矩阵
变换:缩放,平移,旋转,投影
比例矩阵
Translation Matrix
旋转矩阵
投影矩阵
级联
摘要
着色器简介
金属着色语言概述
设置着色器
你的第一个着色器:通过
编写你的第一个着色器
每顶点照明
模型I / O顶点缓冲区
统一缓冲区
顶点着色器
片段着色器
摘要
Metal资源与内存管理
金属资源简介
参数表:着色器参数和资源之间的映射
缓冲区
资源选项:存储模式,缓存模式,可清除性
为顶点着色器和顶点描述符准备数据
复制到缓冲区和从缓冲区复制
纹理简介
使用MTKTextureLoader加载图像数据
纹理视图
纹理阵列
复制到纹理和从纹理复制
压缩纹理支持
Blit命令编码器
生成Mipmap
摘要
库,函数和管道状态
什么是库和功能?
The Metal两相编译架构
在编译时和运行时创建库
从库中加载函数
命令编码器
渲染管道描述符和状态
管道反射
摘要
2D绘图
Metal图形渲染管道
示例项目:建立一个明星
使用三角形和网格创建复杂形状
金属原始类型
响应MTKViewDelegate方法
检索Drawable
创建命令缓冲区
创建命令编码器
命令编码器上的固定功能状态
将数据传递给着色器
Issuing Draw Calls
调度和排队命令缓冲区
获取帧完成的通知
呈现在屏幕上
摘要
3D绘图简介
模型 - 视图 - 投影变换
剪辑空间和视图Frustum
着色模型
平面阴影
Gouraud Shading
Phong Shading
基本照明
周围Ambient
定向漫射
动画
摘要
高级3D绘图
用场景图构造一个层次世界
实例渲染
环形缓冲区
每帧数据
每个对象数据
摘要
与模型I / O接口
什么是模型文件?
读取文件格式
导入模型
网格和子网格
渲染状态管道
资产初始化
渲染状态设置和绘图
导出文件
摘要
纹理和采样
纹理映射Texture Mapping
纹理映射Mipmapping
采样
地址模式
过滤模式
各向异性
将纹理和采样器传递给图形函数
创建纹理
金属质感功能
摘要
多通道渲染技术
何时(和为什么)使用多通道渲染
金属渲染通过描述符
创建和管理渲染目标
重新审视加载存储操作
摘要
几何释放:镶嵌在Metal
使用Tessellation消除瓶颈
Catmull-Clark细分
Per-Patch Tessellation Factors
金属镶嵌固定功能管道
设置细分内核
后镶嵌顶点函数
画补丁
摘要
第三部分:数据并行编程
金属计算管道
GPU编程简介
并发与并行
使用GPU进行通用计算
内核函数
金属计算命令编码器
创建计算管道状态
发布工作网格
线程组
这就是你在CPU方面需要的所有设置。 其余部分设置在GPU端
在核函数中读写资源
摘要
金属图像处理
图像处理简介
创建金属质感
去饱和核
卷积和调度2D网格
模糊效果
选择最佳线程组大小
摘要
机器视觉
计算机如何看待世界
噪音和平滑
Sobel边缘检测
阈值
直方图
面部识别
Viola-Jones物体检测
哈尔特征选择
创建整体图像
AdaBoost培训
级联分类器
摘要
Metal性能着色器Framework
金属性能着色器框架概述
使用MPS框架进行图像处理
常见的可设置属性
形态学图像滤波器
卷积图像滤波器
直方图图像滤镜
图像阈值过滤器
图像积分滤波器
图像处理过滤器
图像统计过滤器
图像算术滤波器
关键点
使用MPS的矩阵操作
矩阵和向量
乘以矩阵运算
摘要
神经网络概念
神经网络概述
神经网络组件
Biases
Sigmoid神经元
学习和培训
训练集和反向传播
神经网络架构
摘要
卷积神经网络
卷积神经网络的历史
MPSImage
卷积神经网络核
卷积层
池层
完全连接的层
卷积数据源
神经网络图
摘要
Metal® Programming Guide Tutorial and Reference via Swift Metal® Programming Guide Tutorial and Reference via Swift Metal Basics 1“” API Metal: Apple CPUGPU GPU GPU Your First Metal Application (Hello, Triangle!) Xcode Xcode MTL CAMetalLayer Issuing Draw Calls MetalKitMTKView
Translation Matrix I / O Metal MTKTextureLoader Blit Mipmap The Metal
2D Metal MTKViewDelegate Drawable Issuing Draw Calls 3D - - Frustum Gouraud Shading Phong Shading Ambient 3D I / O
Texture Mapping Mipmapping Metal Tessellation Catmull-Clark Per-Patch Tessellation Factors GPU GPU CPU GPU 2D
Sobel Viola-Jones AdaBoost MetalFramework MPS MPS Biases Sigmoid MPSImage
MetalMetal - “” 123 “”414 “” IIIMetal1520Metal GPGPU •1“” •2“”Metal •3“HelloTriangle” MetalMetal iPhone3D •4“” TI-8310 •5“” •6“” MTLResource •7“”CPU •8“2D”32D •9“3D”3D •10“3D” 3DMetal •11“I / O”AppleBlenderMaya 3D •12“” •13 “” •14“ ” GPU •15“ ” •16 “” •17“” •18“” •19“” •20“” Metal Basics 1“” -Vernor Vinge 2014AppleiOS GPUMetalMetalmacOSwatchOStvOS Apple “”CPUGPU GPU CPU API GPU GPUGPGPUOpenGLGPGPU
OpenGLiPhone5 API 206070 James BlinnEdwin Catmull 208090 2080 1981Silicon GraphicsSGI3D3D 3DAPIIRIS GL2080 2090 1992 IRIS GL APIOpenGL 1997OpenGL3DAPI John CarmackidSoftwareDoom QuakeQuake Carmack OpenGL OpenGLQuakeOpenGL OpenGLOpenGL 2004OpenGL 2.0 OpenGLOpenGL C-like GPU1.1 OpenGLAPI OpenGLGPU OpenGL APICPUGPU GPU API
2003OpenGLOpenGL ES OpenGL ESOpenGL GPU OpenGL ESOpenGL 2007OpenGL ES 2.0 2007iPhoneiOS SDKAPIiPhone OpenGL ESOpenGL ES OpenGLSDKiPhone 2010AppleiPhoneOpenGL ES 2.0 Apple iPhoneSprite KitScene KitGPU OpenGL ESGPUGPUApple / ​ Metal: Apple iPhone OpenGL APIOpenGLGPUCPU Apple AppleGPU OpenGL MetalGPU CPUGPU CPUGPU CPUGPUGPUGPU CPUCPUGPU CPUGPUGPU OpenGLCPUGPU GPU1.2
分享到:
收藏