MCPLive > 杂志文章 > 管窥DirectX 11与通用计算技术

管窥DirectX 11与通用计算技术

2009-09-15陈可《微型计算机》2009年8月下

多线程(Multithreading)功能:多核处理器派上用场

双核处理器早已经成为PC系统的标准配备,三核、四核更是进入主流市场,然而,现在只有为数不多的游戏产品能够对多核平台提供良好的支持,原因在于为多核平台编程十分困难,只有高水准的开发者才能够胜任,但显然并不是所有的游戏公司都有这样的一流好手。因此,直到今天为主,仍有很多数游戏都还只能在单线程下工作,即只能支持CPU的单核运作,其它核心的计算力无法得到充分发掘。

只要开发者采用DirectX 11作为开发平台,那么代码本身就能直接支持多核平台,DirectX 11在底层接管了多核平台的资源分派问题。DirectX 11预示着多线程游戏真正步入现实,我们才可以说多核心处理器被真正派上了用场。对于一套四核游戏平台,当某个渲染场景中有人像和它的三个镜像,DirectX 11就会启动四个线程进行并行处理,效率显然要比目前单线程处理的方式快上数倍!而更令人兴奋的是:多线程技术不仅适用于DirectX 11平台,它同时也能够让现有的DirectX 10硬件受益。比如说基于DirectX 11开发的新款游戏,可以很好支持多线程,而当它在DirectX 10硬件平台上运行时,多核优化的机能依然有效,前提是AMD和NVIDIA必须为各自的DX10 硬件开发出相应的驱动软件才行——就目前看来,这项工作的进展非常顺利。

对象支持:HLSL 5.0高级着色语言

在DirectX 11中,HLSL(MS's High Level Shader Language,微软的高级程序语言)也被升级到5.0版本。HLSL与C语言比较类似,新版本的改进就是新增了类(Class)和接口(interface)的支持,实现了面向对象的支持。


游戏代码高度复杂,若开发语言缺乏面向对象功能,对程序员而言不吝是一个噩梦

这样的升级显然顺应了潮流,上一代HLSL 4.0无法支持面向对象开发,而对于任何一款游戏,编程人员和美工要么构建一种单一的大型渲染,要么就是编写大量的小型渲染程序——这些代码资源巨大,如果没有面向对象指令的话,很难对这些程序进行有效的管理。从这个角度上讲,HLSL 5.0的微小进步依然值得赞许,不过我们相信仍然会有很多程序员表示不满,因为HLSL 5.0依然还不支持指针功能。

写在后:DirectX 11前瞻

DirectX 11的技术改进是渐进式的,并紧扣着开发者的需求,多线程、Tessellation镶嵌化技术、Compute Shader通用计算着色器、面向对象的HLSL 5.0,这些特性都极具实用价值,开发者没有拒绝的理由。DirectX 11将伴随着Windows 7到来——实际上,我们发现这两者在技术风格上出奇一致:都是在一个良好基础上进行深度的改进,这种改进方式稳妥可靠,不需要耗费巨大的工作量,这样反而可以很好地照顾到用户的需求。可以确信,当DirectX 11到来之后,游戏工业在很短的时间内就可以直接实现支持,而DirectX 11游戏的上位时间也会比过去快很多,不会再出现诸如新游戏刚出来,DirectX API就被淘汰的现象。得益于GPU与API的双重进步,未来的DirectX 11游戏将会拥有更精美的画面,我想所有的游戏玩家都会对此热烈欢迎。

分享到:

用户评论

用户名:

密码: