平台门户网站建设,大连网站优化方案,关于建设教体局网站的申请,村网通为每个农村建设了网站详解GPU的工作流程
1.shader通常称为着色器#xff0c;作用是把CPU上的点渲染出来。
2.shader是并行的。
3.流程#xff1a;数据data (顶点数据) -----VS(输入#xff1a;data的顶点数据#xff0c;输出#xff1a;gl_Position的 vec4 顶点数据)-----光栅化处理…详解GPU的工作流程
1.shader通常称为着色器作用是把CPU上的点渲染出来。
2.shader是并行的。
3.流程数据data (顶点数据) -----VS(输入data的顶点数据输出gl_Position的 vec4 顶点数据)-----光栅化处理(显卡自动负责把点连成生成面其中包括一定像素)------FS(输入光栅器的输出的像素输出画面)注意VS和FS点会同时被并行执行多个点可以同时处理。 最简单的Shader代码
1.Vertext shader (顶点着色器)
attribute vec4 position; //vec4是齐次坐标
uniform mat4 U_ModelMatrix; //mat4是4x4矩阵 模型矩阵需要从C传递过来
uniform mat4 U_ViewMatrix; //视口矩阵需要从C传递过来
uniform mat4 U_ProjectionMatrix; //投影矩阵需要从C传递过来
void main(){//自右向左模型空间下的点-》世界坐标系-》视口矩阵转到视口空间摄像机看到的带你-》屏幕空间gl_PositionU_ProjectionMatrix*U_ViewMatrix*U_ModelMatrix*position;
}
2.Fragment shader (片元着色器)
void main(){gl_FragColorvec4(1.0,1.0,1.0,1.0); //gl_FragColor是输出点的颜色
}
VBO和VAO函数的区别
1.向Vertext shader中传输顶点数据时需要使用VBO是用来加载CPU上的相关顶点数据 GLuint vbo;//vertex buffer object 存放顶点缓冲区的对象glGenBuffers(1,vbo);//需要1个VBO把vbo写入到显卡进去,供后续操作glBindBuffer(GL_ARRAY_BUFFER,vbo);//把vbo设置的奥卡槽上//glBufferData(GL_ARRAY_BUFFER,sizeof(Vectice)*3, nullptr,GL_STATIC_DRAW);//只在GPU上开辟内存不传数据//glBufferSubData(GL_ARRAY_BUFFER,0,sizeof(Vectice)*3,vertices);//加入数组0指vbo偏移位置glBufferData(GL_ARRAY_BUFFER,sizeof(Vectice)*3,vertices,GL_STATIC_DRAW);//cpu - gpu,向GL_ARRAY_BUFFER加入数据glBindBuffer(GL_ARRAY_BUFFER,0);//卡槽重新绑定防止误操作
2.多个VBO的集合称为VAO
Shader如何传入顶点坐标 详解Attribute和Uniform关键字
1Uniform使用的一些变量都是一样的使用Uniform。
2.Attribute随着属性组变化使用Attribute。
3. OPenGLES2.0最多支持8个属性组,3.0支持16个。
详解3D渲染管线
1.MVPM模型矩阵V视口矩阵P投影矩阵
自右向左模型空间下的点-》世界坐标系-》视口矩阵转到视口空间摄像机看到的带你-》屏幕空间