我目前正在使用libGDX进行3D游戏,我已经取得了相当多的进步,例如加载和显示3D模型以及摄像机控制的能力。我现在正在使用网格创建地形但遇到了问题。当我将模型和网格渲染在一起时,当所有模型都在地面前时它看起来很好,但是当地面在模型前面渲染时模型仍然呈现,我得到一个非常奇怪的结果:
我知道它的深度有问题,但我不知道如何解决它。我的渲染代码如下。
@Override
public void render() {
Gdx.gl20.glClearColor(0.2f, 0.2f, 0.9f, 1);
Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
Gdx.gl20.glEnable(GL20.GL_TEXTURE_2D);
Gdx.gl20.glEnable(GL20.GL_BLEND);
Gdx.gl20.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
camera.update();
movementCam.update();
texture.bind();
shaderProgram.begin();
shaderProgram.setUniformMatrix("u_projTrans", camera.combined);
shaderProgram.setUniformi("u_texture", 0);
mesh.render(shaderProgram, GL20.GL_TRIANGLES);
shaderProgram.end();
modelBatch.begin(camera);
modelBatch.render(modelInstance, environment);
modelBatch.end();
}
我该怎么办?谢谢您的帮助。 :)
编辑: 感谢下面的帮助,我能够解决问题,我需要做的就是添加Gdx.gl20.glEnable(GL20.GL_DEPTH_TEST);它起作用了。 :d