microsoftxiao

记忆 流逝

导航

显卡

2.0 Vertex Shaders

    2.0版的Vertex Shader规格增加了一些新的溢出控制指令,包括循环、跳转和子程序模式等。和我们通常接触的高级编程语言,如C语言一样,这些指令的存在大大简化了Vertex Shader的编程要求,并能让程序员更加专注于效果的设计,而不是繁琐的程序预测和检验。

    在过去的DirectX 8/8.1中,Vertex Shader 1.1规范将这类着色处理限制在128个指令内,而在DirectX 9.0提供的2.0版Vertex Shader支持中,这类程序的长度可以达到数千甚至数万个指令之长,这对于Vertex Shader能实现的效果来说大有裨益。事实上,通过使用多重通道,2.0版的Vertex Shader可以通过硬件实现几乎无限长度的指令。同时,新增的函数,如正弦(sin)、余弦(cos)和其他强大的操作模式也使程序编码更加简化,使原本难以实现的实时处理效果得到了数千倍的增长。

    2.0 Pixel Shaders

    这是3.0前最新版本的Pixel Shader语言,它可以让硬件支持包含28个指令的引擎,并同时操作6个材质。通过使用DirectX 9.0中的Pixel Shader 2.0,最大的材质操作数量被提高到了16个,而指令数则增加到了160个,程序员可以编写更为复杂的指令代码来运转硬件。

    和Vertex Shader 2.0一样,2.0版的Pixel Shader也拥有了很多新的操作指令,使Pixel Shader 2.0程序得以更加简单的设计和编写。例如,新的表面建立指令可以让2.0 Pixel Shader更加简单地使用压缩的Bump贴图效果,压缩后的贴图材质比标准模式下要大大节约显存容量。不过这并不是最强大的地方,Pixel Shader 2.0中还有更加令人惊讶的地方,物体的贴图并不需要有明确实际的贴图数据,事实上,有些贴图效果完全是由显卡的Pixel Shader 2.0引擎算出来的。

    各项异性过滤(Anisotropic filtering)

    Anisotropic filtering是一种先进的纹理过滤技术,对于场景中从近处延伸到远处的对象来说,这种用于选择纹理映射图和它所投影单元比例的技术可以改善画面的品质。通常的解决办法是为一个图元建立一个mip map。再根据对象的位置选择合适的mip map。如果使用新的Anisotropic filtering技术,我们就可以把一张大的纹理直接贴在这个图元上,产生更高品质、更丰富细节的画面。

posted on 2006-05-01 15:17  龙巢NET刀  阅读(256)  评论(0)    收藏  举报