CPU
CPU:从FBX加载Meshrender
Fbx obj:模型文件,里面包含了UV顶点位置,法线 切线等渲染所需要的信息。
MeshRender:将这些信息传递到GPU,包括skin mesh render/mesh render+mesh filter
skin mesh render:带蒙皮的骨骼
mesh render:主要是将顶点等信息传递到GPU
mesh filter:表示将哪一个模型信息传递给GPU
GPU
GPU:渲染管线
顶点着色器 ---->光栅化 ----> 片段着色器 ----> alpha测试 ----> 模板测试 ---->深度测试 ----> Blend ----> Gbuffer ----> frontBuffer ---->frame buffer ---->显示器
管线
顶点着色器:
1.计算顶点颜色
2.将物体坐标系转换到相机坐标系
光栅化:
将顶点转换成像素
顶点一一对应,中间进行插值
片段着色器:
已经是像素
像素:RGBA,4通道组成 ; RGBA8888代表每个通道8bit,每个像素32bit
屏幕:720 * 1280 代表 横720个像素 竖排1280个像素
光栅化中顶点4个到了片段着色器成了100*100
结论:
①顶点着色器会运行4次,片段着色器会运行10000次
②顶点着色器与片段着色器不是一个量级,能把运算放在顶点着色器就放在顶点着色器
作用:
1.纹理采样:将纹理像素赋给像素
2.像素与灯光进行计算
Alpha测试:挑选合格的alpha像素显示
**合格:RGBA中A的信息,例如A>0.5合格,A<0.5不合格等等
模板测试:像素还可以携带模板信息,达到条件的模板值合格
深度测试:符合深度条件的通过,否则丢弃
Blend:将当前要渲染的像素和已经渲染出的像素混合运算
GBuffer:储存RGBA 模板值 深度值等等,将其传给Front Buffer
Front Buffer:接收GBuffer的部分信息
framebuffer:与Front Buffer交替显示