2014-09-30 65 views
0

我想確認以下內容,使用一個精靈批處理並繪製字體和其他動畫精靈是否正常?如果這是真的,那麼可以使用一個精靈批處理批量處理多少個四邊形?是DirectX API的一個問題,它會照顧那個GPU或GPU?雪碧批量概念

回答

1

是的,可以使用一個精靈批處理對象來處理字體和其他精靈。事實上,這可能是更好的方式。

可分批的精靈數量取決於實施。如果您在DirectXTK中使用SpriteBatch類,那麼在向其添加精靈時,它會使用增長的數組,因此對於可以給它的精靈數量(內存除外)沒有實際的限制。它在內部創建了一個可以處理2048個精靈或2048 * 4個頂點的頂點緩衝區。這並不限制您可以發送到SpriteBatch的精靈數量。這只是說,如果你排隊3000個精靈例如,它將需要至少進行兩次繪製調用來呈現所有內容(如果使用多個紋理,則需要更多)。

因此,一次調用中可以繪製的精靈數量取決於實現創建的頂點緩衝區的大小。頂點緩衝區的最大尺寸最終取決於有多少內存可用。

+1

注意可以在[CodePlex](http://go.microsoft.com/fwlink/?LinkId=248929)上找到_DirectX Tool Kit_以及[SpriteBatch]的文檔(https://directxtk.codeplex.com/ wikipage?title = SpriteBatch&referTitle = DirectXTK)和[SpriteFont](https://directxtk.codeplex.com/wikipage?title=SpriteFont&referringTitle=DirectXTK)。 – 2014-09-30 05:58:38