首页 > 解决方案 > libgdx 如何在 3D 透视图中绘制文本?

问题描述

我想在我的 guiCam(不受任何旋转或变换影响的第二个摄像头)中渲染固定文本以进行调试。

我认为正在呈现的文本在我的角度来看要么大要么小,但我似乎无法在官方 libgdx 文档中找到文本是如何绘制的以及我如何操纵大小。

创造:

guiCam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
        guiCam.position.set(1f, 1f, 20f);
        guiCam.lookAt(0, 0, 0);
        guiCam.near = 1f;
        guiCam.far = 300f;
        guiCam.update();

batch = new SpriteBatch();
        batch.setProjectionMatrix(guiCam.combined);

        font = new BitmapFont();
        font.setColor(Color.RED);

使成为:

font.draw(batch, "debug line here", 200, 200);

有人可以向我解释一下 libgdx 默认字体是如何绘制的,或者这里是否有更好的解决方案来显示固定文本?

我已经尝试过使用 OrthoGraphic 相机而不是专用相机,但由于我的主要应用程序是 3D,因此 OrthoGraphic 相机不起作用。

标签: javalibgdx

解决方案


在 stackexchange 上为您找到了这个。

lookx2给出的答案:

您可以只使用另一个 SpriteBatch 而不设置投影矩阵来绘制 HUD,

camera.update();
spriteBatch.setProjectionMatrix(camera.combined);
spriteBatch.begin();
aButton.draw(spriteBatch, 1F);
playerShip.draw(spriteBatch, 1F);
spriteBatch.end();

hudBatch.begin();
//Draw using hudBatch
hudBatch.end();

如果您想在屏幕上呈现文本,那么您需要通过绘制到 HUD 来实现


推荐阅读