Java LibGDX渲染颜色数组的最快方法

Java LibGDX渲染颜色数组的最快方法,java,libgdx,Java,Libgdx,我有一个彩色阵列。当我使用ShaperEnder时,需要花费很多时间。 我使用以下代码: for (int i = 0; i < colors.length; i++) { for (int j = 0; j < colors[0].length; j++) { shapeRenderer.setColor(colors[i][j]); shapeRenderer.rect(i,j,1,1) }

我有一个彩色阵列。当我使用ShaperEnder时,需要花费很多时间。 我使用以下代码:

for (int i = 0; i < colors.length; i++) {
        for (int j = 0; j < colors[0].length; j++) {
            shapeRenderer.setColor(colors[i][j]);
            shapeRenderer.rect(i,j,1,1)
        }
    }
for(int i=0;i

必须有一种更快的方法,因为纹理是从像素到像素的,而且它们的渲染速度非常快。我的问题是:如何才能像纹理一样快速渲染此颜色数组?

纹理绘制速度非常快,因为通常只需对GPU进行几次调用。逐像素执行此操作需要更多的调用和状态更改。如果数组经常被更改,那么就没有什么可以改变的了。如果没有,则应在更改它们时将其绘制到纹理上,然后仅使用该纹理

在LibGDX中,您可以将每个像素绘制到Pixmap上,然后从中创建新纹理。 资料来源:

示例代码:

Pixmap pixmap = new Pixmap( colors.length, colors[0].length, Format.RGBA8888 );
for (int i = 0; i < colors.length; i++)
{
    for (int i = 0; i < colors.length; i++)
    {

        pixmap.setColor( 0, 1, 0, 0.75f ); //Set to color r,g,b,a
        pixmap.drawPixel(i,j); //Draw the pixel
    }
}
Texture pixmaptex = new Texture(pixmap); //Create new texture from the Pixmap
pixmap.dispose();
Pixmap Pixmap=new Pixmap(colors.length,colors[0].length,Format.rgba888);
for(int i=0;i
纹理绘制速度非常快,因为通常只需对GPU进行几次调用。逐像素执行此操作需要更多的调用和状态更改。如果数组经常被更改,那么就没有什么可以改变的了。如果没有,你应该在它们被更改时将它们绘制到纹理上,然后只使用纹理。数组只生成一次,那么如何将其转换为纹理?