廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 3025 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
mingsheng
個人頭像
個人文章 個人相簿 個人日記 個人地圖
知名人士
級別: 知名人士 該用戶目前不上站
推文 x2 鮮花 x16
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[影畫] [轉貼] 下一代DirectX
原文出處:http://www.beyond3d.com/articles/directxnext/index.php?p=4

通用I/O模型
Unified shading model會帶來一系列有趣的結果,其中有一些無法很快能得知。其中最顯著的莫過於在vertex shader中處理texturing。這對於通用目的尤其重要,但並不僅限與此。另外一個顯著後果是,擁有可以在vertex shader中直接寫vertex buffer的能力,允許為今後的passes快取結果。這在使用high-order surface mapping和high-order displacement mapping時顯得尤為重要。允許你執行一次tessellate、displace然後將結果儲存於在顯示記憶體中的vertex buffer中,在以後所有的passes中只需執行一個簡單的搜尋(lookup)就能達到利用先前結果的目的。

也許最顯著的特徵發生在,將虛擬顯示記憶體的哲學和上面提到的兩個特徵組合在一起時。有了虛擬顯示記憶體,從texture中讀資料和寫資料的程序變得與讀記憶體或寫記憶體非常相似。而因此,導致了下一代DirectX中的通用IO模型的誕生。你現在可以在顯示記憶體中寫入任何資料,然後在pipeline的任意stage中都可以讀取,甚至在後一個pass中也行。這些資料可以不必是vertex,pixel,或者其他圖形資料——你擁有了對當前索引和vertex buffer的訪問能力,你就可以為輪廓邊的檢測產生連通性訊息。事實上,你應該可以在GPU上完成的一個pass中,產生所有的shadow volumes,然後將結果儲存於在顯示記憶體中,讓以後的passes使用。但這還有個小問題:在幾何縮放(tessellation)之外,當前的顯示卡不能直接新增三角形。

拓撲學處理器
實際上,當前的圖形處理器可以在使用點線等primitives時,新增新三角形。多數主流圖形處理器只能將三角形光柵化(rasterizing),意味著所有的點線要在某一時刻轉換成三角形。而任一點或者線要由2個三角形表示,這就需要2到6倍的頂點數(vertices)(取決於你的索引方式),而這一步當然越晚做越好。這樣做是有好處的,而且實際上,對於shadow volume的操作也遇到同樣的問題。這就需要將pipeline中這個部分做為完全可編程的(programmable),且先前阻塞的場景可以不依賴於主處理器。Microsoft將它稱為拓撲學處理器(Topology Processor),並允許shadow volume和fur fin extrusions得以完全在圖形處理器上完成。其他如proper line mitering,point sprite expansion和single pass render-to-cube也同樣可以在圖形處理器上完成。

拓撲學處理器在邏輯上是和tessellation元件分開的。這完全可能,然而一個設計合理的programmable primitive processor應該對這兩方面都能進行操作。

增強的Tessellator
高次表面(higher-order surfaces)由DirectX 8首先推出,而很多硬體支持該特性(nVidia以RT-Patches的形式,ATI以N-Patches的形式),但由於他們的功能限制以及過於晦澀難懂,所以一直沒有什麼人對它們感興趣。因此,所有硬體廠商都放棄了對高次表面的支持。直到DirectX9的出現,帶來了adaptive tessellation(自適應幾何縮放)和displacement mapping(置換貼圖)。高次表面現在使用起來依然讓人痛苦不堪,而且功能很受限制;但displacement mapping很好的解決了它的問題,並且已有不少開發者開始關注它。但不幸的是,硬體廠商已經放棄了對高次表面的支持,所以對displacement mapping感興趣的開發者也只能因缺乏硬體支持而被迫放棄它。公平的說,對displacement mapping的實現一開始有點偏重Matrox公司,所以毫不奇怪沒有很多硬體廠商支持它(甚至連Matrox自己也放棄了對它的支持)。有了符合pixel/vertex shader 3.0的硬體,情況可能會有所改觀,硬體廠商可能會重拾高次表明和displacement mapping的舊局。但這還有一個關於所有當前DirectX高次表面的公式限制問題(formulations limitations)。

如果所有硬體都能直接支持所有普通高次表面的公式,如Catmull-Rom,Bezier以及B-Splines(B樣條),表面細分(subdivision surfaces),所有的圓錐公式(all the conics)和所有合理的公式,那將是非常酷的一件事。若所有這些都能被用於自適應幾何縮放那就更好了。如果DirectX支持所有這些高次表面,那麼離真正使用它們的日子就不遠了——你可以從你喜歡的DCC應用程式(Digital Content Creation Application)中匯入高次表面,而現有系統中所有的問題全部一掃而光。幸運的是這就是Microsoft將要對下一代DirectX所要做的。有了displacement mapping和新的拓撲學處理器,我們真沒有理由不去使用這些新特性了!(當然還得硬體支持)

普通API的改進
不是所有的增強都是新特性方面的——畢竟原有的DirectX接頭中還存在不少累贅,特別是處理狀態改變(state changes)的。當前,如果你想繪圖一幅場景,它會分解成一系列批次處理的幾何體,這些幾何體擁有完全相同的textures,儲存於在vertex buffer的同一連續塊中,使用完全相同的vertex shaders,使用相同的轉換矩陣等等。一般來說,如果在幾何體中的一塊,只要有一點點的不同,它們就必須分開來繪圖。問題來了:對於每個繪圖使用來說,這樣的預先配置過大了。因為繪圖使用指令必須通過DirectX接頭,通過顯示卡驅動,最終到達圖形處理器。這些問題只能由操作系統提供的高效接頭來解決,很顯然,Microsoft計劃在Longhorn中搞定這些問題。

還有一些減少預先配置的方法:通過允許網格(mesh)在圖形處理器中實現具化(instancing)。網格的具化是一種程序:將一個網格新增它的多個實例,使用不同的轉換,不同的textures,甚至不同的displacement maps。

實際上,有了通用IO模型,應該可以將所有可見的textures和轉換矩陣放進一個陣列中,可由shader訪問,將所有共享一個shader的幾何體當作一個大批次處理,並讓shader決定對哪個幾何體集合使用哪個texture或者哪個轉換矩陣。這種將所有狀態管理移交給圖形處理器的做法,將大大減少CPU在繪圖時的工作負擔。

在Pixel Shader中訪問畫格快取
你常常會想在某個圖像上做些計算,比如做數位分階(digital grading),色彩矯正(color correction)或者tone mapping。然而在DirectX9中,你無法讀取 ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



[ 此文章被Maybe在2004-10-17 07:59重新編輯 ]



獻花 x0 回到頂端 [樓 主] From:未知地址 | Posted:2004-10-16 11:51 |
takada 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x11
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

辛苦你了~~感謝提供讓我長了點見識^^" 表情 表情 表情


數位男女 UD 團隊
獻花 x0 回到頂端 [1 樓] From:未知地址 | Posted:2004-10-16 15:13 |
鴨蛋
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x8
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

讚,大大的文章總是這麼有深度和長度 表情


獻花 x0 回到頂端 [2 樓] From:台灣省 固網公司 | Posted:2004-10-16 18:00 |
DDT
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x2 鮮花 x25
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

哇~還蠻有深度的,要多充實了 !感謝! 表情


獻花 x0 回到頂端 [3 樓] From:台灣省 SONY公司 | Posted:2004-10-16 18:35 |
kc038641
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x6 鮮花 x15
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

永元趕不上 電腦進步的速度啊


獻花 x0 回到頂端 [4 樓] From:台灣省 CZ88.NET | Posted:2004-10-16 22:07 |
真田
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x29
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

新知識,
增廣一下見聞,

謝謝分享.


Enjoy
Always Coca-Cola
獻花 x0 回到頂端 [5 樓] From:未知地址 | Posted:2004-10-18 14:52 |
codeboy 手機
個人文章 個人相簿 個人日記 個人地圖
社區建設獎
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x6 鮮花 x331
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

果然是增廣見聞的文章~收了~ 表情



連結有問題請來信,我會盡快修正~^^
通報時請附上是"哪一篇失效"...這樣我才能去修正~麻煩各位好心人士了~

[連結失效通報][ 網頁.伺服.程式 討論區]
----------------------在世界中心呼喊愛情----------------------
深深思念一個人的時候,我們不知不覺的地活在世界的中心...
獻花 x0 回到頂端 [6 樓] From:未知地址 | Posted:2004-10-18 15:55 |
ttncwnfbi 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x3
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

好深的一篇文章啊 看不懂


獻花 x0 回到頂端 [7 樓] From:台灣台灣索尼 | Posted:2005-02-09 23:57 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.098670 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言