作者NDark (溺於黑暗)
看板GameDesign
標題Re: [程式] DX11的Tassellation原理是什麼?
時間Thu Oct 1 14:08:00 2009
※ 引述《FlyinDeath (死之舞)》之銘言:
: DX11裡面有個Tassellation的功能
: 看Demo的影片,似乎是能把Model的Polygon數目大量增加
: 讓Model看起來更漂亮
: 但是我有個疑問,大幅增加Polygon的數量,不會嚴重拖累GPU的處理速度嗎?
: 如果只是這樣的話,應該也不需要特殊的硬體來處理吧?
: 到底Tassellation的特異之處在哪裡,可以大幅增加Polygon數目而不拖累效能?
: 去Google查了很多資料,但是大部分的說明都很含糊
: 譬如說什麼"DX11的Tassellation可以讓model更漂亮"之類的
: 數學的資料只說Tassellation是把平面用同一個形狀去分割
: 而Wiki上面的資料則是幾乎把Tassellation等同於Triangulation了
: 好像很難找到更詳細的資料...
Patch Tesselation
http://www.geeks3d.com/20080904/
patch-tesselation-demo-how-to-render-million-triangles-meshes/
"Patch Tesselation is a technique to increase in real time the number of
triangles of a mesh. The principle is to use a coarse mesh at the CPU level
and to add detail on-the-fly at the GPU level"
簡單來講,繪圖的頻寬是在於你傳多少資料到顯示卡.
到了顯示卡之後資料互相傳遞及運算的速度就遠快於傳進去.
因此這種用技術在顯示卡中自動產生高細節模型,
當然比傳一個高面數的模型進去來得節省時間.
--
"May the Balance be with U"(願平衡與你同在)
視窗介面遊戲設計教學(
http://0rz.tw/V28It ),討論,分享。歡迎來信。
視窗程式設計(Windows CLR Form)遊戲架構設計(Game Application Framework)
遊戲工具設計(Game App. Tool Design )
電腦圖學架構及研究(Computer Graphics)論文代讀(含投影片製作)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.96.77.176
1F:推 FlyinDeath:原來如此,但這樣rasterization stage不會變得很慢嗎? 10/01 14:35
3F:推 Bencrie:polygon變多只是讓model變得更細緻,vertex處理量變大 10/01 15:37
4F:→ Bencrie:polygon filling的時候要處理的pixel應該不會多太多。 10/01 15:38
5F:推 FlyinDeath:我的問題就是在這邊,vertex處理量變成數十倍,應該也 10/01 16:04
6F:→ FlyinDeath:會變成瓶頸,對整體效能不會影響很大嗎? 10/01 16:05
7F:推 Bencrie:vertex處理的速度遠比pixel的速度快得多,通常效能都卡在 10/01 16:10
8F:→ Bencrie:過多的pixel處理 orz 10/01 16:11
9F:→ Bencrie:看那精美的 splatting ... 因為blending的關係,pixel量多 10/01 16:12
10F:→ Bencrie:到fps只剩個位數以下。 10/01 16:13
11F:推 FlyinDeath:原來如此!! 這樣我的疑問真的都解決了 ^^ 10/01 16:55
12F:→ Splash5:vertex再怎麼多也不會比pixel多吧 :p 10/01 21:25
13F:推 darkflier:樓上觀念有問題......這並不是一定的-_- 10/01 21:34
※ 編輯: NDark 來自: 61.230.196.142 (10/01 21:56)
14F:→ Splash5:正常情況下很少會有vertex比pixel多吧.. 當然要特意作出 10/02 00:19
15F:→ Splash5:特例的物件那當然有可能 可以用100萬個vertex去建一個cube 10/02 00:20
16F:→ Splash5:但是一般情況不會這樣作吧 10/02 00:21
17F:→ reizarc:不 你要考慮遠處物體投影後的結果 10/04 16:23
18F:→ reizarc:vertex 和 pixel loading 不一定誰重 10/04 16:23
19F:→ reizarc:這也是 unified shader 的初衷 10/04 16:24
20F:推 darkflier:印象中DX11又多了兩個stage去對vertex作處理 10/04 21:49
21F:→ darkflier:因為vetex跟pixel之間的關係越是一比一就越精細 10/04 21:51
22F:→ darkflier:有空寫個讀模型資料 再用cpu算一次animation的過程 10/04 21:52
23F:→ darkflier:shader觀念就會變得更好 10/04 21:53
24F:推 Bencrie:我覺得刻一個software renderer對shader的認識很有幫助 10/04 23:36
25F:→ Splash5:其實還有很多東西要考慮.. 只是說要討論這樣的問題 10/05 01:07
26F:→ Splash5:要先說清楚是在什麼樣的環境下 有些東西才能回答 10/05 01:08