OpenGL的渲染架构如下:
OpenGL.jpeg(1)图片中的Client是指暴露在上层供开发者使用的OpenGL API,Server是指OpenGL的渲染底层。
(2)针对OpenGL底层,只有Vertex Shader 顶点着色器和Fragment Shader片源着色器是可以允许我们编程自定义的,Primitive Assembly 组装和Render渲染是固定的,不可编程的。
OpenGL的数据传递方式:
(1)Attribute 属性:这类型数据只能传递给顶点着色器,不能传递给片源着色器。常用的数据包括:顶点数据、光照坐标、投影矩阵以及纹理坐标(即图片映射坐标,通过顶点着色器桥接给片源着色器)等。
(2)Uniform:统一的批次类数据,一些不常修改的数据。比如:变换矩形、颜色值等。Uniform既可以给顶点着色器也可以给片源着色器。
(3)Texture Data 纹理数据:既可以给顶点着色器也可以给片源着色器。但是传递给顶点着色器意义并不大,顶点着色器的主要作用并不是处理纹理数据,而是处理顶点相关数据。纹理数据应该是片源着色器处理。
网友评论