版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qqagsd155451/article/details/83474162
Cpu: FBX -Meshrender
Fbx obj : 模型文件,里面包含了 uv 顶点位置 ,法线、切线等渲染所需要的信息。
MeshRender : 将这些信息传递到GPU 。 skin mesh render / mesh render,mesh filter
-
skin mesh render : 带蒙皮的骨骼 。
-
mesh render : mesh render 主要是将顶点等信息传递到gpu .
-
mesh filter : 表示将哪个模型信息传递给 gpu .
GPU:
渲染管线:
顶点着色器—光栅化—片段着色器—alpha 测试—模板测试—深度测试—Blend—Gbuffer—frontBuffer—frameBuffer —显示器
- 顶点着色器:
- 计算顶点的颜色。
- 将物体坐标系 转换到 相机坐标系。
- 光栅化:将顶点转换成像素 。
顶点—>像素(片元):片元中间部分像素由顶点插值。
像素:RGBA 4 通道组成。RGBA 8888 8bit .
屏幕:720*1280 横有 720 个像素,竖排 12080 个像素。
Float[720 *1280]
顶点4个—>片段着色器 100*100 。
结论:
顶点着色器会运行 4次,片段着色器会运行 10000。
顶点着色器和片段着色器的运算次数不是一个量级 。
能把运算放在顶点着色器,就放这里。
- 片段着色器 :
- 纹理采样。从纹理像素赋给像素。
- 像素跟灯光计算 。
- Alpha 测试:挑选合格的alpha像素显示。
- 模板测试:像素还可以携带模板信息。达到条件的模板值 。
- 深度测试:符合条件的像素就通过,不然就丢弃。
- Blend:将 当前要渲染的像素和已经渲染出来的像素混合运算。
- GBuffer:RGBA 模板值深度值等 。Float[ 72012804 ]
- frontBuffer : float[720*1280]
- frameBuffer : float[720*1280]
front Buffer 和frameBuffer只写入GBuffer的RGBA。
GBuffer、FrontBuffer、FrameBuffer运行流程:
GBuffer选出来的像素,FrontBuffer只写入GBuffer的RGBA,推到显示器显示,之后退到后台变为FrameBuffer;FrameBuffer同样也会只写入GBuffer的RGBA,推到显示器显示,之后退到后台变为FrontBuffer。如此交替显示,一帧一帧渲染显示,有了动画。