GPU大百科全书第四章 虚与实共舞的TMU

中关村在线 作者:ZOL 编辑:王旭 08-12
  ● 双重解放

  技术的发展在不断的督促着GPU内部各个单元的快速进步,纹理单元也不例外。尽管它已经改名叫Texture Array,而且拥有了TA和TF这两个完全不同的组成部分,但人们还是喜欢叫它最开始的名字——TMU。在DirectX 10/10.1的带动下,TMU单元继续维持着自己的发展,又具备了两个非常好用的改进——纹理阵列以及Gather指令。


GPU大百科全书第四章:虚与实共舞的TMU
使用纹理阵列实现的效果

  纹理阵列(Texture Array)的名字乍一看与纹理单元新的名字是一样的,但他们的含义并不相同。作为单元出现时,Texture Array代表着“处理材质操作的纹理单元阵列”,而作为操作手段出现时,其意义则变成了“允许由一条指令完成读取的材质的集合”。

GPU大百科全书第四章:虚与实共舞的TMU
这个规模的多边形材质需求必须求助纹理阵列

  尽管GPU本身已经拥有了极大地独立性,但对于DirectX 10之前的GPU来说,图形处理的基本要素,也就是对图形函数的调用,仍然是由CPU来进行的。当GPU存在操作需求时,CPU会调用对应函数并将之发送给GPU流水线。传统的贴图操作的基本单元是材质本身,TMU单元在进行贴图操作时会以某个材质的需求为起点发起一次函数调用请求,而CPU则会以执行函数调用并将之发放给GPU作为回应。不难发现,每一次TMU对材质的操作都会让CPU进行一次函数调用操作,如果TMU需要在多个材质之间进行切换,就需要发起多次函数调用请求,而CPU则要进行多次的回应,尽管函数调用本身对于CPU来说是一项简单到几乎完全不构成任何负载的工作,但这种切换以及CPU的频繁介入却给材质操作和CPU本身带来了极大地切换延迟负担。

GPU大百科全书第四章:虚与实共舞的TMU
一个简单的纹理阵列实例

  纹理阵列的出现很好的解决了这个问题。DirectX 10允许每512个材质组成一组阵列,该组阵列中的任意一个或者多个材质均可以通过一条TEX_LOAD指令进行读取,与此同时,得益于Unified Shader所带来的指令格式的开放化以及指令长度的无限化,TEX_LOAD本身已经可以很好的融入到shader program中,直接由GPU就近执行,而不再需要想过去那样频繁的向CPU发出请求以及在函数之间进行切换。Texture Array的出现不仅让CPU得到了进一步的解放,更让TMU单元有了更好的执行效率和决断权。过去读取材质需要CPU来喊口号,现在则终于可以由TMU自己做主了。

GPU大百科全书第四章:虚与实共舞的TMU
Gather指令

  相比纹理阵列简单直接的对实在纹理操作过程的助益,Gather指令的作用和意义相对复杂一些。Gather指令的作用,在于允许单元从非连续存储器地址中直接读取数据。换句话说,Gather指令并不仅仅是针对纹理单元的改进,它可以让所有需要从buffer/ram中读取数据的单元和操作获益。针对纹理操作,Gather指令的引入带来的改进是非常巨大的,对非连续地址的快速读取不仅可以大幅加快定址和拾取过程,整体提升TMU单元的纹理操作效率,为更加优秀的阴影效果、采样以及SSAO提供帮助,更为纹理单元进入数学应用领域打开了另一扇大门。

GPU大百科全书第四章:虚与实共舞的TMU
SSAO特效

  应该说截止到DirectX 10为止,对于TMU单元的改进主要还都是基于可见的或者说实在的纹理操作领域的。它们都在以非常直接的方式提升着TMU单元的操作效率。尽管已经出现了Gather指令这种泛用性的甚至是有些抽象的变化,但总体来讲这些改进还都是可见的。当我们的技术进步发展到DirectX 11时,TMU单元的进步就开始变得更加抽象了。

三秦IT网的官方微信:更多资讯请关注:三秦IT网官方微博

图片新闻
ZOL产品报价:手机报价 笔记本报价 数码相机报价 服务器报价 MP3报价 MP4报价 投影机报价 数码摄像机报价 硬盘报价 内存报价
ZOL笔记本报价: 戴尔笔记本 联想笔记本 惠普笔记本 ThinkPad笔记本 神舟笔记本 索尼笔记本 华硕笔记本 三星笔记本 东芝笔记本 苹果笔记本
ZOL手机报价:诺基亚手机 MOTO手机 三星手机 索爱手机 多普达手机 联想手机 CECT手机 IPHONE手机 魅族手机 天语手机 LG手机
ZOL数码相机报价:佳能数码相机 索尼数码相机 三星数码相机 尼康数码相机 松下数码相机 理光数码相机 奥林巴斯数码相机 柯达数码相机