Unity图形学之OpenGL渲染流程
1.CPU: 从FBX加载到内存,经过MeshRender渲染出来
FBX等模型文件:包含UV信息,顶点位置信息,法线,切线等渲染所需要的信息
MeshRender:将上述的UV信息,顶点位置信息,法线,切线信息传递到GPU
SkinMeshRender:带蒙皮的骨骼
MeshRenderMeshFilter:非蒙皮骨骼,MeshRender主要是将顶点等信息传递GPU
MeshFilter:表示将 哪个一个模型信息传递给GPU
2.GPU:渲染管线
顶点着色器:
1.计算顶点的颜色--并行计算 如果是四个顶点就并行运算四次,
如果是100*100的屏幕到了片段着色器就是100*100次
2.将物体坐标系 转换到 相机坐标系
光栅化:将顶点 转换成像素 从点到面的变换 将顶点的信息做插值运算
片段着色器:
1.已经是像素点----一个像素通常是由RGBA 四个通道组成 RGBA 8888 每个通道占8bit Float[720*1280] RGBA每个8bit 一共32位 刚好是一个Float
2.顶点着色器和片段着色器 运算次数 不是一个量级
所以能把 运算 放在 顶点着色器就放这里,不要放片段着色器
3.纹理采样:从纹理像素 赋给 像素 从图片里面获取的像素点覆盖了顶点着色器计算的颜色像素点
4.像素和灯光进行计算:
alpha测试:挑选合格的 alpha 像素显示
模板测试:像素还可以携带模板 信息 Gbuffer。到达条件的模板值 才显示
深度测试:符合条件的像素 就通过,不然就丢弃
Blend:将当前要渲染的像素 和 已经渲染出来的像素 混合运算
Gbuffer:通常测试的像素暂存RGBA 模板值 深度值等信息--中转缓存 Float[720*1280*4] 相当于数组
FrontBuffer:Gbuffer通过后传递过来写入FrontBuffer Float[720*1280]
FrameBuffer:Float[720*1280] FrontBuffer和FrameBuffer交替显示,FrontBuffer写完就变成FrameBuffer
显示器
原文地址:https://blog.csdn.net/woshiyuyanjia/article/details/143731997
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!