在3D中绘制文本

时间:2012-09-14 12:07:07

标签: c# 3d xna text-rendering

我试图弄清楚如何用3D绘制文字。

现在我有两种方法可以在屏幕上显示内容。一个使用通常的3d空间渲染世界,另外渲染渲染HUD以预先转换的方式执行它。

所以,理想情况下,我希望有一种方法可以对文本执行相同的操作,以便在3D中呈现字符串(类似于"广告牌"方式)和预转换方式(就像我使用的是2d模式)。

我唯一能找到的就是使用" Mesh.FromText",但它似乎并不是我需要的。哦,还使用spritebatch将纹理绘制到纹理,然后在3D混合中使用这个纹理,但再次看起来像是一种糟糕的方式...

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用自定义效果在3D空间中使用SpriteBatch进行绘制。 This blog post有详细信息。

就像将效果(如BasicEffect)传递给SpriteBatch.Beginthis one)的适当重载一样简单。

(文本由透明精灵组成 - 因此所有常见的注意事项都适用于3D中的透明度绘图:对不透明的Z缓冲场景进行排序和绘制,或使用alpha测试。)