libgdx,如何让opengl正确地拉伸图像?

时间:2016-03-12 11:19:37

标签: opengl libgdx transform stretch

所以我试图在渲染图像时创建一个简单的方法来拉伸图像。但是因为opengl与这些三角形一起使用而不是矩形,所以它有点紧张。

enter image description here

正如您所看到的,三角形的两个部分被拉伸得不同。 我的代码如下:

public static void drawTexture(Texture texture, float x, float y, float x2, float y2, float x3, float y3, float x4, float y4){
    if(cantRender()) return;
    polyBatch.begin();
    float[] vertices = new float[20];

    float color = Color.WHITE.toFloatBits();
    int idx = 0;
    vertices[idx++] = x;
    vertices[idx++] = y;
    vertices[idx++] = color;
    vertices[idx++] = 0;
    vertices[idx++] = 1;

    vertices[idx++] = x2;
    vertices[idx++] = y2;
    vertices[idx++] = color;
    vertices[idx++] = 1;
    vertices[idx++] = 1;

    vertices[idx++] = x3;
    vertices[idx++] = y3;
    vertices[idx++] = color;
    vertices[idx++] = 1;
    vertices[idx++] = 0;

    vertices[idx++] = x4;
    vertices[idx++] = y4;
    vertices[idx++] = color;
    vertices[idx++] = 0;
    vertices[idx++] = 0;
    polyBatch.draw(texture, vertices, 0, 20);


    polyBatch.end();
}

Renderer.drawTexture(testTexture, 100, 100, 500, 100, 400, 500, 200, 500);

我在互联网上找到了一个修复程序,但我不知道如何使它与libgdx结合使用。这是我发现的文章: http://www.xyzw.us/~cass/qcoord/。 问题是,似乎libgdx不支持所有这四个变量,如本文所述。

0 个答案:

没有答案