如何使用OpenGL和C#在屏幕上显示文本

时间:2011-12-14 21:47:19

标签: c# opengl

情况:简单的3D游戏项目 - OpenGL + C# 我读到OpenGL函数不支持在屏幕上轻松打印文本。 有谁知道如何做到这一点?我不需要任何太复杂的解决方案。 我只需要在一个角落显示例如FPS率或显示在anohter角落中拾取的物体的数量。 THX。

3 个答案:

答案 0 :(得分:1)

文本渲染的一个好方法是使用带有字体字符的纹理,并使用良好的纹理坐标为每个字符绘制一个四边形。这通常会产生良好的结果,并且与平台无关。然而,实施起来相当繁重。

答案 1 :(得分:0)

在Windows上使用Opengl32.dll的wgl函数来渲染文本。示例:http://www.pinvoke.net/default.aspx/opengl32.wglusefontoutlines#

基本过程是你必须提前构建一个字形显示列表(将Windows字体转换为OpenGL上下文),然后你可以使用字符作为预渲染显示的索引在OpenGL显示表面上绘制字符列表。

对于预先打包的托管解决方案,请查看Mono的Tao库:http://www.mono-project.com/Tao

答案 2 :(得分:0)

http://nehe.gamedev.net/tutorial/freetype_fonts_in_opengl/24001/这应该可以满足您的所有需求。它在C ++中,但我猜这应该不是问题。它基本上阐述了neodelphi的建议。

虽然你说你不需要太多的复杂性,只需要FPS就可以了 一个漂亮的字体渲染系统非常方便。

HTH