Shader Model 4.0支持纹理队列集,把开发者从繁重的拼接纹理图集的工作中解放出来,并能够在每个着色器上使用更多的特殊纹理实现更好的视觉效果。
在Shader Model 4.0之前,过高的开销使在一个着色器操作上使用多个特殊纹理的操作基本无法实现。为了解决这个问题,开发把许多小的分散的纹理拼接成一个大的纹理;在运行层中,着色器也需要进行额外的地址运算以便在拼接纹理图集中找到特定的纹理。纹理图集方式存在两个明显的缺点:首先小纹理之间的分界线回导致过滤操作错误;然后,DirectX 9的4096*4096纹理尺寸限制也是纹理图集的总体规模受到局限。纹理队列集能够解决所有问题,它能够使用队列格式存储纹理,每个队列能存储512同尺寸个纹理,最大的可用纹理尺寸也提升到8192*8192。为了促进这种应用,每个着色器可以操作的最大纹理数也提高到了128个,8倍于DirectX 9。
更多的渲染对象
多重渲染对象是DirectX 9时代的一个流行特性,它允许每个像素着色周期输出4个不同的渲染结果,从而高效率的在一个周期内渲染一个场景的4遍。在DirectX 10中,渲染对象的数目提高到8,着极大的提高了着色器能实现的场景复杂程度,延迟渲染和其它一些图像空间优化算法将广泛的从中受益。