自学内容网 自学内容网

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)!