如何在Scene2D.ui或3d矩形网格中使用距离字段字体

如何在Scene2D.ui或3d矩形网格中使用距离字段字体,3d,libgdx,3d,Libgdx,我正在制作一个需要在不同距离渲染大量文本的游戏 距离字段字体看起来非常适合这一点 我让字体本身没有问题-软件和教程都很棒。 但是,本教程仅介绍如何将此字体与SpriteBatch一起使用。 因为我的游戏是3D的,这对我来说不是很有用 我的游戏目前设置为使用3d世界中的Scene2d.ui在虚拟界面中排列标签,但如果必须的话,我会切换到使用大量网格制作自己的布局对象 我基本上是在寻找在3d空间中使用大量距离场字体的任何方法,让我们在一个矩形上说“hello world”。 如果有帮助的话,我认为

我正在制作一个需要在不同距离渲染大量文本的游戏

距离字段字体看起来非常适合这一点

我让字体本身没有问题-软件和教程都很棒。 但是,本教程仅介绍如何将此字体与SpriteBatch一起使用。 因为我的游戏是3D的,这对我来说不是很有用

我的游戏目前设置为使用3d世界中的Scene2d.ui在虚拟界面中排列标签,但如果必须的话,我会切换到使用大量网格制作自己的布局对象

我基本上是在寻找在3d空间中使用大量距离场字体的任何方法,让我们在一个矩形上说“hello world”。 如果有帮助的话,我认为游戏可能会在运行时创建大约100个“文本平面”,但一旦创建就不会改变

请记住,我没有使用着色器的实际经验。我在谷歌搜索时发现的一些解释忽略了(我认为)对其他人来说是基本的东西(比如如何从着色器程序中生成着色器)。我自己也尝试过研究这个问题,但是需要一个自定义着色器、一个自定义着色器程序、一个自定义着色器提供程序,并手动重新实现我自己的标签以获取自定义着色器,这看起来就像是我进入了一个黑洞,盲目地戳来戳去,这时可能有一种更简单/更明显的方法来使用距离场字体

任何帮助或指点都将不胜感激,
谢谢。

请参见我的答案:您可以使用SpriteBatch在3D空间中绘制。“为每个网格单独绘制调用”选项。我想如果没有别的事发生。虽然考虑到我最终可能会有上百个这样的文本平面(大多数在任何特定时刻都在屏幕外),但单独的绘制调用在这里似乎是个坏主意。如果有帮助,文本创建后不需要更改。您可以使用截锥剔除来避免绘制屏幕外的文本。或者,您可以使用SpriteBatch(无自定义距离场着色器)将一串文本绘制到帧缓冲区上,然后将帧缓冲区的纹理分解为纹理区域,以便与贴花批一起使用距离场着色器在3D中绘制它们。但这不是一个微不足道的解决方案。也许有人需要编写BitmapFont3D类。:)