gpt4 book ai didi

java - 在 Java 中绘制像素最快的方法是什么

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:12 26 4
gpt4 key购买 nike

我有一些代码可以在随机位置生成粒子,并以随机方向和速度移动。

通过循环的每次迭代,我移动所有粒子,并在我的 jpanel 上调用重绘。

对于 1,000 个粒子,我每秒获得大约 20 到 30 帧。我计划最终拥有 100,000 到 1,000,000 个粒子。

在 paint 中,如果窗口大小发生变化,我只会创建一个新的 bufferedimage。我将像素绘制到 bufferedimage,然后调用 drawImage 来显示图像。

每个粒子都是一个像素,我确定所有时间都花在了实际绘制像素上。因此,增加粒子数量将大大降低帧速率。

我试过 g.drawline(x,y,x+1,y)、img.setRGB(x,y,color),通过调用 img.getRaster().getDataBuffer() 获取像素数组。 getData(),然后设置 pixelData[y*width+x] = color。

通过这些不同的像素绘制方式,我在帧速率上的差异很小。

这是我的问题:绘制像素的最快方法是什么? bufferedimage 是否可行?

谢谢。

最佳答案

我认为通过 bufferedimage 的数据缓冲区直接进行像素操作是使用标准库绘制内容的最快方法,因为您可以将图形对象的开销降至最低。

但正如 Perception 所说,如果您想显示 100,000 个或更多粒子,您应​​该考虑使用 OpenCl 进行 GPU 编程。

LWJGL for a small and easy to use Java-OpenGL/CL/AL binding

关于java - 在 Java 中绘制像素最快的方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13638793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com