模型文件(FBX)=》MeshRender
模型文(FBX)件包含了 uv 顶点位置 法线 切线 等渲染所需要的信息
SkinnedMeshRender / Mesh Rander & Mesh Filter 会负责把这些信息传递到GPU内(Unity会自动挂载这个组件)
SkinnedMeshRender:带蒙皮的骨骼
Mesh Rander 主要是将顶点等信息传递到GPU
Mesh Filter 表示将哪个模型信息传递给GPU
GPU流程通常被称为渲染管线:
顶点着色器-=》光栅化-=》片段着色器-=alpha测试-=》模板测试-=》深度测试-=》Blend-=》Gbuffer-=》frontBuffer-=》frameBuffer-=》显示器
1、计算顶点的颜色
2、将物体坐标系转换到相机坐标系
将顶点转化成像素
顶点 4个 到了片段着色器 100*100
结论:
顶点着色器会运行4次,片段着色器会运行10000次
顶点着色器和片段着色器运算次数不是一个量级
能把运算放在顶点着色器就放在这里
已经是像素点了
1、纹理采样:从纹理像素
附给像素
2、像素和灯光计算
像素:由RGBA 4个通道组成
(或者被称RGBA8888 表示每个通道占8bit)
屏幕分辨率720*1280可以被描述为Float[720*1280]
挑选合格的alpha像素显示
比如RGBA里的A值小于0.5,进入透明状态,则这个像素不渲染
达到合格的像素、模板信息
像素还可以携带模板信息,达到条件的模板值显示
符合条件的像素就通过,不然就丢弃
将当前要渲染的像素和已经渲染出来的像素混合运算
通过测试后会将 RGBA 模板值 深度值 等等存储进GBuffer内
Buffer : 缓存区
这两个交替显示,大小为当前显示区域、显示器的大小
Buffer : 缓存区
这两个交替显示,大小为当前显示区域、显示器的大小