2012-08-02 162 views
0

我試圖在LWJGL中創建一個小2D遊戲,但是大圖將幀速率從大約3000降低到大約15.我知道這主要是因爲它繪製屏幕上的每個圖塊即使你只能看到它們中的一小部分。我想知道如何找到哪些圖塊可見並只將它們打印到屏幕上。Java OpenGL只繪製可見紋理

回答

2

這叫做culling,其中最有名的技術是frustum culling。通常,您可以定義一個邊界體積並測試一個對象是否位於其中。例如,在2D中,您可以定義一個矩形(與您的窗口/視口相同),併爲每個對象(平鋪/精靈/其他)定義一個邊界框。圓是一個容易測試的邊界框,但矩形也可以。

然後,您只需測試對象的邊界框和視區矩形是否相交。如果是這樣,畫出來,否則,不要。

另請參閱this在另一個SE網站上回答有關2d剔除的更多詳細信息。

+0

謝謝:D我會加入儘快添加此,感謝您的幫助! – 2012-08-20 19:14:34