liulala 2019-12-05
图形编程的发展
基于GPU的可编程渲染管线
功能:决定在给定虚拟相机、三维物体、光源、照明模式,以及纹理等诸多条件情况下生成或绘制一幅二维图像的过程
流水线中的三个概念阶段
?
GPU渲染管线工作过程
几何阶段
光栅化阶段
片元——>模板测试——>深度测试——>颜色混合——>帧缓存
?
着色器语言 Shading Language
GLSL(OpenGL Shading Language)OpenGL的着色器语言
顶点着色器Vertex Shader、几何着色器Geometry Shader、曲面细分着色器Tessellation Shader、片元着色器Fragment Shader
在OpenGL中使用着色器的流程:
与OpenGL的通信
数据类型
标量:整数(int)、无符号整型(uint)、布尔类型(bool)及浮点型(float)
矢量:一个矢量可以有2、3、4个分量
vec4 a=vec4(1.0,2.0,3.0,4.0);
矩阵
mat2 m mat2(1.0,2.0,3.0,4.0);
结构和数组:结构体的成员或者数组的基类型可以为任意的数据类型
//lightsource为光源
struct lightsource{
? vec3 color; //颜色
? vec3 position; //位置
}
lightsource spotlight[10]; //10个光源
控制结构
EBO、VBO和VAO