渲染流水线:渲染流水线的最终目的是生成或者说是渲染一张二维纹理,即我们在电脑屏幕上看到的所有效果,它的输入是一个虚拟摄像机、一些光源、一些shader以及纹理等。
什么是渲染流水线?
渲染流程分为3个阶段:应用阶段,几何阶段,光栅化阶段,其中,应用阶段是在CPU上进行,其他两个是在GPU上进行,每个阶段的输入输出信息如下图:
如何减少Draw Call?
运用批处理的思想:把很多小的Draw Call合并成一个大的Draw Call。由于在CPU中合并网格是需要耗费时间的,所以,批处理更加适合那些静态的物体。
在游戏开发中,为了减少Draw Call的开销,需要注意:
1、避免使用大量很小的网格,
2、尽量使用过多的材质,尽量在不同的网格之间共用一个材质。
什么是shader?
- 是GPU流水线上一些可高度编程的阶段,而由着色器编译出来的最终代码是会在GPU上运行的 有一些
- 特定类型的着色器,如顶点着色器、片元着色器等
- 依靠着色器我们可以控制流水线中的渲染细节,例如用顶点着色器来进行顶点变换以及传递数据,用片元着色器来进行逐像素的渲染。