Java OpenGL LWJGL可重定尺寸纹理立方体

Java OpenGL LWJGL可重定尺寸纹理立方体,java,opengl,textures,lwjgl,cube,Java,Opengl,Textures,Lwjgl,Cube,我正在尝试制作一种方法,可以绘制一个具有指定大小和纹理的立方体。问题是,当我调整立方体大小时,纹理并没有随之调整大小。例如,如果我使用.5F的大小绘制,则只有8x8像素的16x16纹理绘制。我做错了什么 static void drawCube(float size, Texture tex, int x, int y, int z) { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTe

我正在尝试制作一种方法,可以绘制一个具有指定大小和纹理的立方体。问题是,当我调整立方体大小时,纹理并没有随之调整大小。例如,如果我使用.5F的大小绘制,则只有8x8像素的16x16纹理绘制。我做错了什么

static void drawCube(float size, Texture tex, int x, int y, int z) {
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

    glTranslatef(x, y, z);

    tex.bind();
    glPolygonMode(GL_FRONT, GL_FILL);

    glBegin(GL_QUADS);
    glTexCoord2d(0.0f * size, 0.0f * size);
    glVertex3f(-1.0f * size, -1.0f * size, 1.0f * size);
    glTexCoord2d(1.0f * size, 0.0f * size);
    glVertex3f(1.0f * size, -1.0f * size, 1.0f * size);
    glTexCoord2d(1.0f * size, 1.0f * size);
    glVertex3f(1.0f * size, 1.0f * size, 1.0f * size);
    glTexCoord2d(0.0f * size, 1.0f * size);
    glVertex3f(-1.0f * size, 1.0f * size, 1.0f * size);
    glEnd();

    glBegin(GL_QUADS);
    glTexCoord2d(1.0f * size, 0.0f * size);
    glVertex3f(-1.0f * size, -1.0f * size, -1.0f * size);
    glTexCoord2d(1.0f * size, 1.0f * size);
    glVertex3f(-1.0f * size, 1.0f * size, -1.0f * size);
    glTexCoord2d(0.0f * size, 1.0f * size);
    glVertex3f(1.0f * size, 1.0f * size, -1.0f * size);
    glTexCoord2d(0.0f * size, 0.0f * size);
    glVertex3f(1.0f * size, -1.0f * size, -1.0f * size);
    glEnd();

    glBegin(GL_QUADS);
    glTexCoord2d(0.0f * size, 1.0f * size);
    glVertex3f(-1.0f * size, 1.0f * size, -1.0f * size);
    glTexCoord2d(0.0f * size, 0.0f * size);
    glVertex3f(-1.0f * size, 1.0f * size, 1.0f * size);
    glTexCoord2d(1.0f * size, 0.0f * size);
    glVertex3f(1.0f * size, 1.0f * size, 1.0f * size);
    glTexCoord2d(1.0f * size, 1.0f * size);
    glVertex3f(1.0f * size, 1.0f * size, -1.0f * size);
    glEnd();

    glBegin(GL_QUADS);
    glTexCoord2d(1.0f * size, 1.0f * size);
    glVertex3f(-1.0f * size, -1.0f * size, -1.0f * size);
    glTexCoord2d(0.0f * size, 1.0f * size);
    glVertex3f(1.0f * size, -1.0f * size, -1.0f * size);
    glTexCoord2d(0.0f * size, 0.0f * size);
    glVertex3f(1.0f * size, -1.0f * size, 1.0f * size);
    glTexCoord2d(1.0f * size, 0.0f * size);
    glVertex3f(-1.0f * size, -1.0f * size, 1.0f * size);
    glEnd();

    glBegin(GL_QUADS);
    glTexCoord2d(1.0f * size, 0.0f * size);
    glVertex3f(1.0f * size, -1.0f * size, -1.0f * size);
    glTexCoord2d(1.0f * size, 1.0f * size);
    glVertex3f(1.0f * size, 1.0f * size, -1.0f * size);
    glTexCoord2d(0.0f * size, 1.0f * size);
    glVertex3f(1.0f * size, 1.0f * size, 1.0f * size);
    glTexCoord2d(0.0f * size, 0.0f * size);
    glVertex3f(1.0f * size, -1.0f * size, 1.0f * size);
    glEnd();


    glBegin(GL_QUADS);
    glTexCoord2d(0.0f * size, 0.0f * size);
    glVertex3f(-1.0f * size, -1.0f * size, -1.0f * size);
    glTexCoord2d(1.0f * size, 0.0f * size);
    glVertex3f(-1.0f * size, -1.0f * size, 1.0f * size);
    glTexCoord2d(1.0f * size, 1.0f * size);
    glVertex3f(-1.0f * size, 1.0f * size, 1.0f * size);
    glTexCoord2d(0.0f * size, 1.0f * size);
    glVertex3f(-1.0f * size, 1.0f * size, -1.0f * size);
    glEnd();

    glTranslatef(-x, -y, -z);
}

纹理坐标始终使用[0..1]坐标系。如果要绘制完整纹理,请不要根据大小缩放纹理坐标,即

glTexCoord2d(1.0f * size, 0.0f * size); // Not good! (For this purpose anyway)
glTexCoord2d(1.0f, 0.0f); // Good!