Unity渲染管线的流程

来自 https://www.jianshu.com/p/02eebbf9ad9a
 
渲染管线的流程是在 GPU 中进行的,它主要占有计算机的显存部分。渲染管线在这个过程中进行了顶点处理、面处理、光栅化、像素处理。
 
1.顶点处理
3D模型是由众多点构成的面展现出来的。
顶点处理:是通过一系列坐标系的变换,让每个顶点通过一定的规律在摄像机前位移,最终在屏幕上对应这些顶点的过程。 首先,物体的各个顶点从自身坐标系,最后通过投影变换,将顶点转移到屏幕坐标系。
在观察者坐标系转换到投影坐标系的过程中,GPU(图形处理单元)还对材质属性和光照属性进行了处理。
 
2.面处理
三点成一面,面处理有三个部分:面的组装、面的截取、面的剔除。
面的组装:模型中的三个点会组成一个三角形的面(非任意点,因为每个点都有自己的编号)。这些面,面面相接,组成了我们能看到的模型。
面的截取:由于摄像机和人眼一样,可视的区域是一个锥形,模型在摄像机可视范围内可能并不是全覆盖,也就是在摄像机外,这些在摄像机之内的部分就会被截取。
面的剔除:为了模拟肉眼,摄像机前的物体会出现近大远小的现象,那么物体和物体之间会有遮挡,被遮挡的面会被剔除不处理;每个面都有法向量,所以只有在面的法向量和摄像机散射向量夹角大于90度的才会被摄像机捕捉到。
 
3.光栅化
光栅化,又称之合并阶段。它的主要功能是将面转换成一帧中的像素集合。
这一阶段是不可以编程的,它负责执行多个片段测试,包括:深度测试、alpha 测试和模板测试,程序员可以通过高度配置来实现想要的效果。如果通过了所有的测试,这部分颜色就会与帧缓冲存储的颜色通过 alpha 混合函数进行合并。
 
4.像素处理
这个阶段将像素区域着色,然后赋予贴图
 
 
 
 
posted @ 2024-05-20 10:27  weigang  阅读(19)  评论(0编辑  收藏  举报