使用ModelBatch在3D libgdx中渲染位图字体

使用ModelBatch在3D libgdx中渲染位图字体,libgdx,Libgdx,我想在libgdx ModelBatch中呈现位图字体。我只找到了带有“SpriteBatch”的样品。当然,我可以在3D空间中移动SpriteBatch,但它在“ModelBatched”对象之前或之后渲染。但我想把它渲染到正确的z位置 例如 渲染模型实例a(z=20) 渲染字体(z=30) 渲染模型实例b(z=40) 然后modelInstanceB应该覆盖渲染字体应该覆盖modelInstanceB 换句话说,我希望在ModelBatch上下文中呈现字体 modelBatch.begi

我想在libgdx ModelBatch中呈现位图字体。我只找到了带有“SpriteBatch”的样品。当然,我可以在3D空间中移动SpriteBatch,但它在“ModelBatched”对象之前或之后渲染。但我想把它渲染到正确的z位置

例如

  • 渲染模型实例a(z=20)
  • 渲染字体(z=30)
  • 渲染模型实例b(z=40)
然后modelInstanceB应该覆盖渲染字体应该覆盖modelInstanceB

换句话说,我希望在ModelBatch上下文中呈现字体

modelBatch.begin(camera);
modelBatch.render(modelInstanceA);
modelBatch.render(font);
modelBatch.render(modelInstanceB);
modelBatch.end();

是否有一种内在的方式来实现这一点

如果模型不透明,可以在调用
modelBatch.end()
后使用SpriteBatch绘制文本,但需要调用Gdx.gl.glEnable(GL20.gl\u DEPTH\u TEST);在
spriteBatch.begin()之前。然后在
spriteBatch.end()
之后禁用它以进行清理(默认情况下,libgdx类希望它处于关闭状态)

如果模型不透明,可以在调用
modelBatch.end()
后使用SpriteBatch绘制文本,但需要调用Gdx.gl.glEnable(GL20.gl\u DEPTH\u TEST);在
spriteBatch.begin()之前。然后在
spriteBatch.end()
之后禁用它以进行清理(默认情况下,libgdx类希望它处于关闭状态)

如果模型不透明,可以在调用
modelBatch.end()
后使用SpriteBatch绘制文本,但需要调用Gdx.gl.glEnable(GL20.gl\u DEPTH\u TEST);在
spriteBatch.begin()之前。然后在
spriteBatch.end()
之后禁用它以进行清理(默认情况下,libgdx类希望它处于关闭状态)

如果模型不透明,可以在调用
modelBatch.end()
后使用SpriteBatch绘制文本,但需要调用Gdx.gl.glEnable(GL20.gl\u DEPTH\u TEST);在
spriteBatch.begin()之前。然后在
spriteBatch.end()
之后禁用它以进行清理(默认情况下,libgdx类希望它处于关闭状态)

谢谢,Gdx.gl.glEnable(GL20.gl\u深度测试);成功了。您必须在第一次绘制方法之前调用它。谢谢,Gdx.gl.glEnable(GL20.gl\u DEPTH\u TEST);成功了。您必须在第一次绘制方法之前调用它。谢谢,Gdx.gl.glEnable(GL20.gl\u DEPTH\u TEST);成功了。您必须在第一次绘制方法之前调用它。谢谢,Gdx.gl.glEnable(GL20.gl\u DEPTH\u TEST);成功了。您必须在第一个draw方法之前调用它。