2010-05-07 65 views
0

在OpenGL中,您實際上可以繪製帶有XYZ位置的文本,並且它將出現在該位置,但是具有固定的大小。在(x,y,z)處的DirectX文本

如果有人玩過MechWarrior 2,他們在那裏用它作爲導航點。文本有一個3d的位置,但它總是出現一個固定的大小。導航點實際上是在空間中的某一點上的文本。

除此之外,放置三維文字的能力幾乎是無用的..你總是希望文字是2d,righT?

我終於在我想要這個功能的位置。我在空間中需要分配文本信息的這些點,即我需要以固定大小繪製文本,但是需要3D位置。這可以從DirectX完成嗎?

+0

您是否嘗試過使用文本呈現的一些示例?還有一個鼠標拾取的例子,它可以幫助你獲得3d點像素指定的2D座標。 – phimuemue 2010-09-01 20:39:15

回答

1

ID3DXFont使用2D位置。但是你仍然可以使用它。 D3DX還附帶了一個D3DXVec3Project,它可以讓你將3D座標轉換爲屏幕位置。

0

假設您正在渲染3D四邊形上的文本,則需要根據距攝像頭的z距縮放文本四邊形。確切的公式取決於您的世界 - >視圖 - >屏幕轉換,但它應該很容易通過在同質屏幕空間座標中對給定高度矢量進行逆變換(例如(0,1,0))進行計算。

編輯:如果你想要的只是屏幕上的第2個位置,將世界空間的3d位置轉換爲屏幕空間。

+1

不,我相信他想要的是2d文本(即疊加層),其位置由3d點的像素位置決定。 – tloflin 2010-05-07 23:35:31

+0

@tloflin是的,確切地說, – bobobobo 2010-05-08 17:14:22

相關問題