1.计算机图形学之Opengl渲染流程

Cpu: FBX -Meshrender

Fbx obj : 模型文件,里面包含了 uv 顶点位置 ,法线、切线等渲染所需要的信息。

MeshRender : 将这些信息传递到GPU 。 skin mesh render / mesh render,mesh filter

  • skin mesh render : 带蒙皮的骨骼 。

  • mesh render : mesh render 主要是将顶点等信息传递到gpu .

  • mesh filter : 表示将哪个模型信息传递给 gpu .

GPU:

渲染管线

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

  • 顶点着色器:
  1. 计算顶点的颜色。
  2. 将物体坐标系 转换到 相机坐标系。
  • 光栅化:将顶点转换成像素 。
    1.计算机图形学之Opengl渲染流程_第1张图片
    顶点—>像素(片元):片元中间部分像素由顶点插值

像素:RGBA 4 通道组成。RGBA 8888 8bit .
屏幕:720*1280 横有 720 个像素,竖排 12080 个像素。
Float[720 *1280]

顶点4个—>片段着色器 100*100 。

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

  • 片段着色器 :
  1. 纹理采样。从纹理像素赋给像素。
  2. 像素跟灯光计算 。
  • Alpha 测试:挑选合格的alpha像素显示。
  • 模板测试:像素还可以携带模板信息。达到条件的模板值 。
  • 深度测试:符合条件的像素就通过,不然就丢弃。
  • Blend:将 当前要渲染的像素和已经渲染出来的像素混合运算。
  • GBuffer:RGBA 模板值深度值等 。Float[ 72012804 ]
  • frontBuffer : float[720*1280]
  • frameBuffer : float[720*1280]

front Buffer 和frameBuffer只写入GBuffer的RGBA。

GBuffer、FrontBuffer、FrameBuffer运行流程:
GBuffer选出来的像素,FrontBuffer只写入GBuffer的RGBA,推到显示器显示,之后退到后台变为FrameBuffer;FrameBuffer同样也会只写入GBuffer的RGBA,推到显示器显示,之后退到后台变为FrontBuffer。如此交替显示,一帧一帧渲染显示,有了动画。

你可能感兴趣的:(#,千锋Unity3d图形学笔记)