很多網站/文章都說'批量!批量!批量!'。有人能解釋關於着色器的「配料」代表什麼?3D圖形批處理
也就是說,不
- 改變紋理
- 改變任意着色器變量
意味着什麼不能 '批處理'?
(很抱歉,如果這是一個弱智的問題:d)
很多網站/文章都說'批量!批量!批量!'。有人能解釋關於着色器的「配料」代表什麼?3D圖形批處理
也就是說,不
意味着什麼不能 '批處理'?
(很抱歉,如果這是一個弱智的問題:d)
來概括它是要儘量做到少API調用,你可以畫出你需要畫什麼最簡單的方法。使用頂點數組或VBO(在現代API中甚至不是可選的),紋理地圖集和避免狀態更改的所有因素都對此有所貢獻。真正令人驚歎的是,現代GPU可以在您轉向並設置下一個繪圖調用的時間內繪製多少個三角形。
這裏有一些很好的信息。從湯姆福賽斯:
http://home.comcast.net/~tom_forsyth/blog.wiki.html#%5B%5BRenderstate%20change%20costs%5D%5D
肖恩哈格里夫斯(子畫面配料):
1)http://blogs.msdn.com/b/shawnhar/archive/2006/12/13/spritebatch-and-spritesortmode.aspx
2)http://blogs.msdn.com/b/shawnhar/archive/2006/12/14/spritebatch-sorting-part-2.aspxv 3)http://blogs.msdn.com/b/shawnhar/archive/2006/12/14/return-of-the-spritebatch-sorting-part-3.aspx
的Christer埃裏克森:
並將其應用於您的兩點,更改事物會否定批次。如果紋理同VRAM一樣,但更改着色器變量不斷變慢,則更改紋理通常不會太糟糕。 – ssube 2010-11-11 04:33:37
謝謝。現代遊戲引擎在批量處理時如何處理轉換矩陣(哪個對象發生更改)? – jameszhao00 2010-11-11 08:02:54
轉換矩陣將在需要時設置爲着色器常量。這不是一個大問題,因爲很多場景通常都是世界。它是靜態的,不需要轉換。如果確實如此:在加載時將數據加載到頂點緩衝區之前進行數據轉換。 – 2010-11-11 08:48:53