我在JOGL中创建了6个飞机作为一个房间,现在我想用不同的图像对它们进行纹理化,所以我怎样才能在每个平面上做到这一点?还有什么推荐的纹理图像资源,我可以用它来装饰房间?
谢谢。
public void render(GL2 gl) {
gl.glClear(GL2.GL_COLOR_BUFFER_BIT|GL2.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();
camera.view(glu); // Orientate the camera
doLight(gl); // Place the light
doLight2(gl);
if (axes.getSwitchedOn())
axes.display(gl, glut);
if (objectsOn) { // Render the objects
gl.glPushMatrix();
//Making the room.
double planeParam = animationScene.getParam(animationScene.PLANE_PARAM);
//red x, blue z, green y.
gl.glTranslated(planeParam,0,0);
//Base
plane.renderDisplayList(gl);
//Back wall
gl.glTranslated(0,25,-25);
gl.glRotated(90, 1, 0, 0);
plane.renderDisplayList(gl);
//Right wall
gl.glTranslated(25,25,0);
gl.glRotated(90, 0, 0, 1);
plane.renderDisplayList(gl);
//Front wall
gl.glTranslated(25,25,0);
gl.glRotated(90, 0, 0, 1);
plane.renderDisplayList(gl);
//Roof
gl.glTranslated(0,25,-25);
gl.glRotated(90, 1, 0, 0);
plane.renderDisplayList(gl);
//Left wall
gl.glTranslated(25,25,0);
gl.glRotated(90, 0, 0, 1);
plane.renderDisplayList(gl);
gl.glPopMatrix();
}
答案 0 :(得分:0)
您可以使用TextureIO(推荐)或AWTTextureIO从图像文件创建纹理。
您可以使用包含所有纹理的单个图像并将其作为单个纹理进行管理,也可以为每个纹理使用一个图像。
您必须在使用之前绑定纹理(请参阅Texture.bind()或glBindTexture)。
您必须为顶点指定一些纹理坐标。如果使用立即模式,请使用glTexCoord。