Submit News Tips | I4U Gadget Flyer | RSS Feed
I4U Shopping : Cool Gadgets and Consumer Electronics Store
 
HOT TOPICS: Nintendo Wii | Sony PS3 | Xbox 360 | Gadget Models

I4U Latest News

DX10中的Geometry Shader几何着色单元

Topic: 技术前沿         ★★★★★

作者:Rowan    文章来源:本站原创    点击数:    更新时间:2007-8-4

编者按:这篇文章成文于2006年5月21日,发表在《电脑商情报》上。是一篇非常不错的技术解析文章。新一代的DX10 API已经携手Vista一同到来。虽然很多人都知道顶点和像素的Shader已经合并成为统一Shader架构了。但是很少有人知道Shader中还多了一个新的种族,几何着色单元。这个新的技术,经常在显卡评测中被忽视,在很多笔记本评测中,更是被胡写一通。


下一代DX10中的Geometry Shader几何着色器

在今年下旬,传说中的Windows Vista就要正式发布了,而更令人兴奋的是随着Vista一同到来的还有DircetX10,但是DX10它不会向下兼容以前的版本,我们只能通过软件模拟方式来运行老游戏。而且要享受到最新的DircetX10游戏,也必须升级到Vista。为什么会这样呢?DircetX10采用的是全新的架构设计。为了增强显卡的处理效能,在以前的Pixel Shader和Vertex Shader的基础上又增加了一个Geometry Shader几何着色器。今天笔者就给大家详细解析下一代DX10中的Geometry Shader。

什么是Shader

很多人都明白象素、多边形、材质的意思,但始终对Shader一词难以理解。翻开字典Shader是阴影的意思,但它和3D加速卡又有怎样的关系呢?事实上Shader就是一段可以改变象素和顶点的小程序。因此在Shader规范模型中又划分出两个分支,一个叫做像素着色器(Pixel Shaders)一个叫做顶点着色器(Vertex Shaders)。这个Shader小程序可以为游戏场景添加一些基本的几何学特效。例如湖水的涟漪,它会让特定的蓝色材质发生移动、扭曲和倒映,这样就会给人波光粼粼的感觉了。若是要将一个物体渲染成玻璃的风格,它就会让一些材质发生透明和扭曲。Shader技术主要是应用在目前的电脑游戏当中,它让我们的电脑游戏画面更加逼真,现在的主流3D游戏画质要比几年前逼真许多。Shader是具有可编程性的,开发人员可以用它创造出非常图特的游戏场景。像NVIDIA和ATI的显卡都严格支持Shader的规格,并且为Shader程序作了很多优化。当然除了游戏的特效之外,游戏开发人员也可以用Shader作很多其他工作。总之Shader在未来的游戏中将发挥越来越重大的作用。

如图1,在下一代DirectX10中,我们惊奇的发现了一个叫做Geometry shader的着色单元。

什么是Geometry shader

通过以上的介绍,我们不难理解,Pixel Shader是专门处理像素的,Vertex Shader是专门处理多边形顶点的。那么Geometry shader就是专门用来处理场景中的几何图形。在过去Vertex Shader每一次运行只能处理一个顶点的数据,并且每次只能输出一个顶点的结果。在整个游戏场景中,绘制的几何图形的任务量是非常庞大的,如果仅仅依靠Vertex Shader来完成,处理场景的效率会很低下。并且如大爆炸,粒子效果,瀑布流水等复杂的场景都很难逼真的表现出来。

现在DX10的设计师们在顶点与像素的处理过程中又加入了Geometry shader几何着色器。它可以根据顶点的信息来批量处理几何图形。Geometry shader可以将点、线、三角形等基本的构图元素连接起来,创造出新的多边形。快速的将这些处理结果传递给其他Shader或显存,并且这个过程无需处理器参与。

Geometry shader是如何工作的

Geometry shader最重要的工作就是接点,将顶点之间用线连接起来。例如,当Geometry shader拥有两个顶点的信息时,它就可以将两个点连接起来组成一条线。通过这条线可以绘制其他延长线上的点。而通过连接三个顶点就可以绘制出一个三角形。最后通过计算延长线上的点,就可以绘制出更为复杂的几何图形。


如图2,Geometry shader绘制几何图形的原理。

在显卡的工作流水线中几何着色器工作在顶点与像素着色器之间。当显卡中的顶点着色单元生成顶点信息之后,就会将这些结果交给几何着色器来构成更为复杂的几何图形,最后交由像素着色器来为这些几何图形添加各种材质。


如图3,Geometry shader几何着色器工作在顶点与像素着色单元之间。

Geometry shader的出现使得游戏开发人员可以设计出更为复杂的烟雾、爆炸、天气等效果,并且游戏场景中的模型可以设计的更为细腻复杂。而处理器也可以从这些繁重的计算任务中解脱出来。

今后的Shader会如何发展?

最初的像素Shader单元设计的非常简单,而顶点Shader单元则设计的非常复杂。在两者的慢慢演化过程中他们互相取长补短二者的结构越来越相似。在未来的DirectX10中将支持最新的SM4.0版本,今后像素和顶点Shader运算单元结的构将会被统一。在今后的Shader中顶点和像素Shader的概念分歧将被弱化。而几何着色器将成为他们之间的纽带,数据流在完成顶点着色和几何着色之后,几何着色器可以进行流输出(Steam Out),让结果直接返回流水线操作之初的阶段进行再处理,而不再经过像素着色阶段,从而简化了部分程序。在未来的显卡中几何着色器流水线的数量会与顶点着色器保持一致,而像素着色器的数量还会远远多于二者。例如顶点着色器流水线的数量为8条,那么几何着色器也同为8条,而像素着色器流水线至少会达到24条以上。

 

发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口

  • 上一篇文章:
  • 下一篇文章:
  • 起居室变摄影棚 DIY摄影背景幕布
    mod地带:恶龙传说MOD主题机箱改造
     
    姓 名:

    评 分: 1分 2分 3分 4分 5分

    评 论: