3、Geometry Shader技术
另外,DirectX 10还带有一个被称为Geometry Shader的新版“Shader”,可以处理Pixel Shaders和Vertex Shaders不能完成的任务。
目前DirectX的处理模式是:1.顶点数据准备;2.Vertex Shader;3.完成Vertex Shader;4.光栅化计算;5.PixelShader;6.完成PixelShader;这是一个D3D标准的处理模式,这个过程是是顺序进行的(DirectX 10之前)。因此,只能吸收和输出一个单独顶点的旧版Vertex Shaders是不能创建或者破坏三角形的。

而新的Geometry Shader的作用就是对每个Vertex数据临近的数据进行Vertex函数处理也就是用来判定临近的,类似数据操作的点来进行计算,而这种函数处理直接关系到整个渲染模型的形状;也就是说其可以快速的把模型类似的顶点结合起来进行快速运算,虽然其操作不会象Vertex Shader那样的进行完整的操作,只是处理器单个顶点的相关函数操作,但是这种操作却可以确定整个模型的物理形状,这将大大加速处理器速度,因为其它Shader单元将不再去需要判定数据所存在的位置,而只是需要简单的为特定区域进行操作就可以了。
不仅如此,在这些数据进入渲染引擎和Pixel Shader处理前,Geometry Shader能够制造新的原始体,添加新的三角形。Geometry Shader可以把处理数据直接输入内存,免除了先经过CPU处理才进入显卡管线的麻烦,这一改进可以让GPU直接处理细微的粒状效果,如烟雾和爆炸效果等(在这之前这一任务通常交由CPU来完成)。玩游戏时,配合纹理阵列的Geometry Shader还可以制造出通常由六个方位才能创建的立方环境映射,而现在则只需通过一个方位就可以搞定。微软认为Geometry Shader可以把点、线、三角等多边形联系起来快速处理、同时创造非常漂亮的不规则多边形,并且可以在很短时间内直接分配给其它Shader单元和显存进行数据处理,而这一切都已经无需CPU干预了。因此微软认为,搭载Geometry Shader后,可以方便的实现复杂的烟雾、爆炸、皮毛、毛发等复杂图象;甚至可以模拟一些简单的运动轨迹等;而这些操作很多时候已经不再需要CPU的干预,因此自然可以更好的发挥系统的3D效率。

此外,Geometry Shader中还具备一个被称为Stream Out的技术,这种技术允许GPU可以重复利用已经计算的结果(允许继续由Vertex Shader数据来调用处理好的结果),从而减少计算,但是目前还不知道这种模式是如何实现的,毕竟这些已经操作过的数据暂存区会在哪里,其它计算单元又是如何进行数据请求了,这一切目前仍是个迷。

上一页 [1] [2] [3] [4] [5] [6] [7] 下一页 |