2011-08-17 47 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在網格上渲染文本,並將該網格放置在世界中。