游戏图形学-计算机图形的渲染流程

124 阅读2分钟

1.2渲染流程

openGL渲染流程

CPU

模型文件(FBX)=》MeshRender

模型文件

模型文(FBX)件包含了 uv 顶点位置 法线 切线 等渲染所需要的信息 在这里插入图片描述

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

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

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测试:

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

模板测试:

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

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

深度测试:

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

Blend:

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

GBuffer:

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

Buffer : 缓存区

FrontBuffer、FrameBuffer:

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

Buffer : 缓存区

FrontBuffer、FrameBuffer:

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