DirectX 10

由三个顶点组成的图元

在DirectX 10的图形流水线体系中,最大的结构性变化就是在几何处理阶段增加了几何渲染单元(Geometry Shader)。几何渲染单元被附加在顶点渲染单元之后,但它并不像顶点渲染单元那样输出一个个顶点,而是以图元作为处理对象。

几何渲染单元
图元在层次上比顶点高一级,它由一个或多个顶点构成。由单个顶点组成的图元被称为“点”,由两个顶点组成的图元被称为“线”,由三个顶点组成的图元被称为“三角形”。几何渲染单元支持点、线、三角形、带邻接点的线、带邻接点的三角形等多种图元类型,它一次最多可处理六个顶点。借助丰富的图元类型支持,几何渲染单元可以让GPU提供更精细的模型细节。
几何渲染单元赋予GPU自行创造新几何物体、为场景添加内容的神奇能力。灵活的处理能力使GPU更加通用化,以往很多必须倚靠CPU才能完成的工作,完全可交由GPU处理。如此一来,CPU就有更多时间处理人工智能、寻址等工作。更令人惊喜的是,几何渲染单元还让物理运算的加入变得更简单,DirectX 10可创建具备物理特性的盒子、模拟刚性物体,物理运算有望在它的带领下逐渐走向普及。可以预见,借助几何渲染单元这一武器,显卡性能将产生质的飞跃,我们也将体验到速度更流畅、画面更精美、情节更细致的游戏。
改进驱动功效
我们知道,每一个游戏角色、武器和景物在3D程序中都是一个Object(对象),而每一帧游戏画面就可能出现数百个Object。在显卡工作时,每一个Object都要从应用程序传输到API接口,然后通过显卡驱动程序到达显卡。在现有的DirectX体系中,任何一个Object进行操作或者渲染,都会导致系统资源的额外消耗,游戏的Object越多,所耗费的传递时间就越长,造成的额外消耗也就越多。据统计,现有的DirectX 9图形芯片在工作时,只有60%的性能用于运算3D程序,其余40%的运算能力被白白浪费了!
为了改变这一现状,DirectX 10在渲染程序中采用了动态索引功能,Object被驱动程序自动加载,数据可以分类并连续输入,这样一来,单次传输的数据量就增加了,从而大大降低了额外耗费的时间。通过引入新的API及驱动程序,DirectX 10将图形芯片的执行效能提升至80%。在不增加显卡硬件成本的前提下,显卡性能得到了大幅提升。
引擎支持技术
为了提升多块显卡协作的工作效率,微软在DirectX 10中提出了“Parallel Engine Support(并行引擎支持)”的概念,它可以预先把两个GPU需要的数据分别传输到两块对应的GPU当中,帧渲染将完全由驱动控制和调配,两块显卡的工作强度可以获得很好的平衡。而在主从卡的运作模式中,主卡要对从卡框架、渲染数量进行判定,而引入并行引擎支持技术后,主从卡的概念将消失,两块甚至多块显卡的协作威力将充分体现。
统一渲染架构
DirectX 10最大的革新就是统一渲染架构(Unified Shader Architecture)。各类图形硬件和API均采用分离渲染架构,即顶点渲染和像素渲染各自独立进行,前者的任务是构建出含三维坐标信息的多边形顶点,后者则是将这些顶点从三维转换为二维,这样便可以通过视觉欺骗在屏幕上显示出“三维”的场景。与此对应,GPU中也有专门的顶点渲染单元和像素渲染单元来分别执行这两项工作(由于工作量不同,这两种渲染单元的数量不相等,顶点渲染单元通常只有像素渲染单元的1/3~1/2)。在过去几年中,这种分离式设计对计算机图形领域的发展做出了一定的贡献。
不过,微软认为这种分离渲染架构不够灵活,不同的GPU,其像素渲染单元和顶点渲染单元的比例不一样,软件开发人员在编写代码时必须考虑这个比例,这就大大限制了开发人员自由发挥的空间。另外,不同的图形游戏或软件对像素渲染和顶点渲染的需求不一样,导致GPU的运算资源得不到充分利用。为此,微软在DirectX 10中提出了统一渲染架构的思想:在相同物理类型的渲染单元上执行不同类型的渲染程序。换句话说,只用一种渲染单元,让它既能完成顶点渲染,也能完成像素渲染,甚至还能实现几何渲染。这样一来,渲染单元可以得到最大程度的利用,减少了资源闲置的情形。Xbox 360的显示芯片Xenos就采用了统一渲染架构,该芯片一共有48个渲染单元,它们可全部用于顶点渲染或像素渲染,没有固定分配比例。此外,ATI也打算在新一代的R600芯片中采用统一渲染架构。
当然,统一渲染架构也并非完美无瑕。相对顶点渲染来说,像素渲染将面临大规模使用纹理所带来的材质延迟,这是统一渲染架构急待解决的问题。不过有一点可以肯定,在微软的大力推动下,统一渲染架构是大势所趋。
适应系统
统一渲染架构外,DirectX 10的另一大特色就是与Windows Vista紧密结合,Vista系统将调用GPU资源来渲染Aero Glass 3D界面,这样图形API就与操作系统核心高度整合在一起。举个例子,当我们点击应用程序时,CPU将立刻收到驱动程序的指令,而软件界面渲染指令则通过DirectX 10直接传送给GPU,这样,Vista就能与CPU和GPU同时沟通,让3D界面渲染工作变得更高效。
相比之下,在DirectX 9环境中,Vista(软件)界面的渲染工作就要“迟钝”一些了:用户点击运行某个软件,Vista将相应的指令发送给CPU,要求CPU进行后续处理;CPU接到运行指令的同时向GPU发出请求,要求GPU在屏幕上渲染出界面。GPU(支持DirectX 9)识别Vista界面渲染指令后完成相应的工作(注意:DirectX 8显卡无法完成渲染工作,必须让CPU通过软件模拟来实现,此时系统速度非常缓慢)。换句话说,在“DirectX 9显卡+Vista”的平台中,CPU还是核心,GPU必须在CPU的控制下工作,而Vista系统也必须通过CPU来调用GPU的资源。
DirectX9还有一个不足之处,那就是它只能进行单任务渲染,即无法同时完成两个场景的渲染工作(如无法在运行游戏的同时为软件渲染3D界面),应用范围受到极大的限制。而DirectX 10则允许GPU同时渲染多个不相关的3D场景,工作效率大为提高。因此,尽管DirectX 9显卡大都能驱动Vista华丽的Aero Glass视觉模式,但很多方面受到了限制,只有DirectX 10显卡才是Vista的理想“伴侣”。
可惜,微软决定DirectX10不会“下嫁”WindowsXP,想体验DX10特效只能依赖Vista。
渲染单元模式
Shader Model 4.0
从DirectX 8开始,Shader Model(渲染单元模式)在DirectX体系中的地位就日趋重要,其版本和渲染单元的规格也成为了决定显卡性能高低的关键因素。随着DirectX 10时代的到来,Shader Model也升级到了4.0版本。与眼下如日中天的Shader Model 3.0(以下简称SM 3.0)相比,Shader Model 4.0(以下简称SM 4.0)有哪些可喜的变化?
首先,SM4.0中的指令长度被提升到大于64K(即64×1024)的水平,这是SM 3.0规格(渲染指令长度允许大于512)的128倍。显然,SM 4.0在为渲染出电影级别的游戏画面做准备。由于渲染指令长度大幅提升,SM 4.0中相应的寄存器规格也有所增强,如Constant寄存器采用16×4096阵列、tmp寄存器则有4096个、input寄存器采用16/32规格等,上述指标都比以前的DirectX有明显的改进。其次,SM 4.0在纹理数量方面也有提高。DirectX 10允许程序员在渲染物体时使用128个纹理,而DirectX 9只提供4/16规格,更多的纹理意味着物体表面精度更接近真实,游戏开发者拥有更广泛的选择。
从上述情况不难看出,DirectX 10在性能方面的提升是巨大的,它将进一步解放CPU的资源。当然,我们也必须看到,DirectX 10对硬件(尤其是显卡)的要求也更为苛刻,GPU在设计上也将更加复杂。
新版功能
正如以前的DX版本一样,DX10.1也是DX10的超集,因此它将支持DirectX 10的所有功能,同时它将支持更多的功能,提供更高的性能。
改善的shader资源存取功能
DX10.1的一个主要提高是改善的shader资源存取功能,在多样本AA时,在读取样本时有更好的控制能力。除此之外,DX10.1还将可以创建定制的下行采样滤波器。
DX10.1还将有更新的浮点混合功能,对于渲染目标更有针对性,对于渲染目标混合将有新的格式,渲染目标可以实现独立的各自混合。阴影功能一直是游戏的重要特效,Direct3D 10.1 的阴影滤波功能也将有所提高,从而可望进一步提高画质。
支持多核系统有更高的性能
在性能方面,DirectX 10.1将支持多核系统有更高的性能。而在渲染,反射和散射时,Direct3D 10.1将减少对API的调用次数,从而将获得不错的性能提升。
其他方面
其他方面,DX10.1的提高也不少,包括32bit浮点滤波,可以提高渲染精确度,改善HDR渲染的画质。完全的抗锯齿应用程序控制也将是DX10.1的亮点,应用程序将可以控制多重采样和超级采样的使用,并选择在特定场景出现的采样模板。DX10.1将至少需要单像素四采样。
DX10.1还将引入更新的驱动模型,WDDM 2.1。与DX10的WDDM2.0相比,2.1有一些显著的提高。
首先是更多的内容转换功能,WDDM2.0支持处理一个命令或三角形后进行内容转换,而WDDM2.1则可以让内容转换即时进行。由于GPU同时要并行处理多个线程,因此内容转换的即时性不仅可以保证转换质量,还可以提升GPU效率,减少等待时间。另外,由于WDDM 2.1支持基于过程的虚拟内存分配,处理GPU和驱动页面错误的方式也更为成熟。
全国各地天气预报查询

上海市

  • 市辖区
  • 云南省

  • 临沧市
  • 云南省

  • 丽江市
  • 云南省

  • 保山市
  • 云南省

  • 大理白族自治州
  • 云南省

  • 德宏傣族景颇族自治州
  • 云南省

  • 怒江傈僳族自治州
  • 云南省

  • 文山壮族苗族自治州
  • 云南省

  • 昆明市
  • 云南省

  • 昭通市
  • 云南省

  • 普洱市
  • 云南省

  • 曲靖市
  • 云南省

  • 楚雄彝族自治州
  • 云南省

  • 玉溪市
  • 云南省

  • 红河哈尼族彝族自治州
  • 云南省

  • 西双版纳傣族自治州
  • 云南省

  • 迪庆藏族自治州
  • 内蒙古自治区

  • 乌兰察布市
  • 内蒙古自治区

  • 乌海市
  • 内蒙古自治区

  • 兴安盟
  • 内蒙古自治区

  • 包头市
  • 内蒙古自治区

  • 呼伦贝尔市
  • 内蒙古自治区

  • 呼和浩特市
  • 内蒙古自治区

  • 巴彦淖尔市
  • 内蒙古自治区

  • 赤峰市
  • 内蒙古自治区

  • 通辽市
  • 内蒙古自治区

  • 鄂尔多斯市
  • 内蒙古自治区

  • 锡林郭勒盟
  • 内蒙古自治区

  • 阿拉善盟
  • 北京市

  • 市辖区
  • 吉林省

  • 吉林市
  • 吉林省

  • 四平市
  • 吉林省

  • 延边朝鲜族自治州
  • 吉林省

  • 松原市
  • 吉林省

  • 白城市
  • 吉林省

  • 白山市
  • 吉林省

  • 辽源市
  • 吉林省

  • 通化市
  • 吉林省

  • 长春市
  • 四川省

  • 乐山市
  • 四川省

  • 内江市
  • 四川省

  • 凉山彝族自治州
  • 四川省

  • 南充市
  • 四川省

  • 宜宾市
  • 四川省

  • 巴中市
  • 四川省

  • 广元市
  • 四川省

  • 广安市
  • 四川省

  • 德阳市
  • 四川省

  • 成都市
  • 四川省

  • 攀枝花市
  • 四川省

  • 泸州市
  • 四川省

  • 甘孜藏族自治州
  • 四川省

  • 眉山市
  • 四川省

  • 绵阳市
  • 四川省

  • 自贡市
  • 四川省

  • 资阳市
  • 四川省

  • 达州市
  • 四川省

  • 遂宁市
  • 四川省

  • 阿坝藏族羌族自治州
  • 四川省

  • 雅安市
  • 天津市

  • 市辖区
  • 宁夏回族自治区

  • 中卫市
  • 宁夏回族自治区

  • 吴忠市
  • 宁夏回族自治区

  • 固原市
  • 宁夏回族自治区

  • 石嘴山市
  • 宁夏回族自治区

  • 银川市
  • 安徽省

  • 亳州市
  • 安徽省

  • 六安市
  • 安徽省

  • 合肥市
  • 安徽省

  • 安庆市
  • 安徽省

  • 宣城市
  • 安徽省

  • 宿州市
  • 安徽省

  • 池州市
  • 安徽省

  • 淮北市
  • 安徽省

  • 淮南市
  • 安徽省

  • 滁州市
  • 安徽省

  • 芜湖市
  • 安徽省

  • 蚌埠市
  • 安徽省

  • 铜陵市
  • 安徽省

  • 阜阳市
  • 安徽省

  • 马鞍山市
  • 安徽省

  • 黄山市
  • 山东省

  • 东营市
  • 山东省

  • 临沂市
  • 山东省

  • 威海市
  • 山东省

  • 德州市
  • 山东省

  • 日照市
  • 山东省

  • 枣庄市
  • 山东省

  • 泰安市
  • 山东省

  • 济南市
  • 山东省

  • 济宁市
  • 山东省

  • 淄博市
  • 山东省

  • 滨州市
  • 山东省

  • 潍坊市
  • 山东省

  • 烟台市
  • 山东省

  • 聊城市
  • 山东省

  • 菏泽市
  • 山东省

  • 青岛市
  • 山西省

  • 临汾市
  • 山西省

  • 吕梁市
  • 山西省

  • 大同市
  • 山西省

  • 太原市
  • 山西省

  • 忻州市
  • 山西省

  • 晋中市
  • 山西省

  • 晋城市
  • 山西省

  • 朔州市
  • 山西省

  • 运城市
  • 山西省

  • 长治市
  • 山西省

  • 阳泉市
  • 广东省

  • 东莞市
  • 广东省

  • 中山市
  • 广东省

  • 云浮市
  • 广东省

  • 佛山市
  • 广东省

  • 广州市
  • 广东省

  • 惠州市
  • 广东省

  • 揭阳市
  • 广东省

  • 梅州市
  • 广东省

  • 汕头市
  • 广东省

  • 汕尾市
  • 广东省

  • 江门市
  • 广东省

  • 河源市
  • 广东省

  • 深圳市
  • 广东省

  • 清远市
  • 广东省

  • 湛江市
  • 广东省

  • 潮州市
  • 广东省

  • 珠海市
  • 广东省

  • 肇庆市
  • 广东省

  • 茂名市
  • 广东省

  • 阳江市
  • 广东省

  • 韶关市
  • 广西壮族自治区

  • 北海市
  • 广西壮族自治区

  • 南宁市
  • 广西壮族自治区

  • 崇左市
  • 广西壮族自治区

  • 来宾市
  • 广西壮族自治区

  • 柳州市
  • 广西壮族自治区

  • 桂林市
  • 广西壮族自治区

  • 梧州市
  • 广西壮族自治区

  • 河池市
  • 广西壮族自治区

  • 玉林市
  • 广西壮族自治区

  • 百色市
  • 广西壮族自治区

  • 贵港市
  • 广西壮族自治区

  • 贺州市
  • 广西壮族自治区

  • 钦州市
  • 广西壮族自治区

  • 防城港市
  • 新疆维吾尔自治区

  • 乌鲁木齐市
  • 新疆维吾尔自治区

  • 伊犁哈萨克自治州
  • 新疆维吾尔自治区

  • 克孜勒苏柯尔克孜自治州
  • 新疆维吾尔自治区

  • 克拉玛依市
  • 新疆维吾尔自治区

  • 博尔塔拉蒙古自治州
  • 新疆维吾尔自治区

  • 吐鲁番市
  • 新疆维吾尔自治区

  • 和田地区
  • 新疆维吾尔自治区

  • 哈密市
  • 新疆维吾尔自治区

  • 喀什地区
  • 新疆维吾尔自治区

  • 塔城地区
  • 新疆维吾尔自治区

  • 巴音郭楞蒙古自治州
  • 新疆维吾尔自治区

  • 昌吉回族自治州
  • 新疆维吾尔自治区

  • 自治区直辖县级行政区划
  • 新疆维吾尔自治区

  • 阿克苏地区
  • 新疆维吾尔自治区

  • 阿勒泰地区
  • 江苏省

  • 南京市
  • 江苏省

  • 南通市
  • 江苏省

  • 宿迁市
  • 江苏省

  • 常州市
  • 江苏省

  • 徐州市
  • 江苏省

  • 扬州市
  • 江苏省

  • 无锡市
  • 江苏省

  • 泰州市
  • 江苏省

  • 淮安市
  • 江苏省

  • 盐城市
  • 江苏省

  • 苏州市
  • 江苏省

  • 连云港市
  • 江苏省

  • 镇江市
  • 江西省

  • 上饶市
  • 江西省

  • 九江市
  • 江西省

  • 南昌市
  • 江西省

  • 吉安市
  • 江西省

  • 宜春市
  • 江西省

  • 抚州市
  • 江西省

  • 新余市
  • 江西省

  • 景德镇市
  • 江西省

  • 萍乡市
  • 江西省

  • 赣州市
  • 江西省

  • 鹰潭市
  • 河北省

  • 保定市
  • 河北省

  • 唐山市
  • 河北省

  • 廊坊市
  • 河北省

  • 张家口市
  • 河北省

  • 承德市
  • 河北省

  • 沧州市
  • 河北省

  • 石家庄市
  • 河北省

  • 秦皇岛市
  • 河北省

  • 衡水市
  • 河北省

  • 邢台市
  • 河北省

  • 邯郸市
  • 河南省

  • 三门峡市
  • 河南省

  • 信阳市
  • 河南省

  • 南阳市
  • 河南省

  • 周口市
  • 河南省

  • 商丘市
  • 河南省

  • 安阳市
  • 河南省

  • 平顶山市
  • 河南省

  • 开封市
  • 河南省

  • 新乡市
  • 河南省

  • 洛阳市
  • 河南省

  • 漯河市
  • 河南省

  • 濮阳市
  • 河南省

  • 焦作市
  • 河南省

  • 省直辖县级行政区划
  • 河南省

  • 许昌市
  • 河南省

  • 郑州市
  • 河南省

  • 驻马店市
  • 河南省

  • 鹤壁市
  • 浙江省

  • 丽水市
  • 浙江省

  • 台州市
  • 浙江省

  • 嘉兴市
  • 浙江省

  • 宁波市
  • 浙江省

  • 杭州市
  • 浙江省

  • 温州市
  • 浙江省

  • 湖州市
  • 浙江省

  • 绍兴市
  • 浙江省

  • 舟山市
  • 浙江省

  • 衢州市
  • 浙江省

  • 金华市
  • 海南省

  • 三亚市
  • 海南省

  • 三沙市
  • 海南省

  • 儋州市
  • 海南省

  • 海口市
  • 海南省

  • 省直辖县级行政区划
  • 湖北省

  • 十堰市
  • 湖北省

  • 咸宁市
  • 湖北省

  • 孝感市
  • 湖北省

  • 宜昌市
  • 湖北省

  • 恩施土家族苗族自治州
  • 湖北省

  • 武汉市
  • 湖北省

  • 省直辖县级行政区划
  • 湖北省

  • 荆州市
  • 湖北省

  • 荆门市
  • 湖北省

  • 襄阳市
  • 湖北省

  • 鄂州市
  • 湖北省

  • 随州市
  • 湖北省

  • 黄冈市
  • 湖北省

  • 黄石市
  • 湖南省

  • 娄底市
  • 湖南省

  • 岳阳市
  • 湖南省

  • 常德市
  • 湖南省

  • 张家界市
  • 湖南省

  • 怀化市
  • 湖南省

  • 株洲市
  • 湖南省

  • 永州市
  • 湖南省

  • 湘潭市
  • 湖南省

  • 湘西土家族苗族自治州
  • 湖南省

  • 益阳市
  • 湖南省

  • 衡阳市
  • 湖南省

  • 邵阳市
  • 湖南省

  • 郴州市
  • 湖南省

  • 长沙市
  • 甘肃省

  • 临夏回族自治州
  • 甘肃省

  • 兰州市
  • 甘肃省

  • 嘉峪关市
  • 甘肃省

  • 天水市
  • 甘肃省

  • 定西市
  • 甘肃省

  • 平凉市
  • 甘肃省

  • 庆阳市
  • 甘肃省

  • 张掖市
  • 甘肃省

  • 武威市
  • 甘肃省

  • 甘南藏族自治州
  • 甘肃省

  • 白银市
  • 甘肃省

  • 酒泉市
  • 甘肃省

  • 金昌市
  • 甘肃省

  • 陇南市
  • 福建省

  • 三明市
  • 福建省

  • 南平市
  • 福建省

  • 厦门市
  • 福建省

  • 宁德市
  • 福建省

  • 泉州市
  • 福建省

  • 漳州市
  • 福建省

  • 福州市
  • 福建省

  • 莆田市
  • 福建省

  • 龙岩市
  • 西藏自治区

  • 山南市
  • 西藏自治区

  • 拉萨市
  • 西藏自治区

  • 日喀则市
  • 西藏自治区

  • 昌都市
  • 西藏自治区

  • 林芝市
  • 西藏自治区

  • 那曲市
  • 西藏自治区

  • 阿里地区
  • 贵州省

  • 六盘水市
  • 贵州省

  • 安顺市
  • 贵州省

  • 毕节市
  • 贵州省

  • 贵阳市
  • 贵州省

  • 遵义市
  • 贵州省

  • 铜仁市
  • 贵州省

  • 黔东南苗族侗族自治州
  • 贵州省

  • 黔南布依族苗族自治州
  • 贵州省

  • 黔西南布依族苗族自治州
  • 辽宁省

  • 丹东市
  • 辽宁省

  • 大连市
  • 辽宁省

  • 抚顺市
  • 辽宁省

  • 朝阳市
  • 辽宁省

  • 本溪市
  • 辽宁省

  • 沈阳市
  • 辽宁省

  • 盘锦市
  • 辽宁省

  • 营口市
  • 辽宁省

  • 葫芦岛市
  • 辽宁省

  • 辽阳市
  • 辽宁省

  • 铁岭市
  • 辽宁省

  • 锦州市
  • 辽宁省

  • 阜新市
  • 辽宁省

  • 鞍山市
  • 重庆市

  • 重庆市

  • 市辖区
  • 陕西省

  • 咸阳市
  • 陕西省

  • 商洛市
  • 陕西省

  • 安康市
  • 陕西省

  • 宝鸡市
  • 陕西省

  • 延安市
  • 陕西省

  • 榆林市
  • 陕西省

  • 汉中市
  • 陕西省

  • 渭南市
  • 陕西省

  • 西安市
  • 陕西省

  • 铜川市
  • 青海省

  • 果洛藏族自治州
  • 青海省

  • 海东市
  • 青海省

  • 海北藏族自治州
  • 青海省

  • 海南藏族自治州
  • 青海省

  • 海西蒙古族藏族自治州
  • 青海省

  • 玉树藏族自治州
  • 青海省

  • 西宁市
  • 青海省

  • 黄南藏族自治州
  • 黑龙江省

  • 七台河市
  • 黑龙江省

  • 伊春市
  • 黑龙江省

  • 佳木斯市
  • 黑龙江省

  • 双鸭山市
  • 黑龙江省

  • 哈尔滨市
  • 黑龙江省

  • 大兴安岭地区
  • 黑龙江省

  • 大庆市
  • 黑龙江省

  • 牡丹江市
  • 黑龙江省

  • 绥化市
  • 黑龙江省

  • 鸡西市
  • 黑龙江省

  • 鹤岗市
  • 黑龙江省

  • 黑河市
  • 黑龙江省

  • 齐齐哈尔市