如何将纹理包添加到我的立方体?

时间:2015-06-28 17:24:13

标签: java 3d textures lwjgl

我试图与lwjgl合作 我正在使用此代码绘制3D立方体(ad it's works):

glBegin(GL_QUADS);
    //glColor3f(1,0,0); // ROUGE
glTexCoord2f(0,0); glVertex3f( x     , y     , z     );
glVertex3f( x+size, y     , z     );
glVertex3f( x+size, y     , z+size);
glVertex3f( x     , y     , z+size);
    //glColor3f(1,0.5f,0); // ORANGE
glVertex3f( x     , y+size, z     );
glVertex3f( x+size, y+size, z     );
glVertex3f( x+size, y     , z     );
glVertex3f( x     , y     , z     );
    //glColor3f(0,0,1); // BLEU
glVertex3f( x     , y     , z     );
glVertex3f( x     , y     , z+size);
glVertex3f( x     , y+size, z+size);
glVertex3f( x     , y+size, z     );
    //glColor3f(1,1,0); // JAUNE
glVertex3f( x+size, y+size, z     );
glVertex3f( x+size, y+size, z+size);
glVertex3f( x+size, y     , z+size);
glVertex3f( x+size, y     , z     );
    //glColor3f(1,0,1); // ROSE
glVertex3f( x     , y     , z+size);
glVertex3f( x+size, y     , z+size);
glVertex3f( x+size, y+size, z+size);
glVertex3f( x     , y+size, z+size);
    //glColor3f(0,1,0); // ROUGE
glVertex3f( x     , y+size, z+size);
glVertex3f( x+size, y+size, z+size);
glVertex3f( x+size, y+size, z     );
glVertex3f( x     , y+size, z     );
glEnd();

我想在每张脸上(在精灵表中)放置不同的图像 这个代码的例子正在变成红色:

glColor3f(1,0,0);

我怎样才能在每张脸上放一张图片? ()

<小时/> 编辑:
我试过了mallard的例子,但我得到了这个结果: image

1 个答案:

答案 0 :(得分:0)

您可以使用slick_util.jar加载纹理。

Texture texture = TextureLoader.getTexture("PNG",
                      ResourceLoader.getResourceAsStream("hello.png");

在绘制四边形之前,启用纹理并绑定纹理。

glEnable(GL_TEXTURE_2D);
texture.bind();
glBegin(GL_QUADS);
...

您可能还需要设置纹理坐标。

// top left
glTexCoord2f(0, 0);
glVertex3f(x, y, z);
...