2009-07-01 22 views
0

我想渲染字體的方式考慮了當前的轉換和類似的設置,尤其是投影轉換和視口。C++ D3DX字體和轉換(需要d3d9和d3d10解決方案)

我在想這樣做的最好方法是有一個屏幕外表面來渲染文字,然後渲染那個我真正想要文字的表面。

但是我不確定這個解決方案的許多方面。

  • 這是最好的方式去了解它嗎?

  • 圍繞這個ID有更好的自由字體渲染器會更好地花費我的時間,允許這樣的事情。我看到很多人因爲各種原因抱怨d3dx字體界面,但從來沒有鏈接到更好的支持unicode的渲染器......?

  • 有什麼優勢期運用一定的表面形式和/或表面大小(例如總是使用盡可能小的,而不是一些標準大單,這需要努力工作,大小出額外的步驟...)

回答

1

是的,渲染到紋理,然後繪製紋理四邊形以定位和定位文本將成爲實現此功能的最簡單方法。

至於D3DX文本渲染器,它確實取決於您使用的是哪個SDK。 DirectWrite(僅適用於Windows 7和Vista)將爲需要高質量文本渲染的應用程序提供更高質量的文本渲染方法,以便與Direct3D互操作。

你當然可以做你自己的光柵化。在那裏有字體光柵化引擎,它們是開源的,可以用於這種需求,但我們在這裏談論的是大量的編碼,這些好處可能無法區分開來,以保證開發費用。儘管如此,在Direct3D和着色器中可以使用全新的替代方法,前提是您可以將曲線輪廓作爲曲線數據進行訪問。這個想法是使用着色器來柵格化文本並將曲線定義存儲在頂點流和相關紋理中。試着看看this paper,它描述了這種技術。