OpenGL 渲染架构
渲染流程.png- 客户端
客户端为OpenGL API和调用API的不同语言代码,在CPU中执行的,只可以向服务端传递三种数据:Attributes、Uniforms、Texture Data
- 服务端
服务端为GPU硬件部分,主要由Vertex Shader、Primitive Assembly、Fragment Shader组成。
-
attribute 属性 (不能直接传递到片元着色器,通过GLSL代码间接传递)
颜色数据
顶点数据
纹理数据
光照法线 等 -
uniform 值 (
可以看成一个通道,直接传递到片源着色器/顶点着色器
)
也叫 比较统一
举个🌰
视频的颜色空间是YUV,渲染到屏幕上 视频-解码-一帧帧图片组成-通过OpenGL es/metal 渲染,需要将YUV-RGB,通过uniform把转换颜色的矩阵传递给片元着色器,然后进行转换(uniform传递的一般是基本不会改变的数据)
-
Texture 纹理数据
纹理也是图片
渲染图形,可以颜色填充/图片填充 -
Outs
开发者不能进行干预,系统处理
-
Primitive Assembly 图元装配、光栅化 同样不能进行干预
根据图元类型把顶点组合在一起,并已经逐个片段的进⾏了光栅化。
- 顶点着色器(Vertex Shader)
绘制图形时,通过确定给出的顶点数据,来确定图形的基本样式
- 片元着色器 (Fragment Shader)
通过顶点着色器基本的框架,为每个像素点进行颜色和深度的计算与填充
网友评论