【问题标题】:libgdx mesh screenshot original resolutionlibgdx 网格截图 原始分辨率
【发布时间】:2016-04-25 08:09:37
【问题描述】:

我有一个网格,我在渲染循环中使用 texture.bind(); 绑定了一个纹理;

纹理的原始分辨率是 1024 x 1024。我的桌面屏幕分辨率是 1366 x 768。

所以我对网格三角形进行了一些更改以修改纹理的外观。我在这里和那里移动一些三角形以获得最终图像。现在,我想以原始分辨率保存该图像,但如果我使用图像的原始像素图这样做,它会在修改之前以 1024x1024 保存原始图像。但我想将修改后的图像保存为 1024x1024。

我也使用了截图代码:

byte[] pixels = ScreenUtils.getFrameBufferPixels(0, 0, Gdx.graphics.getBackBufferWidth(), Gdx.graphics.getBackBufferHeight(), true);
Pixmap pixmap = new Pixmap(Gdx.graphics.getBackBufferWidth(), Gdx.graphics.getBackBufferHeight(), Pixmap.Format.RGBA8888);
BufferUtils.copy(pixels, 0, pixmap.getPixels(), pixels.length);
PixmapIO.writePNG(Gdx.files.local("saved/screenshot.png"), pixmap);
pixmap.dispose();

但由于显示器分辨率较低,它会将图像保存为 1024x750 分辨率(在这种情况下 getBackBufferHeight 变为 750)。

我现在想捕获/保存修改后的图像(使用网格三角形修改)。我现在究竟需要做什么才能获得修改后的 1024x1024 图像?我是否应该使用 ScrollPane 以原始分辨率显示图像,以便在截屏时得到 1024x1024?

【问题讨论】:

    标签: libgdx screenshot mesh scene2d


    【解决方案1】:

    在大小正确的帧缓冲区而不是屏幕的后台缓冲区上进行修改。但要注意设备是否支持帧缓冲区的 RGBA8888(OpenGL ES 2.0 不需要它,因此某些 GPU 不支持它)。

    int width = 1024;
    int height = 1024;
    FrameBuffer frameBuffer;
    try {
        frameBuffer = new FrameBuffer(Pixmap.Format.RGBA8888, width, height, false);
    } catch (GdxRuntimeException e) {
        frameBuffer = new FrameBuffer(Pixmap.Format.RGB565, width, height, false);
    }
    frameBuffer.begin();
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    //draw your texture and do your manipulations.
    
    byte[] pixels = ScreenUtils.getFrameBufferPixels(0, 0, width, height, true);
    Pixmap pixmap = new Pixmap(width, height, Pixmap.Format.RGBA8888);
    BufferUtils.copy(pixels, 0, pixmap.getPixels(), pixels.length);
    PixmapIO.writePNG(Gdx.files.local("saved/screenshot.png"), pixmap);
    pixmap.dispose();
    
    frameBuffer.end();
    frameBuffer.dispose();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-08
      • 2016-09-10
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      相关资源
      最近更新 更多