0
在我的遊戲中,我有大約50個不同大小和不同顏色的實心圓分佈在全屏幕上,他們不斷調整自己的大小,創建動畫。我目前正在使用Shaperenderer
來渲染它們。這樣,所有的圈子看起來都很脆,但看起來表現不是很好。我應該製作一個圓形精靈,然後使用SpriteBatch
而不是Shaperenderer
呈現所有這些?這樣做會提高性能嗎?繪製簡單形狀,更高效:Shaprenderer或SpriteBatch?
在我的遊戲中,我有大約50個不同大小和不同顏色的實心圓分佈在全屏幕上,他們不斷調整自己的大小,創建動畫。我目前正在使用Shaperenderer
來渲染它們。這樣,所有的圈子看起來都很脆,但看起來表現不是很好。我應該製作一個圓形精靈,然後使用SpriteBatch
而不是Shaperenderer
呈現所有這些?這樣做會提高性能嗎?繪製簡單形狀,更高效:Shaprenderer或SpriteBatch?
通常,是的,SpriteBatch
API比Libgdx中的ShapeRenderer
API更優化。 ShapeRenderer
專爲調試疊加和易於使用而設計。但是,這也取決於您如何使用API的具體情況。
ShapeRenderer
API假定您的視口映射到像素單位。它根據粗略的猜測確定要在圓圈中使用的頂點數量。您可能會爲每個圓創建太多的頂點(並且您可以通過減少計算的頂點數來提高性能而不犧牲保真度)。
儘管如此,對於任何特定情況而言,分析代碼並查看優化之前實際花費的時間是有意義的。
嘗試兩種方法並對它們進行計時。確保時間*只有渲染(而不是,例如,構建精靈)。多次運行,以防止預熱/緩存問題。 – usr2564301
這取決於圈數和它們在屏幕上有多大。但是,如果它們非常大,則使用精靈可能會出現填充率問題。在這種情況下,首先確保您已打開深度測試。如果不是這樣,也許你目前的減速是過多的平局,你需要找到一種方法將它們分批到一個單一的電話。 – Tenfour04