计算机图形的渲染流程

1.2渲染流程

openGL渲染流程

CPU

模型文件(FBX)=》MeshRender

模型文件

模型文(FBX)件包含了 uv 顶点位置 法线 切线 等渲染所需要的信息
计算机图形的渲染流程_第1张图片

SkinnedMeshRender / Mesh Rander & Mesh Filter 会负责把这些信息传递到GPU内(Unity会自动挂载这个组件)

SkinnedMeshRender:带蒙皮的骨骼
Mesh Rander 主要是将顶点等信息传递到GPU
Mesh Filter 表示将哪个模型信息传递给GPU

GPU

GPU流程通常被称为渲染管线:

顶点着色器-=》光栅化-=》片段着色器-=alpha测试-=》模板测试-=》深度测试-=》Blend-=》Gbuffer-=》frontBuffer-=》frameBuffer-=》显示器

顶点着色器

1、计算顶点的颜色
2、将物体坐标系转换到相机坐标系

光栅化

将顶点转化成像素
计算机图形的渲染流程_第2张图片

顶点 4个 到了片段着色器 100*100
结论:
顶点着色器会运行4次,片段着色器会运行10000次
顶点着色器和片段着色器运算次数不是一个量级
能把运算放在顶点着色器就放在这里

片段着色器

已经是像素点了
1、纹理采样:从纹理像素附给像素
2、像素和灯光计算

像素:由RGBA 4个通道组成
(或者被称RGBA8888 表示每个通道占8bit)
屏幕分辨率720*1280可以被描述为Float[720*1280]

Alpha测试:

挑选合格的alpha像素显示
比如RGBA里的A值小于0.5,进入透明状态,则这个像素不渲染

模板测试:

达到合格的像素、模板信息

像素还可以携带模板信息,达到条件的模板值显示

深度测试:

符合条件的像素就通过,不然就丢弃

Blend:

将当前要渲染的像素和已经渲染出来的像素混合运算

GBuffer:

通过测试后会将 RGBA 模板值 深度值 等等存储进GBuffer内

Buffer : 缓存区

FrontBuffer、FrameBuffer:

这两个交替显示,大小为当前显示区域、显示器的大小

Buffer : 缓存区

FrontBuffer、FrameBuffer:

这两个交替显示,大小为当前显示区域、显示器的大小

你可能感兴趣的:(图形渲染,unity)