笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。
Shader编程对于图形学渲染来说非常重要,为了让读者理解Shader编程的原理,文章会结合着可编程流水线原理与Shader编程一起给读者介绍,游戏场景中的物体渲染都是基于可编程流水线实现的,大家可以想象一下游戏开发使用的是美术制作的3D模型然后将其加入到游戏场景中进行渲染,其实就是把绘制的3D物体通过可编程流水线绘制在2D的屏幕上的过程,为了能让读者真正的了解其实现原理,下面文字会结合着图片一起讲解,首先介绍流程图如下所示:
图中流程是将3D模型通过渲染绘图管线处理也就是中间显示的黑盒子,最后在屏幕上绘制出2D图片。接下来给读者介绍渲染管线流程,它可以细分为:顶点处理,面处理,光栅化,像素处理,图示如下所示:
先介绍渲染管线的中的顶点处理,顶点处理就是通过一系列的坐标系转换,将模型的顶点在摄像机前进行位移,并最终将模型投影到摄像机的屏幕上。坐标系的流程图如下所示:
这一系列变换会涉及到各个坐标系中的矩阵变换,