OpenGL ES 和 Metal

OpenGL ES 被设计在跨平台上使用,那意味着你可以用 C++来写 OpenGL ES,然后修改很少的代码就可以跑在其它的平台上。

Metal

Metal 是由苹果公司所开发的 GPU 编程接口,兼顾图形与计算功能,面向底层、低开销的硬件加速,用于代替 OpenGL ES ,OpenGL ES 在 iOS 12 已经被标记为 deprecated 状态。

Apple 认为 OpenGL ES 的跨平台支持做的非常好,但是还没有充分利用 Apple 的硬件优势,所以 Apple 要采用一种全新的方式将软件与硬件结合更完美,所以就有了 Metal。据苹果吹嘘,相对于 OpenGL ES,Metal可以提供超过 10 倍的绘制速度。

 

Metal 比 OpenGL ES 的优点:

Metal Api 更加 人性化,相比于 OpenGL 使用句柄的操作以及 C 语言的 Api,Metal 是面向对象的;

Metal 的多线程支持,相比于 OpenGL 的上下文与线程的绑定,Metal 是 线程安全 的;

Metal 的性能优于 OpenGL

Metal 支持 Compute shaders,能让我们使用 GPU 来做一些更加复杂的 并行计算 任务,如机器学习等,而 OpenGL 几乎只能支持与图形图像相关的。

Metal 比 OpenGL ES 的缺点:

Metal 仅支持 Apple 平台,而 OpenGL 是跨平台的;

什么是纹理(Texture)

纹理是二维图像的映射,可以应用到模型的表面上。纹理可以提供更加细腻的表面效果,如木纹、金属质感等。OpenGL中通过纹理坐标和纹理采样器将纹理映射到模型表面上。

什么是 OpenGL 渲染管线(Pipeline)?

OpenGL 渲染管线就是 OpenGL 的工作流程,指的是一堆原始图形数据途经一个输送管道,期间经过各种变化处理最终出现在屏幕的过程。
图形渲染管线可以大致被划分为两个主要部分:第一部分把你的 3D 坐标转换为 2D 坐标;第二部分是把 2D 坐标转变为实际的有颜色的像素。  

Shader 是什么

Shader 翻译过来叫做着色器,本质上也是一种程序,这种程序主要用于处理图像信息。Shader 代码并不运行在 CPU 上,而是运行在GPU(图形处理器)上。

顶点着色器用于处理顶点相关计算,如位置变换、法线变换等;片段着色器用于处理每个像素的光照、纹理采样等操作。

根据运行在渲染管线的不同阶段,Shader 主要分为三类:

  • Vertex Shader 顶点着色器
  • Fragment Shader 片段着色器
  • Geometry Shader 几何着色器

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值