我正在使用libgdx编写一个2D游戏引擎,其中必须使用带有OrthgraphicCamera的SpriteBatch来渲染多个sprite层。较高Z的层应该被渲染在具有较低Z的层的顶部。目前,我必须按照z分量对层进行排序来实现这一点。有没有一种方法,使用opengl Z缓冲区,让它们无序地渲染,但仍然正确显示?
im9ewurl1#
通过切换到DecalBatch而不是SpriteBatch来修复。下面是我在用DecalBatch绘图之前使用的GL命令,以启用深度测试:
DecalBatch
Gdx.gl.apply { glClearColor(0f, 0f, 0f, 0f); glEnable(GL20.GL_DEPTH_TEST) glClear(GL20.GL_COLOR_BUFFER_BIT or GL20.GL_DEPTH_BUFFER_BIT) glClearDepthf(1f) glDepthFunc(GL20.GL_LESS) }
1条答案
按热度按时间im9ewurl1#
通过切换到
DecalBatch
而不是SpriteBatch来修复。下面是我在用DecalBatch绘图之前使用的GL命令,以启用深度测试: