OpenGL包括两个方面:
首先是CPU,CPU上是资源文件(比如FBX)加载到内存,然后通过MeshRender渲染出来。
FBX是模型文件,包含了模型中的uv顶点信息、法线、切线等信息。
MeshRender将这些信息传递到GPU。
MeshRender包含两种,一种是SkinMeshRender:他是带蒙皮的骨骼;另一种是MeshRender和MeshFilter,后者是决定将哪个模型传递给GPU,选择方形则显示方形。
其次是GPU,从顶点着色器>光栅化>片段着色器>Alpha测试>模板测试>深度测试>Blend>GBuffer>FrameBuffer>FrontBuffer>显示器
顶点着色器: 1.计算顶点的颜色
2.将世界坐标 转化为 摄像机坐标(通过矩阵)
光栅化:将顶点转化成像素
片段着色器:1.纹理采样,将纹理像素转为像素。
2.计算光线和像素
Alpha测试:测试是否达到给定的Alpha值,判断是否显示。
模板测试:测试是否达到给定的模板值,判断是否显示。
深度测试:符合深度的像素就显示,否则丢弃。
Blend:将已渲染的像素和将要渲染的像素进行混合运算。
GBuffer:储存信息,包括RGBA、模板值、深度值,将这些信息传送到下一个Buffer。
FrameBuffer:交换到后面去,变成FrontBuffer。
FrontBuffer:推到显示器上。