2014-03-13 57 views
0

這是一個未解決的問題,但我會盡量做到儘可能具體。LibGDX正確處理點精靈進行羣集?

我已經在Android Studio中編寫了一些東西,現在使用Eclipse + LibGDX來查看遊戲。這是一個相當高/中等水平的API,因此我們無法再深入到繪製圖形的較低層次。但是,我們知道它使用四重渲染方法。現在

,這種方法適用於大多數類型的遊戲,但如果我想看看成顆粒的羣聚算法(比如,1000點),以前我用點精靈渲染。看來libgdx不使用這種方法。

問題:你知道libgdx是否支持Point Sprites(1000+)在屏幕上獨立移動(基於我自己的公式)。 Quad渲染將隨着要使用的精靈數量而變得非常緩慢。例如,1000個球在盒子周圍彈跳。

注 - 我沒有看到粒子系統,因爲它們似乎只是發射器,並且定義了粒子如何從該源發出(例如煙花爆炸)。目標:我計劃讓許多對象在遠處觀看時使用Point Sprite方法呈現(對於絕對數量的對象快得多),然後在放大時恢復爲Quad Rendering (關於圖中的細節)。這僅用於優化目的。

這是Libgdx允許的嗎?

非常感謝您提供的任何幫助。

親切的問候, Ĵ

+0

@ Gabriel.Massana儘管我們歡迎您提高質量問題的努力,但編輯問候通常不被視爲編輯的理由。嘗試儘可能地編輯_substantial_。 –

回答

0

LibGDX充分暴露了OpenGL ES的功能,因此,如果一些比較高層次的庫函數不適合你,那麼你可以自由地挖成GL_POINTS自己。但我建議你先嚐試沒有積分,然後看看你是否需要優化它。

+0

好吧,那麼試試10個球彈跳,100,1000,10000等性能測試,直到我得到明顯的滯後?那麼是否有一種標準的方式來顯示不同的精靈,如果縮小,以幫助這種表現?再次,只是在縮小時考慮放大的細節級別在縮小時是不確定的。 – Jammo

+0

我能想到的唯一標準是根據屏幕像素大小上的精靈來自動顯示不同的紋理,這將是mipmapping。您只需更改紋理過濾器設置,並在運行時生成較小的紋理副本並使用,從而減少OpenGL的紋理工作。見http://www.badlogicgames.com/wordpress/?p=1403 – Chase

+0

好的,我有兩種方法的工作。 OLD方法,render()方法,batch.begin,「每個球,game.batch.draw(ballImage,ball.x,ball.y)」,batch.end。 - NEW方法:使用stage和actors,在render()stage.act和stage.draw中。然而,stage.draw導致FPS下降到8或9FPS,只有1000個舞臺上的演員對象。不知道是什麼原因造成了巨大的下降 – Jammo