shader渲染管线

来源:互联网 发布:极速浏览器mac版 编辑:程序博客网 时间:2024/05/20 01:46


在学习shader开发前我们是有必要了解一下什么是图形渲染流程/渲染管线流程,先从下面这张图来理解:


渲染流水线的工作任务就是从一个三维场景出发,生成(渲染)一张二维图像。(大白话就是:输入3d模型,输出2d图片,这中间的过程就是渲染管线流程)

渲染管线流程可以细分为:

顶点处理

面处理

光栅化

像素处理


顶点处理

通过一系列的坐标系变换,将模型的顶点在摄像机前进行位移,并最终投影到摄像机的投影屏幕上面。提取关键词,“一系列坐标系变换”,“顶点变换”,“投影到投影屏幕”。那经历了那些坐标变化呢?

经历的坐标系有:本地坐标系(物体[自身]坐标系)——世界坐标系-——观察坐标系——投影坐标系

本地坐标系——世界坐标系:将每个模型的位置从以自己为中心的坐标系,摆放到整体游戏世界中某一个具体位置去。

世界坐标系——观察坐标系:将每个模型的位置从以整体游戏世界为参照系转换到以观察者为参考系。

在世界坐标系中,所有的模型有统一的一个原点(0,0),当转换到观察者为参考系之后,那么就是以观察者为原点去观察世界中的模型位置。(提示:在这里坐标转换过程中,摄像机仅仅只是一个参考而已,而在最后的一步,就会以这个摄像机作为一个投影平面输出图象了

观察坐标系——投影坐标系:将每个模型的位置从以观察者所在的坐标系中,转换到以观察者所在的平面中,这是最特殊的一次坐标变换。


面处理(图元装配)

面处理阶段主要包括:面的组装,面的截取,面的剔除(视锥剔除[出了摄像机范围外],遮挡剔除[被前后遮挡的],都是通过Z-Buffer来检测)。

这里要知道顶点合集这个概念。


光栅化

将以向量为基本结构的面转换为一个个点阵形式的像素。


经过光栅化阶段之后,我们目前得到了目标的像素图,接下来进行像素处理


像素处理是渲染管线流程的最后一个阶段,以上就是渲染管线流程的相关最基础的知识了。

1 0