1、Shader Model 4.0
SM4.0规格令游戏程序开发员有更大的空间,相比原先的Shader Model 3.0自然继续有所提升,特别是对于最大指令数从512条增加到了64000条;暂存器数量也从原先的32个增加到惊人的4096个,而同时Texture由SM3.0的16个提升至128个,并硬件支持RGBE,令HDR不再需要特别的Decoding处理也能实现,HDR+AA将不再有这么多的麻烦。对于2D的纹理尺寸支持来看,DirectX 10也有惊人的提升,8192x8192的最高纹理分辩率比原先最高2048x2048的分辩率要高出许多
2、统一渲染架构
而在DirectX 10中引入了统一渲染架,通过一个整合Vertex Shader、 Pixel Shader的可编程整合光影处理器来完成目前Vertex Shader、Pixel Shader所有的工作。所谓统一渲染架构,最容易的理解方式就是Shader单元不再分离,显示核心不再为Shader类型不同而配置不同类型的Shader单元,对于主流的显示核心,Pixel Shader单元以及vertex Shader单元的概念都应该已经非常熟悉了,而在统一渲染架构中这两种Shader单元将不再分离,转而所有的Shader单元都可以为需要处理的数据进行处理,不管和是Pixel Shader数据还是Vertex Shader数据。而调配哪几组Shader单元负责处理什么数据或者进行什么样子类型的计算,则由一个被称为small sets of instructions(SSI)的部分来控制。这样在硬件上,设计者就无需为不同的着色引擎设计不同的执行单元,只要按照所对应的接口以及操作方式全部融为一体,仅设置一种独立的Shader执行单元。这意味着GPU厂家可以用更小的核心来实现现在需要用8000万甚至更多晶体管才能实现的功能!
3、Geometry Shader技术
另外,DirectX 10还带有一个被称为Geometry Shader的新版“Shader”,可以处理Pixel Shaders和Vertex Shaders不能完成的任务。
目前DirectX的处理模式是:1.顶点数据准备;2.Vertex Shader;3.完成Vertex Shader;4.光栅化计算;5.PixelShader;6.完成PixelShader;这是一个D3D标准的处理模式,这个过程是是顺序进行的(DirectX 10之前)。因此,只能吸收和输出一个单独顶点的旧版Vertex Shaders是不能创建或者破坏三角形的。
4、虚拟显存技术
微软根据虚拟内存管理方法将在DirectX 10中引入虚拟显存技术。虚拟显存将可以很好的解决以上所提到的问题,所有的纹理、着色等都分成“小块”数据即使在低速总线上也能流畅传输。例如,一个4KB大小的页面相当于一个32×32×32bit大小的纹理贴图,这样大小的纹理贴图已经可以满足需要,这样在需要纹理渲染时系统就不需要传输太多"页面"就可以完成相应的工作。而做到这一切几乎不会损失性能。
5、整数指令集
而DX10中引入整数运算将有许多好处,比如进行动态/静态分支预测、顶点缓存定位、通用内存寻址方面,浮点是无法进行精确计算的。
6、直接存取像素着色帧缓存
DX10则转向了新思路:使用了像素描影器直接存取帧缓存的方式来部分代替以前的实时渲染,某些情况下,我们可以随时中断渲染,加入我们想要的效果,再继续运算,不对整个渲染过程造成影响,使渲染变得更为灵活和可控。但并不意味着在DirectX10中进行实时渲染模式就毫无问题,并且厂商可能放弃了对这种技术的支持。那样这项技术很可能以一种备选方案出现,如此一来,程序员可能会忽略这项技术的存在而继续沿用老方法
7、增强型图形镶嵌技术
DX10的硬件将支持各种通用高阶曲面计算:Catmull-Rom曲面、贝赛尔曲线、B-Splines曲线、圆锥曲线,证明高阶曲面回归的时代已经到来,只是要我们去认真地进行优化而己。当然这些也需要图形芯片进行硬件支持。
8、Physics(物理加速)技术
DX10 GPU将是更趋向化通用型的处理器,也就是说,原本许多交由CPU进行的3D处理会被转移到GPU上面来,因为强大的GPU比CPU更适合做这些工作,由此游戏性能会大幅提高。微软表示,DX10会开放两个SDK,分别照顾到AGEIA和Havok,其中AGEIA的PPU直接作用于SDK独立进行物理运算,在Havok引擎的调动下NVIDIA和ATI的GPU也可以动态的处理物理运算!