2010-08-14 31 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驱动程序和纹理缓存)。

相关问题