我正在我的Flutter应用程序中实现一个粒子系统渲染器。
目前我正在使用CustomPainter,它使用
由于我需要渲染的形状只是没有纹理的四边形,并且全部都是相同大小的,只是颜色不同,因此我想知道使用自定义绘图工具是否是正确的选择。
我了解一些OpenGL,我知道对于小网格(由少量顶点组成)例如矩形,最好将它们加载到单个缓冲区中并在一个单一调用中绘制它们,甚至更好的方法是使用实例来绘制它们,因为它们除了颜色外都是相同的。
我尝试使用此软件包中的OpenGL https://github.com/mogol/opengl_texture_widget_example,因为它说它适用于Android和iOS,但我无法使其正常工作,因为它是一个非常旧的软件包。
在Flutter中使用
目前我正在使用CustomPainter,它使用
canvas.drawRect()
将每个粒子渲染成一个矩形。但是我需要绘制成千上万个这样的矩形,而且虽然它们很简单,但Flutter似乎难以处理,性能从稳定的60fps下降到不到30fps。由于我需要渲染的形状只是没有纹理的四边形,并且全部都是相同大小的,只是颜色不同,因此我想知道使用自定义绘图工具是否是正确的选择。
我了解一些OpenGL,我知道对于小网格(由少量顶点组成)例如矩形,最好将它们加载到单个缓冲区中并在一个单一调用中绘制它们,甚至更好的方法是使用实例来绘制它们,因为它们除了颜色外都是相同的。
我尝试使用此软件包中的OpenGL https://github.com/mogol/opengl_texture_widget_example,因为它说它适用于Android和iOS,但我无法使其正常工作,因为它是一个非常旧的软件包。
在Flutter中使用
canvas.drawRect()
是绘制大量简单形状的最佳方法,还是有更快的方法在Flutter本身或使用第三方包中实现呢?