2014-12-10 57 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”仍然需要花费时间来确定通用形状是否在此剪辑区域内。

因此,如果您不绘制可见区域外的形状,它可能是一种有效的优化技术。或者您可以将静态图形绘制到图像上,然后渲染此图像。

相关问题