gpt4 book ai didi

android - opengl android中的纹理坐标显示图像反转

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:34 25 4
gpt4 key购买 nike

我编写了 opengl android 代码来在正方形上显示位图。但是位图是反向绘制的。当我将纹理数组组合更改为注释代码时,它被正确绘制。但我坚持我的纹理数组必须如下所示。我想错了吗?

  /** The initial vertex definition */
private float vertices[] = {
-1.0f, 1.0f, 0.0f, //Top Left
-1.0f, -1.0f, 0.0f, //Bottom Left
1.0f, -1.0f, 0.0f, //Bottom Right
1.0f, 1.0f, 0.0f //Top Right
};
/** Our texture pointer */
private int[] textures = new int[1];

/** The initial texture coordinates (u, v) */
private float texture[] = {
//Mapping coordinates for the vertices
// 1.0f, 0.0f,
// 1.0f, 1.0f,
// 0.0f, 1.0f,
// 0.0f, 0.0f,
0.0f, 1.0f,
0.0f, 0.0f,
1.0f, 0.0f,
1.0f, 1.0f,
};

/** The initial indices definition */
private byte indices[] = {
//2 triangles
0,1,2, 2,3,0,
};

最佳答案

Android 使用左上角作为坐标系的 0,0,而 OpenGL 使用左下角作为 0,0,这就是纹理翻转的原因。

一个常见的解决方案是在加载时翻转你的纹理,

Matrix flip = new Matrix();
flip.postScale(1f, -1f);
Bitmap bmp = Bitmap.createBitmap(resource, 0, 0, resource.getWidth(), resource.getHeight(), flip, true);

关于android - opengl android中的纹理坐标显示图像反转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4518689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com