2014-11-04 72 views
0

說,有與變革改變或多或少的每一幀,你會一般是這些繪圖方法的快很多不同的網格:繪圖網格與轉型

  1. 對於每一幀填充一個大的頂點緩衝區與網格的轉換頂點(轉換在CPU上完成,每個幀將頂點複製到緩衝區中)。
  2. 對於每個對象的創建插入網格的非變換頂點,然後當繪圖發送每個網格的變換作爲一個統一的參數(在GPU上完成變換,在網格創建時複製頂點)。

我們可以假設所有網格都是繪製每一幀,所以不會複製案例1中的頂點)無關緊要。

回答

0

選項#2幾乎總是會更快。如果你有ñ頂點和中號轉換,這是做的區別〜一個CPU接着是〜ň總線傳輸N個算術OPS,對做〜中號總線傳輸(快),其次通過〜N GPU上的算術運算(也更快)。

唯一的時候,這將是一個失去的是,如果您的CPU在頂點處理(不太可能)總吞吐量方面比你的GPU的方式更快,或者如果中號是相同的數量級順序ñ

+0

對於每個幀和每個網格,如#2但不是#1中所需要的,將變換設置爲統一/常量着色器參數的成本如何?這種開銷是微不足道的? – 2014-11-05 07:02:35

+0

這是我回答中引用的「〜M巴士轉移」成本。在僅使用方法#2的應用中,開銷不可忽略,但其數量級小於預先轉換整個網格的成本,然後再進行〜N成本總線傳輸。這是因爲大多數時候,N比M大很多個數量級,並且GPU在進行每個頂點轉換時比CPU更有效率。 – MooseBoys 2014-11-05 18:13:20