(x,y,z)的DirectX文本

时间:2010-05-07 23:26:00

标签: text directx

在OpenGL中,您实际上可以使用XYZ位置绘制文本,它将显示在该位置,但是具有固定大小。

如果有人玩MechWarrior 2,他们会在那里使用导航点。文本有一个3d位置,但它总是出现一个固定的大小。导航点实际上是在空间中的确切点处的一些文本。

除此之外,放置三维文字的能力几乎没用..你总是希望文字是2d,righT?

我终于处于我想要这个功能的位置。我在空间中有这些我需要分配文本信息的点,即我需要以固定大小绘制文本但具有3d位置。这可以从DirectX完成吗?

2 个答案:

答案 0 :(得分:1)

ID3DXFont使用2D位置。但是你仍然可以使用它。 D3DX还带有D3DXVec3Project,可让您将3D坐标转换为屏幕位置。

答案 1 :(得分:0)

假设您在3d四边形上渲染文本,您需要根据相机的z距离缩放文本四边形。确切的公式取决于您的world-> view->屏幕转换,但应该通过在同质屏幕空间坐标中采用给定高度向量的逆变换(例如,(0,1,0))来轻松计算。 / p>

编辑:如果你想要的只是屏幕上的第二个位置,将3d位置从世界空间转换为屏幕空间。