我基本上想在LibGDX中使用混合模式,但不知道该怎么做.我在互联网上找到了这个图像.我想在LibGDX上做同样的事情.有人可以教我如何.

我一直在玩Scene2D.这是我的非工作片段.
private class MyGroup extends Group {
Image red, blue;
public MyGroup() {
Texture texture = new Texture(Gdx.files.internal("images/red.png"));
texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
red = new Image(texture);
texture = new Texture(Gdx.files.internal("images/blue.png"));
texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
blue = new Image(texture);
red.setX(-25);
blue.setX(25);
}
@Override
public void draw(Batch batch, float parentAlpha) {
batch.end();
batch.begin();
batch.enableBlending();
red.draw(batch, parentAlpha);
Gdx.gl.glEnable(Gdx.gl20.GL_BLEND);
Gdx.gl.glBlendFuncSeparate(
Gdx.gl20.GL_DST_COLOR,
Gdx.gl20.GL_SRC_COLOR,
Gdx.gl20.GL_ONE,
Gdx.gl20.GL_ONE);
blue.draw(batch, parentAlpha);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找写入像素的最快方法javafx.scene.image.Image.写入BufferedImage后备阵列的速度要快得多.至少在测试图像上我只花了~20ms BufferedImage,WritableImage另一方面花了~100ms.我已经尝试SwingFXUtils但没有运气.
代码为BufferedImage(更快):
BufferedImage bi = createCompatibleImage( width, height );
WritableRaster raster = bi.getRaster();
DataBufferInt dataBuffer = (DataBufferInt) raster.getDataBuffer();
System.arraycopy( pixels, 0, dataBuffer.getData(), 0, pixels.length );
Run Code Online (Sandbox Code Playgroud)
代码WritableImage(慢):
WritableImage wi = new WritableImage( width, height );
PixelWriter pw = wi.getPixelWriter();
WritablePixelFormat<IntBuffer> pf = WritablePixelFormat.getIntArgbInstance();
pw.setPixels( 0, 0, width, height, pf, pixels, 0, width );
Run Code Online (Sandbox Code Playgroud)
也许有办法写入WritableImage后备阵列?