● 反客为主
DirectX 11是一个值得图形业界记住的API版本。在这个版本中,微软第一次彻底打破了图形与运算的界限,最大限度的发动GPU内各种运算资源来为图形过程提供帮助。Compute Shader的出现不仅改变了人们对于显卡为通用计算买单很不划算的偏见,更令许多GPU的传统处理过程直接从数学中获益,TMU就是其中之一。
在DirectX 11中,微软通过取消Compute Shader的几何关联性,让纯数学形式的代码直接进入到指令当中去,这种改进让TMU获得了直接调用数学运算能力的机会。透过Compute Shader,Gather指令的效率得到了近一步的提升,这等效的大幅增强了TMU单元的动作效率,而新引入的粗糙偏导函数更是赋予了TMU直接以数学形式生成简单纹理的恐怖能力。TMU单元在DirectX 11中不仅前所未有的高效,而且在功能端也达到了史无前例的高度。
现在的TMU太过强大了,强大到有些喧宾夺主了。
Gather4指令
实际上从DirectX9.0C末期至DirectX 10初期开始,由于shader的极大发展,程序员更加倾向于使用Pixel Shader效果来改进游戏的特效表现。对于画面光线关系以及光影效果的刻画和描绘,自那时起就一直是画面质量和效果提升的主要手段,这种方向性的趋势直接反应在了指令密度方面,在API进入到DirectX 10时代之后,指令中纹理部分的比例就一直在持续下降中。微软正是顺应了这种趋势,才将整个API的发展思路确定成了以更加灵活和强大的shader能力为主。DirectX 10以及DirectX 11对于shader的诸多改进,尤其是DirectX 11对于纯数学代码及运算能力的开放,实际上都是在为Shader尤其是Pixel Shader效果的进一步发挥创造条件。
但是这种开放不光面向ALU及纯Pixel Shader,其本身也会导致TMU单元的大幅受益。
DirectX 11的主要改进
因为那个被反复强调的原因,我们的游戏界在最近几年一直停顿在以DirectX9.0C类应用为主的状态,程序员们的编程习惯并没有因为API的大幅进步以及编程环境的不断改善而跟着提升到新的高度。不管是出于无奈还是别的什么原因,在经历了一段时间的下降之后,指令中纹理部分的比例再一次提升到了一个新的高度。而恰恰就在此时,TMU单元适时的为大家奉上了改进之后各种强劲的功能和效率。再加上曲面细分等新技术的推动,我们面前的许多所谓DirectX 11大作,实际上已经成了以贴图和各种纹理操作为主,像素特效应用为辅的状态,我们看不到真正意义上的各种新技术的应用,看不到传说中的更高的执行效率,却只看到了几乎停滞不前的画面质量以及满眼的贴图操作。换句话说,图形业界辛辛苦苦十来年,现在又回到了解放前……
即便是今天的游戏,其特效水准也就到这程度了
导致现在TMU单元喧宾夺主甚至回归复辟的根本原因,并不在单元本身,而在于单元的使用者。虽然画面特效的进步缓慢本身与其数学本质和市场及经济环境等都有极大的关联,但不可否认的是程序员们目前对强大的纹理单元的再次过分依赖,也是导致现状的重要原因之一。
我们无意评价TMU单元自身的功过是非,毕竟它只是一个单元。剑本凡铁,因执者之念而分善恶。既然我们改变不了环境,不如静下心来观察,看看大发展之后的TMU单元,究竟是如何动作的吧。
三秦IT网的官方微信:更多资讯请关注:三秦IT网官方微博