2010-08-14 32 views
6

我知道我可以用GLUT來做。但是,我有一個很大的項目,並且在添加GLUT(我使用Delphi)時遇到了問題。如何使用標準OpenGL函數繪製文字(在屏幕上書寫)?

那麼,我還有什麼其他選擇?

+0

我使用Delphi編寫OpenGL,所以基本上我不能使用頭文件。如果有外部庫,我必須有一個.dll文件,以便我可以使用它。 – Mahm00d 2010-08-16 07:23:08

+0

這對你有幫助嗎? http://wiki.delphigl.com/index.php/wglUseFontBitmaps – Lars 2010-08-14 12:22:07

回答

6

你不能用標準的OpenGL函數來完成它,除非你基本上有紋理中包含文本,或者你繪製的紋理上的字符列表。但是不要重新發明輪子 - 我會推薦FTGL在OpenGL視圖中呈現文本。它有幾種不同的渲染方法,並且會照顧你,支持unicode,並且還具有很好的文本度量特性。使用每個字形一個紋理,從而導致惡劣的表現(由於所發生的管理費用

+0

FTGL是否有.dll文件?因爲我在他們的網站上看到的都是頭文件。我正在使用Delphi,需要添加一個.dll文件才能使用它。 – Mahm00d 2010-08-16 07:18:03

+0

它有DLL和靜態鏈接可用,請參閱站點文檔以獲取更多信息。 – AshleysBrain 2010-08-21 18:03:15

1

使用FreeType爲您的文本生成位圖。

編輯:它是一個成熟的跨平臺庫,帶來了基於包括正常Windows TrueType字體的字體的完整文本顯示功能。下面是它的定義從維基百科:

FreeType的是用C實現的字體 光柵化引擎的書面 軟件庫。它用於 將字符光柵化爲位圖, 爲其他 字體相關操作提供支持。

+0

你能解釋這是如何工作的嗎?我的意思是,FreeType是一個使用的程序或單位? – Mahm00d 2010-08-16 07:21:41

+0

@FlomEnol,檢查更新的答案。 – mmonem 2010-08-16 13:41:59

1

如果決定實現自己的字體系統一定要使用一個texture atlas,我見過太多的OpenGL演示OpenGL驅動程序和紋理緩存)。

相關問題