2011-08-17 51 views
2

我想呈现三维文本。在托管DirectX中,我会使用Mesh.TextFromFont从给定字符串中用给定字体创建3D网格,例如,在XNA中编写3D文本

var myMesh = Mesh.TextFromFont(device, myFont, "Hello World!", 0, 3DwidthOfTheText) 

但是,这种方法在XNA中不再存在。有替代品吗?

+1

http://blog.neilreed.co.uk/search/label/RenderTarget2D – TJHeuvel 2011-08-17 11:13:44

+1

@TJHeuvel:谢谢,但那是2D文本,而不是3D文本。 – Heinzi 2011-08-17 12:03:41

+1

您可以将纹理粘贴在网格上,并使其在三维空间中可见。但它不会有任何深度。 – TJHeuvel 2011-08-17 12:32:13

回答

4

要在XNA中执行挤出的3D文本,最好的方法 - 在编译时提供您需要的字体 - 可能是Nuclex.Fonts。它通过内容管道将TrueType字体导入VectorFont类型(类似于SpriteFont)。

This page contains some pretty pictures and a brief tutorial

(如果你需要在运行时动态导入字体,然后Nuclex可能仍然是值得期待 - 它可能能够从这些内容管道分开)

-1

一种可能性是使用RenderToTexture在网格上渲染文本,并将该网格放置在世界中。