Android OpenGL纹理方向错误

时间:2016-03-27 13:03:09

标签: android opengl-es

我正在尝试将映射为纹理的png图像显示在正方形上。由于某种原因,整个图像旋转了90度。我知道OpenGL纹理坐标系的原点在左下角,但由于某些原因,当我使用左上角作为原点时,图像才能正确显示(如在DirectX中)。

这些是我的顶点和绘制顺序:

static final float squareCoords[] = {
        -1.0f,  1.0f,  // top left
        -1.0f, -1.0f,  // bottom left
         1.0f, -1.0f,  // bottom right
         1.0f,  1.0f   // top right
};

private final short drawOrder[] = {0, 1, 2, 0, 2, 3};

这些是纹理贴图坐标:

static final float textureData[] = {
         1, 0,  // top left
         0, 0,  // bottom left
         0, 1,  // bottom right
         1, 1   // top right
};

当我使用左上角作为原点时,图像会正确显示:

static final float textureData[] = {
         0, 0,  // top left
         0, 1,  // bottom left
         1, 1,  // bottom right
         1, 0   // top right
};

OpenGL - DirectX坐标系比较:

OpenGL - DirectX coordinate system comparison

为什么图像无法正确渲染?

0 个答案:

没有答案