Metal之旅启航

背景

    使用画圆的方法,将大小不同的圆叠加起来形成一条笔迹,一条笔迹大概有成百上千个圆组成,一个白板上能显示上千条的笔迹,要求把这么多的笔迹在最短的时间内绘制出来,通过调研CAShapeLayer。CGContext的绘制方式都满足不了这样的性能要求,主要是算法太差劲了,另外同时绘制的笔迹太多,出现的了严重的性能问题。但当时其他端用了这个算法,也有性能问题,但由于各端底层绘制的差异,其他端性能问题表现并没有IOS端这么明显

调研

    经过调研发现高性能的绘制图形的框架在IOS中,有openGL,metal两种底层框架可以很好的实现,并且通过demo测试发现性能都不错

什么是openGL

    OpenGL是由硅谷图形公司(‌Silicon Graphics Inc.,‌简称SGI)‌发布,‌并由OpenGL架构审查委员会(‌OpenGL ARB)‌负责维护和扩充的‌。‌OpenGL最初是SGI公司为其图形工作站开发的一种三维图形机制,‌后发展成为跨平台的开放标准。‌随着OpenGL的发展,‌其控制权于2006年7月被交给了Khronos Group

什么是metal

    Metal是Apple为iOS平台推出的高性能图形渲染框架,‌旨在最大化地挖掘苹果移动设备的GPU能力。‌它于2014年首次发布,‌并在后续版本中不断优化和扩展。‌Metal通过减少GPU驱动的工作量,‌显著降低CPU消耗,‌同时提供高效的GPU访问和多线程支持,‌使得游戏和图形应用的性能得到显著提升。

openGL VS metal

1,openGL严格只是一套协议,经过打印发现底层还是用metal来实现的,经过打印发现苹果封装了这样的一个类AppleMetalGLRenderer

2,openGL在一些早期的iPad上各种缓存的支持度有限,但是我们公司的应用主体设备很多就是早期的ipad

3,openGL的API已经被标记为废弃状态了,后续只能用Metal了

Metal的应用场景都有哪些

1,视频内容渲染

2,游戏开发

3,图形绘制

4,文字绘制

5,高性能的计算

6,图像编辑,美化等等

知识点

Metal Shading Language

library

顶点

索引

渲染队列

渲染管线

纹理

drawable

NDC坐标

UV坐标

MTLBuffer

MTLCommdBuffer

MTLRenderEncoder

MTLComputeEncoder

parallRenderEncoder

parallComputerEncoder

Sampler 采样器

融合 blend

抗锯齿

多重采样(‌MSAA)‌和超采样(‌SSAA)

深度检测

透明度检测

光栅化

顶点着色器

片源着色器

CAMetalLayer

MTKView

视频渲染流程

。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值