unity shader 学习 (1)渲染管线
最近想去看一些图形的东西。看了很多很杂的东西,写下来对自己进行梳理一下。方便自己以后回顾一下。
早年看d3d知道了渲染管线。对渲染管线的概念也是一直很浆糊。下面说一些我们的理解,也是看到别人说的理解下,也不知道对不对。
渲染管线分固定管线和可编程管线。
管线就和我们工厂里的生产线一样的,就前面一个工序转到下一个工序最后出一个成品。[我们在工作过程中,会为后面使用增加一些优化的生产的工序,这个就是我们开始不理解的管线一些地方,我们渲染管线也有一些优化工序]。
固定管线:参考书上面大概写了几个过程。我们按照这些个过程就能把一个个对象程序我们的电脑上面。
1.坐标转换
为什么要坐标转换呢?
我们拿到美工建好的模型,要对它进行一些坐标位置处理才能到屏幕上看见。这个就是我们为什么要坐标转换。
坐标如何转换?
我们拿到美工的模型,带一个本地坐标。我们通过(平移,旋转,缩放)操作把它移到了世界坐标中,当然每个引擎都会提供一些API方便你的操作,
我们有了世界坐标,这个样子我们的物体间就会有了相对位置的关系。我们只要把这些世界坐标,转到我们的摄像机下面来。我们就有了一个视口坐标。
2.背面剔除[优化操作]
我们经过上面三个转换,我们有了一个呈现在屏幕中的顶点数据,我们不能对里面所有的顶点进行运算,我们这个时候也知道哪些数据会呈现在屏幕中,
我们将哪些不需要的数据进行剔除操作。
3.光照
我们这个时候需要加入一些光照让这些变得更加真实。
4.剪裁[优化操作]
这个又是一个优化操作,我们将在我们视口外面的东西剪裁掉。
5.投影
投影过程就是将我们3D的东西变成2D。呈现在我们的屏幕空间来。
6.视口变换
我们将上面的数据,运算到视口中一个矩形中来。
7.光栅化
我们将上面的一些操作后得到的像素数据,通过光栅化进行像素运算。
早年上面的过程都是在Cpu进行处理的,处理效果非常差,后来有了gpu[并行运算]运算效果高,我们将上面一些过程放到gpu中来,
我们把坐标转换,光照,光栅化等操作通过gpu进行运算。大大提高了渲染效率。
我们如何把这个过程放到gpu中来。这个就是我们强大的shader了。shader其实就是一个小程序,将这些过程进行处理得到一个很牛逼的效果来。
posted on 2015-10-30 15:19 yaolinglong 阅读(844) 评论(0) 收藏 举报
浙公网安备 33010602011771号