一.GPU渲染管线
GPU硬件将游戏引擎中提交的MetaMesh,Shader,Material等3D数据处理为2D屏幕光栅图像的过程即为GPU渲染管线.
GPU硬件工作单元 = 顶点着色器单元 + 像素着色器单元
二.顶点着色器
主要功能:完成3D坐标投影至2D屏幕坐标,处理布料,粒子,顶点动画等顶点坐标转化
输入:顶点(vertex) + 灵活顶点(vertex_fvf) + 面(face)
输出:2D坐标(position) + 法线(normal) + 纹理UV(uv) + 颜色(vertex_color) + 自定义属性(alpha)
<1.顶点(vertex)
将面中公用的顶点进行剥离得到的顶点,只含有3D坐标x,y,z
struct Vetex
{
float x, y, z;
}
<2.灵活顶点(vertex_fvf)
实际每个面中顶点,通常含有UV映射坐标,顶点颜色等属性
struct Vetex_Fvf
{
int vertex_index; //关联vertex坐标
float normal_x, normal_y, normal_z; //法向数据
int color; //顶点颜色
float u, v //为像素着色器设计,可映射至2D纹理图片
int flag; //自定义数据
}
<3.面(face)
struct Face
{
int vertex_fvf_index1;
int vertex_fvf_index2;
int vertex_fvf_index3;
}
三.像素着色器
主要功能:2D屏幕像素颜色的计算
输入:2D坐标(position) + 颜色(vertex_color) + 纹理图片(texture)
输出:2D屏幕像素点阵(matrix)