查看單個文章
舊 2005-03-29, 04:13 AM   #2 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

Direct3D圖形繪圖管道
* Vertex Shader 2.0和Pixel Shader 2.0
在DirectX9中,Vertex Shader和Pixel Shader的版本昇級到了2.0,它們都支持64或甚至128位浮點色彩精度。浮點色彩在動態和精度上的增加給圖像品質帶來質的飛躍,這樣在DirectX9中你可以輕易實現電影等級般逼真的效果!
DirectX8和DirectX9的對比參數:

http://img.ogg.cn:8080/DX_V8vsV9.gif
Vertex Shader 2.0引入了流程控制,增加了條件跳轉、循環和子程序。Vertex程序現在最多可以由1024條指令組成(之前只能用128條指令),增加的指令帶來更加複雜和強大的表現,新的操作如正弦、餘弦及其他強大的函數運算大大簡化了程式碼的編寫,並且能夠表現更加複雜的效果。

http://img.ogg.cn:8080/DX_Vertex1.jpg

http://img.ogg.cn:8080/DX_Vertex2.jpg

Vertex Shader 1.0 **************************VertexShader 2.0

強大的可編程Pixel Shader是實現具有電影品質等級效果的真正精華所在。Pixel Shader 2.0可以支持進階程序語言和彙編語言,開發人員還可以將其彙編程式碼嵌入較進階的程序語言中。前一版的Pixel Shader語言被限制為只能使用最多6個材質和28條指令,而2.0版則將這一上限提升至最大16材質和160條指令,也新增了很多強化的運算和操作。

Pixel Shader 1.4
http://img.ogg.cn:8080/DX_Pixel14.jpg






Pixel Shader 2.0

http://img.ogg.cn:8080/DX_Pixel20.jpg

此外各種Shader工具的大力協助,如nVidia的Cg語言和ATI的RenderMonkey,使得既時圖形繪圖的品質飛速提高,nVidia和ATI官方的Demo就足以說明這一點。DirectX9中也改進了部分接頭定義,Vertex Shader和Pixel Shader分別單獨提供了一個接頭,而且提供了一般圖形的繪製接頭,如線段的繪製等,這進一步減輕了開發人員的負擔。

* 浮點型色彩和32位畫格緩衝格式

目前大多數色彩表示法(如RGB)用8位整數表示紅、綠、藍色,也許對於顯示來說這已經足夠了,但在運算中似乎還遠不夠。由於整數沒有小數部分,因此當它們經過Pixel Shader極其複雜的數學運算後,就會產生較大的誤差,這可能導致色彩明顯失真。而DirectX9支持數種浮點色彩格式,使得其精度有了很大提高。同時DirectX9支持精確到每像素32位的畫格緩衝格式,能夠表現出4倍於目前亮度等級的數量,這使得圖像看上去更加清晰和自然。

除此以外,DirectX9還提供位移貼圖(displacement maps)以及改進的設備模擬等特性的支持,並且毫無意外地,DirectX9 SDK中也進一步增強了Direct3DX實用庫,提高了開發效率。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次