三、OpenGL的渲染架构

OpenGL渲染架构

OpenGL的渲染架构主要分为两部分,Client和Server。Client指的是调用OpenGL API的客户端代码,Server指的是OpenGL完成渲染的底层实现逻辑。

  • Attributes
    Attributes是传递图形相关属性的通道,包括顶点数据、变换矩阵、投影矩阵、纹理坐标(图片映射坐标)等。

  • Uniforms
    Uniforms是批次传递数据的通道,这些数据一般不会被频繁修改,比如变换矩阵、颜色值等。

  • Texture Data
    Texture Data是传递纹理数据的通道。

  • Vertex Shader
    顶点着色器,一般用于处理顶点数据,支持用户自定义编程。可以通过Attributes、Uniforms和Texture Data这三个通道传入图形相关信息,但它不能处理像素,所以传入的纹理数据会通过桥接变化来间接传递给片元着色器。

  • Primitive Assembly
    图元装配,通过顶点着色器出传递过来的顶点数据以及连接方式,得到构成图形所需要的所有图元(点、线、三角形)。

  • Fragment Shader
    片元着色器,用来对像素进行着色和填充,支持用户自定义编程。可以通过Uniforms和Texture Data这两个通道传入图形相关信息

从渲染架构图可以得知,整个渲染流程如下:

  1. 客户端代码调用OpenGL API。
  2. OpenGL通过三个通道来将图形信息传递给顶点着色器和片元着色器。
  3. 顶点着色器处理完顶点数据后,再通过图元装配,得到构成这个图形的所有图元。
  4. 片元着色器对图元经过光栅化后转化成的栅格数据进行运算,再对像素点进行着色和填充,这样就完成了图形渲染。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。