瀏覽單個文章
impressure
Regular Member
 

加入日期: May 2002
您的住址: tw
文章: 91
引用:
Originally posted by Artx1
咦? 紫皇大的網站因為他老人家當兵去才暫停的,
現在他已經回來了, 遲早會回復的吧?
總之這個要問他了. 硬體家族不是我管的....

我自己的網站在私人資料有寫....



抱歉喔,您的發文沒有標點所以有些地方看不懂,我猜測您想問的問題好了.

與其說是"無法產生頂點", 倒不如說是"現在還不能產生頂點",
DX8/9的VS只能對晶片內的Local Vertex Cache進行讀寫
(NV2x的Cache大小約16個頂點),並且這個Cache只有FIFO的功用.

簡言之,VS不能做dependent類型的運算的主因,是因為”規格定成這樣”.
至於為什麼定成"不生成/消滅頂點"這樣呢?

1.可以減少彼此的資料相依性, 降低VS的複雜度.
別忘了VS是業界(雖然不是整個)共同協調出來的架構,
不可能無限上綱, 會有成本考量.
今天PS2的EE內建兩個VU,地位接近VS,
但是規格上它就可以做相依性運算,因為它能夠讀寫主記憶體.
(當初應該是計劃拿來處理NUMBs, 不過好像沒多少公司在用)

2.降低複雜度之後自然容易加快速度
比如說只要增設VS就可以立刻收到加速的效果.(NV25)
如果有相依性運算的話需要讀寫記憶體, 速度會受到記憶體控制器影響,
就算增設VS也不會達到線性效率提昇.

3.目前沒有比較好的機制處理額外生成的頂點.
代表Programmer對模型品質沒辦法控制.
NVIDIA和ATI都做過類似的東西(NUMBs),下場都蠻慘的.
PCWatch的訪談裡,雙方的主管階級都提過這方面的甘苦談.

至於Vertices 與 Pixel 之間的差異,
過了Triangle Setup Engine之後就屬於Rasterizer的工作範圍了.
DX7的時期,流程是
CPU輸出Vertex List
進入TCL--Transform(移轉)模型,clipping(切割)視線範圍,Lighting(打光)之後變成Polygon
過Triangle Setup Engine,之後才轉為Pixel,進到pixel pipeline.
也就是說,彼此之間的資料型態相差蠻多的.
(T&L/VS都是浮點,Pixel pipeline PS在DX8前是整數)

DX8引入Programmable的理由是認為”如果有足夠效能的話,
Lighting理應是Pixel Pipeline的工作”,所以引入Per Pixel Lighting的技術,
進一步改善Texture的效果.
(雖說透過DOT3 Bump, NV1x已經能達到部分的Per Pixel Lighting能力了),
但總之大略上還是一樣, Vertex和Pixel之間差異很大.

DX9說起來與DX8”差異”並不是那麼大,指令能做的事情差不多,但是可以容許的指令長度長了很多,所以能寫的Shader變大了;另外要求Pixel Pipeline配備浮點的理由是為了讓MultiPass不會因為重複處理喪失精確度(過去DX8的PS是整數的,所以重複運算的時候會喪失精確度)

DX10讓VS和PS共用同一份指令集應該是為了其他理由
(如Universal Shader Model之類), 而不是因為VS/PS的工作性質類似.
所以我覺得把Vertex視為和Pixel類似這點有不小的問題.



嗯, 真不妙, 我是私立學校的倒數生說.(噗)
而且我沒有想過國防役的事情…. 覺得要凹到畢業都有點難了.
對GPU很有興趣但是不認為自己有機會碰到.... XD

國防役啊....好遙遠說.XD





謝謝你的講解
我個人淺見.... 是認為未來PS會取代VS.
因為現在GPU要對所有PIXEL做運算還是不太行.
未來隨這CHIP上的複雜度增加或者新技術誕生
應該是有辦法.

還有小弟我也是私立的大學畢業,雖然我是考上國立的大學(我是考VLSI但是被這間
學校惡搞去念通訊).我是沒有放棄我當初就是為了GPU才想考研究所.
我絕得要摸到GPU我絕得還是有些機會(有點小).
我當初找國防役的時候,有向圖誠的工程師打聽.他是說你可以去ATI試試.原因是他說ATI喜歡用有熱誠的人.(因為他們公司有向ATI挖工程師,而ATI的工程師覺得台灣很奇怪,只注重學歷)
舊 2003-12-28, 03:40 PM #38
回應時引用此文章
impressure離線中