![NVIDIA: NVIDIA 拯救Vista最佳入門級大兵!(圖)](http://big5.thethirdmedia.com/g2b.aspx/www.thethirdmedia.com/null.gif)
在支持的指令數方面,SM3.0中的Pixel Shader 3.0要比Pixel Shader 2.0復雜多了。Pixel Shader 3.0中所支持最小指令數從2.0 Extended的96條激增到了512條。雖然一個擁有如此多的指令的shader對提高運算速度是否有幫助仍然是有爭論的問題,不過指令數量的增加無疑給使用者提供了更大彈性空間。注意,最小指令數量定義了硬件所可以適應于shader模型的指令數量,而不是一個shader所必須用的最少的指令數。而且Pixe Shader 3.0中的像素著色程序的長度不再受限制,這樣程序員們就可以根據自己的需要任意加長程序長度了。從而能夠實現更復雜的特效,然后更能免除在程序調用上的資源浪費,而且能夠用一個程序實現原來多個程序的功能,讓效率得到明顯增加。此外,它還支持動態流程控制(Dynamic Flow Control)、彈性數據支持(Flexible Data Support)以及、多重渲染目標(Multiple Render Targets)等特性。
Pixel Shader 2.0 Pixel Shader 2.0a Pixel Shader 3.0
Dependant Texture Limit 4 無限制 無限
Texture Instruction Limit 32 無限制 無限
Postition Register No No Yes
Instruction Slots 32+64 512 超過512
Executed Instructions 32+64 512 超過65535
Interpolated Registers 2 + 8 2 + 8 10
Instruction Preducation No Yes Yes
Temp REgisters 12 32 32
Constant REgisters 32 32 224
ArbitrarySwizzling No Yes Yes
Gradient Instruction No Yes Yes
Loop Count Register No No Yes
Face Register No No Yes
SM3.0同樣包括Vertex Shader Model(頂點著色器)3.0。Vertex Shader Mode 3.0允許程序中使用無限長的指令,對動態流程控制、頂點頻率流分隔等技術都提供了很好的支持。不過,與vertex shader 2.0相比,vertex shader 3.0還有一個最重要改進,那就是增加了vertex texturing能力。在以前版本vertex shader ,vertex shaders是不能直接訪問紋理大大削弱渲染效果。而這一點在vertex shader 3.0發生了改變,這一增加的功能讓vertex shaders可以自己訪問材質,不但極大的增強了vertex shaders的功能,而且用戶可以用它做出許多漂亮的效果。具體地說來,Vertex Shader 3.0允許在vertex shader中使用texld指令進行查表操作,Direct X 9.0文檔中提到的3.0版vertex shader所包含的4個紋理取樣器,GF7100GS都完整地提供了硬件支持,可以在一個shader pass里完成4個紋理的讀取。
Vertex Shader 2.0 Vertex Shader 2.0a Vertex Shader 3.0
No of instruction Slots 256 256 超過 512
Max No. of Instructions Excutes 65535 65535 超過65535
Temp Registers 12 13 32
Instruction Predictation No Yes Yes
Dynamic Flow Control No Yes Yes
Dybamic Flow Control Depth Nil 24 Stage 24 Stage
Vertex Texure Fetch No No Yes
No of Texture Samolers No No 4
Geometry Instancing Support No No Yes
這個了vertex texturing功能潛在的一個用途是它可以進行完全的置換繪圖(displacement mapping)。利利用置換貼圖技術,GPU可以通過一張基本紋理、一張光照紋理以及一張最為重要的高程紋理來完成模型外觀的構造,從而使得其光線反射和陰影投射的效果更加真實。但以前由于GPU的硬件限制,使得這一特性得不到充分發揮。而現在利用vertex texturing功能,GPU就能讀取紋理信息直接映射到頂點上,從而實現很容易實現置換貼圖技術,用不同的紋理和較少的頂點傳輸時間就能實現外形復雜、平滑的模型。當然,置換貼圖僅僅只是vertex texturing一個應用例子而已,vertex texturing還可以直接讀取材質的能力使得我們可以創建更多真實的物理仿真。利用這一種新的方法來使用材質和vertex shader對于進行一些仿真來說(如水和動物皮膚的仿真)會非常有效,可以讓這些物體顯得更加真實,而在以往這樣的效果需要動用CPU進行大量的物理計算、建模來實現。
這些技術不僅可以用來讓你將來在屏幕上看到更真實的圖像,同時可以改善現有的游戲效果。簡單地說,支持SM3.0編程規范的顯卡可以令游戲增加更多特效,進一步加速了3D圖形的運算速度,以及增強了3D場景的真實性。NVIDIA的GF7100GS由于支持SM3.0編程規范,這讓它在游戲中的實際表現得以略勝于前一代低端顯卡及整合圖形核心。相比上,上一代低端產品不支持SM3.0,它們在新一代游戲中的表現就顯得遜色不少。