gpt4 book ai didi

java - 如何在 OpenGL 中将纹理调整到正方形并居中?

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:37 25 4
gpt4 key购买 nike

我需要将 png 图像调整到正方形中心,但我不知道如何做到这一点。
我初始化了正方形的顶点字节缓冲区,并为纹理(vertexBuffer)使用了相同的坐标。

这是我的 java 类的一部分:

private int textures[] = new int[1];
float color[] = { 0.63671875f, 0.76953125f, 0.22265625f, 0.0f };
static final int COORDS_PER_VERTEX = 3;

public void draw_texture(GL10 gl) {

gl.glBindTexture(GL10.GL_TEXTURE_2D,textures[0]);
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
gl.glColor4f( // set color:
color[0], color[1],
color[2], color[3]);
gl.glTexCoordPointer(COORDS_PER_VERTEX,GL10.GL_FLOAT,0,vertexBuffer);

gl.glVertexPointer( // point to vertex data:
COORDS_PER_VERTEX,
GL10.GL_FLOAT, 0, vertexBuffer);

gl.glDrawArrays( // draw shape:
GL10.GL_TRIANGLES, 0,
triangleCoords.length / COORDS_PER_VERTEX);
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
gl.glDeleteTextures(1, textures, 0);
}

public void loadGLTexture(GL10 gl, Context context) {
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.closest);
gl.glGenTextures(1, textures, 0);
gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);

gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GLES32.GL_CLAMP_TO_BORDER);
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GLES32.GL_CLAMP_TO_BORDER);

gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
gl.glTexEnvf( GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_REPLACE );

GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
bitmap.recycle();
}

我得到的结果:enter image description here

最佳答案

当你进行纹理处理时,我们需要设置 OpenGL。用于设置每个三角形的图像的一部分。这是通过 UV 坐标完成的。

关于java - 如何在 OpenGL 中将纹理调整到正方形并居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48663635/

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