图形渲染管线

图形渲染管线

应用程序阶段

该阶段完全可控,一般使用cpu进行计算。

一些应用程序阶段的计算任务可以使用compute shader转移到gpu进行计算。

该阶段最重要的任务就是将渲染图元送到几何处理阶段。

该阶段基于软件,不像其他阶段一样被分为多个小阶段。

为了提升效率,该阶段会采用多个cup核心进行并行运算。

该阶段一般会处理碰撞检测,IO,裁剪算法等其他阶段不好处理的过程。

几何处理阶段

该阶段主要处理大部分的逐顶点处理,逐三角形处理。

顶点着色

该阶段主要完成以下两个任务:

  1. 计算顶点的位置
  2. 输出程序员想输出的任何顶点数据(法线、纹理坐标。。)

该阶段的着色是计算每个顶点的颜色并储存在顶点上,然后通过插值将颜色扩散到整个三角形上。但是现在着色已经不是该阶段的主要任务了。

该阶段的主要任务还是设置输出有关于顶点的相关数据。

投影

主要分为正交投影和透视投影。

裁剪

在裁剪空间将不必要的图元裁剪掉。这要求顶点着色阶段必须将顶点变换到裁剪空间并将其输出,否则裁剪将无法被正常执行。

裁剪会将一部分在视锥体范围内的图元进行裁剪。

裁剪会在投影之后进行,这时场景中的物体已经被投影到立方体中了,这样可以保证无论什么投影,裁剪会遇到的问题都是一样的。

裁剪过程使用齐次坐标,主要是为了保证在透视投影下能够正确的在图元间进行插值。

Screen Mapping

该阶段接受裁剪后的图元,将其x轴和y轴转化为屏幕坐标。将其z轴缩放至[0,1]

小结

整个阶段结束后,z值将不会被储存在输出的产生的图片上,而是被保存在z-buffer上,这说明模型从3维被变成了2维。

可选阶段

诸如曲面细分、几何处理阶段。这些阶段不是所有的gpu都包含。对其进行编程也比较少见。

曲面细分着色器

曲面细分着色器可以根据物体的深度将三角形细分,越近的物体使用越多的三角形进行绘制。

几何着色器

几何着色器接受各种各样的图元并能够产生新的顶点,比如将一个顶点扩展为一个正方形(两个三角形)。经典的应用是采用几何着色器处理粒子。

stream output

这个阶段可以选择将我们产生的图元输出到一个数组之中,供cpu或者gpu使用。

参考资料

RTR4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值