2014-12-10 91 views
0

我正在用java製作一個基於2D路徑幾何的遊戲。如果我有一堆我正在渲染每一幀的大形狀(Path2D's),java是花時間處理整個事情的,還是隻處理實際在窗口中的部分?java圖形只呈現窗口大小還是一切?

例如說我有一個1000×1000的矩形,左上角爲10,10。我的窗口只有100×100。java是處理整個事情還是隻處理小於100,100的部分?

在此先感謝!

+0

如果您可以讀取像素以及該庫,則可以對其進行測試。 – usr2564301 2014-12-10 22:02:29

+1

是的,它只渲染窗口中的內容,否則你會看到窗外的形狀。常識。如果這不是您所期望的答案,請在您的帖子中更具體。我有一種感覺,它可能不會(這就是爲什麼這是一個評論),但這會告訴你如果你不夠具體,你的觀點不會通過 – 2014-12-10 22:04:15

+0

是的,顯然我明白它不是實際上將東西繪製到窗外的屏幕上。我問的是:它處理窗外的形狀,即使它沒有繪製它們? – 2014-12-10 22:12:02

回答

0

收到一些信息後,我決定自己測試一下。

我做了一個複雜的形狀使用Path2D和整個窗口內的形狀呈現。然後,我在窗外90%渲染了同樣的東西,只顯示了一小部分形狀。

在窗戶外面的那個顯示比完全在窗戶(50 FPS)中的那個更高的性能(260 FPS)。

這表明java只處理實際在窗口邊界內的形狀部分。

1

只將渲染剪切到可見部分。

顯然。

+0

剪輯區域設置爲可見部分,但在某些時候,仍然需要「花費時間」來確定通用形狀是否在此剪輯區域內。 – lbalazscs 2014-12-10 23:05:32

0

Graphics2D的剪輯區域(請參閱getClip())會自動設置爲可見部分,但在某些時候,「Java」仍然需要花費時間來確定通用形狀是否在此剪輯區域內。

因此,如果您不繪製可見區域外的形狀,它可能是一種有效的優化技術。或者您可以將靜態圖形繪製到圖像上,然後渲染此圖像。

相關問題