OpenGL ES 相关硬件介绍

860 阅读2分钟

基本图形硬件流水线设计

image.png

  • 应用层:游戏和应用层软件开发人员为主,通过调用API进行上层开发,不需要考虑移植性问题。
  • 硬件抽象层:抽象出硬件的加速功能,进行有利于应用层开发的封装,并向应用层开发API。
  • 硬件层:将硬件驱动提供给抽象层,以实现抽象层加速功能的有效性。

渲染管线的具体流程

应用层

应用程序主要与内存、CPU打交道,诸如碰撞检测,场景图建立,视锥裁剪等经典算法在此阶段执行。在阶段的末端,几何体的数据(顶点坐标、法向量、纹理坐标、纹理)等通过数据总线传送到图形硬件。

硬件抽象层

在这一层,我们目前使用的是DirectX、OpenGL和Metal。对于这一部分,主要是一些API的调用。

硬件层

硬件层在渲染管线中最为复杂,也最为重要。可编程管线与固定管线的区别在于是否能对着色器进行编程。

首先我们先了解固定管线它主要分为以下几个阶段:顶点变换→图元装配与光栅化→片元纹理映射和着色→光栅化操作。

固定渲染管线流程图

image.png

可编程管线流程图

image.png

主要区别

可编程管线支持顶点着色器和片元着色器的编辑。

CPU与GPU之间的关系

GPU具有高并行的结构,所以在处理图形数据和复杂算法比CPU更加有效率。

CPU在执行任务的时候,一个时刻只会处理一个数据,不存在真正意义上的并行,而GPU则有多个处理器核,在一个时刻可以并行处理多个数据。

GPU结构图

image.png

CPU结构图

image.png

GPU能替代CPU吗?

明显不能,CPU擅长分支预测等复杂操作,GPU擅长对大量数据进行简单操作。一个是复杂的劳动,一个是大量并行的工作。