Shader Language
概况
Shader Language称为着色语言,shader language基于于物体的属性和光照条件,计算每一个像素颜色。shader language 有cg,GLSL,HLSL。
着色程序分为vertex shader program(顶点着色程序)和fragment shader program(片段着色程序),这两个程序对应运行在GPU上的两个组件上,Programmable Vertex Processor(可编程顶点处理器,又称为顶点着色器)和 Programmable Fragment Processor(可编程片断处理器,又称为片断着色器)。
Vertex Shader Program
顶点着色程序从GUP寄存器中提取图元信息(顶点,法向量,纹理坐标),完成顶点,法向量的空间转换,光照计算等操作,再将结果写入到指定的寄存器中,提供数据给片段着色器使用。
Fragment Shader Program
片段着色器从指定寄存器中获取顶点着色程序计算好的顶点,法向量,纹理信息,光照计算的结果数据,对每个片段计算颜色信息,最后再将处理后的数据传送给光栅操作模块(光栅化)。
着色器的协作
也可以单独使用顶点着色程序,但是只是对顶点进行程序性操作,顶点内部的点就会按照默认的方式自动插值。
总结
顶点着色程序:几何运算
片段着色程序:颜色值计算